windows - IPv6 link-lokalt adresseformat

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg arbejder på et projekt relateret til netværk/kompression. En af maskinerne er Windows Vista, som allerede har IPv6 konfigureret.


Når jeg prøver ipconfig, ser jeg en adresse i følgende format: fe80::9dc8:72fa:aacd:76e2\%10


Men når jeg forsøger at pinge denne maskine fra en anden med ping fe80::9dc8:72fa:aacd:76e2\%10, får jeg følgende fejl:


Ping request could not find host fe80::9dc8:72fa:e327:76e2\%10.

Please check the name and try again.


Eventuelle ideer/kommentarer er meget nyttige.

Bedste reference


\%10 efter adressen hedder scope zone. Når du bruger link-lokale IPv6-adresser, er rækkevidde zone nødvendig, så systemet ved, hvilken grænseflade der skal sendes pakken ud. [23] [24]


På Windows, hvis du udsteder kommandoen netsh interface ipv6 show addresses, kan du se de adresser, der er tildelt systemet komplet med deres zone-id'er. Bemærk, at zone-id'erne passer til grænsefladeindekset. For eksempel:


Interface 22: VirtualBox Host-Only Network

Addr Type  DAD State   Valid Life Pref. Life Address
---------  ----------- ---------- ---------- ------------------------
Other      Preferred     infinite   infinite fe80::15c3:6bea:aaac:a015\%22


Denne adresse er scoped \%22, fordi den er på en grænseflade, hvis indeks er 22. På Linux kan du muligvis se en link-lokal adresse som fe80::15c3:6bea:aaac:a016\%eth0. Formatet for zone-id'et er unikt for hver enkelt maskine, der kører IPv6, hvorfor det kan være anderledes, hvis du prøver ping fra det andet system.


For eksempel, hvis du har:


System A (Windows): fe80::15c3:6bea:aaac:a015\%22
System B (Linux):   fe80::15c3:6bea:aaac:a016\%eth0


... og du vil pinge Linux-boksen fra Windows-boksen, kan du ikke gøre ping fe80::15c3:6bea:aaac:a016\%eth0. Men du kan gøre ping fe80::15c3:6bea:aaac:a016\%22. Dette er problemet. Link-lokale adresser kan være vanskelige på denne måde.


Prøv at angive det korrekte zone-id. Det vil sige, når du gør din ping fe80::9dc8:72fa:aacd:76e2\%10, skal du først netsh interface ipv6 show addresses på maskinen pinge fra og ændre \%10 til grænsefladeindekset for den grænseflade du vil bruge på kildesystemet.


Hvis maskinen du pinger fra er Linux, skal du gøre ping6 -I eth0 fe80::9dc8:72fa:aacd:76e2 (forudsat at det andet system er på eth0), fordi Linux-kommandolinjeværktøjet ikke støtte \% måde at specificere zonen (den sidste gang jeg kontrollerede, alligevel).


Ideelt set bør du oprette en IPv6-kompatibel router på dit netværk for at kunne lave routerannoncer, så du kan bruge stateless adress auto-configuration (SLAAC) og få globale unicast-adresser. Så bliver det ikke et problem. [25] [26]

Andre referencer 1


Du kan ikke pinge ipv6-adresser med det klassiske ping-værktøj, kun ipv4-adresser. linux har et kommandolinjeværktøj kaldet ping6 til ping ipv6 adresser, windows har sandsynligvis noget lignende. En lille undersøgelse fortalte mig, at Windows bruger ping -6 til at pinge ipv6-adresser.

Andre referencer 2


Nummeret efter\% er grænsefladesnavnet. hvis du åbner status-> detaljerne i din netværksgrænseflade vil du se ipv6 link-lokaladressen med\% xx i slutningen af ​​adressen, hvilket er indekset for grænsefladen, hvis du vil finde indekset til nogle applikationer. Systemoplysninger eller ipconfig kan bare give dig forskellige indeksnumre, i hvert fald på min Windows 7 Pro, hvilket er meget forvirrende. Beskrivelsen, du får fra operativsystemet, kan også være forkert.