Bakit ginagawang mahirap makita ang mga sira ng VPN ng mga rutang may pantay na gastos
Kapag ilang tunnel ang nagbabahagi ng isang gastos, maaaring pumili ng iba ang bawat daloy. Ang matagumpay na ping ay walang sinasabi tungkol sa landas na aktuwal na ginagamit ng iyong aplikasyon.
Nag-uulat ang isang user na gumagana ang panloob na aplikasyon mula sa isang makina at nabibigo mula sa iba, habang ang ping na pinapatakbo mo mula sa gateway ay nagtatagumpay sa dalawang kaso. Sa ilang tunnel na may pantay na gastos, hindi ito kontradiksyon. Inilalagay ang bawat daloy sa sarili nitong susunod na hop, kaya maaaring gumamit lang ng magkaibang landas ang iyong pagsusuri at ang session ng user. Binubuo muli ng paliwanag sa ibaba ang pagpiling iyon bago baguhin ang anuman.
Isang ping, ilang posibleng landas
Kapag ang isang ruta ay may higit sa isang susunod na hop sa parehong gastos, kailangang pumili ng isa ang router sa bawat packet. Karamihan sa mga implementasyon ay nagha-hash ng mga field mula sa packet, karaniwang ang source at destination address kasama ang protocol at mga port, upang manatili ang mga sagot sa parehong landas. Magkaibang aplikasyon, o kahit magkaibang koneksyon mula sa isang aplikasyon, ay gumagawa ng magkaibang hash.
Iyon ang dahilan kung bakit napakaliit ng napatutunayan ng isang diagnosis mula sa gateway. Ang sariling pagsusuri ng gateway ay may sariling mga address at port, at dahil dito ay sariling hash. Maaari itong mapunta sa malusog na tunnel habang ang user ay patuloy na napupunta sa sirang tunnel.
Paano pumipili ang plataporma ng susunod na hop
Buuin muli ang pagpili sa halip na hulaan ito. Tanungin ang kernel kung aling ruta ang gagamitin nito para sa parehong source at destination ng bumabagsak na session. Kasama sa paghahanap na iyon ang mga field na binabalewala ng ordinaryong paghahanap ng destination. Patakbuhin din ito mula sa gumaganang client at ihambing ang dalawang sagot:
ip route get 10.20.5.7 from 10.20.0.14
Tinatanggap din ng mas bagong mga release ng iproute2 ang protocol at destination port, na mahalaga kapag kasama ang mga ito sa hash. Ihambing ang output na iyon sa parehong paghahanap mula sa gumaganang client, at ang pagkakaiba ang ebidensiyang kulang sa iyo.
| Observation | Likely cause | First check |
|---|---|---|
| Ping works, application fails | A different flow hash selects another tunnel | Per-flow lookup from the client's address |
| Some users fail, others do not | One tunnel lacks a prefix or selector | Compare both tunnels' installed routes |
| Fails only at larger sizes | Tunnels have different effective MTU | Probe the same size over each path |
| Fails after a reconnect | Stateful asymmetry between paths | Session state on both gateways |
Sundan ang bumabagsak na daloy, hindi ang talahanayan ng ruta
Inililista ng talahanayan ng ruta ang dalawang tunnel at ayon sa depinisyon ay mukhang tama. Ang tanong ay kung ano ang ginagawa ng bawat tunnel sa packet kapag napili na. Tiyakin na parehong nagdadala ang dalawa ng parehong protektadong prefix, parehong pahintulot sa pagpapasa at landas pabalik na umaabot sa parehong client.
Bigyang-pansin ang mga device na may estado sa gitna. Kung ang isang kahilingan ay lumabas sa isang tunnel at ang sagot ay bumalik sa isa pa, itapon ito ng firewall o NAT na hindi kailanman nakakita ng orihinal na daloy. Wastong ipinapasa ng dalawang tunnel ang trapiko, at nabibigo pa rin ang koneksyon.
Suriin din ang MTU sa bawat landas. Ang landas na may karagdagang encapsulation ay nagpapaliit ng magagamit na sukat, at ang paglilipat na nagtatagumpay sa isang tunnel ay natigil sa isa pa sa eksaktong sukat kung saan nasisira ang mas maliit.
Ihambing ang isang landas sa isang pagkakataon
Kung saan pinapayagan ng disenyo ang maintenance, alisin sa serbisyo ang isang tunnel at ulitin ang gawain ng user. Kung mawala ang sira, pag-aari ng landas na inalis mo ang problema, at ang susunod na hakbang ay ihambing ang configuration nito sa kapitbahay nito sa halip na muling suriin ang talahanayan ng routing.
Ihambing ang tunay na aplikasyon, hindi ang paulit-ulit na ping. Itala kung sinusundan ng sira ang isang partikular na susunod na hop, sukat ng packet o transisyon pagkatapos ng muling pagkonekta, dahil ang tatlong pattern na iyon ay tumuturo sa magkaibang pag-aayos.
Sa huli, isulat kung bakit itinuturing na katumbas ang mga landas at paano dapat alisin ng isang sira ang isa sa kanila sa serbisyo. Ligtas lamang ang multipath kapag tunay na mapagpapalit ang mga landas, at iyon ay isang pahayag ng disenyo na dapat suriin sa halip na ipalagay.