Zo test u IPv6 via een VPN met uw eigen resource
U hebt geen openbare IPv6-checker nodig om te bewijzen dat één pad werkt. Gebruik een resource die u beheert, leg beide uiteinden vast en noteer wat de test niet dekte.
Een openbare IP-controlepagina beantwoordt één vraag, en meestal niet de vraag die u stelde. Ze vertelt u het uitgangsadres dat de pagina zag; ze vertelt niet of de IPv6-route door de tunnel werkt, of de host IPv6 verkoos of terugviel, of een uitgesloten toepassing een ander pad nam. Een geautoriseerde resource die u beheert beantwoordt de engere vraag behoorlijk, omdat u beide uiteinden ziet. De runbook hieronder gaat over het bereiken van een conclusie die u kunt verdedigen, niet over een groen resultaat.
Stap 1: zeg welk IPv6-pad u test
Zeg het in één zin. Een verzoek aan het eigen IPv6-adres van de tunnelserver test de tunnel; een verzoek aan een host voorbij de uitgang test de IPv6-uitgang van de uitgang; een verzoek aan een privé-IPv6-adres test een interne route.
Dat zijn drie verschillende beweringen en één geslaagd verzoek kan ze niet alle drie ondersteunen. Kies degene die ertoe doet voor de beslissing voor u en schrijf die op voordat u iets uitvoert. Als de zorg is of IPv6 rond de tunnel lekt, gaat de vraag over de routekeuze van de host, niet over de bereikbaarheid van de uitgang. Als de zorg is of de andere kant een interne dienst kan bereiken, is de uitgang irrelevant.
Stap 2: bevestig dat de host die route kiest
ip -6 route get 2001:db8:1::10 drukt de route, het bronadres en de interface af die de kernel zou gebruiken, en dat is het feit waarvan de rest van de test afhangt.
Dat een interface bestaat is niet hetzelfde als dat hij gekozen wordt. Dual-stackhosts hebben een prioriteitstabel, en /etc/gai.conf op Linux kan veranderen welke familie wint voor een naam die naar beide resolveert.
Stap 3: gebruik een legitiem doel en een legitieme naam
Als u HTTPS test, gebruik dan de hostnaam waarvoor het certificaat is uitgegeven en houd verificatie aan; overstappen op een letterlijk adres om de test te laten slagen schakelt precies de controle uit die bewijst dat u de bedoelde host hebt bereikt. Een diagnostische dienst die u beheert en die op een bekende naam met een geldig certificaat antwoordt, is het schoonste doel. Hij geeft u ook een logregel aan de serverkant om tegen te vergelijken, wat een controleur van derden nooit zal doen.
Voer het verzoek uit in een vorm die het gebruikte adres toont: curl -6 -sS -o /dev/null -w '%{remote_ip} %{http_code}\n' https://test6.example.net/. De -6 forceert de familie, en zo scheidt u IPv6 werkt niet van IPv6 werd niet verkozen.
Voor een zuivere bereikbaarheidstest waarop ICMPv6 is toegestaan, is ping -6 -c 3 2001:db8:1::10 genoeg. Het bewijst het pad en niets daarboven.
Stap 4: correleer beide uiteinden
Wanneer u toegang hebt tot beide uiteinden, voer dan tcpdump -ni any ip6 and host 2001:db8:1::10 uit op de client en het equivalent op de resource, met tijdstempels, en bevestig dat dezelfde stroom op beide verschijnt. Dat is wat een plausibel resultaat in bewijs verandert: de weergave van de client alleen kan een antwoord van de resource niet onderscheiden van een antwoord van iets ertussenin. Houd de opname smal tot het ene doel, zodat de uitvoer leesbaar blijft en niemands ongerelateerde sessie in het bestand belandt.
Herhaal de test na een herverbinding als de zorg is of beleid een herstart overleeft. Route- en firewallstatus die één keer bij het verbinden is toegepast kan verschillen van status die opnieuw wordt toegepast, en het verschil blijkt pas bij de tweede verbinding.
Test het faalgeval apart als u dat nodig hebt. Een tunnel die IPv6 blokkeert als hij wegvalt en een die het laat lekken zijn verschillende ontwerpen, en slechts één ervan kan met een geslaagd verzoek worden geverifieerd.
Stap 5: noteer wat de test niet bewees
Stap vijf is opschrijven wat de test niet bewees, en dat is het deel dat wordt weggelaten. Een geslaagde test tegen een privé-endpoint bewijst geen openbare IPv6-uitgang, bewijst geen DNS-gedrag en dekt geen toepassingen die u van de tunnel hebt uitgesloten. Elk daarvan heeft zijn eigen doel en zijn eigen waarneming nodig. Een notitie dat IPv6 werkt na één verzoek aan één host is geen bevinding; het is een gok met een tijdstempel.
Het record dat de moeite waard is om te bewaren is kort: het doel, de naam, het bronadres dat de host koos, het waargenomen externe adres en de tijd. RFC 7359 bespreekt hoe u test dat een relevant IPv6-pad echt bruikbaar is, en dat is de standaard die deze runbook met eenvoudiger gereedschap benadert. Als de conclusie een openbare controleur nodig heeft om waar te zijn, was de test niet specifiek genoeg.