Vandaag gaan we het IPv6-protocol bestuderen. De vorige versie van de CCNA-cursus vereiste geen gedetailleerde kennis van dit protocol, maar in de derde versie, 200-125, is een grondige studie ervan verplicht voor het afleggen van het examen. Het IPv6-protocol is al enige tijd ontwikkeld, maar heeft lange tijd niet breed toegepast. Het is zeer belangrijk voor de verdere ontwikkeling van het internet, omdat het is ontworpen om de tekortkomingen van het wijdverbreide IPv4-protocol te verhelpen.
Aangezien het IPv6-protocol een behoorlijk uitgebreid onderwerp is, heb ik het opgedeeld in twee videolessen: Dag 24 en Dag 25. De eerste dag besteden we aan de basisconcepten, en op de tweede dag bekijken we de configuratie van IP-adressen volgens het IPv6-protocol voor Cisco-apparaten. Vandaag zoals gewoonlijk, bekijken we drie onderwerpen: de noodzaak van IPv6, het adresformaat van IPv6 en de types IPv6-adressen.

Tot nu toe hebben we in onze lessen gebruik gemaakt van IP-adressen volgens protocol v4, en je was eraan gewend dat ze er vrij eenvoudig uitzagen. Wanneer je het adres op deze dia zag, begreep je precies waar het over ging.
Echter, IP-adressen v6 zien er heel anders uit. Als je niet bekend bent met de manier waarop adressen in deze versie van het internetprotocol worden gecreƫerd, zal je in de eerste plaats opvallen dat een IP-adres van dit type veel ruimte in beslag neemt. In de vierde versie van het protocol hadden we slechts 4 decimale getallen, wat vrij eenvoudig was, maar stel je voor dat je een persoon genaamd meneer X zijn nieuwe IP-adres moet geven, zoals 2001:0db8:85a3:0000:0000:8a2e:0370:7334.

Maak je echter geen zorgen ā aan het einde van deze video-les zullen we ons in een veel betere positie bevinden. Laten we eerst bekijken waarom er behoefte is aan het gebruik van IPv6.

Tegenwoordig gebruikt de meeste mensen IPv4 en zijn ze daar behoorlijk tevreden mee. Waarom is de overstap naar de nieuwe versie dan nodig? Ten eerste bestaan de IP-adressen van versie 4 uit 32 bits. Dit maakt het mogelijk om ongeveer 4 miljard adressen op het internet te creƫren, wat betekent dat het exacte aantal IP-adressen 232 bedraagt. Bij het ontstaan van IPv4 dachten de ontwikkelaars dat dit aantal meer dan voldoende was. Als je je herinnert, zijn de adressen van deze versie verdeeld in 5 klassen: de actieve klassen A, B, C en de gereserveerde klassen D (multicast) en E (onderzoek). Hoewel het aantal werkende IP-adressen slechts 75% van de 4 miljard was, waren de makers van het protocol ervan overtuigd dat ze genoeg zouden zijn voor de hele mensheid. Echter, door de snelle ontwikkeling van het internet begon het aantal beschikbare IP-adressen elk jaar tekort te schieten, en als het niet voor de NAT-technologie was geweest, zouden de beschikbare IPv4-adressen lang geleden op zijn geweest. Feitelijk is NAT de redder van dit internetprotocol geworden. Dat is de reden waarom de noodzaak ontstond voor het creƫren van een nieuwe versie van het internetprotocol, vrij van de tekortkomingen van versie 4. Je vraagt je misschien af waarom we van versie vier direct naar zes zijn gegaan. Dit komt omdat versie 5, net als de versies 1, 2 en 3, experimenteel was.
Dus, IPv6 IP-adressen hebben een 128-bits adresruimte. Wat denkt u, met hoeveel is het aantal mogelijke IP-adressen toegenomen? U zou waarschijnlijk zeggen: 'met 4 keer!'. Maar dat klopt niet, omdat 2^34 al 4 keer zoveel is als 2^32. Dus de waarde van 2^128 is ongelooflijk groot - het is gelijk aan 340282366920938463463374607431768211456. Dit is het aantal IP-adressen dat beschikbaar is via het IPv6-protocol. Dit betekent dat u een IP-adres kunt toewijzen aan alles wat u maar wilt: uw auto, telefoon, horloge. Een moderne persoon kan een laptop, meerdere smartphones, een smartwatch, een smart home - een tv die verbinding maakt met internet, een wasmachine die met het internet is verbonden, een heel huis dat met het internet is verbonden - hebben. Zo'n aantal adressen maakt het mogelijk om het concept van het 'internet der dingen' te realiseren, dat door Cisco wordt ondersteund. Dit betekent dat in uw leven alles verbonden is met het internet en dat elk apparaat een eigen IP-adres nodig heeft. Met IPv6 is dat mogelijk! Elke persoon op aarde kan voor zijn apparaten miljoenen adressen van deze versie gebruiken en er blijven nog steeds teveel vrij. We kunnen niet voorspellen hoe de technologieƫn zich zullen ontwikkelen, maar we kunnen hopen dat de mensheid niet zal komen tot het punt waarop er nog maar 1 computer op aarde overblijft. We kunnen aannemen dat IPv6 nog lange tijd zal bestaan. Laten we eens kijken naar wat het formaat van een IP-adres van de zesde versie inhoudt.

Deze adressen worden weergegeven als 8 groepen van hexadecimale getallen. Dit betekent dat elk teken van het adres 4 bits lang is, wat betekent dat elke groep van 4 van zulke tekens bestaat uit 16 bits en dat het hele adres 128 bits lang is. Elke groep van 4 tekens wordt van de volgende groep gescheiden door een dubbele punt, in tegenstelling tot IPv4-adressen, waar de groepen door punten werden gescheiden, omdat de punt de decimale vorm van getallen is. Aangezien het moeilijk is om zo'n adres te onthouden, zijn er verschillende regels waarmee het adres kan worden ingekort. De eerste regel zegt dat groepen die alleen uit nullen bestaan, kunnen worden vervangen door een dubbele dubbele punt. Zo'n bewerking kan slechts 1 keer op elk IP-adres worden uitgevoerd. Laten we eens bekijken wat dit betekent.
Zoals u ziet, bevat het bovenstaande voorbeeldadres drie groepen van 4 nullen. Het totale aantal dubbele punten, dat deze groepen 0000:0000:0000 scheidt, is 2. Dus, als we de dubbele punt :: gebruiken, betekent dit dat er op dit punt in het adres groepen nullen zijn. Hoe weten we nu hoeveel groepen nullen deze dubbele punt aangeeft? Als we naar de verkorte vorm van het adres kijken, kunnen we 5 groepen van 4 tekens tellen. Maar omdat we weten dat het volledige adres uit 8 groepen bestaat, betekent de dubbele punt dat er 3 groepen van 4 nullen zijn. Dit is de eerste regel voor de verkorte vorm van het adres.

De tweede regel luidt dat we de voorloopnullen in elke groep tekens kunnen weglaten. Bijvoorbeeld, groep 6 van de volledige vorm van het adres ziet eruit als 04FF, terwijl de verkorte vorm eruit zal zien als 4FF, omdat we de voorloopnul hebben weggelaten. Dus de weergave 4FF betekent gewoon 04FF.
Met deze regels kunt u elk IP-adres verkorten. Maar zelfs na verkorting ziet dit adres er niet echt kort uit. Later zullen we bekijken wat we hieraan kunnen doen, maar voor nu onthoud gewoon deze 2 regels.
Laten we eens kijken naar wat de headers van de IPv4- en IPv6-adressen zijn.

Deze afbeelding, die ik van het internet heb gehaald, legt het verschil tussen de twee headers heel goed uit. Zoals u ziet, is de header van het IPv4-adres veel complexer en bevat het meer informatie dan de header van IPv6. Een complexe header betekent dat de router meer tijd moet besteden aan de verwerking ervan om een routeringsbeslissing te nemen, daarom werken routers met eenvoudigere IP-adressen van versie zes efficiƫnter. Dit is waarom IPv6 veel beter is dan IPv4.
De lengte van de IPv4-header varieert van 0 tot 31 bits en beslaat 32 bits. Zonder de laatste regel Opties en Opvulling vertegenwoordigt het IPv4-adres een adres van 20 bytes, wat betekent dat de minimale grootte 20 bytes is. De lengte van een adres van versie zes heeft geen minimale grootte en dat adres heeft een vaste lengte van 40 bytes.
In de IPv4-header staat eerst de versie, gevolgd door de headerlengte (IHL). Standaard is dit 20 bytes, maar als er extra informatie (Options) in de header wordt opgegeven, kan deze langer zijn. Als je Wireshark gebruikt, kun je de waarde van de versie lezen, die gelijk is aan 4, en de waarde van de IHL, die gelijk is aan 5, wat betekent dat er vijf verticale blokken van 4 bytes (32 bits) elk zijn, exclusief de Options-blok.

Het type dienst (Type of Service) geeft de aard van het pakket aan - bijvoorbeeld een spraakpakket of een datapakket, omdat spraakverkeer voorrang heeft boven andere soorten verkeer. Kortom, dit veld geeft de prioriteit van het verkeer aan. De totale lengte (Total Length) is de som van de lengte van de header van 20 bytes plus de lengte van de payload, wat de overgedragen gegevens zijn. Als dit 50 bytes is, dan is de totale lengte 70 bytes. De pakketidentificatie (Identification) dient voor de integriteitscontrole van het pakket met behulp van de header checksum (Header Checksum). Als het pakket in 5 delen is gefragmenteerd, moet elk deel dezelfde identificatie hebben - de fragmentoffset (Fragment Offset) kan waarden van 0 tot 4 aannemen, waarbij elk fragment dezelfde offsetwaarde moet hebben. De vlaggen tonen of fragmentoffsets zijn toegestaan. Als je geen fragmentatie van gegevens wilt, stel je de DF-vlag in - don't fragment. Er is een MF-vlag - more fragment. Dit betekent dat als het eerste pakket in 5 delen is gefragmenteerd, de tweede pakket een 0 zal hebben, wat betekent - geen verdere fragmenten! Tegelijkertijd zal het laatste fragment van het eerste pakket worden gemarkeerd met 4, zodat het ontvangende apparaat het pakket gemakkelijk kan deassambleren, oftewel defragmenteren.
Let op de kleuren die op deze dia zijn gebruikt. De velden die zijn uitgesloten uit de IPv6-header zijn in het rood aangegeven. In het blauw zijn de parameters weergegeven die van de vierde naar de zesde versie van het protocol zijn overgebracht in gewijzigde vorm. De gele velden zijn in beide versies onveranderd gebleven. Het groene veld is een veld dat alleen in IPv6 is geĆÆntroduceerd.
De velden Identification, Flags, Fragment Offset en Header Checksum zijn uitgesloten omdat fragmentatie in moderne gegevensoverdracht niet voorkomt en checksumcontrole niet vereist is. Jaren geleden, bij trage gegevensoverdracht, kwam fragmentatie vrij vaak voor, maar tegenwoordig wordt Ethernet volgens de IEEE 802.3 standaard met een MTU-grootte van 1500 bytes algemeen gebruikt, en komt fragmentatie niet meer voor.
TTL, of de levensduur van een pakket, is een aftelbare teller ā wanneer de levensduur 0 bereikt, wordt het pakket weggebroken. In feite is dit het maximale aantal hops dat kan worden gemaakt in dit netwerk. Het veld Protocol toont aan welk protocol, TCP of UDP, in het netwerk wordt gebruikt.
Header Checksum is een verouderd parameter en is daarom uitgesloten uit de nieuwe versie van het protocol. Daarna bevinden zich de velden van het 32-bits bronadres en het 32-bits bestemmingsadres. Als we informatie in de Options-regel hebben, verandert de waarde van IHL van 5 naar 6, wat aangeeft dat er een extra veld in de header aanwezig is.
In de IPv6-header wordt ook de versie Version gebruikt, terwijl de Traffic Class overeenkomt met het veld Type of Service in de IPv4-header. Het Flow Label lijkt op de Traffic Class en is bedoeld om de routering van homogeen pakketstromen te vereenvoudigen. Payload Length geeft de lengte van de nuttige lading aan, of de grootte van het gegevensveld, dat zich onder de header bevindt. De lengte van de header zelf van 40 bytes is constant en wordt daarom nergens vermeld.
Het veld 'volgende header', Next Header, geeft aan welk type header de volgende pakket zal hebben. Dit is een zeer nuttige functie die het type van het volgende transportprotocol ā TCP, UDP, enzovoort ā instelt, en die zeer gewenst zal zijn in toekomstige gegevensoverdrachtstechnologieĆ«n. Zelfs als je een eigen protocol gebruikt, kun je zien welk protocol als volgt komt.
Het maximale aantal hops, of Hop Limit, is het equivalent van TTL in de IPv4-header; dit is een mechanisme om routeloops te voorkomen. Daarna bevinden zich de velden van het 128-bits bronadres en het 128-bits bestemmingsadres. De hele header heeft een grootte van 40 bytes. Zoals ik al zei, is IPv6 veel eenvoudiger dan IPv4 en veel effectiever voor routers bij het nemen van routeringsbeslissingen.
Laten we de types IPv6-adressen bekijken. We weten dat unicast een gerichte overdracht is, waarbij ƩƩn apparaat direct is verbonden met een ander en beide apparaten alleen met elkaar kunnen communiceren. Multicast is een broadcast-overdracht, wat betekent dat meerdere apparaten tegelijk kunnen communiceren met ƩƩn apparaat, dat op zijn beurt tegelijkertijd met meerdere apparaten kan communiceren. In dit opzicht lijkt multicast op een radiozender, waarvan de signalen overal worden uitgezonden. Als je een specifieke zender wilt horen, moet je je radio op een specifieke frequentie instellen. Als je je de video over het RIP-protocol herinnert, weet je dat dit protocol broadcast-domein 255.255.255.255 gebruikt voor het verzenden van updates, waaraan alle subnetten zijn verbonden. Maar alleen die apparaten die het RIP-protocol gebruiken, zullen deze updates ontvangen.
Een ander type broadcasting dat niet in IPv4 werd aangetroffen, wordt Anycast genoemd. Dit wordt gebruikt wanneer je meerdere apparaten met hetzelfde IP-adres hebt en het stelt je in staat om pakketten naar de dichtstbijzijnde ontvanger in een groep ontvangers te verzenden.

In het geval van het internet, waar we CDN-netwerken hebben, kunnen we het voorbeeld van de YouTube-service geven. Deze service wordt door veel mensen over de hele wereld gebruikt, maar dit betekent niet dat ze allemaal rechtstreeks verbinding maken met de server van het bedrijf in Californie. YouTube heeft veel servers over de hele wereld, bijvoorbeeld is de server van mijn Indiase YouTube in Singapore gevestigd. Evenzo heeft het IPv6-protocol een ingebouwd mechanisme voor gegevensoverdracht via CDN-technologie met behulp van geografisch verspreide netwerkinfrastructuur, wat betekent dat het Anycast gebruikt.
Zoals je hebt opgemerkt, ontbreekt hier nog een type broadcasting, namelijk Broadcast, omdat het IPv6-protocol dit niet gebruikt. Maar Multicast in dit protocol werkt op een vergelijkbare manier als Broadcast in IPv4, alleen efficiƫnter.
De zesde versie van het protocol maakt gebruik van drie soorten adressen: Link Local, Unique Site Local en Global. We herinneren ons dat in IPv4 ƩƩn interface slechts ƩƩn IP-adres heeft. Stel dat we twee routers hebben die met elkaar zijn verbonden; elk van de verbindingsinterfaces heeft dan slechts 1 IP-adres. Bij het gebruik van IPv6 ontvangt elke interface automatisch een IP-adres van het type Link Local. Deze adressen beginnen met FE80::/64.

Deze IP-adressen worden alleen gebruikt voor lokale verbindingen. Mensen die met Windows werken, kennen soortgelijke adressen zoals 169.254.X.X ā dit zijn adressen die automatisch worden geconfigureerd via het IPv4-protocol.
Als een computer de DHCP-server benadert voor het verkrijgen van een IP-adres, maar om de een of andere reden geen verbinding kan maken, hebben Microsoft-apparaten een mechanisme waarmee de computer zichzelf een IP-adres toekent. Dit adres zal ongeveer zo zijn: 169.254.1.1. Een soortgelijke situatie doet zich voor als we een computer, een switch en een router hebben. Stel dat de router geen IP-adres heeft ontvangen van de DHCP-server en zichzelf automatisch hetzelfde IP-adres 169.254.1.1 toekent. Daarna verzendt hij via de switch een broadcast ARP-verzoek door het netwerk waarin hij vraagt of er een netwerkapparaat is met dit adres. Wanneer de computer de aanvraag ontvangt, zal hij antwoorden: "Ja, ik heb precies hetzelfde IP-adres!", waarna de router zichzelf een nieuw willekeurig adres toekent, bijvoorbeeld 169.254.10.10, en opnieuw een ARP-verzoek door het netwerk verzendt.

Als niemand meldt dat hij hetzelfde adres heeft, behoudt hij het adres 169.254.10.10 voor zichzelf. Op deze manier kunnen apparaten in het lokale netwerk de DHCP-server helemaal niet gebruiken, maar in plaats daarvan gebruik maken van het mechanisme voor automatische toekenning van IP-adressen aan zichzelf om verbinding met elkaar te maken. Dit is wat IP-adresautoconfiguratie inhoudt, waarmee we vaak in aanraking zijn gekomen maar nooit hebben gebruikt.
Op dezelfde manier is er in het IPv6-protocol een mechanisme voor het toekennen van lokale Link Local IP-adressen, die beginnen met FE80::. De schuine streep 64 betekent de splitsing van netwerkadressen en hostadressen. De eerste 64 betekent netwerk, terwijl de tweede 64 host betekent.

FE80:: betekent adressen van het type FE80.0.0.0/, waarbij na de schuine streep een deel van de hostadressen staat. Deze adressen zijn niet gelijk voor ons apparaat en de interface die eraan is verbonden en worden automatisch geconfigureerd. Daarbij gebruikt een deel van de host het MAC-adres. Zoals bekend is, bestaat een MAC-adres uit een 48-bits IP-adres, bestaande uit 6 blokken van 2 hexadecimale cijfers. Dit systeem wordt door Microsoft gebruikt, terwijl Cisco 3 blokken van 4 hexadecimale cijfers gebruikt.

In ons voorbeeld gebruiken we een Microsoft-volgorde van 11:22:33:44:55:66. Hoe wordt het MAC-adres van het apparaat toegewezen? Deze reeks cijfers in het hostadres, die het MAC-adres vertegenwoordigt, wordt in twee delen verdeeld: links bevinden zich drie groepen 11:22:33, rechts drie groepen 44:55:66, en daartussen wordt FF en FE toegevoegd. Op deze manier wordt een 64-bits blok van het IP-adres van de host gecreƫerd.

Zoals bekend, vertegenwoordigt een volgorde van 11:22:33:44:55:66 een MAC-adres dat uniek is voor elk apparaat. Door tussen de twee groepen MAC-adressen FF:FE toe te voegen, verkrijgen we een uniek IP-adres voor dit apparaat. Op deze manier wordt een IP-adres van het type Local Link gecreƫerd, dat alleen wordt gebruikt voor communicatie tussen buren zonder speciale configuratie of speciale servers. Een dergelijk IP-adres kan alleen binnen ƩƩn netwerksegment worden gebruikt en kan niet voor externe communicatie buiten dit segment worden toegepast.
Het volgende type adres is Unique Site Local Scope, dat overeenkomt met interne (private) IP-adressen van het IPv4-protocol zoals 10.0.0.0/8, 172.16.0.0/12 en 192.168.0.0/16. De reden waarom interne private en externe publieke IP-adressen worden gebruikt, is vanwege de NAT-technologie waar we in eerdere lessen over hebben gesproken. Unique Site Local Scope is een technologie die interne IP-adressen creƫert. Je zou kunnen zeggen: "Imran, je zei dat elk apparaat zijn eigen IP-adres kan hebben, daarom zijn we overgestapt op IPv6," en je zou helemaal gelijk hebben. Maar sommige mensen geven de voorkeur aan het gebruik van het concept van interne IP-adressen uit veiligheidsredenen. Hierbij wordt NAT als firewall gebruikt, en externe apparaten kunnen niet willekeurig verbinding maken met apparaten die zich binnen het netwerk bevinden, omdat ze lokale IP-adressen hebben die niet toegankelijk zijn vanuit het externe internet. Echter, NAT creƫert veel problemen met betrekking tot VPN, bijvoorbeeld met het ESP-protocol. Voor veiligheid gebruikte het IPv4-protocol IPSec, maar in het IPv6-protocol is er een ingebouwd beveiligingsmechanisme, waardoor de verbinding tussen interne en externe IP-adressen heel eenvoudig tot stand kan worden gebracht.
Daarom heeft IPv6 twee verschillende typen adressen: als de Unique Local-adressen overeenkomen met interne IP-adressen van IPv4, dan komen de Global-adressen overeen met externe IPv4-adressen. Veel mensen geven er de voorkeur aan om helemaal geen Unique Local-adressen te gebruiken, terwijl anderen er niet zonder kunnen, dus dit blijft een onderwerp van voortdurende discussie. Ik denk dat je veel meer voordelen zult behalen door alleen externe IP-adressen te gebruiken, vooral wat betreft mobiliteit. Bijvoorbeeld, mijn apparaat heeft altijd hetzelfde IP-adres, ongeacht waar ik ben - in Bangalore of New York - waardoor ik elk van mijn apparaten overal ter wereld probleemloos kan gebruiken.
Zoals ik al zei, heeft IPv6 een ingebouwd beveiligingsmechanisme dat het mogelijk maakt om een veilige VPN-tunnel op te zetten tussen de locatie van uw kantoor en uw apparaten. Voorheen hadden we een extern mechanisme nodig om zo'n VPN-tunnel te creƫren, maar in IPv6 is dit een ingebouwde standaardfunctie.
Aangezien we vandaag voldoende onderwerpen hebben besproken, stop ik onze les om de discussie over de zesde versie van het internetprotocol IP in de volgende video voort te zetten. Voor het huiswerk vraag ik je om goed te bestuderen wat het hexadecimale talstelsel is, omdat het begrijpen van IPv6 sterk afhankelijk is van het begrijpen van de conversie van het binaire talstelsel naar hexadecimaal en vice versa. Bijvoorbeeld, je moet weten dat 1111=F, enzovoort; zoek het gewoon op Google om dit te begrijpen. In de volgende video les zal ik proberen om met je te oefenen met zulke conversies. Ik raad je aan om de video van vandaag meerdere keren opnieuw te bekijken, zodat je geen vragen meer hebt over de besproken onderwerpen.

Bedankt dat je bij ons blijft. Vind je onze artikelen leuk? Wil je meer interessante inhoud zien? Steun ons door een bestelling te plaatsen of ons aan vrienden aan te bevelen. 30% korting voor Habr-gebruikers op een unieke variant van entry-level servers, speciaal voor jou ontworpen: (opties beschikbaar met RAID1 en RAID10, tot 24 cores en tot 40GB DDR4).
Dell R730xd voor de helft van de prijs? Alleen bij ons in Nederland! Dell R420 ā 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB ā vanaf $99! Lees over hoe
Bron: habr.com
