Ta çaktivizojmë IPv6 për të rregulluar një rrjedhje VPN? Vendosni politikën
Një adresë link-local nuk është rrjedhje dhe as një rrugë globale IPv6. Zgjidhni fillimisht midis bllokimit, transportit dhe lënies.
Një adresë nga diapazoni IPv6 shfaqet në një faqe testimi, tuneli padyshim nuk e transporton atë, dhe këshilla më popullore në internet është të çaktivizoni IPv6 kudo. Ajo komandë vërtet e hesht panelin. Por heq edhe një protokoll nga i cili mund të varet rrjeti i aksesit, dhe ju lë pa asnjë ide nëse adresa ishte rrjedhje e vërtetë, një adresë ndërfaqeje link-local, apo një zgjidhës që bën punën e vet. Tre kushte përcaktojnë kontrollin e duhur, dhe vetëm njëri prej tyre çon në bllokim.
Identifikoni çfarë mati në të vërtetë mjeti
Alarmi i rremë më i zakonshëm është një adresë link-local, e cila fillon me fe80: dhe ekziston në çdo ndërfaqe të aftë për IPv6, pavarësisht nëse makina arrin internetin përmes IPv6. Shfaqet në listat e ndërfaqeve dhe në disa diagnostika aplikacionesh, dhe nuk thotë asgjë për rrugën e trafikut tuaj.
Alarmi i dytë i rremë është një adresë unike lokale në fc00::/7, që është një diapazon privat i përdorur brenda një rrjete. Një mjet që shtyp çdo adresë të hostit do ta listojë me kënaqësi pranë asaj publike. Kush lexon shpejt e quan rrjedhje dhe pastaj harxhon një orë në një problem që nuk ekziston.
I treti nuk është aspak alarm i rremë. Një adresë globale që arrin internetin jashtë tunelit është rrjedhja e vërtetë, dhe ia vlen të matet përpara se të vendosni çfarëdo:
ip -6 addr show scope global
ip -6 route show default
curl -6 -sS --max-time 6 https://ifconfig.co
Nëse komanda e parë shtyp një adresë globale dhe e treta kthen një adresë IPv6 publike që nuk është e tunelit, keni një rrugë të vërtetë jashtë tunelit. Nëse e para nuk shtyp asgjë tjetër përveç zërave link-local, nuk ka pasur kurrë rrjedhje për të rregulluar.
Tre kushte përcaktojnë kontrollin
Vendimi nuk është "IPv6 i mirë" apo "IPv6 i keq". Është në cilën nga tre situatat jeni, dhe secila ka një përgjigje të saktë të ndryshme me një kosto të ndryshme nëse gaboni.
| Situation | Correct control | Cost if you disable IPv6 instead |
|---|---|---|
| Exit has no IPv6, host does | Block IPv6 deliberately in the tunnel policy | Same visible result, no documentation of intent |
| Exit carries IPv6, host leaks | Route IPv6 into the tunnel and verify | You lose IPv6 reachability entirely |
| Access network is IPv6-only | Change nothing; use the tunnel's IPv6 | Machine loses connectivity completely |
Rreshti i parë është ai që njerëzit zakonisht nënkuptojnë, dhe është legjitim. Një klient, dalja e të cilit nuk mbështet IPv6, nuk duhet të lërë në heshtje trafikun e vetë IPv6 të hostit të dalë, sepse kjo është rrjedhja e dokumentuar e stakut të dyfishtë. Çështja është ta bllokoni si politikë të deklaruar, jo të çaktivizoni një protokoll në kernel. Rezultati i dukshëm është identik dhe vetëm njëri prej tyre mund të rishikohet më vonë.
Rreshti i tretë është vendi ku këshilla e përgjithshme bëhet aktivisht e dëmshme. Operatorët mobilë dhe disa lidhje shtëpiake drejtojnë rrjete IPv6-only me përkthim për destinacione IPv4. Hiqni IPv6 atje dhe hiqni transportin e vetëm që ofron rrjeta, gjë që prodhon një ndërprerje shumë më të keqe sesa ajo që po korrigjonit.
Nëse dalja nuk ka IPv6, bllokojeni me qëllim
Preferoni mekanizmin e vetë klientit, sepse zbatohet saktësisht sa kohë tuneli është lart dhe tërhiqet kur ai bie. OpenVPN ka një opsion për këtë, dhe iptables ka një rregull ekuivalent për klientët e tjerë:
block-ipv6
ip6tables -A OUTPUT -o eth0 -j REJECT --reject-with ipv6-port-unreachable
Direktiva i përket profilit; rregulli i përket një firewalle që mund ta rishikoni dhe hiqni. Të dyja dështojnë të mbyllura, që është ajo që dëshironi, dhe të dyja janë të dukshme në një diff konfigurimi, gjë që një sysctl kernel i varrosur në një skript nisjeje nuk është.
Shënoni pse është aty. Një rregull bllokimi pa koment hiqet nga personi tjetër që ka nevojë për IPv6 për diçka tjetër, dhe pastaj rrjedhja kthehet në heshtje.
Nëse dalja transporton IPv6, rrugëtojeni dhe testoni të dyja familjet
Transporti i IPv6 është përgjigja më e mirë kur serveri e mbështet, dhe nuk është shumë më i vështirë. Kërkesa është që ndërfaqja e tunelit të ketë një adresë në atë familje dhe rruga e parazgjedhur për të të tregojë brenda tunelit, jo jashtë ndërfaqes fizike:
ip -6 route get 2606:4700:4700::1111
ip -6 route show default
curl -6 -sS --max-time 6 https://ifconfig.co
curl -4 -sS --max-time 6 https://ifconfig.co
Kërkimi i rrugës është testi vendimtar: nëse emërton ndërfaqen e tunelit, trafiku IPv6 po transportohet. Dy thirrjet curl pastaj konfirmojnë çfarë sheh secila familje, dhe krahasimi i tyre është mënyra për të provuar se të dyja rrugët tani dalin nga i njëjti dalje.
Mos u ndalni në një lidhje të suksesshme. Rilidhni tunelin dhe kontrolloni përsëri, sepse një rrugë IPv6 e shtyrë mund të humbasë gjatë rivendosjes nëse serveri e dërgon vetëm në konfigurimin fillestar. Pastaj kontrolloni një destinacion të përjashtuar, sepse rregullat e tunelit të ndarë janë vendi ku dy familjet ndryshojnë më shpesh.
Nëse rrjeti i aksesit është vetëm IPv6, lëreni të qetë
Disa rrjete ofrojnë vetëm IPv6 dhe presin që pajisja të arrijë shërbimet IPv4 përmes një mekanizmi përkthimi në anën e operatorit. Çaktivizimi i IPv6 në një makinë të tillë nuk është përmirësim sigurie; heq rrugën e vetme drejt çdo gjëje. Kjo është një ndërprerje e vetëshkaktuar për hir të një rezultati testimi që askush nuk e kishte nevojë.
Simptoma e këtij gabimi është i veçantë dhe i pakëndshëm: tuneli duket se vendoset, zgjidhja e emrave funksionon, dhe asgjë nuk ngarkohet. Nëse e shihni këtë pas një ndryshimi të IPv6, rikthejeni cilësimin menjëherë dhe vazhdoni diagnozën diku tjetër.
Çfarëdo që të zgjidhni, mbani vendimin të qartë në profil ose në firewall, lidhni atë me atë që dalja vërtet mbështet, dhe shënoni sjelljen e stakut të dyfishtë që përshkruan diskutimi i RFC 7359 për stakun e dyfishtë . Një bllokim i deklaruar është politikë. Një protokoll i çaktivizuar është një shmangie që askush nuk mund ta auditojë, dhe nga faqja e testimit duken njësoj.