Преко SSH-а се пријављујете на хост за изградњу, покрећете на њему VPN клијента, и сесија престаје да одговара. Ништа се није срушило и ништа не изгледа погрешно конфигурисано у очигледном смислу. Клијент је инсталирао подразумевану руту, па одговори ка вашој радној станици сада излазе кроз тунел, где адреса ваше радне станице није рутабилна. Занимљиво је да је овај исход био предвидљив, а поправка је једна рута записана пре него што клијент почне. Претпоставимо сервер са једном мрежном картицом, гејтвеј 192.0.2.254 и администратора који се повезује са 203.0.113.9.

Запишите путању пре почетка

ip route show default наводи тренутни гејтвеј и интерфејс, док ip route get 203.0.113.9 показује који би интерфејс и изворну адресу језгро користило за вашу сесију. Сачувајте оба излаза. Након што се тунел подигне, те две команде би требало да и даље описују физичку путању, а ако описују тунел, сесија већ живи на позајмљено време.

Важна је већ успостављена веза, зато не проверавајте само новом пријавом. Нова сесија може накратко успети кроз стање које стара више нема.

Учврстите адресу у конфигурацији самог клијента

Рута додата ручно нестаје при поновном покретању и такмичи се са сопственим ажурирањима табеле клијента, зато ставите изузетак тамо где се табелом управља. У OpenVPN кључна реч net_gateway разрешава се на гејтвеј који је постојао пре тунела, па route 203.0.113.9 255.255.255.255 net_gateway задржава тачно једну адресу изван њега. WireGuard захтева другачији приступ јер wg-quick сам управља рутама: подесите Table = off и додајте изузетак у PostUp, са одговарајућим PostDown који га уклања. Обе форме изражавају исту намеру и обе ограниче изузетак на једну адресу уместо да ослабе тунел за све.

За IPv6 иста идеја узима префикс једног хоста, а случај умотаног транспорта вреди запамтити: ако спољашња веза самог тунела живи на фиксној адреси, та адреса мора да остане изван тунела који носи, иначе клијент усмерава сопствени транспорт у себе.

Или избаците главну табелу из једначине

Када неколико сервиса на хосту мора да задржи уобичајену путању, престаните да уређујете главну табелу и дајте клијенту сопствену. Мрежни простор имена са veth паром то ради чисто: подразумевана рута клијента живи у другом стеку и тунел користе само процеси покренути унутар њега. Политичко рутирање стиже на слично место за једну дестинацију, шаљући одговарајући саобраћај у посебну табелу чија подразумевана рута и даље показује на физички гејтвеј. Оба приступа остављају главну табелу хоста без нове подразумеване руте, и управо то својство одржава SSH да одговара.

Оба су више механизма од једне руте до хоста и оба вреде када више од једне ствари на машини мора да преживи тунел.

Претпоставите да учвршћивање може да не успе

Рута везана за вашу тренутну јавну адресу пуца у тренутку када је ваш провајдер поново додели. Удаљеном серверу тада треба путања која не зависи од те адресе: конзола, други интерфејс за управљање или скокајући хост који остаје изван тунела.

Две заштитне мере коштају десет минута. Чувар који заустави клијента ако се потврдна пријава не појави у неколико минута претвара закључавање у кашњење, а друга SSH сесија држана отвореном током промене доказује да изузетак ради док је тунел подигнут. Само keepalive овде не помажу, јер је путања отишла, а не мирује; они само олакшавају примећивање смрти.

Проверите редоследом који је важан

Повежите тунел, потврдите да рута до ваше адресе и даље излази кроз физички гејтвеј, затим отворите нову сесију. Ако нова сесија ради, а стара ипак умире, узрок је праћење веза или stateful firewall, а не рутирање, што је другачија поправка.

Запишите учвршћену адресу и команду која ју је доказала у запис о променама. Следећој особи која покрене клијента на том хосту требаће обоје, а адреса се до тада можда променила.

Повезани чланци