IPv6

Z HKfree wiki
Skočit na navigaci Skočit na vyhledávání

Adresace

  • prefix IPv6 pro celé HKfree je 2a01:168::/32
  • kazda oblast dostane prefix /48 podle cisla oblasti u IPv4

Dalsich 8 bitu je logicka cast (router1, router2, sektor, vsesmer, lan, ...) v ramci oblasti a zbylych 8 bity je pro lepsi rozdeleni v teto logicke casti (0 je vzdy hlavni podsit)

  • linkove adresy nejsou potreba - viz link scope
  • pokud nejaky router lezi na rozhrani mezi 2 oblastmi a mel by mit ipv6 adresu, tak se pouzije cislo jedne z oblasti
  • adresy aplikacnich serveru se prideluji z rozsahu 2a01:168::/48
  • Klientské zařízení s podporou IPv6

Jak pridelit IPv6 adresu/rozsah (pro spravce)

1) Vezmu si cislo sve oblasti (samozrejme jen pokud jsem spravce) toto prevedu do hexa (tzn. 1->1, 16->10, 31->1f atd.)

$ printf "%x\n" CISLOOBLASTI
XX

2) Toto cislo pripojim za 2a01:168:00XX:YYZZ::/64 a tak ziskam rozsah pro nejakou podsit v ramci oblasti

  • Priklad:
 mam oblast 160 tudiz cislo oblasti je a0 a mam vsesmer, LAN a 2x sektor, dale je na LAN jedna uzivatelska sit za routerem, takze site, ktere pouziji budou 
    • pro vsesmer 2a01:168:a0:0000::/64 - zkracene 2a01:168:a0::/64
      • pro uzivatelskou podsit na LAN 2a01:168:a0:0101::/64 - zkracene 2a01:168:a0:101:/64
    • pro sektor 1 2a01:168:a0:0200::/64 - zkracene 2a01:168:a0:200:/64
    • pro sektor 2 2a01:168:a0:0300::/64 - zkracene 2a01:168:a0:300:/64


3) Zapnu si modul ipv6, tedy upravim /etc/modules (zalezi na distribuci) kde vepíšu ipv6 nebo dočasně povolím ručně příkazem modprobe ipv6.

V OpenSUSE stačí v programu YaST v sekci konfigurace síťových karet zaškrtnout volbu 'povolit IPv6' (vyžaduje restart, ruční nahození modulu nestačí!)


4) Pridam na kazdem interface routeru nejakou IPv6 adresu (idealne dobre zapamatovatelnou) pomoci ip addr add <IPv6Adresa/maska> dev <zarizeni>

Příklad ip addr add 2a01:168:12::1/64 dev eth0

nebo upravím v /etc/network/interfaces (Debian)

auto eth0
      iface eth0 inet static
          address 10.107.6.49
          netmask 255.255.255.240
          broadcast 10.107.6.63
      # nastaveni IPv6
      iface eth0 inet6 static
          address 2001:168:6::1
          netmask 64

pro OpenSUSE stačí přidat řádek do /etc/sysconfig/network/ifcfg-eth0 (místo eth0 zadejte název požadovaného rozhranní)

IPADDR_IPv6='2001:168:6::1/64'


5) Povolim forwardovani IPv6 pomoci

echo 1 > /proc/sys/net/ipv6/conf/all/forwarding

V OpenSuSE poté nastavím v souboru /etc/sysconfig/sysctl proměnnou IPV6_FORWARD na "yes"

IPV6_FORWARD="yes"


6) Dale rozjedu na routeru IPv6 a ospf6d - nakonfiguruji podobne jako ve vzorovych konfiguracich prilozenych na konci a spustim


7) Hotovo :)


Doporucuji si precist neco o IPv6 nez se do toho pustite.

Soucasny stav

  • IPv6 je funkční na igw, kde bezi ospf6d
  • Mame pridelen IPv6 prefix od RIPE
  • DNS servery - 2a01:168:0:10::f, 2a01:168:7:a00::245
  • ipv6-enabled oblasti:
Oblast Podpora na pateri Podpora u klientu IPv6 Adresa routeru
D-network Ano Ano (pouze klienti, kteri jsou na stejnem subnetu jako hlavni routr) 2a01:168:3::1
JNet Ano Ano 2a01:168:36::1
Slatina Ano Castecne 2a01:168:7::a00::1
Libuse Ano Neznamo 2a01:168:2::1
Piletice Ano Ne 2a01:168:31:700::1
Podulsany Ano Ano 2a01:168:a::1
Yzop Neznamo Neznamo Neznamo
Lhotka Neznamo Neznamo Neznamo
Postman Neznamo Neznamo Neznamo
Mandysova Neznamo Neznamo Neznamo
Dolany Ano Ano 2a01:168:ad::1
Plch Ano Ano Doplnim
    • UPDATOVAT !

Priklady konfigurace zebry

ospf6d.conf


hostname HOSTNAME
password free
enable password XXXXXXX
!
interface eth0
 ipv6 ospf6 cost 10
!
router ospf6
 router-id 10.107.X.Y
 redistribute connected
 interface eth0 area 0.0.0.0
 interface eth1 area 0.0.0.0
!

zebra.conf


hostname HOSTNAME
password free
enable password XXXXXXXXX
service advanced-vty
interface eth0
 ipv6 nd suppress-ra
! muzu rict i jaky prefix budu oznamovat
interface eth1
 no ipv6 nd suppress-ra
 ipv6 nd ra-interval 10
 ipv6 nd prefix 2a01:168:12:3400::/64
! oznamuje pocitacum pripojenym k danemu segmentu, ze je zde dalsi router 
! a ze si maji pridelit ipv6 adresu a nastavit tento router jako branu

interface eth2
 ipv6 nd suppress-ra
!
!neoznamuje pocitacum pripojenym k segmentu, ze je zde dalsi router
interface eth3
 no ipv6 nd suppress-ra
line vty

Dulezite nastaveni jadra!!

Pro funkcnost autkonfigurace/neprijmani cizich prefixu musí být jádro na routeru nastaveno následovně:


net.ipv6.conf.all.autoconf = 0 # vypne autokonfiguraci na tomto stroji
net.ipv6.conf.all.accept_ra = 0 # vypne primani router advertismentu od jinych stroju - aneb routovani se resi pres OSPF
net.ipv6.conf.all.accept_redirects = 0 # redirecty take nechcem
net.ipv6.conf.all.forwarding = 1 # forwarding - jinak routovat nebudem
net.ipv6.conf.all.router_solicitations = 0 

Zbytek

K precteni taky doporucuji clanek na wikipedii nebo na IPv6.cz

  • Autokonfigurace

Pomoci router advertismentu

na serveru se spusti daemon radvd (nebo se nastavi v zebre viz vyse ipv6 nd ...), ktery pri spravnem nakonfigurovani siri na dany interface oznameni o pritomnosti routeru vcetne sveho prefixu. Z tohoto prefixu si klient vygeneruje svoji adresu na zaklade MAC adresy, windows si vygeneruji jeste druhou docasnou adresu (pro vyssi soukromi ? ;)) Resi pouze ziskani adresy a nastaveni routovani.

vypnuti generovani 2. docasne adresy z sireneho prefixu pod woknama netsh interface ipv6 set privacy state=disable

DHCPv6

Resi prideleni adresy + adres dns serveru, domenoveho jmena apod. Neresi nastaveni routovani.

Dibbler dhcpv6 server + klient + relay pro linux a windows http://klub.com.pl/dhcpv6/

podle testu funguje server na linuxu v pohode. Klient pod windows se zda byt pomerne problematicky, nepovedlo se mi ho spustit jako sluzbu prestoze psal ze nastartoval. Z prikazoveho radku funguje celkem bezproblemove. Pri kombinaci s 1. typem autokonfigurace dochazi k tomu, ze Windows pouzivaji primarne docasnou adresu a ne tu ziskanou pres dhcp :(

Par sikovnych prikazu

Zobrazeni routovaci tabulky

ip -6 ro  

Zobrazeni prirazenych ip adres

ip -6 addr

Pingnuti vseho ipv6-enabled hostu (tzn. vsech) na siti:

ping6 -I <interface> ff02::1

Pingnuti vsech ipv6-enabled routeru na siti:

ping6 -I <interface> ff02::2


Rozchození IPv6 na Mikrotiku s RouterOS

Příklad konfigurace AP Mandysova, verze RouterOS 3.16, navic balik routing-test.npk (nutny pro OSPFv3)

Nastavení adres. Určení rozsahů viz výše. V našem případě Mandysovka má číslo 53 což vychází hezky na 0x35. Primární router má na Mandysovce tradičně ip končící na 107.

/ipv6 address add address=2a01:168:35:222::107/64 advertise=yes disabled=no eui-64=no interface=bridge-local
/ipv6 address add address=2a01:168:35::107/64     advertise=yes disabled=no eui-64=no interface=bridge-wifi

Nastaveni areas. Klidně lze vystačit s jednou backbone. Já obvykle používam ještě jednu - terminal - pro koncové oblasti (tam kde jsou klienti a žádné další routery).

/routing ospf-v3 area set backbone area-id=0.0.0.0 name=backbone disabled=no type=default
/routing ospf-v3 add area-id=0.0.1.0 name=terminal default-cost=1 disabled=no inject-summary-lsas=yes type=stub

Nastavení OSPF. Důležitý pro nás by parametr "redistribute-connected=as-type-1"

/routing ospf-v3 set distribute-default=never metric-bgp=20 metric-connected=20 metric-default=1 metric-rip=20 metric-static=20 redistribute-bgp=no redistribute-connected=as-type-1 redistribute-rip=no redistribute-static=no router-id=10.107.53.107

Nastavení interfaceů. Na routeru jsou dva interface, na kterých je povoleno ipv6: bridge-wifi a bridge-local. Třetí interface je v našem případě 6to4 tunel na igw (tunel je zde proto, že naše oblast nesousedí s žádnou oblastí s funkčním ipv6)

/routing ospf-v3 interface add interface=tunel-gw6    area=backbone cost=10 dead-interval=30s disabled=no hello-interval=5s instance-id=0 network-type=default passive=no priority=1 retransmit-interval=5s transmit-delay=1s
/routing ospf-v3 interface add interface=bridge-wifi  area=terminal cost=10 dead-interval=30s disabled=no hello-interval=5s instance-id=0 network-type=default passive=no priority=1 retransmit-interval=5s transmit-delay=1s
/routing ospf-v3 interface add interface=bridge-local area=terminal cost=10 dead-interval=30s disabled=no hello-interval=5s instance-id=0 network-type=default passive=no priority=1 retransmit-interval=5s transmit-delay=1s

Pro doplnění ještě přidávám nastavení 6to4 tunelu. Remote je IPčko igw, kde běží protikus tunelu, local je IP adresa interfacu bridge-wifi. Žádné ip adresy interfacu tunelu není třeba přiřazovat, vystačí si s link-local adresu.

/interface 6to4 name=tunel-gw6 local-address=10.107.53.107 remote-address=10.107.4.1 disabled=no mtu=1480

DHCPv6

  • Tato varianta se hodí v případě, že chceme mít kontrolu nad tím, co uživatelům přidělujeme za adresy. Další možné použití je v případě, že uživatel je připojen s pomocí zařízení od Ubiquity nebo jiného, které umí na straně klienta použít "prefix delegation"
  • Dále pak tímto způsobem můžeme uživatelům předat informaci o DNS serveru, WINS serveru atp.
  • Pro klientské zařízení se dá použít firmware upravený 8anem -> http://8an.praha12.net/wifi/ubnt/XM.v5.1.2.sdk.3998.100317.1835.bin. Další výhodou tohoto firmware je, že umí i RADIUS autentizaci.
  • Pro použití DHCPv6 musíme posílat trochu jiné Router Advertismenty než při bezstavové konfiguraci (viz http://www.faqs.org/rfcs/rfc5175.html). A proto je třeba přidat do nastavení radvd.conf toto:
AdvManagedFlag on
AdvOtherConfigFlag on


interface eth1 {
    server-preference 255;
    renew-time 60;
    rebind-time 90;
    prefer-life-time 130;
    valid-life-time 200;
    allow rapid-commit;
    option dns_servers 2a01:168:0:10::f hkfree.org;

link AAA {
    pool{
        range 2a01:168:00XX:YYZZ::1 to 2a01:168:00XX:YYZZ::ffff/64;
        prefix 2a01:168:00XX:YYZZ::/64;
    };



};
};