Muokataan sivua IPv6-tunneli
Siirry navigaatioon
Siirry hakuun
Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.
Nykyinen versio | Oma tekstisi | ||
Rivi 1: | Rivi 1: | ||
{{vanhentunut|Ainakin Xs26:n osuus vanhentunut}} | |||
IPv6 on Internetissä nykyisin käytetyn IP-protokollan version 4 seuraajaksi tarkoitettu protokollaversio, jonka tärkein uusi ominaisuus on suurempi osoiteavaruus. Ideaalitilanteessa operaattori tarjoaa käyttäjilleen IPv6-yhteyden IPv4:n rinnalla, mutta kuluttaja-asiakkaiden tapauksessa useinkaan näin ei ole. Tällöin voidaan IPv6-yhteys rakentaa myös tunneloimalla IPv6-liikenne IPv4-verkkojen yli, eli siirtämällä IPv6-liikenne paketoituna IPv4-pakettien sisällä. | |||
Tunneleita voi olla joko kiinteästi määriteltyjä, yleensä jonkinlaisen rekisteröinnin vastapuolen kanssa vaativia, tai dynaamisia, jolloin tunneli muodostuu aina tarvittaessa automaattisesti. Dynaamiset mekanismit perustuvat usein anycast-tekniikkaan, jolloin liikenne osoitetaan tunnettuun IPv4-osoitteeseen (esim. 192.88.99.1), joka on määritelty useampaan laitteeseen ympäri maailmaa, ja reitityksellä liikenne välitetään aina näistä lähimpään. | |||
Eri tunnelointimekanismit eroavat toisistaan myös paketointimenetelmän suhteen. Yksinkertaisimmissa menetelmissä IPv6-paketti sijoitetaan suoraan IPv4-otsikon perään, mikä minimoi otsikkotietoihin hukkaantuvan datan määrän. Toisaalta nämä mekanismit toimivat vain rajoitetusti palomuurien ja erityisesti NAT:n lävitse | Eri tunnelointimekanismit eroavat toisistaan myös paketointimenetelmän suhteen. Yksinkertaisimmissa menetelmissä IPv6-paketti sijoitetaan suoraan IPv4-otsikon perään, mikä minimoi otsikkotietoihin hukkaantuvan datan määrän. Toisaalta nämä mekanismit toimivat vain rajoitetusti palomuurien ja erityisesti NAT:n lävitse, joten on kehitetty myös menetelmiä, joissa IPv6 paketoidaan UDP-paketin sisään. | ||
Seuraavissa luvuissa on kuvattu tarkemmin yleisimpien tunnelointimekanismien käyttöä: | Seuraavissa luvuissa on kuvattu tarkemmin yleisimpien tunnelointimekanismien käyttöä: | ||
* Kiinteä XS26 -tunneli (kiinteä, IPv6-over-IPv4) | |||
* 6to4 (dynaaminen, IPv6-over-IPv4) | * 6to4 (dynaaminen, IPv6-over-IPv4) | ||
* Teredo (dynaaminen, IPv6-over-UDP-over-IPv4) | * Teredo (dynaaminen, IPv6-over-UDP-over-IPv4) | ||
Tämän lisäksi on myös muita | Tämän lisäksi on myös muita menetelmiä, kuten L2TP (kiinteä, IPv6-over-UDP-over-IPv4) jne. | ||
== 6to4 == | ==Kiinteä [http://www.xs26.net XS26:n] tunneli== | ||
===Vaatimukset=== | |||
Sinulla on oltava GNU/Linux kone, jolla on suhteellisen pysyvä (mieluusti kiinteä) ip-osoite (aina kun ip-osoite vaihtuu, on sinun säädettävä tunnelia). Tämän lisäksi kernelissä on oltava tuki IPv6:lle (yleensä moduulina). | |||
===Tunnelin rekisteröinti=== | |||
'''Huomautus!''' xs26:n sivut ovat uudistuneet, eivätkä tämän artikkelin ohjeet toimi suoraan, vaan joudut soveltamaan niitä! | |||
Ensimmäinen vaihe on rekisteröidä IPv6-tunneli (tässä tapauksessa) osoitteessa [http://www.xs26.net www.xs26.net] seuraavalla tavalla: | |||
Luo itsellesi tunneli kohdassa Tunnels. Tarvitset vain koneesi IP:n. Anna myös sijaintisi ja koneesi käyttöjärjestelmä (Linux) | |||
Valitse aukeavasta listasta yksi (tai useampi) palvelin pingin perusteella, ja ota sen IP talteen. | |||
Kun tunneli on valmis, on aika luoda itsellesi alue Zones-kohdasta. | |||
Luo zone valisemalla Tunnel objectiksi juuri luomasi tunneli (eli koneesi IP-osoite). Kuvaukseksi kirjoita mitä haluat. | |||
Kun zone on luotu, tulee Zones-kohtaan lähes tämäntyyppinen Zone: 3ffe:80ee:2e17::/48 (luultavasti vain 2e17 poikkeaa hieman). | |||
Nyt on sitten aika laittaa tunneli toimimaan. Kopioi Help-kohdasta tunnelin käynnistysskripti, ja tee siihen seuraavat muutokset: | |||
#Laita kohtaan MYIPv4 palvelimesi/koneesi IP-osoite<br> | |||
#Kohtaan XSIPv4 laita aiemmin tunnelia luodessasi valitsemasi palvelimen IP<br> | |||
#Kohtaan MYIPv6 laita haluamasi IPv6-osoite, jonka pitää kuulua rekisteröimääsi zoneen. Mikäli zonesi alue on 3ffe:80ee:2e17::/48, voit käyttää osoitteita 3ffe:80ee:2e17::1/128, 3ffe:80ee:2e17::2ab3/128 jne. IPv6 osoite koostuu heksa-merkistön merkeistä (1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f), joita yhdessä osassa voi olla korkeintaan 4. Neljän merkin osia IPv6-osoitteesa on 8. Samalla tavalla voit lisätä myös muita IPv6-osoitteita osoittamaan koneellesi (kohdat IP0, IP1 jne). Näitä kannattaa laittaa muutama IRC:n vhosteja varten.<br> | |||
#Poista kommenttimerkki (#) riveiltä "ifconfig $TUNLIF add $IPX" sen mukaan, montako lisä-IPv6-osoitetta laitoit (IP0, IP1, IP2 jne).<br> | |||
===Tunnelin käynnistys=== | |||
Anna skriptille suoritusoikeudet (<tt>chmod +x skriptinnimi</tt>) ja aja se komennolla ./skriptinnimi start. Katso sitten /sbin/ifconfig:in tulostetta, siitä pitäisi löytyä kutakuinkin seuraavanlainen tuloste: | |||
xs26-0 Link encap:IPv6-in-IPv4 | |||
inet6 addr: 3ffe:80ee:2eda::b2/128 Scope:Global | |||
inet6 addr: 3ffe:80ee:2eda::a1/128 Scope:Global | |||
inet6 addr: fe80::51c5:38a7/128 Scope:Link | |||
UP POINTOPOINT RUNNING NOARP MTU:1480 Metric:1 | |||
RX packets:8691 errors:0 dropped:0 overruns:0 frame:0 | |||
TX packets:7353 errors:0 dropped:0 overruns:0 carrier:0 | |||
collisions:0 txqueuelen:0 | |||
RX bytes:6347901 (6.0 MiB) TX bytes:719143 (702.2 KiB) | |||
Sitten voitkin kokeilla tunnelin toimintaa käytännössä vaikkapa komennolla ping6 eu.irc6.net. | |||
===Anycast-tunnelin käyttöönotto=== | |||
Jos sinulla on julkinen ipv4-osoite voit myöskin käyttää siihen sisältyvää /48 blockia ipv6sia. Voit muuttaa ipv4-osoitteesi ipv4to6to4-muotoon sivua http://grox.net/utils/ipv6.php hyväksikäyttäen. | |||
Anycast-tunnelia voi käyttää ilman rekisteröintiä käyttämällä IP-numeroa 192.88.99.1. Suomessa useimmilla tämä tarkoittaa, että verkkoliikenne ohjautuu Funetin ylläpitämään tunneliin, mutta 192.88.99.1 on siitä erikoinen IP-osoite, että sen jokainen operaattori voi ohjata omaan tunnelipurkkiinsa ja siten samalla IP-numerolla löytää aina lähimmän anycast-tunnelin. | |||
Seuraavilla komennoilla saat tunnelin käyttöösi. Esimerkiksi on valittu 85.76.180.111 ipv4-osoite, joka on muutettu 6to4-muotoon 2002:554c:b46f:: ja sitten otettu käyttöön ::1 ja ::2 osoitteet sen ipv6-alueesta. | |||
modprobe ipv6 | |||
ip tunnel add tun6to4 mode sit ttl 255 remote any local 85.76.180.111 | |||
ip link set dev tun6to4 up | |||
ip -6 addr add 2002:554c:b46f::1/16 dev tun6to4 | |||
ip -6 addr add 2002:554c:b46f::2/16 dev tun6to4 | |||
ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1 | |||
===DNS ja reverset=== | |||
Nyt sinulla onkin jo toimiva IPv6-tunneli, ja seuraavat vaiheet vaikuttavat lähinnä IRCiin. Seuraava vaihe on saattaa DNS toimintaan, jotta esim. vhostit toimisivat. Tämä onnistuu kätevästi [http://freedns.afraid.org afraid.org:issa] seuraavalla tavalla: | |||
#Luo itsellesi tunnus<br> | |||
#Kohdassa Subdomains valitse tyypiksi AAAA. Kohtaan subdomain kirjoita mitä haluat, ja kohdasta Domain valitse jokin public-merkitty domain. Address-kohtaan kirjoita jokin IPv6-osoitteesi pakkaamattomassa muodossa. Pakkaamattomaan muotoon saat muutettua osoitteesta http://grox.net/utils/ipv6.php löytyvällä ohjelmalla (valitse Address to full uncompressed. Huomaa kuitenkin että et tee ns. dnsspammia. Tarkista hostisi kelpaavuus ja lue lisää dnsspammista osoitteessa [http://www.dnsspam.nl dnsspam.nl].<br> | |||
#Voit samalla luoda eri subdomainin muillekkin valitsemillesi IPv6-osoitteille.<br> | |||
#Seuraavaksi mene kohtaan IPv6 Reverse ja paina Add IPv6 Subnet. Lisää subnetiksi XS26:een rekisteröimäsi Zone (jotain tyyliin 3ffe:80ee:2e17::/48). Seuraavaksi paina lisäämäsi subnetin kohdalla add record, ja lisää taas täysin pakkaamattomassa muodossa IPv6-osoitteesi (huomaa että alkuosa on valmiiksi). Hostnameksi pistä Subdomains-kohdassa samalle IPv6-osoitteelle rekisteröimäsi subdomain.<br> | |||
===Nimipalvelimet=== | |||
Jotta reverset toimisivat, sinun on lisättävä nimipalvelimet tunneliin. Mene XS26:n sivuille, ja Zones-kohdassa paina tunnelisi kohdalta nappia DNS settings. | |||
Käytä nimipalvelimina: | |||
ns1.afraid.org | |||
ns2.afraid.org | |||
(voit halutessasi vielä lisätä ns3.afraid.org:in ja ns4.afraid.org:in) | |||
Tämän jälkeen joudut odottamaan nimipalvelimien päivittymistä. Afraid.org:in palvelimet päivittyvät noin 5 minuutin välein, mutta jos käytät omalla koneellasi operaattorisi nimipalvelimia, voi kestää jopa 48 tuntia ennenkuin tiedot päivittyvät niille asti. | |||
==Anycast-tunneli== | |||
Anycast-tunnelin hyöty ylläkerrottuun kiinteään tunneliin on, ettei sitä tarvitse rekisteröidä, joten kynnys kokeiluun on pienempi. Toinen merkittävä hyöty on anycastista on se, että tunnelointi tapahtuu aina lähimmän anycast-palvelua tarjoavan reitittimen kautta, jolloin paketit usein kiertävät tunneloituna lyhyemmän matkan. Anycastiin perustuvia menetelmiä ovat 6to4 (IPv6-over-IPv4) ja Teredo (IPv6-over-UDP-over-IPv4). | |||
6to4 | === 6to4 -tunnelin pystytys === | ||
6to4- | Samoin kuin kiinteä tunneli, myös 6to4-tunneli vaatii julkisen IPv4-osoitteen tunnelin päätepisteenä olevalle koneelle. Yhteys muodostetaan luomalla tunneli omasta koneesta ulospäin, ja osoittamalla IPv6 reititys tuon tunnelin läpi osoitteen 192.88.99.1 kautta. [http://www.faqs.org/rfcs/rfc3068.html] | ||
Esimerkissä on skripti, joka ajetaan [[PPPoE]]-yhteyden käynnistyessä. Käytössä ''iproute2''-paketin ''ip''-ohjelma sekä ''ipv6calc''-ohjelma, jotka yleensä löytyvät nykyisistä Linux-jakeluista valmiiksi paketoituna. | |||
*Katso myös [http://www.csc.fi/funet/palvelut/yhd/ipv6/funet6to4 Funetin ohjeita]. | |||
===6to4-skripti=== | |||
Skriptissä käytetty $LOCALIP on verkkoyhteyden julkinen IP, ja $IPV6 on komennon "ipv6calc --ipv4_to_6to4addr $LOCALIP" tulos. | Skriptissä käytetty $LOCALIP on verkkoyhteyden julkinen IP, ja $IPV6 on komennon "ipv6calc --ipv4_to_6to4addr $LOCALIP" tulos. | ||
Rivi 34: | Rivi 105: | ||
/sbin/ip -6 route add default via ::192.88.99.1 dev tun6to4 metric 1 | /sbin/ip -6 route add default via ::192.88.99.1 dev tun6to4 metric 1 | ||
Ylläolevassa skriptissäkin reittitietoja ei välttämättä tarvitse kuin tuon alimman, myöskin [[MTU]]-arvon laskeminen 1400 voi monella olla turha. | |||
===6to4-reititys=== | ===6to4-reititys=== | ||
Mikäli Linux-koneesi on verkkosi laidalla [[NAT]]-reitittimenä, voidaan muutkin lanissa olevat koneet yhdistää nyt verkkoon julkisilla IPv6-osoitteilla. Alla mainitun radvd: | Mikäli Linux-koneesi on verkkosi laidalla [[NAT]]-reitittimenä, voidaan muutkin lanissa olevat koneet yhdistää nyt verkkoon julkisilla IPv6-osoitteilla. Alla mainitun radvd:nn käyttö ei ole pakollista, voit määrittää kaikille koneille myös käsin IPv6-osoitteet ja laittaa tunnelikoneen kautta reitityksen toimimaan, mutta käytettäessä radvd:tä kaikki sisäverkon koneet saavat automaattisesti IPv6-osoitteen. | ||
====radvd==== | ====radvd==== | ||
Jotta sisäverkon koneille saadaan | Jotta sisäverkon koneille saadaan reititettyä IP-osoitteet, pitää niille kertoa, missä IPv6-reititin on. Tätä varten tunnelikoneelle tarvitaan radvd palvelu. Radvdn löydät [http://v6web.litech.org/radvd/ täältä], tai oman jakelusi [[Paketinhallinta|paketinhallinnasta]]. | ||
Kun radvd on asennettu, täytyy /etc-kansiossa oleva radvd.conf-tiedosto luoda/päivittää. Prefix rivin tulee olla muotoa ::/64 vaikka saatkin /48-verkon. Oletetaan että laniin päin menevä verkkokortti on eth1, tällöin konfiguraatio olisi seuraavanlainen: | Kun radvd on asennettu, täytyy /etc-kansiossa oleva radvd.conf-tiedosto luoda/päivittää. Prefix rivin tulee olla muotoa ::/64 vaikka saatkin /48-verkon. Oletetaan että laniin päin menevä verkkokortti on eth1, tällöin konfiguraatio olisi seuraavanlainen: | ||
Rivi 133: | Rivi 191: | ||
/sbin/ip -6 route add default via 2002:xxxx:xxxx::2 dev eth0 metric 1 | /sbin/ip -6 route add default via 2002:xxxx:xxxx::2 dev eth0 metric 1 | ||
===6to4 reverset | ===6to4 reverset=== | ||
Jotta voisit käyttää reverse DNS:ää 6to4:n kanssa, pitää osoitealue ensin rekisteröidä, ja määrittää sille nimipalvelimet. | Jotta voisit käyttää reverse DNS:ää 6to4:n kanssa, pitää osoitealue ensin rekisteröidä, ja määrittää sille nimipalvelimet. | ||
Rivi 145: | Rivi 199: | ||
==Teredo== | ==Teredo== | ||
Teredo on viimeinen toivo IPv6-yhteyden järjestämiseen | Teredo on viimeinen toivo IPv6-yhteyden järjestämiseen. Se muistuttaa 6to4-tekniikkaa siinä, että yhteyden luominen on varsin dynaaminen eli mitään rekisteröintiä tms. ei tarvita. Merkittävä ero kuitenkin on, että IPv6-paketit tunneloidaan UDP-protokollan päällä, minkä ansiosta yhteyden muodostaminen onnistuu varmemmin [[NAT]]in tai palomuurin takaa. Teredo mahdollistaa esimerkiksi IPv6-yhteydet GPRS/3G-yhteyden yli, mutta esimerkiksi Soneran verkossa kannattaa käyttää prointernet-yhteyttä tavallisen internet-APN:n sijasta. [http://www.remlab.net/miredo/ Miredo] on Linuxissa toimiva Teredo-toteutus, joka on suhteellisen helppo asentaa, sillä se ei yleensä vaadi kernelin uudelleenkääntämistä. | ||
== Osoitteen valinta == | == Osoitteen valinta == | ||
Rivi 151: | Rivi 205: | ||
Aina kun jokin sovellus muodostaa esim. TCP-yhteyden jonnekin, täytyy valita käytettävät lähde- ja kohdeosoitteet. Käytännössä tehdään nimipalvelukysely, johon saadaan vastaukseksi joko IPv4- tai IPv6-osoite tai molemmat. [http://www.ietf.org/rfc/rfc3484.txt RFC 3484] määrittelee perusperiaatteet, joiden mukaan tehdään valinta, jos mahdollisuuksia on useampi. | Aina kun jokin sovellus muodostaa esim. TCP-yhteyden jonnekin, täytyy valita käytettävät lähde- ja kohdeosoitteet. Käytännössä tehdään nimipalvelukysely, johon saadaan vastaukseksi joko IPv4- tai IPv6-osoite tai molemmat. [http://www.ietf.org/rfc/rfc3484.txt RFC 3484] määrittelee perusperiaatteet, joiden mukaan tehdään valinta, jos mahdollisuuksia on useampi. | ||
Yksi perusperiaatteista on, että jos käytössä on sekä tunneloitu että tunneloimaton yhteys, käytetään tunneloimatonta | Yksi perusperiaatteista on, että jos käytössä on sekä tunneloitu että tunneloimaton yhteys, käytetään tunneloimatonta. Tästä syystä kone, jonka IPv6-yhteys on hoidettu esimerkiksi 6to4-tekniikalla, muodostaa oletuksena IPv4-yhteyden molempia protokollia tukevalle palvelimelle. Uudehkoissa Linux-jakeluissa tämä on mahdollista muuttaa muokkaamalla /etc/gai.conf -tiedostoa: | ||
<pre> | <pre> | ||
label ::1/128 0 | label ::1/128 0 | ||
label ::/0 1 | label ::/0 1 | ||
label 2002::/16 2 | #label 2002::/16 2 | ||
label ::/96 | label ::/96 3 | ||
label ::ffff:0:0/96 4 | label ::ffff:0:0/96 4 | ||
precendence ::1/128 50 | precendence ::1/128 50 | ||
precendence ::/0 40 | precendence ::/0 40 | ||
Rivi 169: | Rivi 220: | ||
</pre> | </pre> | ||
Toisin sanottuna kommentoimalla pois " | Toisin sanottuna kommentoimalla pois "label 2002::/16" -rivi varmistetaan että 6to4-osoitteita ei syrjitä muiden kustannuksella. Huom! gai.conf -tiedostoon tehdyt muutokset astuvat oletuksena voimaan vain käynnistämällä kone uudelleen. | ||
==Valmis== | |||
Nyt pitäisi vhostien toimia, voit testata niitä vaikka [[irssi]]llä: Käynnistä irssi ja aseta vhosti komennolla /set hostname rekisteroimasi.subdomain.jonka.olet.lisännyt.myös.ipv6.reverseksi. Sitten yhdistä vaikka EFNettiin komennolla /server -6 irc6.choopa.net. Jos yhdistys onnistuu, toimivat vhostit luultavasti. Tarkista vielä komennolla /whois nickisi, jolloin tulisi näkyä nickisi[~jotain@vhostisi]. | Nyt pitäisi vhostien toimia, voit testata niitä vaikka [[irssi]]llä: Käynnistä irssi ja aseta vhosti komennolla /set hostname rekisteroimasi.subdomain.jonka.olet.lisännyt.myös.ipv6.reverseksi. Sitten yhdistä vaikka EFNettiin komennolla /server -6 irc6.choopa.net. Jos yhdistys onnistuu, toimivat vhostit luultavasti. Tarkista vielä komennolla /whois nickisi, jolloin tulisi näkyä nickisi[~jotain@vhostisi]. | ||
Rivi 241: | Rivi 238: | ||
Sitten haluat varmaan lisää yhteyksiä IRC-verkkoihin? No, EFNettiin tuo irc6.choopa.net hyväksyy aika monta yhteyttä (en ole jaksanut testata loppuun asti). IRCNettiin yksi hyvä palvelin on eu.irc6.net, johon saa i-linet osoitteessa www.irc6.net (tarvitset IPv6-tunnelin katsoaksesi tuota sivua). Ks. serveriltä saat tosin tuosta vaan vain yhden I-linen (tämä vaatii NIC handlen, katso seuraava kohta). 5 yhteyttä saat osoitteeseen irc6.starman.ee. Lisää servereitä voit etsiä googlella, ja yhteyksien määrää saat kasvatettua hakemalla lisää i-linejä palvelimille. XS26:n käyttäjät saavat myös 5 yhteyttä IRCNettiin serveriltä irc.xs26.net. | Sitten haluat varmaan lisää yhteyksiä IRC-verkkoihin? No, EFNettiin tuo irc6.choopa.net hyväksyy aika monta yhteyttä (en ole jaksanut testata loppuun asti). IRCNettiin yksi hyvä palvelin on eu.irc6.net, johon saa i-linet osoitteessa www.irc6.net (tarvitset IPv6-tunnelin katsoaksesi tuota sivua). Ks. serveriltä saat tosin tuosta vaan vain yhden I-linen (tämä vaatii NIC handlen, katso seuraava kohta). 5 yhteyttä saat osoitteeseen irc6.starman.ee. Lisää servereitä voit etsiä googlella, ja yhteyksien määrää saat kasvatettua hakemalla lisää i-linejä palvelimille. XS26:n käyttäjät saavat myös 5 yhteyttä IRCNettiin serveriltä irc.xs26.net. | ||
IRCnettiin irc.cc.tut.fi päästää sisään ilman i-line pyyntöjä .fi-reverseillä (ilmankin reverseä pääsee) 2 yhteyttä samasta ipv6 osoitteesta (korjatkaa jos löytyy tarkempaa tietoa | IRCnettiin irc.cc.tut.fi päästää sisään ilman i-line pyyntöjä .fi-reverseillä (ilmankin reverseä pääsee) 2 yhteyttä samasta ipv6 osoitteesta (korjatkaa jos löytyy tarkempaa tietoa) | ||
===NIC-handle=== | ===NIC-handle=== |