home       basis       advanced       routing       switching       testen       overig      

ipv6 inleiding

Begin de jaren negentig van de vorige eeuw werd duidelijk dat men met 32bit ipv4 adressen op een snel groeiend internet, niet zo heel lang meer zou kunnen verder werken. Het is toen dat men ipv6 boven de doopvont heeft gehouden. Tussentijdse andere maatregelen (classless ipv4, NAT, CIDR), hebben de uitputting van ipv4-adressen tot op heden kunnen uitstellen. Maar RIPE is in Europa al enkele jaren karig bezig het laatste /8 netwerk in stukjes van /22 uit te delen. In Azie zijn de adressen al op.
 
ipv6 wordt al enkele jaren wereldwijd uitgerold, ook in België waar elke thuis-gebruiker er nu al gebruik van kan maken. Heel veel machines zijn nu al dual-stack, met zowel ipv4 als ipv6 adressen. Het is dus hoog tijd om meer te weten over de nieuwe internetlaag : het gebeurt allemaal, en alleen in laag 3.
Vandaar deze korte praktijkgerichte cursus ipv6.
 
In Belgie leveren zowel proximus als telenet al enkele jaren ipv6 standaard aan. Maar de meeste WiFi-access points, geven dit niet door, en passen ipv4-NAT toe, bovenop de NAT van beide providers. Op die manier kun je ipv6 niet zien.
Je kan ipv6 wel zien als je de DOCSIS-router van telenet, of de B-BOX van proximus op een switch aansluit, en daarop rechtstreeks (met een kabel) je laptop. (het kan ook als je laptop op de WiFi van de telenet/proximus router zit) Recentere en duurdere Wireless Access Points zijn configureerbaar om IPv6 door te geven, of ze doen het standaard.
 
je kan ipv6 niet leren op een ipv4 machine
 
Dat is inderdaad een probleem. En demo omgevingen zijn te beperkt. Vandaar het idee (2013), en de realisatie (najaar 2014) van ipv6 only machines, in de cloud.
 

  1. ipv6 only machines
     
    Sedert eind 2014 zorgt netwerk800 voor ipv6-only machines op afstand (via ssh). Geen DUAL-stack maar uitsluitend ipv6, en toch bereikbaar via socketforwarding vanuit ipv4. Deze machines draaien ubuntu linux (16.04) en zijn rechtstreeks verbonden met het ipv6-internet.
     
    De meeste studenten hebben deze machines al gebruikt om er linux mee te leren, en zijn zich nauwelijks bewust geweest dat het ipv6 only machines waren.
    Alles werkt gewoon zoals altijd ... Je ziet het niet, als je met ipv6 werkt. Je moet er echt op letten.
     
    Op deze machines zetten we onze eerste stappen in ipv6 ... alle studenten krijgen hun eigen machine, en een sudo-login: ....
     
    ssh -p xyz22 student@mypc.domain.org
    student@mypc.domain.org's password: 
    Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-116-generic x86_64)
    * Documentation:  https://help.ubuntu.com
    * Management:     https://landscape.canonical.com
    * Support:        https://ubuntu.com/advantage
    0 packages can be updated.
    0 updates are security updates.
    Last login: Thu Feb 22 17:07:53 2018 from 2a01:123:123:6116:1000::2

     

  2. de eerste stap ... : adressen
     
    We zijn nieuwsgierig, en tikken ...
     
    $ ifconfig
    enp0s3    Link encap:Ethernet  HWaddr 08:00:27:f6:0c:ea  
          inet addr:10.10.255.82  Bcast:10.10.255.255  Mask:255.255.0.0
          inet6 addr: fe80::a00:27ff:fef6:cea/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5900 (5.9 KB)  TX bytes:1332 (1.3 KB)
          Interrupt:19 Base address:0xd000 
     
    enp0s8    Link encap:Ethernet  HWaddr 08:00:27:e1:ab:45  
          inet6 addr: 2a01:123:123:6116:1000::1030/68 Scope:Global
          inet6 addr: fe80::a00:27ff:fee1:ab45/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:84 errors:0 dropped:0 overruns:0 frame:0
          TX packets:76 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:11590 (11.5 KB)  TX bytes:10947 (10.9 KB)
     
    lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:160 errors:0 dropped:0 overruns:0 frame:0
          TX packets:160 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:11840 (11.8 KB)  TX bytes:11840 (11.8 KB)

     
    of de essentie ...
     
    $ ifconfig | grep 'Link\|inet6'

    enp0s3    Link encap:Ethernet  HWaddr 08:00:27:f6:0c:ea  
          inet6 addr: fe80::a00:27ff:fef6:cea/64 Scope:Link
     
    enp0s8    Link encap:Ethernet  HWaddr 08:00:27:e1:ab:45  
          inet6 addr: 2a01:123:123:6116:1000::1030/68 Scope:Global
          inet6 addr: fe80::a00:27ff:fee1:ab45/64 Scope:Link
     
    lo        Link encap:Local Loopback  
          inet6 addr: ::1/128 Scope:Host

     
    We zien 4 ipv6 adressen op 3 netwerkkaarten:
     

    • lo is onze loopback interface:
       
      haar ipv6-adres is heel kort: ::1/128
      dit ipv6-adres is voluit hexadecimaal: 0000:0000:0000:0000:0000:0000:0000:0001
       
      /128 is de netmask
       
      een ipv6-adres bevat 128 bits, meestal hexadecimaal geschreven als
      8 groepen van 16 bits of 4 hex-cijfers
      de groepen worden gescheiden door : de dubbele punt
       
      met 128bit kun je 3,4 x 1038 verschillende adressen samenstellen
       
      /128 betekent masked op 1 enkele host,
      net zoals 255.255.255.255 of /32 dit doet in ipv4
       
      Scope:Host -- ::1 komt overeen in ipv4 met 127.0.0.1
       
    • enp0s8 is onze publieke netwerkinterface
       
      het ipv6-adres ervan is: 2a01:123:123:6116:1000::1030/68
      dit ipv6-adres is voluit hexadecimaal: 2a01:04f8:0202:6116:1000:0000:0000:1030
       
      Scope:Global: een publiek ip-adres
       
      /68 is de netmask, er blijven nog 128-68=60 host bits over. In dit netwerk kun je 1,15 x 1018 hosts kwijt.
       
      enp0s8 heeft nog een tweede ipv6-adres: fe80::a00:27ff:fee1:ab45/64
      dit ipv6-adres is voluit hexadecimaal: fe80:0000:0000:0000:0a00:27ff:fee1:ab45
       
      Scope:Link: een link local adres alleen gebruikt binnen het eigen layer2-LAN
      /64 is de standaard netmask van link-local adressen
      link-local adressen komen in ipv4 een beetje overeen met de 169.254.0.0/16 range
      https://en.wikipedia.org/wiki/Link-local_address
      in ipv6 worden link-local adressen o.a. gebruikt voor het automatisch vinden van default gateway en dns-server
       
    • enp0s3 is de private LAN interface:
       
      het link-local ipv6-adres ervan is: fe80::a00:27ff:fef6:cea
      dit ipv6-adres is voluit hexadecimaal: fe80:0000:0000:0000:0a00:27ff:fef6:0cea
      Scope:Link: een link local adres alleen gebruikt binnen het eigen layer2-LAN
      /64 is de standaard netmask van link-local adressen
       
      op enp0s3 is ook nog een privaat ipv4 netwerk te vinden, 10.10/16, dat niet verbonden is met het internet, maar wel kan worden gebruikt om te debuggen.
       
  3. default gateway
     
    we tikken:
     
    $ route -n6
    ::/0 2a01:123:123:6116:1000::2 UG 1024 1 9487 enp0s8
     
    de gateway zit in ons eigen netwerk:
     
    /68 is de netmask,
    ons netwerk prefix is dan 2a01:123:123:6116:1000::
     
    elk hex cijfer is vier bit lang: met een /68 zit die éne 1 van het laatste 16bit veld nog in het prefix,
    de laatste 3 nullen horen er niet bij, maar we moeten die wel opschrijven ...
    anders lezen we het ipv6-address verkeerd.
     
  4. dns-server
     
    $ dig
    ; <<>> DiG 9.10.3-P4-Ubuntu <<>>
    ;; global options: +cmd
    ;; Got answer:
    ...
    ;; Query time: 5 msec
    ;; SERVER: 2001:4860:4860::8888#53(2001:4860:4860::8888)
    ;; WHEN: Sat Feb 24 07:06:39 CET 2018
    ;; MSG SIZE  rcvd: 239

    We hebben er wat in geknipt. De dns-server is: 2001:4860:4860::8888
     
    met een reverse lookup vinden we:
     
    $ dig -x 2001:4860:4860::8888
    8.8.8.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.6.8.4.0.6.8.4.1.0.0.2.ip6.arpa. 21599 IN PTR google-public-dns-a.google.com.
     
    inderdaad, google:
    google-public-dns-a.google.com
     
    2001:4860:4860::8888 is het equivalent van 8.8.8.8