Buong Tunnel kumpara sa Ruta ng Endpoint: Pananatiling Maabot ang VPN Server
Ang tunnel ay dumadaan sa network na pinapalitan nito. Ihambing ang eksepsiyon ng host route sa marka ng socket sa antas ng aplikasyon, at alamin kung kailan nabibigo ang bawat isa.
Magdagdag ng default na ruta sa tunnel, at ang mga pakete ng tunnel mismo ay susunod dito. Ang talahanayan ay naglalaman noon ng panuntunang tumatalo sa sarili nito. Sinusubukan ng naka-encrypt na koneksyon sa server na dumaan sa loob ng koneksyong sinusubukan nitong itatag.
Dalawang mekanismo ang pumipigil sa loop na iyon. Ang isa ay nakikita sa talahanayan ng routing, ang isa ay nabubuhay sa loob ng aplikasyon.
Ang panloob at panlabas na trapiko ay magkaibang desisyon
Ang pakete ng aplikasyon ay pumapasok sa virtual interface at nai-encapsulate. Ang resulta ay isang bagong pakete na naka-address sa pampublikong address ng server. Kailangan ng rutang iyon sa pisikal na network, dahil wala sa loob nito ang maaaring pumasok sa tunnel.
Pareho silang desisyon sa routing, at tanging ang una ang kabilang sa tunnel. Kapag nag-install ang kliyente ng default na rutang sumasaklaw din sa server, nahuhuli rin ang panlabas na pakete.
Ang mga sintomas ay agaran at lubos. Natatapos ang handshake at wala nang dumadaloy, o bumabagsak ang koneksyon sa sandaling ma-install ang ruta. Sa alinmang kaso, hindi na makakalabas ang keepalive.
Unang opsiyon: isang host route para sa endpoint
Ang direktang paraan ay nagdadagdag ng ruta para sa address ng server sa pamamagitan ng orihinal na gateway. Isang linya lang ang kailangan. Nakikita ito ng sinumang nagbabasa ng talahanayan. Madali rin itong ipaliwanag sa talaan ng pagbabago.
Lumilitaw ang kahinaan nito kapag nagbago ang pinagbabatayang landas. Ang naka-save na ruta ay nagpangalan ng gateway at interface mula sa lumang network. Pagkatapos ng paglipat ng Wi-Fi, maaaring wala na ang gateway na iyon, at nananatili ang ruta, mukhang tama at walang ginagawa.
# before the tunnel: which path reaches the endpoint?
ip route get 198.51.100.7
# pin it through the current gateway
ip route add 198.51.100.7/32 via 192.168.1.1 dev wlan0
# after the tunnel is up, confirm the pin survived
ip route get 198.51.100.7
Pinapahirap ito ng hostname. Kung ang endpoint ay isang pangalang nagre-resolve sa maraming address, dapat saklawin ng eksepsiyon ang address na aktuwal na ginagamit. Ang susunod na paghahanap ay maaaring magbalik ng bagay na hindi kailanman sinaklaw ng ruta.
Ikalawang opsiyon: protektahan ang socket
Ang kabilang paraan ay hindi kailanman humahawak sa talahanayan ng routing. Minamarka o pinoprotektahan ng kliyente ang socket na nagdadala ng tunnel, kaya ipinapadala ng operating system ang trapiko ng socket na iyon sa labas ng tunnel ayon sa patakaran. Inilalantad ng Android ang mekanismo nang direkta sa mga aplikasyong VPN. Ang mga desktop client ay nagpapatupad ng katumbas gamit ang mga marka ng firewall o mga tawag na pagbigkis sa device.
Ang bentahe ay sinusundan ng eksepsiyon ang koneksyon sa halip na isang naka-save na gateway. Ang pagbabago ng network ay nagsusulat muli ng pinagbabatayang landas, at gumagalaw ang protektadong socket kasama nito dahil hindi ito kailanman naipit sa isang address. Nananatiling malinis ang talahanayan ng ruta.
Ang halaga ay ang visibility. Wala sa talahanayan ng routing ang nagpapakita ng eksepsiyon, kaya ang isang tagasuri na naghahanap ng host route ay walang mahanap at maaaring maghinuha na ang disenyo ay hindi ligtas. Ang proteksiyon ay nabubuhay sa code ng kliyente at sa mga tuntunin ng patakaran na inilalagay ng code na iyon.
Pagpili sa pagitan ng dalawa
Piliin ang mekanismo sa antas ng socket kapag sinusuportahan ito ng kliyente, dahil nakakaligtas ito sa mga pagbabago ng network na sumisira sa naka-pin na ruta. Piliin ang host route kapag kailangang makita ang eksepsiyon ng ibang mga tool, o kapag walang inaalok ang kliyente na mas mainam.
Wala sa mga mekanismong ito ang nag-aalis ng pangangailangang maabot talaga ang address ng server. Ang pribadong gateway ay may pampublikong address ng pakikinig, at iyon ang address na dapat manatili sa labas ng tunnel. Ang mga panloob na network sa likod nito ay nagiging maabot lamang kapag umiiral na ang tunnel.
Anuman ang piliin mo, panatilihin ito sa komponenteng nagmamay-ari ng tunnel. Ang naligaw na host route na idinagdag sa pamamagitan ng kamay ay gumagana hanggang sa susunod na network, at pagkatapos ito ay nagiging mahiwagang pagkaantala bukas.