Ero sivun ”IPv6-tunneli” versioiden välillä
Siirry navigaatioon
Siirry hakuun
p
ei muokkausyhteenvetoa
Pb (keskustelu | muokkaukset) p (otsikkokoot) |
pEi muokkausyhteenvetoa |
||
(22 välissä olevaa versiota 10 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
IPv6 on | [[IPv6]] on jo kaksikymmentävuotias protokolla, joten ideaalitilanteessa palveluntarjoaja tarjoaa käyttäjilleen IPv6-yhteyden IPv4:n rinnalla. Näin ei kuitenkaan aina käy. 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ä. | ||
Tunnelit voivat olla joko kiinteästi määriteltyjä tai dynaamisia, jolloin tunneli muodostuu aina tarvittaessa automaattisesti. Kiinteät vaativat yleensä jonkinlaisen rekisteröinnin vastapuolen kanssa. Dynaamiset mekanismit taas 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. Siksi onkin kehitetty myös menetelmiä, joissa IPv6 paketoidaan UDP-paketin sisään. | |||
Seuraavissa luvuissa on kuvattu tarkemmin yleisimpien tunnelointimekanismien käyttöä: | |||
* 6to4 (dynaaminen, IPv6-over-IPv4) | |||
* Teredo (dynaaminen, IPv6-over-UDP-over-IPv4) | |||
* Tunnel broker, esim. XS26 -tunneli (kiinteä, IPv6-over-IPv4) | |||
( | |||
Tämän | Tämän lisäksi on myös muita tunnelointimenetelmiä, kuten L2TP (kiinteä, IPv6-over-UDP-over-IPv4) jne. | ||
== | == 6to4 == | ||
6to4 on helppo ja suhteellisen varmatoiminen anycastiin perustuva tunnelointimekanismi. Rajoituksena se ei yleensä sovi tilanteisiin, joissa ei ole käytössä julkista IP-osoitetta (eli ollaan NAT:n takana), tai palomuuri ei päästä ns. protokolla 41:tä läpi. | |||
6to4-osoite on muotoa 2002:aabb:ccdd:..., jos koneen IPv4-osoite on aa.bb.cc.dd. Käytännössä 6to4 toimii muodostamalla tunneli omasta koneesta osoitteeseen 192.88.99.1 (=oma lähin 6to4-reititin), ja reitittämällä ulospäin menevät IPv6-paketit tuohon tunneliin. Sisäänpäin tulevat paketit siirtyvät taas siten, että reitityksessä vastapään kannalta lähin 6to4-reititin muodostaa tunnelin osoitteeseen aa.bb.cc.dd ja reitittää paketit sinne. Tästä syystä reititys ei ole symmetrinen, minkä takia vikatilanteiden paikantaminen voi olla vaikeaa, mikäli verkosta löytyy väärin toimiva tai ylikuormitettu 6to4-reititin. | |||
Lisätietoja löytyy [http://www.csc.fi/hallinto/funet/palvelut/ipv6/funet6to4 Funetin ohjeista]. | |||
=== 6to4 -tunnelin pystytys skriptillä === | |||
Alla olevassa esimerkissä on skripti, joka ajetaan IPv4-yhteyden pystyttämisen jälkeen. Käytössä on ''iproute2''-paketin ''ip''-ohjelma sekä ''ipv6calc''-ohjelma, jotka yleensä löytyvät nykyisistä Linux-jakeluista valmiiksi paketoituna. | |||
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 94: | Rivi 34: | ||
/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 | ||
=== 6to4 käynnistysskripteissä === | |||
==== Redhat-sukuiset jakelut (RHEL, CentOs, Fedora) ==== | |||
6to4-yhteyden saa käynnistyksen yhteydessä lisäämällä alla mainittuihin skripteihin pari riviä: | |||
/etc/sysconfig/network | |||
NETWORKING_IPV6=yes | |||
IPV6_GATEWAYDEV=tun6to4 | |||
IPV6_DEFAULTDEV="tun6to4" | |||
/etc/sysconfig/network-scripts/ifcfg-eth0 (korvaa eth0 käytössäsi olevalla verkkoyhteydellä) | |||
IPV6INIT=yes | |||
IPV6TO4INIT=yes | |||
===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:n 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 reititettävät IPv6-osoitteet, pitää niille kertoa, missä IPv6-reititin on. Tätä varten tunnelikoneelle tarvitaan radvd palvelu. Radvd:n 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: | |||
(korvaa {$IPV6} heksamuodossa olevalla ip-osoitteellasi) | (korvaa {$IPV6} heksamuodossa olevalla ip-osoitteellasi) | ||
Rivi 128: | Rivi 81: | ||
/sbin/ifconfig eth1 | /sbin/ifconfig eth1 | ||
Listauksessa pitäisi olla inet6 addr: 2002:xxxx:xxxx | Listauksessa pitäisi olla "inet6 addr: 2002:xxxx:xxxx" -muotoinen osoite. | ||
Mikäli verkkokortilla ei ole 2002:xxxx:xxxx ipv6 osoitetta, voit lisätä sen seuraavasti: | Mikäli verkkokortilla ei ole 2002:xxxx:xxxx ipv6 osoitetta, voit lisätä sen seuraavasti: | ||
/sbin/ip -6 addr add ${IPV6}:2/128 dev eth1 | /sbin/ip -6 addr add ${IPV6}:2/128 dev eth1 | ||
Tarkista ipv6 reititys tunnelikoneella: | Tarkista ipv6 reititys tunnelikoneella: | ||
Rivi 158: | Rivi 110: | ||
... | ... | ||
===Suora IPv6 lähiverkossa=== | ====Suora IPv6 lähiverkossa==== | ||
Tarkista koneelta lähiverkossa, että sillä on IPv6-osoite | Tarkista koneelta lähiverkossa, että sillä on IPv6-osoite | ||
Rivi 181: | Rivi 133: | ||
/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 | ||
Huomaa, että yhdyskäytäväkoneeseen ''on viitattava'' link-local -osoitteella, tai muuten yhteys toimii hyvin epävakaasti. Lisää tietoa: http://www.mail-archive.com/users@ipv6.org/msg02424.html . | |||
Link-local-osoitteen saa selville komennolla | |||
ip -6 addr | |||
===6to4 reverset=== | ===6to4 reverset nimipalvelussa=== | ||
Jotta voisit käyttää reverse | Jotta voisit käyttää reverse DNS:ää 6to4:n kanssa, pitää osoitealue ensin rekisteröidä, ja määrittää sille nimipalvelimet. | ||
Tämä onnistuu [http://6to4.nro.net 6to4.nro.net:issä]. Avaa sivu IPv6 yhteensopivalla selaimella, ja syötä tarvittavat nimipalvelin tiedot. Voit käyttää nimipalvelimina kohdan 1.4 mukaisesti afraid.org:ia. | Tämä onnistuu [http://6to4.nro.net 6to4.nro.net:issä]. Avaa sivu IPv6 yhteensopivalla selaimella, ja syötä tarvittavat nimipalvelin tiedot. Voit käyttää nimipalvelimina kohdan 1.4 mukaisesti afraid.org:ia. | ||
==Teredo== | ==Teredo== | ||
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 | Teredo on viimeinen toivo IPv6-yhteyden järjestämiseen, mikäli kiinteä yhteys tai 6to4 ei onnistu. 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 ns. symmetrisen NAT:n läpi sekään ei välttämättä toimi. Esimerkiksi Soneran verkossa kannattaa kokeilla 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ä. Lisäksi se löytyy valmiiksi paketoituna uusimista jakeluista. | ||
== Osoitteen valinta == | |||
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, koska sitä pidetään varmempitoimisena. 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> | |||
label ::1/128 0 | |||
label ::/0 1 | |||
label 2002::/16 2 | |||
label ::/96 3 | |||
label ::ffff:0:0/96 4 | |||
label fec0::/10 5 | |||
label fc00::/7 6 | |||
#label 2001:0::/32 7 | |||
precendence ::1/128 50 | |||
precendence ::/0 40 | |||
precendence 2002::/16 30 | |||
precendence ::/96 20 | |||
precendence ::ffff:0:0/96 10 | |||
</pre> | |||
Toisin sanottuna kommentoimalla pois "#label 2001:0::/32" -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. | |||
==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. | |||
===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. | |||
==Valmis== | ===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 207: | Rivi 241: | ||
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) (Nykyään irc.cc.tut.fi ei hyväksy ilman i-lineä .fi-reversellä eikä ilmankaan) | ||
===NIC-handle=== | ===NIC-handle=== |