Jedan kraj vašeg IPv6 tunela pinga drugi, a odgovara uvijek samo jedan smjer. Interfejs je aktivan, ruta izgleda ispravno i ništa u dnevniku to ne objašnjava. Adresa koju ste dodijelili je subnet-router anycast adresa, koja uopće nije adresa hosta, a na vezi s dvije krajnje točke ima točno jedan cilj dostave: pošiljaoca. Nikakva vrijednost tajmauta to ne popravlja, jer adresa ne radi ono što mislite.

Simptom koji upućuje na adresu

Svaki host na vezi odgovara osim onog čiji je identifikator interfejsa sve nule. Paket adresiran na taj oblik po definiciji se dostavlja ruteru na podmreži, pa se na point-to-point tunelu vraća mašini koja ga je poslala. S dalekog kraja to se čita kao nedostupan partner; s bližeg kraja kao tišina. Zamijenite identifikator drugim iz istog prefiksa i simptom nestaje bez ikakve druge promjene, i to je potvrda koju treba dobiti prije nego što dirnete rute.

Identifikator sa svim nulama rezervisan je kao anycast

RFC 4291 zadržava identifikator interfejsa sa svim nulama kao subnet-router anycast adresu, pa /64 kao što je 2001:db8:4a::/64 ne sadrži nijedan upotrebljiv host na adresi 2001:db8:4a::. Rezervacija zaslužuje svoje mjesto: oglasi rutera i otkrivanje susjeda adresiraju taj oblik, a ruter odgovara za prefiks koji opslužuje. Dodjela te vrijednosti krajnjoj točki tunela daje rutersku ulogu listu, i zato se ništa ne vraća. Svaki drugi identifikator u prefiksu radi kao host, pa je popravka obično jedna cifra.

Tretirajte rezervaciju kao ulogu koju nemate pravo zauzimati s krajnje točke tunela, a ne kao osobinu koju treba obići rutom.

Dodijelite adrese hostova i usmjerite prefiks

Odaberite ::1 i ::2 za dva kraja, dodajte jednu pomoću ip -6 addr add 2001:db8:4a::2/64 dev tun0, a zatim usmjerite udaljeni prefiks umjesto da ga pokušavate adresirati. Ruta za 2001:db8:4a::/64 kroz tunel čini daleku stranu dostupnom; sama adresa samo konfiguriše lokalni interfejs.

Za puni tunel postoji treći korak, podrazumijevana ruta za globalni unicast kroz uređaj, što je IPv6 ekvivalent slanja svega u tunel. Preskočite li ga, IPv6 nastavlja koristiti fizičku vezu dok IPv4 putuje unutar tunela, pa host curi upravo onaj saobraćaj za koji ste mislili da je pokriven. Potvrdite pomoću ip -6 route get 2001:4860:4860::8888 i pročitajte koji uređaj navodi umjesto da pretpostavljate odgovor.

Multicast se odbija prije rutiranja

Android validira adrese i rute za VpnService.Builder kroz LinkAddress, a taj konstruktor odbija multicast odmah. Dajte mu multicast prefiks kao rutu i rezultat je neuspjeh loših LinkAddress parametara, a ne ruta, što je odgovor validacije, a ne mreže. Odbijanje odgovara mediju: point-to-point tun uređaj nema multicast na sloju veze, pa grupna ruta na njemu nema model dostave koji bi se instalirao. Grupne adrese stvara i troši sam stek, a ne konfiguriraju se ručno.

IPv6 all-nodes i solicited-node adrese potpadaju pod isto pravilo. Interfejs ih nosi jer ih je stek tamo stavio, a ne zato što ih je politika namjeravala.

Šta tunel može nositi umjesto toga

Premještanje multicast otkrivanja kroz tunel zahtijeva sloj koji razumije grupno članstvo: TAP most koji predstavlja Ethernet segment, relej na razini aplikacije ili protokol rutiranja kojem je izričito rečeno kojim peer-ima replicirati. Ništa od toga ne postoji u VpnService modelu, gdje aplikacija čita i piše pakete i nema poziv koji se pridružuje grupi za tunel. Ili dodajte komponentu koja razumije grupe ili odustanite od zahtjeva u dizajnu.

Unicast, nasuprot tome, ne traži ništa dodatno osim adresa i ruta gore, zato se od tunela obično očekuje da ga nose, a onda budu okrivljeni kada protokol otkrivanja zakaže.

Tri provjere prije nego što bilo šta dodijelite

Potvrdite da adresa nije anycast oblik, potvrdite da nije multicast i potvrdite da je prefiks usmjeren, a ne samo dodijeljen uređaju. Zatim pošaljite test na odredište koje je pravi host, jer ping usmjeren na anycast adresu mjeri pošiljaoca i ne govori ništa o putu. Držite te tri provjere u zapisu promjena da ih sljedeće postavljanje ne otkrije ponovo.

Ruta koju platforma nikada nije instalirala ne može se otkloniti dužim čekanjem, a adresa koja nikada nije bila host ne može se popraviti boljim pingom.

Povezani članci