ipv6 tunneling
Potřebuji IPv6 adresu/připojení, ale můj poskytovatel Internetu (ISP) stále IPv6 nepodporuje.
IPv6 pakety jsou zapouzdřeny (vloženy) do IPv4 paketů a přeneseny po stávající IPv4 infrastruktuře k zprostředkovateli tunelu. Zprostředkovatel tunelu má nativní přístup do IPv6 sítě a proto může IPv4 část paketu odstranit a IPv6 paket přeposlat dále do IPv6 sítě. Tento proces je znázorněn v následujícím obrázku.
Seznam zprostředkovatelů tunelu lze získat například na stránkách http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers.
V tomto návodu využijeme služeb dvou nejznámějších Evropských zprostředkovatelů:
http://www.tunnelbroker.net/ - Hurricane Electric
http://www.sixxs.net/ - SixXS
6in4, AYIYA, 6to4, Teredo, ISATAP, ....
AYIYA zapouzdřuje IPv6 do UDP protokolu (IPv6-in-UDP-in-IPv4). Pro komunikaci používá port UDP/5072.
Výhody:
- nevyžaduje veřejnou IPv4 adresu
- nevyžaduje podporu protokol-41 na směrovačích
- funguje i při použití NATu či vícenásobných NATů
- umožňuje existenci více tunelů za NATem
- automatické nastavení tunelu
- autentizace
Nevýhody:
- větší režie oproti protokol-41 (6in4,6to4,...)
AYIYA | = IPv4(20) + UDP(8) + AYIYA(44) | = 72 B |
proto-41 | = IPv4(20) | = 20 B |
AYIYA je zatím podporována pouze zprostředkovatelem SixXS. Vytvoření tunelu je velice jednoduché, časově nejnáročnější je získání uživatelské jména a hesla.
Registrace uživatele - na stránkách http://www.sixxs.net/signup/create/
Registrace tunelu - po přihlášení na https://www.sixxs.net/home/ vybrat v levém menu "Request tunnel" a typ tunelu "Dynamic NAT-traversing IPv4 Endpoint using AYIYA"
AICCU a automatické nastavení tunelu - instalace aplikace AICCU; po zadání uživatelské jména a hesla bude IPv6 tunel vytvořen zcela automaticky
Na registračních stránkách vyplňte formulář a pokud možno uveďte smysluplný důvod proč chcete účet vytvořit.
Např. "I would like to use IPv6, but my ISP still doesn't support it."
Nepříjemné je, že pro e-mail kontakt nemůžete použít volně dostupné email adresy, které poskytují např. gmail.com, seznam.cz, centrum.cz, ... Vhodnou alternativou je email z práce nebo email přidělený od Vašeho poskytovatele Internetu (ISP). Více informací na http://www.sixxs.net/faq/account/?faq=email.
Po odeslání formuláře Vám okamžitě přijde email s výzvou k potvrzení registrace, stačí kliknout na odkaz v dolní části emailu.
Pokud Váš email prošel kontrolou, dostanete obratem další email s informací, že Váš požadavek byl předán pracovníkům SixXS k manuálnímu schválení. Schválení by dle stránek www.sixxs.net nemělo trvat déle než týden, ve skutečnosti to bude mnohem dříve (autorovi článku přišlo potvrzení za 6minut).
Po schválení Vaší žádosti, obdržíte email s uživatelským jménem, heslem a odkazem k přihlášení.
You have succesfully completed the user registration at SixXS.
Your account has been verified and the SixXS Staff have approved the information you have supplied.
You can now log in to the website with the following credentials:
Username : uzivatel_jmeno
Password : uzivatel_heslo
Secure URL : https://www.sixxs.net/home/
Po přihlášení na stránkách https://www.sixxs.net/home/ vyberte v levém menu "Request tunnel". Ponechte nebo vyberte typ tunelu "Dynamic NAT-traversing IPv4 Endpoint using AYIYA". Uvedené veřejné adresy si nemusíte všímat, zadejte pouze město/stát a pokračujte k dalšímu kroku. Pokud máte na výběr z několika PoP, vyberte geograficky nejbližší nebo pokud jste schopni otestovat dostupnost jednotlivých PoP, vyberte ten s nejlepší odezvou a propustností. Následující obrázek ilustruje postup registrace tunelu.
Po odeslání registrace obdržíte informativní email s Vaší žádostí o tunel, která stejně jako registrace uživatele bude čekat na schválení pracovníky SixXS (autorovi přišlo schválení za 10hodin).
Ukázka schválené žádosti o tunel.
The SixXS Staff have honored your request for a tunnel with the following specifications:
-------
Tunnel Id : T21733
PoP Name : simbx01 (si.medinet [AS8591])
Your Location : Prague, cz
SixXS IPv6 : 2001:15c0:65ff:233::1/64
Your IPv6 : 2001:15c0:65ff:233::2/64
SixXS IPv4 : 212.18.63.73
Tunnel Type : Dynamic (ayiya)
-------
The SixXS PoP at AS8591 will set up the tunnel automatically in the next hour. Please be patient and do not be alarmed if the tunnel does not ping after you enabled it. Check the tunnelinfo pages for configuration examples.
Install the AICCU client software as per instructions on: http://www.sixxs.net/tools/aiccu/
Note: Keep your machine NTP synced, if the timestamp difference is bigger than 120 seconds the heartbeat will be silently dropped. The AICCU client will not work when it detects a large time difference.
Konečně po zdlouhavém procesu registrace jsme získali IPv6 adresu 2001:15c0:65ff:233::2. Tunel bude na straně zprostředkovatele zprovozněn do jedné hodiny od schválení.
AICCU (Automatic IPv6 Connectivity Client Utility) nám umožní automatické nastavení a vytvoření registrovaného tunelu.
AICCU je multiplatformní aplikace a například na Debian založených distribucí je součásti repositáře. Pokud ovšem na daném systému není k dispozici, lze aplikaci stáhnout na stránkách společnosti SixXS.
Instalace aplikace AICCU.
$ sudo apt-get install aiccu
Obrázky ilustrují instalační dialog.
Po úspěšné instalaci a konfiguraci AICCU vznikne konfigurační soubor "/etc/aiccu.conf" spolu se záznam ve startovacích skriptech systému, který zajistí automatické nastavení tunelu při spuštění systému.
$ sudo cat /etc/aiccu.conf | grep -v "^#"
username VaseUzivatelskeJmeno
password VaseHeslo
protocol tic
server tic.sixxs.net
tunnel_id T21733
ipv6_interface sixxs
verbose false
daemonize true
automatic true
requiretls false
$ ls -al /etc/rc2.d/S20aiccu
lrwxrwxrwx 1 root root 15 2009-06-03 08:17 /etc/rc2.d/S20aiccu -> ../init.d/aiccu
Pokud bude potřeba změnit konfiguraci AICCU, lze přímo editovat konfigurační soubor "/etc/aiccu.conf" nebo využít instalačního dialogu, který se vyvolá příkazem
$ sudo dpkg-reconfigure aiccu
Tunel můžeme kdykoliv spustit nebo ukončit příkazy
$ sudo aiccu start
$ sudo aiccu stop
Zprávy o činnosti aplikace lze najít např. v souboru /var/log/syslog
$ grep aiccu /var/log/syslog
Jun 23 12:57:53 ... aiccu: Succesfully retrieved tunnel information for T21733
Jun 23 12:57:53 ... aiccu: AICCU running as PID 2278
Jun 23 12:57:53 ... aiccu: [AYIYA-start] : Anything in Anything (draft-02)
Jun 23 12:57:53 ... aiccu: [AYIYA-tun->tundev] : (Socket to TUN) started
Po úspěšném sestavení tunelu vznikne síťové rozhraní sixxs (výchozí název) s přidělenou IPv6 adresou.
$ ip -6 a show dev sixxs
7: sixxs: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qlen 500
inet6 2001:15c0:65ff:233::2/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::14c0:65ff:233:2/64 scope link
valid_lft forever preferred_lft forever
Pro ověření nové IPv6 konektivity spustíme první IPv6 ping ;)
$ ping6 -n ripe.net
PING ripe.net(2001:610:240:11::c100:1319) 56 data bytes
64 bytes from 2001:610:240:11::c100:1319: icmp_seq=1 ttl=56 time=92.1 ms
64 bytes from 2001:610:240:11::c100:1319: icmp_seq=2 ttl=56 time=90.4 ms
Obrázky a postup instalace AICCU pro Windows uživatele byl převzat z http://www.sixxs.net/faq/account/?faq=10steps
1.Na stránkách http://www.sixxs.net/tools/aiccu/ stáhnout odpovídající verzi AICCU pro Windows a pravděpodobně také Tun/Tap32 ovladač.
2.Spustit AICCU aplikaci a přihlásit se.
3.Zvolit registrovaný tunel.
4.Výsledná konfigurace tunelu, pro jeho vytvoření stačí kliknout na "Enable".
Zkontrolovat, zda-li u kontaktu uživatele nebyla použita volně dostupné email adresa. Použijte email z práce nebo email přidělený od Vašeho poskytovatele Internetu (ISP). Více informací na http://www.sixxs.net/faq/account/?faq=email.
Zkontrolovat, jsou-li na lokálním systému povoleny tyto porty pro odchozí provoz:
UDP/5072 ... používá AYIYA
TCP/3874 ... TIC (Tunnel Information and Control protocol), který používá AICCU pro sestavení tunelu u SixXs
Další informace o nastavení firewallu http://www.sixxs.net/faq/connectivity/?faq=firewalled
Pokud je v logu tato zpráva:
$ grep aiccu /var/log/syslog
Jun 23 12:50:51 ... aiccu: The clock is off by 172 seconds, use NTP to sync it!
Jun 23 12:50:51 ... aiccu: Couldn't retrieve first tunnel for the above reason, aborting
je potřeba synchronizovat čas, například dle volně dostupného NTP serveru ntp.nic.cz.
$ sudo ntpdate -u -v ntp.nic.cz
23 Jun 12:55:53 ntpdate[2111]: ntpdate 4.2.4p4@1.1520-o Wed May 13 21:05:58 UTC 2009 (1)
23 Jun 12:55:53 ntpdate[2111]: step time server 217.31.205.226 offset -171.103851 sec
Časový rozdíl oproti serveru u SixXs lze zjistit na http://www.sixxs.net/tools/timecheck/.
Při instalaci (linunx) je vytvořen záznam "/etc/rc2.d/S20aiccu", který předpokládá funkční nastavení internetového připojení v rámci startovacích skriptů (spuštění systému). Pokud však používáte například bezdrátové připojení, které se nastaví až při spuštění grafické rozhraní (Gnome, KDE, ...), nebude inicializace tunelu fungovat. Možným řešením je spustit AICCU až po fungujícím bezdrátovém připojení.
Například u Gnome správce oken kliknout v hlavním menu na "System" -> "Preferences" -> "Sessions". Zvolit "Add" a vyplnit parametry dle následujícího obrázku. Nevýhoda: Budete vyzváni k zadaní přihlašovacího hesla do systému. Samozřejmě to lze obejít editací /etc/sudoers.
6in4 zapouzdřuje IPv6 do IPv4 hlavičky (IPv6-in-IPv4). V IPv4 hlavičce se jako protokol použije číslo 41 (0x29), který identifikuje IPv6 v IPv4.
Výhody:
- menší režie (pouze 20 B) oproti AYIYA a Teredo
- rychlá registrace uživatele/tunelu u Hurricane Electric zprostředkovatele
Nevýhody:
- vyžaduje veřejnou adresu domácího směrovače (ADSL, WiFi) nebo počítače
- nefunguje u vícenásobného NATu
- směrovače v rámci tunelu nesmí blokovat protokol 41
- statické nastavení tunelu: při změně veřejné adresy (lokálního konce tunelu) je nutná manuální úprava konfigurace tunelu na webových stránkách zprostředkovatele
- bez autentizace
Pro sestavení 6in4 tunelu použijeme zprostředkovatele Hurricane Electric.
Registrace uživatele je u HE velice snadná, stačí vyplnit registrační stránky a obratem bude na uvedený email zasláno uživatelské jméno a heslo. Oproti SixXS u Hurricane Electric nejsou žádné restrikce na poskytovatele email adresy.
Po přihlášení v nabídce "User Functions" vybrat "Create Regular Tunnel". Opsat IPv4 adresu z řádku "You are viewing from IP:" do políčka "IPv4 endpoint:". Vybrat nejbližší server ze seznamu a potvrdit. Dialog registrace tunelu je zobrazen na následujícím obrázku.
Upozornění: Při registraci tunelu je vyžadován funkční ping na veřejnou adresu domácího směrovače/počítače. Dostupnost veřejné adresy si lze ověřit na stránkách www.subnetonline.com.
Po registraci se zobrazí detailní informace a tunel je u zprostředkovatele okamžitě vytvořen. Přidělená IPv6 adresa je v políčku "Client IPv6 address:". Kromě IPv6 adresy pro koncový bod tunelu je zároveň přidělen IPv6 /64 prefix viz řádek "Routed /64:", který lze využít pro domácí IPv6 podsíť. Můžete také využít rekurzivních doménových serverů a těšit se z IPv6 přístupu na Google služby, stačí na začátek souboru /etc/resolv.conf uvést IP adresy z obou řádků "Anycasted IPv? Caching Nameserver:".
Ukázka obsahu souboru /etc/resolv.conf s rekurzivními NS servery zprostředkovatele
nameserver 2001:470:20::2
nameserver 74.82.42.42
V sekci "Example OS Configurations (Windows, Linux, etc.):" je možnost vygenerovat příkazy pro konfiguraci tunelu u nejznámějších operačních systému: Linux, Open/Net/FreeBSD, JunOS, IOS, Mikrotik, Solaris, Windows a dalších.
V případě uživatelů za NATem je potřeba přepsat veřejnou IPv4 adresu lokálního konce tunelu za privátní IPv4 adresu. V případě Linuxu a "ip tunnel add ..." příkazu, lze celou sekci "local IP_adresa" vynechat.
Ukázka pro Windows Vista
netsh interface ipv6 add v6v4tunnel IP6Tunnel 94.169.120.21 216.66.80.30
# v případě NAT přepíšeme veřejnou IPv4 adresu lokálního konce tunelu za přidělenou privátní IP adresu; např.
netsh interface ipv6 add v6v4tunnel IP6Tunnel 192.168.1.2 216.66.80.30
netsh interface ipv6 add address IP6Tunnel 2001:470:1f0a:154::2
netsh interface ipv6 add route ::/0 IP6Tunnel 2001:470:1f0a:154::1
Na konec souboru /etc/network/interfaces přidat.
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
# přidělená IPv6 adresa (Client IPv6 address)
address 2001:470:1f08:13f::2
netmask 64
# IPv4 adresa vzdáleného konce tunelu (Server IPv4 address)
endpoint 216.66.80.26
ttl 64
up ip link set mtu 1280 dev he-ipv6
# IPv6 adresa vzdáleného konce tunelu (Server IPv6 address)
up ip route add default via 2001:470:1f08:13f::1 dev he-ipv6
Na Linuxu příkazem ("he-ipv6" je výchozí název tunelu u Hurricane Electric)
ip t del he-ipv6
Na Windows
netsh interface ipv6 del int "IP6Tunnel"
Pokud by se změnila IPv4 veřejná adresa lokálního konce tunelu, je potřeba vyvolat editační okno kliknutím na IPv4 adresu v řádku "Client IPv4 address:" u webovém rozhraní konfigurace tunelu (obrázek výše) a tento údaj aktualizovat.
Při registraci se vyžaduje funkční ping (dostupnost) na veřejnou adresu domácího směrovače/počítače. Ukázka povolení u Belkin směrovače.
Tunelovací metoda Teredo je převážně určena uživatelům operačního systému Windows, kteří mají podporu Teredo v systému integrovanou od výchozí instalace. Uživatelé jiných operačních systémů mohou také využít Teredo, ale lepší varianta je výše zmíněná AYIYA.
Teredo dokáže fungovat i skrze NAT (kromě symetrického) a nevyžaduje IPv4 veřejnou adresu. Detailní informace o Teredo lze získat na následujících odkazech:
Pavel Satrapa - IPv6 (cz) ipv6tf.org: Teredo (en)
Microsoft: Using IPv6 and Teredo (en)
Microsoft: Internet Protocol Version 6 (en)
Mircrosoft: Teredo Overview (en)
Teredo podpora ve Windows:
- Microsoft® Windows® XP with Service Pack 1 (SP1) (disabled by default)
- Windows XP with Service Pack 2 (SP2) (disabled by default)
- Windows Server® 2003 (disabled by default)
- Windows Vista™ (enabled by default)
- Windows Server Code Name "Longhorn" (now in beta testing) (enabled by default)
zdroj: microsoft.com
Ve Windows Vista by mělo být Toredo automaticky povoleno, u starších systému je potřeba Teredo nejdříve aktivovat.
Spustíme příkazovou řádku přes nabídku Start => Všechny programy => Příslušenství => Příkazový řádek nebo přes "Start" -> "Spustit ..."-> napsat "cmd" a kliknout na tlačítko "OK".
1.Instalovat IPv6 protokol
C:\> netsh int ipv6 install
2.Povolit Teredo. Doporučujeme využít nášTeredo server "teredo.nic.cz".
C:\> netsh int ipv6 set teredo client teredo.nic.cz
nebo
C:\> netsh int ipv6 set teredo client teredo.remlab.net
Počkejte přibližně minutu než skončí inicializační komunikace mezi klientem/serverem a detekce NATu. Poté by mělo být Pv6 připojení funkční.
Informace o stavu Teredo lze získat příkazy
C:\> netsh int ipv6 show teredo
C:\> netsh int ipv6 show int teredo
C:\> ipconfig
Ukázka funkčního nastavení Teredo tunelu. Stav tunelu by měl být označen jako "qualified", NAT byl v našem případě detekován jako "restricted".
Přidělenou IPv6 adresu lze získat příkazem "ipconfig".
Funkční IPv6 připojení lze otestovat příkazem "ping6 ripe.net".
Vypnutí Teredo tunelovaní
C:\> netsh int ipv6 set teredo disabled
Odinstalování IPv6 protokolu
C:\> netsh int ipv6 uninstall
Stav tunelu by měl být "qualified". Informace o Teredo tunelu lze zjistit příkazem "netsh int ipv6 show teredo".
Možné důvody chybových stavů:
- Tunel nebude fungovat pokud byl NAT označen jako symetrický
- Nefunkční Teredo server.
Pokud se nedaří sestavit tunel s aktuálním Teredo server, zkuste zvolit alternativní:
teredo.remlab.net (France)
teredo.autotrans.consulintel.com (Spain)
teredo.ipv6.microsoft.com (USA, Redmon)
203.233.154.10 (NCA, Korea)
debian-miredo.progsoc.org (Australia)
zdroj:www.ipv6tf.org
Pokud přidělená IPv6 adresa začíná "3FFE:..." (6bone testing), pro přidělení správné adresy je potřeba modifikovat Teredo klienta. K dispozici jsou dvě možnosti:
a) Instalovat Windows Update KB922819
b) Úprava systémových registrů
Uložte soubor "teredo_prefix.reg" (přes pravé tlačítko a uložit jako) na svůj systém, v průzkumníku vyhledejte uložený soubor a klikněte pravým tlačítkem na název souboru. Z vyvolané nabídky (obrázek níže) zvolte "Sloučit" a potvrďte. Změna se projeví po restartu systému.
Pokud má Windows XP IPv6 konektivitu přes Teredo, bude stále preferovat IPv4. IPv6 spojení bude použito v případech, kdy má cílový host pouze IPv6 adresu, jako např. ipv6.google.com.
Pozn. není určeno pro Windows uživatele.
Pokud aplikace nebude umět pracovat s IPv6 adresou, zkusit za název aplikace doplnit 6 či použít parametr -6
# ping6, tracepath6, traceroute6
# wget -6, ip -6, nmap -6, dig -6
# ip6tables
Zápis IPv6 adresy v aplikacích pomocí hranatých závorek.
scp user@[2001:610:240:11::c100:1319]:
http://[2001:610:240:11::c100:1319]/
$ ip -6 address show # vypíše seznam adres protokolu IPv6
$ ip -6 r # vypíše IPv6routovací tabulku
$ ip tunnel show # vypíše seznam tunelů
sit0: ipv6/ip remote any local any ttl 64 nopmtudisc
he-ipv6: ipv6/ip remote 216.66.80.26 local any ttl 64
$ ip t del he-ipv6 # odstraní tunel "he-ipv6"
Odstraní všechny směrovací informace spojené s "he-ipv6" tunelem.
$ ip -6 route flush dev he-ipv6
Zobrazí rozhraní a next-hop, který se použije pro uvedenou cílovou adresu.
$ ip -6 r get 2001:4860:a005::68
2001:4860:a005::68 via 2001:15c0:65ff:233::1 dev sixxs src 2001:15c0:65ff:233::2 metric 1024 expires 21333882sec mtu 1280 advmss 1220 hoplimit 4294967295
Zrušení autokonfigurace IPv6 u eth0 síťového rozhraní.
$ sudo sysctl -w net.ipv6.conf.eth0.accept_ra=0
IPv4/6 kalkulátor podsítí.
$ sipcalc 2001:15c0:65ff::0/48
-[ipv6 : 2001:15c0:65ff::0/48] - 0
[IPV6 INFO]
Expanded Address - 2001:15c0:65ff:0000:0000:0000:0000:0000
Compressed address - 2001:15c0:65ff::
Subnet prefix (masked) - 2001:15c0:65ff:0:0:0:0:0/48
Address ID (masked) - 0:0:0:0:0:0:0:0/48
Prefix address - ffff:ffff:ffff:0:0:0:0:0
Prefix length - 48
Address type - Aggregatable Global Unicast Addresses
Network range - 2001:15c0:65ff:0000:0000:0000:0000:0000 -
2001:15c0:65ff:ffff:ffff:ffff:ffff:ffff
Monitoring IPv6.
$ sudo tcpdump -n -i eth0 proto 41 # 6in4 provoz
$ sudo tcpdump -i eth0 -n icmp6
$ sudo tcpdump -i any -n ip6
Dotaz na všechny sousedy na daném segmentu.
$ ping6 -I eth0 ff02::1
Dotaz na všechny směrovače na daném segmentu.
$ ping6 -I eth0 ff02::2