Ang mga papasok na koneksyon sa isang host na nagpapatakbo din ng VPN client ay nabibigo sa napakaespesipikong paraan: dumarating ang handshake, sumasagot ang daemon, at walang natatanggap na sagot ang kliyente. Walang humaharang sa port. Lumabas ang sagot sa tunnel, dahil pagmamay-ari ng tunnel ang default na ruta at ang kernel ay nagruruta ng mga sagot ayon sa destinasyon, hindi ayon sa alaala kung saan galing ang kahilingan. Ang nag-iisang pagkukulang na iyon ang nagpapaliwanag sa bawat kasunod na sintomas.

Ang sagot ay niruruta, hindi inaalala

Ang isang VPN client na naglalagay ng default na ruta ay nagdaragdag ng entry na lumalampas sa LAN gateway, alinman sa pamamagitan ng metric o sa paghahati ng espasyo sa dalawang mas espesipikong kalahati. Pinipili na ngayon ng mga palabas na packet ang interface ng tunnel. Hindi kailanman tinatanong ng kernel kung saan orihinal na dumating ang packet na sinasagot. Ang nag-iisang pagkukulang na iyon ang nagpapaliwanag sa bawat kasunod na sintomas.

Ang pasulong na direksyon ay niruruta ayon sa destinasyon, at gayon din ang paatras. Ang sagot ay nakaindrese sa isang pampublikong kliyente, na kusang dadalhin ng tunnel. Ang dulong bahagi ay tumatanggap ng packet na hindi pagmamay-ari ang pinagmulan, itinatapon ito, at ang orihinal na kliyente ay naghihintay hanggang maubos ang oras.

Maaaring ihulog ng mahigpit na reverse-path filtering ang papasok na packet bago pa ito basahin ng daemon. Suriin muna ang counter na iyon, dahil ang paghulog ng filter at ang pagkakamali sa routing ay magkatulad ang hitsura mula sa labas.

ip route show default
sysctl net.ipv4.conf.all.rp_filter net.ipv4.conf.eth0.rp_filter
nft list ruleset | grep -A3 'hook forward'

Ipinapakita ng unang utos kung aling default na ruta ang nananalo ngayon. Iniulat ng pangalawa kung ang mahigpit na filtering ay nalalapat sa buong sistema o kada interface, at ipinapakita ng pangatlo ang anumang tuntunin sa forward chain na maaaring kasangkot.

Tatlong paraan upang mapanatili ang daan pabalik

Ang pagbubukod sa destinasyon ng serbisyo mula sa tunnel ay ang pinakamakitid na opsyon. Ang host route na nakaturo sa LAN gateway, kasama ang daemon na nakatali sa pisikal na address sa halip na sa lahat ng address, ay nagpapanatili sa isang daloy na iyon sa labas ng tunnel. Ang pagbabago ay lokal at madaling ibalik.

Ang policy routing ang pangkalahatang sagot. Ang tuntuning nakabatay sa source address o sa firewall mark ay pumipili ng table na ang default ay nakaturo sa WAN gateway, habang ang sariling mga koneksyon ng host ay patuloy na gumagamit ng tunnel. Panatilihing hayag ang priyoridad upang hindi matakpan ang tuntunin sa hinaharap.

ip rule add from 203.0.113.25/32 table 100 priority 100
ip route add default via 192.0.2.1 dev eth0 table 100
ip route get 198.51.100.7 from 203.0.113.25

Binubuo ng unang dalawang utos ang alternatibong daan para sa mga sagot na nagmumula sa pampublikong address. Itinatanong ng pangatlo sa kernel kung aling daan ang tatahakin ng eksaktong source at destinasyong iyon, at sa gayon ay kinukumpirma mo na may epekto ang tuntunin.

Ang source translation ang pangatlong opsyon at ang tanging nakakaligtas sa harap ng router na gumagawa na ng NAT sa harap ng serbisyo. Dapat bumalik ang sagot sa router na iyon, at nakakamit iyon ng masquerading patungo sa WAN interface habang itinatago ang kliyente mula sa mga log ng serbisyo. Ang manu-manong pagpapalit ng default na ruta pagkatapos kumonekta ay isang diagnostic, dahil muling isinusulat ng kliyente ang table sa susunod na muling pagkonekta.

Kapag nagruruta rin ang kahon para sa LAN

Lumilitaw ang parehong pagkabigo isang hop pa ang layo kapag nagruruta ang host para sa mga device sa likod nito. Ang papasok na koneksyon ay ipinapasa sa isang panloob na device na ang tanging daan pabalik ay ang tunnel, at ang sagot ay umaabot sa panlabas na kliyente mula sa address ng provider. Maayos na gumagana ang panloob na device sa buong oras.

Pagkatapos ay makikita ng connection tracking ang isang sagot para sa daloy na hindi nito naitala at itatapon ito. Inihahatid ng destination translation ang papasok na koneksyon sa device, at ginagawa ng source translation na ang sagot ay tila nagmumula sa router mismo.

Ang policy route na nagpapanatili sa naipasang port sa WAN habang ginagamit ng sariling trapiko ng router ang tunnel ang mas malinis na katumbas. Kung walang source translation, ang sagot ay nakaindrese sa panlabas na kliyente, at ang panloob na device ay walang ruta sa address na iyon.

Tatlong pagsisiyasat na naghihiwalay sa mga sanhi

Magsagawa ng tatlong pagsisiyasat: isang koneksyon papasok sa kahon mula sa internet, isang koneksyon palabas nito patungo sa pampublikong host, at isang paghahanap ng pangalan. Kapag hindi nagtutugma ang unang dalawa, ang daan pabalik ang may kasalanan. Kapag nabigo ang mga pangalan sa parehong direksyon, ang resolver ay ibang depekto na nagbabahagi lamang ng tunnel.

Ayusin muna ang usapin ng routing, pagkatapos ay tingnan ang mga pangalan. Ang paghahalo ng dalawa ang paraan kung paano napagbibintangan ang gumaganang server para sa sirang resolver.

Itala kung aling interface ang binabanggit ng eksepsiyon at panatilihin ang configuration sa ilalim ng version control. Ang tuntuning isinulat laban sa isang interface na pinapalitan ng pangalan pagkatapos ng upgrade ay pumapasa ngayon at nabibigo pagkatapos ng susunod na reboot.

Kaugnay na mga artikulo