240px-Diamond warning sign (Vienna Convention style).svg.png Content of this wiki is DEPRECATED 240px-Diamond warning sign (Vienna Convention style).svg.png

IPv6

Z old-wiki.siliconhill.cz
Přejít na: navigace, hledání

Obsah

IPv6 obecně

Co je to IPv6 a k čemu je to dobré? http://cs.wikipedia.org/wiki/IPv6

Pro zjednodušení bude v následujícím textu (tam, kde je to vhodné) místo pojmu "IPv6 adresa" používáno pouze IP6 a místo "IPv4 adresa" (klasická "IPéčka") pouze IP4.

Uživatelé

Jste-li připojeni do sítě SH, a jste-li připojeni do některého z veřejných IPv4 rozsahů (viz veřejné IP rozsahy), nebo přes Wifi, máte tzv. nativní IPv6 připojení (tzn. že router, ke kterému jste připojeni, má přidělen pro váš segment veřejný IPv6 rozsah a umí routovat IPv6 provoz). Pozor: veřejný IPv6 rozsah se týká i Wifi !!!

Ačkoliv tento rozsah má prefix délky 64 b, a tudíž by se mohlo zdát, že adres je "mraky", a lze si tudíž vybrat libovolnou "neobsazenou" z 2^64 možných kombinací, není to tak docela pravda: adres je v tomto rozsahu sice mraky, ale každý uživatel smí používat pouze přidělenou IP6 (= dohledatelnou v DUSPSu). Je to ze stejného důvodu, jako u IP4 – aby v případě, že se někdo na síti nechová tak, jak má, a přijde na něj stížnost, tak aby se dal dotyčný hříšník dohledat.

Přidělené IP6

Na rozdíl od IPv4, kde je situace jednoduchá – přidělená IP4 je zaregistrovaná v DUSPSu, je vidět v DUSPS FindIt, exportuje se do DNS atd., tak u IPv6 je situace zajímavější – resp. přidělené IP6 jsou dvojího druhu:

  1. registrovaná – ručně registrovaná do DUSPSu pomocí administračního rozhraní, je vidět ve FindItu a v DNS – v podstatě stejná situace jako u IPv4
  2. automatická – je vygenerovaná z MAC adresy stejným postupem jako při bezstavové autokonfiguraci těm uživatelům, kteří ji nemají explicitně registrovanou přes administrační rozhraní, a objevuje se pouze v IPv6 exportech z DUSPSu (v rámci procesu automatické konfigurace aktivních prvků)

Důvod zavedení automatické IP6 je opět celkem prostý: ne každý uživatel nutně potřebuje mít AAAA záznam v DNS a zároveň chce, aby měl s nastavováním co nejmíň práce. A nejjednodušší je pro něj použití bezstavové autokonfigurace a vygenerování interface-ID z MAC adresy.

V současné době nelze v SH síti pro automatickou konfiguraci klientských stanic efektivně použít DHCP (DHCPv6 je postaveno na tzv. Client DUID – narozdíl od DHCPv4, které je postaveno na MAC adresách), takže proto vychází jako nejjednodušší způsob právě bezstavová autokonfigurace (ovšem v základní variantě – tj. bez Privacy extensions a náhodného generování Interface-ID).

Jak na to

Předně je třeba mít v systému nainstalovnou podporu IPv6. Ve Windows Vista je už defaultně, ve Windows XP je třeba ji doinstalovat – viz Tutoriál.

Když už teda máme nainstalováno a zapnuto, tak je třeba zajistit, aby počítač používal pro komunikaci přidělenou IP6. Tou je, jak již bylo výše řečeno, IP6 vygenerovaná z MAC (registrovaná IP6 se sice dá teoreticky zadat do DUSPSu s libovolným Interface-ID, ale registrátor vám stejně nezaregistruje jinou než tu vygenerovanou z MAC;-)).

To se dá udělat 2 způsoby:

  1. pomocí bezstavové autokonfigurace – pro začátečníky nejjednodušší způsob
  2. manuálně – pro fajnšmekry;-)

Bezstavová autokonfigurace

Bezstavová konfigurace je založena na tom, že router pravidelně posílá do sítě informace o dostupném připojení: prefix dané sítě a defaultní bránu (tedy svojí adresu). A to je v podstatě všechno, co počítač potřebuje vědět k tomu, aby si sám "nakonfiguroval" připojení – pro komunikaci po IP síti (platí jak pro IPv4, tak pro IPv6) totiž potřebuje znát pouze svoji adresu a adresu nejbližšího routeru. A v případě IPv6 si svojí IP6 vygeneruje sám: vezme prefix sítě (64 b), a ten doplní zprava pomocí interface-ID (64 b). To může být teoreticky libovolné (hlavně, když bude unikátní v rámci podsítě a bude mít určitý formát), přičemž bezstavová autokonfigurace používá 1 z následujících způsobů: vygenerování z MAC (vloží doprostřed FF:FE a invertuje 2. bit v nejvyššim bytu), nebo vytváří identifikátory náhodně (pokud je zapnuta podpora Privacy extensions) a testuje, zda již nejsou obsazeny jiným strojem.

Windows

Tady většinou není potřeba nastavovat nic - ve Windows XP, W2003 a Vista (a obdobné to bude asi i ve Windows Server 2008) je tato volba zapnuta v defaultním nastavení (u XP a W2003 samozřejmě až po instalaci podpory IPv6). Problém ovšem nastává, pokud je zároveň zapnuta podpora Privacy extensions (ve Vistách (nejspíš i v Server 2008 a Windows 7) to je zapnuto defaultně, v XP a W2003 to občas může být taky). To je sice hezká věc, ale v podmínkách SH naprosto nepoužitelná, neboť v SH síti je anonymita vyloučena (důvody uvedeny výše), a proto je třeba tuto featuru vypnout.

V XP se to udělá následovně:

netsh interface ipv6 set privacy disabled

Ve Vistách je potřeba o 1 příkaz víc:

netsh interface ipv6 set global randomizeidentifiers=disabled
netsh interface ipv6 set privacy disabled

Případně lze použít již připravené skripty:

Linux

TODO: Doplnit

Manuální konfigurace

Pokud se stane, že bezestavová konfigurace z nějakých důvodů nefunguje tak, jak má (např. když se některý z uživatelských strojů začne tvářit jako router, čímž může lehce zmást ostatní uživatelské stroje), pak nám nezbývá nic jiného, než nastavit IP6 ručně.

Windows

Na Windows XP a Windows 2003 Server není pro konfiguraci IPv6 k dispozici GUI, takže je třeba vše řešit přes příkazovou řádku. Ale není to nic složitého, stačí zadat 2 příkazy:

netsh interface ipv6 set address <název nebo index rozhraní> <IP6>
netsh interface ipv6 set route ::/0 <název nebo index rozhraní> <IP6 defaultní brány> metric=0

Ten 1. příkaz nastaví danou IP6 na příslušné rozhraní, ten 2. zavede defaultní routu (nahrazuje to definici pomocí defaultní brány).

Název rozhraní obvykle bývá (pokud si ho uživatel explicitně nepřejmenuje) něco ve stylu Local Area Connection <číslo> (příp. v české verzi Místní připojení <číslo>). V takovém případě (tj. pokud obsahuje mezery) je třeba použít uvozovky: "Local Area Connection <číslo>" (aby to pochopil jako 1 parametr). Nebo druhá (jednodušší) možnost je použít index příslušného rozhraní. Ten se zjistí z výpisu rozhraní pomocí následujícího příkazu:

netsh interface ipv6 show interface

Ostatní parametry:

  • <IP6> se opět utvoří tak, ze se vezme prefix podsítě (ta část až po tu :: z veřejné IP rozsahy) a připojí se interface-ID vygenerované z MAC adresy
  • <IP6 defaultní brány> se je vždy 1. IP6 v daném rozsahu (je to stejné jako u IPv4) – s 1 na konci
  • metric=0 je tam pro jistotu, aby námi zadaná routa měla přednost před případnými "vetřeleckými" routami typu 2002:...


Poněkud jiná je už situace u Windows Vista a "vyšších" (Windows 2008 Server, Windows 7). Tam už je postaven protokol IPv6 na stejnou úroveň podpory jako IPv4 (je defaultně nainstalován při instalaci sítě a je poskytováno stejné administrační GUI jako pro IPv4), takže se již dá všechno naklikat stejným způsobem jako u IPv4.

V praxi to znamená, že je potřeba se proklikat na dialogové okno s vlastnostmi připojení – např. takto (viz Tutoriál):

  1. Network and Sharing Center – na ten se dá jít buď přes Control Panel nebo ikonku sítě "vpravo dole"
  2. kliknout na View Status (pokud používáte více druhů připojení – kabel, wifi, VPN atd. – tak je třeba vždy vybrat to správné připojení, které chcete konfigurovat))
  3. zvolit Properties (česky Vlastnosti)


Potom je třeba kliknout na Internet Protocol verze 6 (TCP/IPv6) a zvolit Properties (nebo stačí dvojklik). Otevře se další dialogové okno, kde je třeba zadat:

  • svojí IP6
  • délku prefixu podsítě (obdoba síťové masky u IPv4) – na SH vždy 64
  • IP6 defaultní brány

Dále je třeba doplnit DNS servery (alespoň 1). Na SH používáme tyto (viz adresy serverů):

  • 2001:718:2:0::214
  • 2001:718:2:0::218


Je to v podstatě stejné jako u IPv4, jenom s tím rozdílem, že IP6 se zapisují v šestnáctkové soustavě, IP6 je "rozsekaná" po 16 b (místo 8 b u IP4) a jednotlivé segmenty jsou odděleny : místo ..

Linux

TODO: Doplnit

Testujeme

Ne vždy se všechno podaří hned napoprvé, a tak bude asi občas potřeba otestovat, jestli se dostaneme dál než "za humna":

Ve Windows:

Nejdřív zkusíme bránu (<prefix> je 1. 64 b z vaší IP6 – např. 2001:718:2:42 pro blok 4 a "ten 2." rozsah – blíže viz veřejné IP rozsahy):

 ping <prefix>::1

Potom SH GW:

 ping 2001:718:2::1
 tracert 2001:718:2::1
 ping -6 gw

Pokud nedokáže resolvnout GW, tak zkusíme, jestli se dostaneme na DNS servery:

 ping 2001:718:2::214
 ping 2001:718:2::218
 tracert 2001:718:2::214
 tracert 2001:718:2::218

A potom už cokoliv ze světa:

 tracert -6 www.kame.net
 ping -6 www.kame.net

V GNU/Linux:

Tam je to to samé, jen je potřeba striktně používat 6-ové verze příkazů:

 traceroute6 
 ping6

Správci serverů

Ve většině případů stačí přidat (Debian GNU/Linux) pár řádků do /etc/network/interfaces

 # This file describes the network interfaces available on your system
 # and how to activate them. For more information, see interfaces(5).
 # The loopback network interface
 auto lo
 iface lo inet loopback
 auto eth0
 iface eth0 inet static
 	address 147.32.127.252
 	netmask 255.255.255.192
 	gateway	147.32.127.254
 iface eth0 inet6 static
 	address 2001:718:2:0::252
       netmask 64
       gateway 2001:718:2::1

A pak upravit ještě /etc/hosts (třeba takto)

 127.0.0.1			localhost.localdomain		localhost
 147.32.127.252			localnewstest.sh.cvut.cz	localnewstest
 2001:718:2:0::252	localnewstest.sh.cvut.cz        localnewstest
 # The following lines are desirable for IPv6 capable hosts
 ::1     ip6-localhost ip6-loopback
 fe00::0 ip6-localnet
 ff00::0 ip6-mcastprefix
 ff02::1 ip6-allnodes
 ff02::2 ip6-allrouters
 ff02::3 ip6-allhosts

Adresy

Z důvodu jednoduchosti se rozhodlo (viz konference admins - https://lists.sh.cvut.cz/cgi-bin/mailman/private/admins/2008-August/002197.html), že IPv6 adresy serverů (resp. jejich interface-ID) se budou tvořit následovně:

  • Vezme se dekadický zápis posledního oktetu z IPv4 adresy příslušného serveru a jeho BCD kód se použije jako interface-ID.

Lidově řečeno: vezmete poslední část z IPv4 adresy (= za poslední tečkou), a tu doplníte sem:

  • Pro VLAN 6 (rozsah 147.32.127.192/26) – 2001:718:2:0::<sem doplnit>
  • Pro VLAN 7 (rozsah 147.32.30.128/25) – 2001:718:2:1::<sem doplnit>

Viz třeba service1147.32.127.214 (2001:718:2::214)

Pozn.: u vlan6 můžete samozřejmě tu 0 vynechat (dle pravidel pro psaní IPv6 adres);-)

Problémy

Při problémech v GNU/Linux doporučuji zkontrolovat, zda jsou nainstalované následující balíčky:

 bind9-host - Verze programu 'host' dodávaná s BINDem 9.X 
 iputils-arping - Tool to send ICMP echo requests to an ARP address                        
 iputils-ping - Nástroj pro testování dosažitelnosti počítače na síti                    
 iputils-tracepath = Tools to trace the network path to a remote host


Podivné IPv6 adresy začínající 2002

Tyhle adresy se vám na rozhraní objeví proto, že někdo (obvykle nic netušíc) má na MS Windows zapnuté „Sdílení připojení k Internetu“ a díky tomu zároveň nabízí tunelované 6to4 adresy. IPv4 adresu takového nešťastníka zjistíte převodem osmi znaků následujících po 2002 z šestnáckové soustavy. Například 2002:9320:7201:… => 0x93=147, 0x20=32, 0x72=114, 0x01=01. Pro převod lze použít i skriptík: [1] Přijdete-li za majitelem této IPv4 adresy, objevíte obvykle Windows Vista, nebo Windows XP media center s nic netušícím majitelem.

Nejjednodušší cesta, jak problém opravit, je spustit příkazový řádek jako administrátor (Vista: Programy->Příslušenství->Příkazový řádek, pravým tlačítkem a „Spustit jako Administrátor“) a zadat:

netsh int ipv6 6to4 set rout disable

Problém se tím vyřeší okamžitě, nicméně přidělené adresy zůstanou v platnosti, dokud nevyprší jejich doba platnosti, nebo je ručně neodstraníte.

Pokud výše uvedený postup nefunguje, můžete zkusit (neověřeno)

netsh int ipv6 show int

Zapamatujte si index rozhraní, které míří do sítě SH (4 nebo více)

netsh int ipv6 set int <index rozhraní> disabled disabled

Tím se na daném rozhraní zakáže přeposílní paketů a ohlašování směrovaného rozsahu.

Poznámka: Program netsh je možné spustit i interaktivně, obsahuje vestavěnou nápovědu.

Tutoriály

Windows XP

Na Windows XP není IPv6 defaultně podporována. Je třeba následujícím postupem nejprve podporu nainstalovat:

- start - spustit:

Ipv6windows 1.jpg


ipv6 install:

Ipv6windows 2.jpg

Od této doby je podpora IPv6 nainstalována.

Windows Vista

Pokud chceme změnit nastavení IPv6 pro konkrétní připojení (v našem příkladu je pojmenováno pro snažší manipulaci jako LAN), je třeba se nejdříve proklikat až k tomu správnému dialogovému oknu.

Začneme tím, že si přes Control Panel -> Network and Sharing Center otevřeme okno zobrazující stav daného připojení:

LAN Status


Poté klikneme na Properties, a otevře se nám:

LAN Properties


Poté vybereme protokol Internet Protocol verze 6 (TCP/IPv6) a zvolíme Properties (nebo jenom dvojklik). Otevře se nám okno se základním nastavením IPv6 (obdobné tomu pro IPv4). Pokud chceme, aby se používaly automatické konfigurační mechanismy, vybíráme volby Obtain ... automatically (v české verzi to bude něco na způsob Získat ... automaticky) – přičemž pro DNS platí, že pokud vybereme manuální nastavení IP6, tak už musíme manuálně vyplnit i DNS servery.

V případě, že chceme nastavit IP6 ručně zvolíme Use the following IPv6 address, a vyplníme následující údaje (v našem příkladu jsme zvolili adresu z 1. rozsahu bloku 4 – viz IP rozsahy):

IPv6 Properties


V konkrétním případě pak budou IP6 počítače a IP6 brány záviset na tom, v kterém rozsahu se daný počítač nachází, ale ostatní údaje (délka prefixu podsítě (64) a DNS servery) budou pro SH vždy stejné.

A samozřejmě nezapomenout potvrdit pomocí tlačítka OK (včetně okna LAN Properties).

Odkazy

  1. IPv6.cz – CESNETí web o IPv6 (wiki)
  2. IPv6 na Pod-O-Lee – obsahuje celkem dobré návody na konfiguraci
  3. Původní Bobkův web o IPv6 – některé informace už jsou neaktuální (např. rozsahy)
  4. The Day The Routers Died... – trochu odlehčený pohled na problematiku nasazování IPv6 do praxe (na motivy písně American Pie);-)
Jmenné prostory

Varianty
Akce