Тунел се подигне, иконица постане зелена и локална мрежа нестане: штампачи, NAS и канцеларијски рутер престану да одговарају. FortiClient ради оно што је профил тражио. Гејтвеј је послао подразумевану руту, клијент ју је инсталирао и сваки пакет сада има пут у тунел. Поправка је измена табеле рута са изменом DNS-а иза ње, а редослед тих измена одлучује да ли ће машина завршити боље или горе.

Шта је клијент инсталирао и зашто је LAN нестао

Почните читањем табеле уместо интерфејса клијента. На macOS-у netstat -rn исписује целу табелу, а route -n get default именује интерфејс и метрику који тренутно побеђују; на Linux-у пар је ip route show и ip route get 8.8.8.8. Оба одговарају на једно питање: који ће запис носити пакет који се не поклапа ни са чим конкретнијим.

Назив тунелског уређаја није фиксан. IKEv2 профил на macOS-у обично приказује utun са бројем, клијент SSL VPN приказује ppp0, а OpenVPN приказује tun0. Две подразумеване руте могу бити присутне и истовремено са различитим метрикама, а клијентски запис може преузети контролу тек после поновног повезивања, а не у тренутку појављивања. Зато два исписа табеле узета у размаку од пет минута могу причати различите приче.

Зашто тунелска подразумевана рута мора прва да оде

Језгро бира најдужи одговарајући префикс, а када је неколико рута једнако специфично, бира ону са најнижом метриком. Клијент који инсталира 0.0.0.0/0 са бољом метриком зато побеђује на сваком одредишту без брисања изворне подразумеване руте, и зато је физичка рута још у табели и још објашњава прекид. Уклањање тунелске подразумеване руте прво враћа претходно понашање. Тек тада префиксна рута кроз тунел ради оно што је њен аутор намеравао.

Додавање префикса пре тог корака грешка је која даје напола исправну машину. Саобраћај новог префикса прати тунел, а све што није на списку такође прати тунелску подразумевану руту, па ништа не изгледа покварено док неко не отвори услугу коју нико није додао. Избришите, вратите, затим додајте и међустање остаје предвидљиво.

След на macOS-у и на Linux-у

На macOS-у след брише тунелску подразумевану руту, враћа физичку подразумевану руту и шаље један канцеларијски префикс натраг у тунел. Замените илустративне називе интерфејса овде онима из своје табеле.

sudo route delete -net default -interface utun4
sudo route add -net 0.0.0.0 -interface en0
sudo route add -net 10.20.0.0 -netmask 255.255.0.0 -interface utun4

На Linux-у исти редослед користи други алат: LAN гејтвеј за подразумевану руту и тунелски уређај за канцеларијски префикс. Стара наредба route још прихвата стару синтаксу, али ip route је облик који одговара актуелној документацији.

sudo ip route del default dev tun0
sudo ip route add default via 192.168.50.1
sudo ip route add 10.20.0.0/16 dev tun0

Када рути треба следећи скок уместо уређаја, узмите peer из излаза клијента. Погађање даје једну од две грешке и оне значе различито: погрешан гејтвеј одмах даје network unreachable, а погрешан тунелски циљ даје истек времена. Прочитајте коју сте добили пре него поново промените наредбу.

Префикси, разрешивач и DMZ који остаје мрачан

Један префикс ретко покрива посао. Апликациони сервери, управљачке мреже, DMZ и сами DNS сервери могу сваки бити у другом опсегу, зато попишите сваки опсег који можете именовати пре почетка и тестирајте претрагу уз сваки ping. Одредиште откривено током теста оно је које се заборави у запису промена. Рута која одговара по адреси, али пада по имену, обично је проблем разрешивача у костиму усмеравања.

Разрешивач је засебна одлука. Када је профил послао интерне DNS сервере, одузимање подразумеване руте може те адресе оставити недоступнима за јавна имена или доступнима само кроз тунел, а оба стања дају збуњујуће делимичне резултате. Усмерите адресе разрешивача кроз тунел или поставите разрешавање по домену тако да јавне претраге користе локални разрешивач.

Linux SSL клијент има квар специфичан за поље који вреди знати: тунел се повеже, канцеларијски LAN одговара, а један DMZ опсег остаје мрачан. Део који недостаје је рута за тај опсег кроз тунелски гејтвеј, а гејтвеј се разликује међу машинама, па је тврдо кодирана адреса начин на који се сломи следећи лаптоп. Изведите ју из стања клијента и држите наредбу самодокументујућом:

PEER=$(ip -4 addr show dev ppp0 | awk '/peer/ {print $4}' | cut -d/ -f1)
sudo ip route add 192.168.30.0/24 via "$PEER"

Прочитајте две вредности пре покретања. peer је удаљени крај тунела од тачке до тачке и то је адреса која треба DMZ рути; на рутираном тунелу еквивалент је интерфејс или гејтвеј који клијент пријављује. Ако се не појави ниједно, клијент није у режиму који сте претпоставили.

После следећег повезивања и када престати то радити локално

FortiClient се поново повезује после спавања или промене мреже и поново инсталира све што профил налаже. Ручне руте зато преживе само до следећег повезивања, а то је управо интервал у којем један успешан тест може изгледати као поправка. Рута која нестане преко ноћи очекивано је понашање, а не нова грешка.

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

Контролна листа је кратка: прочитајте табелу, избришите тунелску подразумевану руту, вратите LAN подразумевану руту, додајте сваки префикс, одвојено поправите разрешавање и очекујте да ће се руте вратити при поновном повезивању.

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