Ping op den IPv6-Tunnelpeer schléit fehl? Kontrolléiert d’::-Adress
Den Interface-Identifikator aus lauter Nullen ass Subnet-Router-Anycast, keen Host. Gitt ::1 an ::2, routt de Prefix a kontrolléiert Multicast, ier Dir d’Routen beschëllegt.
Een Enn vun Ärem IPv6-Tunnel pingt dat anert, an et äntwert ëmmer just eng Richtung. Den Interface ass un, d’Route gesäit richteg aus, an näischt am Log erkläert et. D’Adress, déi Dir zougewisen hutt, ass d’Subnet-Router-Anycast-Adress, déi guer keng Hostadress ass, an op enger Verbindung mat zwéin Endpunkte huet se genee een Zoustellungsziel: den Ofsender. Kee Timeout-Wäert reparéiert dat, well d’Adress net mécht wat Dir denkt.
De Symptom, deen op d’Adress weist
All Host op der Verbindung äntwert ausser deem, seng Interface-Identifikator aus lauter Nullen ass. E Paket, dat op déi Form adresséiert ass, gëtt per Definitioun un e Router am Subnet zougestallt, dofir kënnt et op engem Punkt-zu-Punkt-Tunnel bei der Maschinn zeréck, déi et geschéckt huet. Vum wäitem Enn liest een dat als en onereechbare Peer; vum noen Enn als Stille. Tauscht een aneren Identifikator aus demselwechte Prefix an, an de Symptom verschwënnt ouni eng aner Ännerung, an dat ass d’Bestätegung, déi Dir musst kréien, ier Dir d’Routen ufänkt.
Den Identifikator aus lauter Nullen ass als Anycast reservéiert
RFC 4291 behält den Interface-Identifikator aus lauter Nullen als Subnet-Router-Anycast-Adress, dofir huet en /64 wéi 2001:db8:4a::/64 keen notzbaren Host op 2001:db8:4a::. D’Reservation verdéngt hire Plaz: Routerannoncen an Noperschaftserkennung adresséieren déi Form, an e Router äntwert fir de Prefix, deen en zerwéiert. Dee Wäert engem Tunnelendpunkt zouzeweisen gëtt engem Blat eng Routerroll, an dofir kënnt näischt zeréck. Jeden aneren Identifikator am Prefix funktionéiert als Host, dofir ass d’Reparatur meeschtens eng Ziffer.
Behandelt d’Reservation als eng Roll, déi Dir vun engem Tunnelendpunkt aus net duerft anzelen, an net als eng Eegenaart, déi ee mat enger Route ëmgeet.
Gitt Hostadressen a routt de Prefix
Wielt ::1 an ::2 fir déi zwéin Enner, füügt eng bäi mat ip -6 addr add 2001:db8:4a::2/64 dev tun0, a routt duerno de wäite Prefix, amplaz ze probéieren, hien ze adresséieren. Eng Route fir 2001:db8:4a::/64 duerch den Tunnel mécht déi wäit Säit erreechbar; d’Adress eleng mécht just den lokalen Interface konfiguréiert.
Fir en kompletten Tunnel gëtt et en drëtten Schrëtt, eng Standardroute fir global Unicast duerch d’Apparat, wat den IPv6-Äquivalent ass, alles an den Tunnel ze schécken. Looss en ewech, an IPv6 benotzt weider de physikale Link, während IPv4 am Tunnel reest, dofir leet den Host genee deen Trafik, vun deem Dir gegleeft hutt, en ass ofgedeckt. Bestätegt mat ip -6 route get 2001:4860:4860::8888 a liest, wéi en Apparat en nennt, amplaz d’Äntwert unzehuelen.
Multicast gëtt virum Routing refuséiert
Android validéiert Adressen a Routen fir VpnService.Builder iwwer LinkAddress, an dee Konstruktor refuséiert Multicast direkt. Gitt him e Multicast-Prefix als Route, an d’Resultat ass e Feeler mat schlechte LinkAddress-Parameter amplaz enger Route, wat eng Validéierungsäntwert ass an net eng Niewierkäntwert. D’Refusatioun passt zum Medium: en Punkt-zu-Punkt-tun-Apparat huet kee Multicast op der Verbindungsschicht, dofir huet eng Grupperoute drop kee Zoustellungsmodell ze installéieren. Gruppenadressen ginn vum Stack selwer erstallt a verbraucht, amplaz se vun Hand ze konfiguréieren.
IPv6-all-nodes- an solicited-node-Adresse falen ënner déi selwecht Regel. Den Interface dréit se, well de Stack se dohi gesat huet, net well eng Politik se virgesinn huet.
Wat en Tunnel amplaz ka droen
Multicast-Entdeckung iwwer en Tunnel ze verréckelen brauch eng Schicht, déi Gruppenmemberschaft versteet: eng TAP-Bréck, déi en Ethernet-Segment presentéiert, e Relais op Applikatiounsniveau oder e Routingprotokoll, deem eidell gesot gëtt, op wéi eng Peeren ze replizéieren. Näischt dovun existéiert am VpnService-Modell, wou d’Applikatioun Pakete liest a schreift an keen Opruff huet, dee fir den Tunnel enger Grupp bäitriede. Entweder füügt Dir d’Komponent bäi, déi Gruppe versteet, oder Dir hëlt d’Fuerderung aus dem Design.
Unicast, am Géigendeel, brauch näischt zousätzlech iwwer d’Adressen an d’Routen hei uewen eraus, dofir gëtt meeschtens vun Tunnele erwaart, dass se et droen, an duerno gëtt hinnen d’Schold ginn, wa en Entdeckungsprotokoll versot.
Dräi Kontrollen, ier Dir eppes zouweist
Bestätegt, dass d’Adress net d’Anycast-Form ass, bestätegt, dass se net Multicast ass, a bestätegt, dass de Prefix geroutt an net just dem Apparat zougewisen ass. Schéckt duerno Ären Test op en Zil, dat en echte Host ass, well e Ping op d’Anycast-Adress den Ofsender moosst an näischt iwwer de Wee seet. Halt déi dräi Kontrollen am Ännerungsprotokoll, sou dass déi nächst Deployement se net erëm entdeckt.
Eng Route, déi d’Plattform ni installéiert huet, kann een net duerch méi laang Waarde debuggen, an eng Adress, déi ni en Host war, kann een net duerch e bessere Ping reparéieren.