Vagrant VM нестаје када се VPN повеже: чија се путања сломила
Машина која је одговарала пре минута нестаје у тренутку повезивања. Одлучите коме припада поломљена путања пре него што било шта измените.
Машина је одговарала пре минута, 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 капији уместо правој дестинацији. Пакет никада не напушта домаћина, па га ниједан запис заштитног зида са друге стране неће приказати. 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, вратили сте путању са којом сте почели. Када ради само једна од тих, преостали квар је на територији другог власника, а разлика вам каже која је то територија.