home       basis       routing       switching       advanced       security       overig       testen      

ipv6 look around @home

 
In vlaanderen wordt IPv6 uitgerold door Proximus en Telenet.
In deze inleiding kijken we naar de praktische kant van ipv6 door Telenet. Indien Proximus mij ervaring laat opdoen met hun netwerk, kan dit eveneens behandeld worden.
 

  1. de router
     
    docsis_7594

     
    Mijn kabel-router komt van de firma Compal Broadband Networks, Inc:
    een CH6643E EuroDOCSIS 3.0 Wireless Digital Voice Gateway.
     
    De router is geleverd begin 2013, en verbindt coax-cable-internet met LAN en WiFi via NAT. Het ding ondersteunt zowal ipv4 als ipv6. Telenet was er vroeg bij om ipv6 uit te rollen. telenet.be is eigendom van Liberty Global.
     

  2. global -- eerste vaststellingen
     
    In January 2014 ontdekte ik een Scope:Global ipv6 address in de listing van ifconfig:
    inet6 addr: 2a02:1811:e100:e100::27ff:fe2d:ba0c/64 Scope:Global

    global ipv6  adressen moeten vandaag (2016) beginnen met een binary 001 mask /3
    In praktijk beginnen die hexadecimale globale adressen dus met een 2 (0010) of met een 3 (0011).
     
    Als je een ipv6 adres ziet dat begint met 2 of 3 is dit een global unicast address. IPV6 Global Unicast addresses zijn routable op het ipv6-internet.
     

  3. link-local -- wat vooraf ging
     
    Een goeie 10 jaar geleden, bemerkte ik voor het eerst een ipv6 adres in de output van ifconfig. Hoelang dat daar al onopgemerkt zat, weet ik niet. In 2010 waren experimenten met ipv6 in België op zijn minst 'moeilijk' te noemen. Wat we al die jaren zagen was dit:
    inet6 addr: fe80::76d4:35ff:fe80:b46c/64 Scope:Link

    Een link-local adres.
     
    Link-local unicast adressen beginnen met een binare 1111 1110 10.. .... mask /10
    Bijgevolg start de HEX-vorm van het adres met één van de volgende 4 cijfercombinaties:

    fe8 (1111 1110 1000)
    fe9 (1111 1110 1001)
    fea (1111 1110 1010) 
    feb (1111 1110 1011)

    In de meeste gevallen bevat het link-local adres een uniek MAC-address. Link-local adressen zijn niet routable op het internet.
     

  4. local loopback
     
    Een onontbeerlijk ipv6 adres is ::1
    Dit is het local loopback address.
    In de wereld van ipv4 is dit 127.0.0.1
     
  5. default route
     
    De default route wordt in ipv6 gegeven als ::/0
    We zullen verder nog zien dat
     
    ::
     
    de herleide vorm is van 0000:0000:0000:0000:0000:0000:0000:0000
     
    en /0 is gewoon een netmask waarbij alle adressen binnen één en hetzelfde netwerk vallen:
    het ipv6-internet.
     
    Een stuk van onze routing-table ziet er als volgt uit:
    $ route -n6 | grep eth0
    2a02:1811:e100:e100::/64       ::                        UAe   256  0    0 eth0
    fe80::/64                      ::                         U    256  0    0 eth0
    ::/0                        fe80::5e35:3bff:fe5c:8b35   UGDAe 1024 17    0 eth0
    ff00::/8                       ::                         U    256  0    0 eth0

    ::/0  komt dus overeen met  0.0.0.0 mask 0.0.0.0  in de ipv4 wereld
     

  6. Unspecified address  ::/128
     
    Het unspecified address mag alleen gebruikt worden voordat een toepassing op de hoogte is van het echte source-address van zijn host. Routers kunnen pakketten met dit adres niet forwarden. Dit wordt o.a. gebruik om een pas gevormd link-local adres, dat nog niet is toegekend aan een interface, te testen. (zie ipv6 soho). De mask /128 betekent dat alle bits deel uitmaken van de host-identifier, en dat er geen netwerk of prefix wordt verondersteld.
     
  7. ping6
     
    Om oner linux in de ipv6 wereld te pingen gebruiken we het commando ping6:
    anna@lx24:~$ ping6 google.com
    PING google.com(ea-in-x64.1e100.net) 56 data bytes
    64 bytes from ea-in-x64.1e100.net: icmp_seq=1 ttl=52 time=16.7 ms
    64 bytes from ea-in-x64.1e100.net: icmp_seq=2 ttl=52 time=17.9 ms
    64 bytes from ea-in-x64.1e100.net: icmp_seq=3 ttl=52 time=17.8 ms

    Het kan ook met een global-address:

    carla@lx12 ~ $ ping6 2a00:1450:400c:c04::5e
    PING 2a00:1450:400c:c04::5e(2a00:1450:400c:c04::5e) 56 data bytes
    64 bytes from 2a00:1450:400c:c04::5e: icmp_seq=1 ttl=53 time=21.7 ms
    64 bytes from 2a00:1450:400c:c04::5e: icmp_seq=2 ttl=53 time=22.6 ms

    Maar met een local-link-address wordt het ingewikkelder:

    gert@lx12 ~ $ ping6 fe80::5e35:3bff:fe5c:8b35%3
    PING fe80::5e35:3bff:fe5c:8b35%3(fe80::5e35:3bff:fe5c:8b35) 56 data bytes
    64 bytes from fe80::5e35:3bff:fe5c:8b35: icmp_seq=1 ttl=64 time=5.56 ms
    64 bytes from fe80::5e35:3bff:fe5c:8b35: icmp_seq=2 ttl=255 time=0.539 ms

    Merk de  %3 aan het eind van het adres ... dit is de zone index soms ook interface index genoemd.
    Je kan ook gewoon de interface naam gebruiken:
     
    ping6 fe80::5e35:3bff:fe5c:8b35%eth0
     
    Omdat een link-local adres geen netwerk informatie bevat -- ze zitten allemaal in FE80::/10 -- moet je aan het O.S. meegeven welke interface er moet worden gebruikt.
     

  8. DOCSIS-router revisited
     
    We komen nog even terug op onze euro-docsis-router; we kunnen de volgende informatie halen uit onze telenet configuratie website: 
    LAN-configuration:
    LAN-subnet-ipv4: 10.0.1.0/24
    LAN-subnet-ipv6: 2a02:1811:e100:e100::/64
    Prefix (IPv6) 2a02:1811:e100:e100::/56 
    LAN-IPv4: 10.0.1.1
    LAN-IPv6: 2a02:1811:e100:e100:5e35:3bff:fe5c:8b35
     
    WAN-configuration:
    IPv4-adres: 94.225.67.23/19
    IPv6-adres: 2a02:181f:1:4142:29fc:39b:2213:df3e

    Ons LAN netwerk zit in een mask /64, de IPv6 prefix daarentegen (de vroegere NETID) zit op een /56. Dit betekent waarschijnlijk dat telenet de individuele LANs kan subnetten tot 256 netwerken in dit prefix.
       

    • in ipv4 hebben we de volgende situatie:
      ipv4-net

       
      Een privaat netwerk 10.0.1.0/24 met 254 host-ip-adressen en een publiek adres routable op het internet.
      Het 32bit privaat adress is verdeeld in een 24bit net-id en 8 bits voor de hosts. De docsis gebruikt NAT (Network-Address-Translation).
       
      Het publiek adres bevindt zich in een groter ISP metro-net 94.225.64.0-94.225.95.255 met 19 bits gereserveerd voor het network en 13 bits voor de hosts (8000+ adressen in dit netwerk).
       

    • we hebben deze situatie in ipv6:
      screenshot-11

       
      Er zijn twee netwerken gekoppeld aand de docsis router. Beide zijn global unicast networks.
       
      Dit betekent dat ons eigen ipv6-netwerk , aan de rechter kant van de router, — 2a02:1811:e100:e100::/64 — bereikbaar is vanaf het internet. Dit is geen privaat adres, er wordt geen NAT gebruikt, alleen pure routing. Wat het WAN-ipv6 adres betreft kunnen we vooralsnog alleen maar raden waarvoor dit dient.
       
      Terwijl telenet ongevraagd ipv6 heeft aangeboden heeft het tegelijkertijd ook de ipv6 firewall aangezet. Misschien belangrijk om dit even na te gaan in uw eigen situatie.
       
      Vanuit het standpunt van een hacker is de ipv6 wereld vandaag een paradijs van onbeschermde machines en tegelijkertijd een onmetelijke woestijn waarin deze machines niet of nauwelijks te vinden zijn. Bovendien houden de meeste hackers zich vandaag alleen nog maar bezig met ipv4 omdat er daar iets te bereiken valt, wat dat dan ook moge zijn.
       
      Het netwerk mij toegekend, heeft een 64bit mask een bijgevolg een netwerk prefix van dezelfde lengte: 2a02:1811:e100:e100. Daarachter kunnen zich enkele machines bevinden op 2^64 adressen (2 tot de macht 64 = 1800 000 000 000 000 000). Ik heb dus nu evenveel internetten ter mijner beschikking als er vandaag adressen zijn in het ipv4-internet. Indien een hacker mijn prefix zou kennen (wat al hoogst onwaarschijnlijk is) zou hij vervolgens 2^64 adressen moeten scannen om iets te kunnen vinden. Indien ik werk met automatische adressen een onbegonnen werk voor die hacker. Mijn machines geven zichzelf momenteel semi-random adressen op tijdelijke basis. Een hacker heeft een kans van 4 op 2 quintilioen om mijn adressen te raden. Je hebt miljarden malen meer kans om de lotto te winnen. Als je vandaag random 100 ipv4-adressen test, krijg je zeker 10 antwoorden, als je random 1000000 global unicast adressen test krijg je vandaag (2016 )waarschijnlijk geen enkel antwoord.