Машина бир мүнөт мурун жооп берип турган, VPN туташты, эми ошол эле дарек убакыт чегинен өтүп кетет. Бул белгини үч бузулуу жаратат жана алар ар башка машиналарда жашайт. Хост жеке тармакка кетүүчү маршрутту жоготушу мүмкүн, коноктун NAT диапазону туннел азыр жарыялаган диапазон менен кагылышы мүмкүн, же толук туннел хосттогу ар бир маршруттун ээлигин алып кетиши мүмкүн. Кайсынысы болгонун каалаган конфигурацияны өзгөртүүдөн мурун аныктаңыз, анткени ар бир оңдоо башка жерде жашайт.

Маршрутту караңыз, машинаны эмес

Туннел көтөрүлгөндө конок дареги үчүн хосттун маршруттоо чечимин караңыз. Азырынча хост-гана адаптерди көрсөтүп турган маршрут көйгөй эмес. Азыр VPN адаптерин көрсөтүп турган маршрут көйгөй, аны сиз эмес, кардар өзгөрткөн. Адаптердин өз дарегин сактап калышы интерфейс тирүү калганын билдирет, бул жолдун тирүү калганынан башка факт.

Туташуу учурунда так үзүлгөн SSH сессиясы күтүлгөн жүрүм-турум. Кардар адаптерлерди кайра колдонуп, маршруттарды орнотот, ошондуктан байланыш бир нече секунд өлөт. Бузулуу — эч качан кайтпаган байланыш, бир учур жыпылыктаган байланыш эмес.

Туннелден мурун таблицаны тартып, андан кийин дагы бир жолу тартыңыз, анан бул эки чыгарылышты салыштырыңыз. Айырма — диагноз, ал ошондой эле тармак ээси талап кыла турган далил.

ip -4 route get 192.168.56.10
ip -brief addr show
ip route show table main | head -20

Хосттун таблицасын туташууга чейин жана кийин окуңуз

Linuxте кабатташкан маршруттардын ортосундагы артыкчылык префикс узундугу менен метрикадан келет, ошондуктан такыраак VPN маршруту жаңылыш болсо да жеңет. Windowsто интерфейс метрикасы теңдикти чечет, ал эми туннел адаптери адатта виртуалдыктан төмөн метрика менен келет. Эки учурда тең көрүнгөн белги бирдей: пакеттер туннел адаптери аркылуу чыгып, жок болот.

Коноктун префиксинин маршрутунун жанында адаптерлерди жана алардын метрикаларын басып чыгарыңыз. Ошол чыгарылыштардын жуптугу ээлик суроосуна бир караш менен жооп берет.

Get-NetAdapter | Select-Object Name, InterfaceIndex, InterfaceMetric
Get-NetRoute -DestinationPrefix 192.168.56.0/24
route print -4 | Select-String '192.168.56'

Маршрут өзгөрүп, адаптердин метрикасы өзгөрбөсө, кардар атаандаш маршрут орноткон. Метрика өзгөрсө, кардар адаптерлерди кайра иреттеген. Экөөнү тең оңдосо болот жана алар ар башка жерлерде оңдолот.

Коноктун NAT диапазону кагылыш болгондо

VirtualBox NAT демейки боюнча 10.0.2.0/24 колдонот, ал эми ошол эле диапазонду түрткөн туннел конокту бул трафикти чыныгы багытка эмес, өзүнүн NAT дарбазасына жөнөтүүгө мажбурлайт. Пакет хосттон эч качан чыкпайт, ошондуктан аркы беттеги эч бир firewall журналы аны көрсөтпөйт. Docker Machine да өзүнүн хост-гана планында ушундай класстагы жаңжалга ээ, ал планды өзгөртүү машинаны сертификаттары менен кайра түзүүнү талап кылышы мүмкүн.

Орунду тандоо үчүн туннел мурунтан эмнени жарыялаганын, анан кеңсе тармагы эмнени колдонушун, анан бул хосттогу ар бир виртуалдык адаптер эмнени талап кылганын тизмелеңиз. Маршруттоону буза турган нерсе — кабатташуу, ал эми окшоштуктун мааниси жок. Бир диапазон экинчисинин ичинде толук отура алат, бирок биринчи караштак эле такыр окшошпойт.

Жаңы диапазонду машина түзүлгөндө коюңуз, же аны өзгөртүп кайра жүктөңүз, анан ишке ашпаган байланышты коноктон кайра текшериңиз. Коноктун өз таблицасы — маанилүү көрүнүш.

VBoxManage modifyvm devbox --natnet1 10.77.0.0/24
vagrant reload devbox --provision
vagrant ssh devbox -c 'ip route get 10.20.0.15'

Кардар менен урушпай жолду калыбына келтириңиз

Ар бир платформа хост-гана префиксин кайра алдыга чыгаруу жолун сунуштайт. macOSте хост-гана интерфейске статикалык маршрут кийинки туташууга чейин иштейт. Windowsто виртуалдык адаптердеги төмөн интерфейс метрикасы аны артыкчылыкта кармайт. Linuxте алмаштыруу операциясы бир префиксти камтыйт. Үчөө тең убактылуу чечим, анткени өз маршруттарын кайра талап кылган кардар аларды жокко чыгарат.

Жүктөөдө сокур кайра туташуунун ордуна текшерүүнү скрипт кылыңыз. Ар бир туташуудан кийин конок префиксинин маршрутун басып чыгарган кичинекей скрипт табышмакты журналдагы сапка айландырат.

Профиль толук туннел болсо, тармак ээсинен бөлүнгөн туннелди же документтелген өзгөчөлүктү сураңыз. Коопсуздук саясатын айланып өткөн маршруттарды үнсүз кошуу оңдоо эмес, кийинчерээк аудитор менен келе турган экинчи көйгөй.

Оңдоону эки тараптан текшериңиз

Өзгөртүүдөн кийин үч жолду текшериңиз: хосттон конокко, коноктон корпоративдик хостко жана коноктон интернетке. Бирөөнү калыбына келтирип, экинчисин бузган оңдоо — оңдоо маскасын кийген конфигурация өзгөрүүсү. Салыштыруу тең-тең болушу үчүн өзгөртүүгө чейин жыйнаган ошол эле чыгарылыштарды тартыңыз.

Өзгөргөн интерфейсти, метриканы жана маршрутту убакыт менен бирге жазып алыңыз, кийинки учур кайра куруу эмес, издөө болсун. Бул жазуу узун билет тизмесинен кымбат.

ip -4 route get 192.168.56.10
traceroute -n -m 4 10.20.0.15
curl -sS -o /dev/null -w '%{http_code}\n' https://example.com

Хост кайрадан конокко жетип, конок LANга жеткенде, сиз баштаган жолду калыбына келтирдиңиз. Алардын бирөө гана иштесе, калган бузулуу башка ээнин аймагында, ал эми айырма кайсы аймак экенин айтат.

Тектеш макалалар