ICMPv6

Internet Control Message Protocol versjon 6 ( ICMPv6 eller ICMP for IPv6 ) er en ny versjon av ICMP og er en viktig del av IPv6-arkitekturen som må støttes fullt ut av alle IPv6-implementeringer og noder. ICMPv6 kombinerer funksjoner som tidligere var delt inn i ulike deler av forskjellige protokoller som ICMP , IGMP eller ARP , og introduserer også noen forenklinger ved å fjerne foreldede meldingstyper som for øyeblikket var foreldet.

Sammendrag

Siden IPv6 er en nyere versjon av IPv4 , bruker den ICMP-protokollen som definert for IPv4 i RFC 792 (som vi vil referere til som ICMPv4) med noen betydelige endringer. IGMP er også implementert i ICMPv6. Verdien av "Next Header"-feltet i IPv6-pakkehodet for ICMPv6 er 58 (se IPv6 ).

Denne artikkelen forklarer formatet til et sett med kontrollmeldinger som brukes i ICMPv6, men forklarer ikke prosedyrene for å bruke disse meldingene til å utføre en bestemt funksjon. Andre typer meldinger som nabooppdagelsesmeldinger bør beskrives i tilleggsartikler.

ICMPv6 er en flerbruksprotokoll og er designet for å utføre funksjoner som å oppdage feil funnet i pakketolkning, utføre diagnostikk, utføre funksjoner som Neighbour Discovery og oppdage IPv6 multicast-adresser. Av denne grunn er ICMPv6-meldinger delt inn i to klasser: feilmeldinger og informasjonsmeldinger. ICMPv6-meldinger sendes innenfor IPv6-pakker, som igjen kan ha IPv6-header-utvidelsene.

ICMPv6 (ICMP for IPv6)

ICMPv6-protokollen brukes av IPv6-noder for å oppdage feil funnet i tolkningen av pakker og for å utføre andre internettlagsfunksjoner som diagnostikk (ICMPv6- ping ).


Pakkeformat

ICMPv6-pakker har formatet Type, Code og Checksum .

De 8 bitene i Type -feltet indikerer typen melding. Hvis biten med høyest vekt har verdien 0 (verdier mellom 0 og 127) så er det en feilmelding, tvert imot hvis biten med høyest vekt er 1 (verdier mellom 128 og 255) er en informasjonsmelding.

De 8 bitene i Kode -feltet avhenger av typen melding, og brukes til å lage et ekstra nivå av meldingsklassifisering, slik at informative meldinger basert på Kode-feltet kan deles inn i flere typer.

Sjekksum - feltet brukes til å oppdage feil i ICMP-meldinger og i noen av IPv6-meldingene.


Feilmeldinger

ICMPv6-feilmeldinger ligner på ICMPv4-feilmeldinger. De er delt inn i 4 kategorier: Uoppnåelig destinasjon, Pakke for stor, Tid overskredet og Parameterproblemer.

1 destinasjon utilgjengelig 2 pakker for store 3 Tid overskredet 4 Parameterproblem

Informative meldinger

Den andre typen ICMP-meldinger er informasjonsmeldinger. Disse meldingene er delt inn i tre grupper: diagnostiske meldinger, meldinger for administrasjon av multicast-grupper og nabooppdagelsesmeldinger.

128 Ekkoforespørsel 129 Ekkosvar


Hver ICMPv6-melding innledes med en IPv6-header og null eller flere IPv6-headerutvidelser. ICMPv6-headeren identifiseres med en "Next Header"-verdi på 58 i den umiddelbart foregående overskriften. (Merk: verdien av "Next Header"-feltet er forskjellig fra verdien som brukes til å identifisere ICMP for IPv4)


Generelt pakkeformat

ICMPv6-pakke
litt offset 0–7 8–15 16–31
0 Type Kode Sjekksum
32 meldingstekst

Type-feltet angir typen melding. Denne verdien bestemmer formatet på informasjonen som skal mottas.

Kode-feltet avhenger av typen melding. Den brukes til å opprette et nytt undernivå for meldingsklassifisering.

Sjekksum-feltet brukes til å oppdage datakorrupsjon i ICMPv6-meldinger og deler av IPv6-hodene.

Bestemme adressen til en pakke

Når en node sender en ICMPv6-melding, må den spesifisere kilde- og destinasjons- IPv6-adressene i IPv6-adresseoverskriften før kontrollsummen beregnes. Hvis noden har mer enn én unicast-adresse, må den velge kildeadressen som følger:

(a) Hvis meldingen er et svar på en melding sendt til en av nodens unicast -adresser, må kildeadressen til svaret være den samme adressen.

(b) Hvis meldingen er et svar på en melding sendt til en annen adresse, for eksempel:

kildeadressen til ICMPv6-pakken må være en unicast-adresse som tilhører noden. Adressen bør velges i henhold til reglene som vil bli brukt til å velge kildeadressen til enhver pakke som kommer fra noden, gitt destinasjonsadressen til pakken. Den bør imidlertid velges på en alternativ måte hvis den skal utlede et mer informativt alternativ for adressen som er tilgjengelig fra destinasjonen til ICMPv6-pakken.

Kontrollsum feltberegning

Kontrollsummen er et 16-bits ens komplementsett av ens komplementsum av ICMPv6-meldingen fra Type-feltet til ICMPv6-meldingen til slutten, etterfulgt av en pseudo-header for IPv6-headeren, som spesifisert i IPv6.

For å beregne sjekksum , initialiseres sjekksum-feltet til null.

Verdien for "Next Header" brukt i "pseudo-header" er 58. (Merk: Inkluderingen av en pseudo-header i ICMPv6-sjekksummen er en endring fra IPv4; se IPv6 for å forstå denne endringen fullt ut).

Pseudo-headeren som brukes til å beregne kontrollsummen er følgende:

ICMPv6 pseudo-header
litt offset 0 - 7 8–15 16–23 24–31
0 Opprinnelsesadresse
32
64
96
128 ankomstadresse
160
192
224
256 ICMPv6 Lengde
288 Null neste overskrift

ICMPv6 Broadcast Messages

En node som videresender en ICMPv6-melding må bestemme både kilde- og destinasjons-IPv6-adressen for ICMPv6-meldingen. Spesiell forsiktighet må utvises ved valg av opprinnelsesadresse. Hvis en node har mer enn én unicast-adresse, må den velge kildeadressen til meldingen som følger:

Når en ICMPv6-node mottar en pakke, må den utføre handlinger basert på typen melding. ICMPv6-protokollen må begrense antall feilmeldinger som sendes til samme mottaker for å unngå overbelastning av nettverket. For eksempel, hvis en node sender de feilaktige pakkene på nytt, må ICMP signalisere feilen til den første pakken og deretter gjøre det med jevne mellomrom, i henhold til en forhåndsinnstilt periode eller avhengig av en maksimal nettverksbelastning. En ICMP-feilmelding skal aldri sendes som svar på en annen ICMP-feilmelding.


ICMP meldingstyper

Fyr Kode
Verdi Betydning Verdi Betydning
1 Destinasjon kan ikke nås 0 ingen rute til destinasjonen
1 kommunikasjon med destinasjon

administrativt forbudt

to utenfor kildeadressens omfang
3 adresse utilgjengelig
4 uoppnåelig
5 kildeadresse mislyktes inn-/utgående policy
6 avvise ruten til destinasjonen
7 Feil i kilderutingsoverskriften
to Pakken er for stor 0
3 Tid overskredet 0 hoppgrensen overskredet under transport
1 fragmentremonteringstiden er overskredet
4 Parameterproblem 0 feilaktig overskriftsfelt oppdaget
1 ukjent Neste overskriftstype oppdaget
to ukjent IPv6-alternativ påtruffet
100 privat eksperimentering
101 privat eksperimentering
127 Reservert for utvidelse av ICMPv6-feilmeldinger
128 Ekko-forespørsel 0
129 ekko Svar 0
133 Ruterforespørsel ( NDP ) 0
134 Ruterannonse ( NDP ) 0
135 Neighbor Solicitation ( NDP ) 0
136 Naboreklame ( NDP ) 0
137 Viderekoblingsmelding ( NDP ) 0
138 Omnummerering av ruteren 0 Kommando for omnummerering av ruteren
1 Resultat for omnummerering av ruteren
255 Tilbakestill sekvensnummer
139 ICMP Node Informasjon Spørring 0 Datafeltet inneholder en

IPv6-adresse som er emnet for denne spørringen.

1 Datafeltet inneholder et navn

som er emnet for denne spørringen, eller er tom, som i tilfellet med en NOOP.

to Datafeltet inneholder en

IPv4-adresse som er emnet for denne spørringen.

140 ICMP Node Information Response 0 Et vellykket svar. Svaret

Datafeltet kan være tomt eller ikke.

1 Responderen nekter å levere

svaret. Svardata-feltet vil være tomt.

to Qtype for spørringen er ukjent

til svaret. Svardata-feltet vil være tomt.

141 Omvendt melding om nabooppdagelse 0
142 Omvendt Neighbor Discovery-annonsemelding 0
143 Multicast-lytterrapportmelding v2 0
144 Melding om forespørsel om registrering av hjemmeagentadresse 0
145 Hjem Agent Adresse Oppdagelse Svarmelding 0
146 Forespørsel om mobilprefiks 0
147 Mobilprefiksannonse 0
148 Forespørsel om sertifiseringsbane (SEND)
149 Sertifiseringsbaneannonse (SEND)
151 Annonse for multicast-ruter (MRD)
152 Multicast-ruterforespørsel (MRD)
153 Multicast-ruterterminering (MRD)
200 privat eksperimentering
201 privat eksperimentering
255 Reservert for utvidelse av ICMPv6 informasjonsmeldinger

Tabellen ovenfor er ikke fullstendig. Den gjeldende listen over tildelte ICMPv6-typer og -koder finner du på denne lenken: IANA: ICMPv6-parametre .

Se også

Eksterne lenker