Ipv6 praktiline kasutamine
Puust ja punaseks
Sisukord
Sissejuhatus
Ipv6 on uue põlvkonna internetiprotokoll mis on mõeldud asendama lõppeva aadressiruumiga ipv4 lahendust. Ipv6 aadressid on 128 bitised (ipv4 oli 32 biti) Interneti algusaegadest kasutatud IPv4 aadressid on otsakorral, keskregister IANA lõpetas nende jagamise juba jaanuaris 2011. Seetõttu on oodata, et IPv6 kasutuselevõtt lähiaastatel kiireneb.
Erinevalt IPv4–st puudub IPv6 juures ARP–protokolli analoog, seda asendab naabrite avastamine (neighbord discovery protocol). Oma toimimiseks vajab see ICMPv6 ja multicasti.
Muu hulgas kaasneb IPv6 protokolli kasutamisega
- 128 bitised aadressid
- Tõhustatud hirerarhiline adresseerimine ja marsruutimine globaalne unicast
- Lihtsustatud seadistamine Olekuga (statefull) ja olekuta (stateless)
- Teoorias - sisse-ehitatud turvalisus
- võrguseadmete automaatse seadistamise võimalus
- lõpeb NAT kasutamine (Network Address Translation)
- lõpeb 'private address collisions'
- parem multiedastus-ruuting (multicast routing)
- parem anycast ruuting
- lihtsam IP paketi päiste formaat
- lihtsustatud ja efektiivsem ruuting
- nö korralikult implementeeritud QoS (Quality of Service) ehk "flow labeling"
- lihtsam administreerimine (nt teatud juhtumitel lõpeb vajadus DHCP järele)
- kasutada on oluliselt rohkem erinevaid IP aadresse, 2^32 vs 2^128
Ipv6 juures tuleb arvestada raiskamisega, see on lausa soovitatud nt kõigile klientidele on soovitada anda subnet /64 kui väikseim unit. Reegel võrkude jagamisel on järgnev:
- Teenusepakkujatele usaldatakse kasutada tavaliselt 2001:xxx:xxxx:xxxx::/32 prefixiga aadresse
- Teenusepakkujad müüvad edasi 2001:xxx:xxxx:xxxx::/48 prefixiga aadresse
- Lõppkasutajatele usaldatakse 2001:xxx:xxxx:xxxx::/64 prefixiga aadresse
Üks oluline erinevus ipv4ga on see, et aadresse kirjutatakse kompressitud kujul näiteks localhosti (127.0.0.1) aadress kujul
0000:0000:0000:0000:0000:0000:0000:0001
On võimalik lühendada kujule
::1
Iga võrguseade saab alati endale kuskil neli-viis erinevat tüüpi aadressi, nt aadressi lokaalseks suhtluseks samas subnetis, multicast, suhtlus maailmaga jne. Link-lokal genereeritakse mac aadressi baasil. Serveritele on soovitatav seejuures nii aadress kui ruuting panna käsitsi ja mitte loota RA peale. See on parem nii turvalisuse seisukohalt kui ka sellelt, et aadressid tulevad genereeritutega võrreldes ilusamad ja arusaadavamad. Aadressid jagunevad kolme suurde rühma
- Link local (fe80::/10) - subneti siseselt, aadress on tuletatud võrguseadme MAC aadressist
- Unique local (fc00::/7) - nö analoogid 172 ja 192 aadressidele, soovitatav nt haldusaadressideks
- Global unicast (2000::/3) - avalikus võrgus kasutatavad ruuditavad aadressid
- Multicast (ff00::/7)
IPv6 aadressi kategooriad:
- Üksikedastus (unicast). Üksikedastusaadress näitab ühele kindale liidesele võrgus. Pakett edastatakse täpselt sellele määratud aadressile.
- Multiedastus (multicast). Multiedastusaadress näitab liideste grupile võrgus. Pakett edastatakse kõigile selles grupis.
- Suvaedastus (anycast). Suvaedastusaadress näitab mitmele liidesele. Pakett edastatakse ainult ühele neist, tavaliselt lähimale (arvutused teeb marsruuter, kasutades marsruutimisprotokolli).
IPv6 korral ei ole leviedastust (broadcast)
Tasub tähele panna, et aadresse jagab router advertisement, kuid see ei anna masinatele DNSi aadressi ja selleks tuleb seetõttu kasutada eraldi dhcpv6 serverit. Samuti on võrgus pahalasel üsna lihtne hakata RA-d mängima seega on vajalik rakendada ka RA-Guard.
Lühendamise juurde tagasi tulles siis näide ühe aadressi täiskujust ja erinevatest lühendustest
2001:0db8:0000:0000:0000:0000:0000:0000 2001:db8:0:0:0:0:0:0 2001:db8::
Näitevõrk
Meil on võrk zoo.tartu.ee, mille ISP ehk teenusepakkuja on eraldanud ka lisaks Ipv4 aadressidele tüki ipv6 võrku. Soov oleks lubada ipv6 läbi keskse ruutiva tulemüüri ning teha teenused nagu mail, veeb ja dns kättesaadavaks ka üle ipv6 aadresside.
Võrgupilt
__|__ | | tulemüür |_____| | | -|---------|----------|----....---|-- | | | __|__ __|__ __|__ | | | | | | |_____| |_____| |_____| mail veeb dns
Võrguteenuse pakkuja on enda ruuterisse kirjeldanud sellise ruutingu:
ipv6 route 2001:BB8:202D::/48 2001:BB8:202D:FF::2
Prefiks on 2001:bb8:2001::/64, tagumine ots on vabalt valitav. Näiteks www.zoo.tartu.ee võib olla 2001:bb8:2001:1::80 (pordi numbri järgi), või ipv4 eeskujul 2001:bb8:2001:1::131.
FreeBSD Ruuteri-tulemüüri seadistus
FreeBSD all tuleb anda seadmele ipv6 aadress, lubada ipv6 ruutimine ja seadistada rtadv teenus
ipv6_ifconfig_igb1="2001:bb8:2001::1/64" radvd_enable="YES" ipv6_enable="YES" rtadvd_flags="ed1" <-- ed1 on interface kuhu router reklaame saadab ipv6_gateway_enable="YES"
/usr/local/etc/radvd.conf
interface igb1 { AdvSendAdvert on; # mis intervalliga reklaam toimub MinRtrAdvInterval 30; MaxRtrAdvInterval 120; AdvDefaultPreference low; AdvHomeAgentFlag off; prefix 2001:bb8:2001::/64 { AdvOnLink on; AdvAutonomous on; }; };
Linux serverile ipv6 aadressi seadistamine
Anname võrguseadmele ipv6 aadressi
# ip -6 addr add 2001:bb8:2001::15/64 dev eth1
Seadistame ipv6 ruutingu
# ip route add ::/0 via 2001:bb8:2001::1 dev eth1
Testime
# ping -n ipv6.google.com
Naabrite vaatamine
# ip -6 neigh show 2001:bb8:2001:1::1 dev eth0 lladdr 00:1b:21:87:81:84 router REACHABLE
ruutingute vaatamine
# ip -6 route show
Ruutingu kustutamine
# ip -6 route del 2000::/3 dev eth0
Aadressi kustutamine võrguseadmelt
# ifconfig eth1 del 2001:bb8:2001::15/128
Testimine
Pingimine
$ ping6 ipv6.google.com
Traceroute
$ traceroute6 ipv6.google.com
Teenuste seadistamine
Mailiserveri seadistus
NB! Mailiserverile Ipv6 aadressi andes tuleb kindlasti kontrollida ka, et saaks ipv6 aadressile reevers kirje tehtud. Muidu kipuvad endamus teisi mailiservereid ilma reeversita ip pealt saadetud kirju ignoreerima.
Postfix ipv6 sõbralikuks ehk lubame kohalikust ipv6 võrgust kirjade saatmise
inet_protocols = all mynetworks = 127.0.0.0/8, 193.40.0.0/16, [::1]/128, [2001:BB8::]/32
Postgrey ipv6 sõbralikuks
postgrey patch http://lists.ee.ethz.ch/postgrey/msg02429.html
[2001:BB8::]/32
asemel
2001:BB8: 2001:bb8:
Postgrey võrdleb regexpe vaid domeeniga. Seega tuleb kirjutada suurtätede ja väiketähtedega ipv6 võrk. Nii ei saa kirjutada nt 193.40.0.0/ 16 võrku /^193\.40\./ kujul vaid peab olema 193.40
Veebiserveri Apache seadistus
DNS serveris on vajalik tekitada AAAA kirje mis on ipv6 analoog A kirjele. A-de arv näitab kordi kui palju on ipv6 aadresse rohkem.
Näiteks käib nimeserveris sama aadressi defineerimine ipv4 ja ipv6 jaoks järgnevalt
www.zoo.tartu.ee. 86400 IN AAAA 2001:bb8:2001:1::131 www.zoo.tartu.ee. 86400 IN A 193.40.45.131
Apache konfiguratsioon näeks välja järvnev
NameVirtualHost 193.40.0.15:80 NameVirtualHost [2001:bb8:2001::15]:80 <VirtualHost 193.40.0.15:80 [2001:bb8:2001::15]:80> ServerName webmail.zoo.tartu.ee DocumentRoot /www/webmail/ </VirtualHost>
Monitooring
Munin
Välisühenduse testimiseks komplekt aadresse
- ipv6.google.com 2a00:1450:8006::63
- www.ripe.net 2001:610:240:22::c100:68b
- www.sunet.se 2001:6b0:8:1::154
IPv4 ja Ipv6 võrkude ühendamine
Erinevaid ipv6 võrke saab üle ipv4 võrkude ühendada omavahel (6in4 tehnoloogia) tunnelitega. Keerukam lugu on olukorraga kui masinal on vaid ipv6 aadressid aga soov on pääseda ka ipv4 aadressidel asuvatele serveritele ligi. Selleks on loodud terve hulk erinevaid natil baseeruvaid tehnoloogiaid kuid päris veatu pole ükski. Praegu on parim soovitus ipv6 implementeerimiseks kasutada dual-stack lahendust ehk panna võimaluse korral arvutitele nii ipv4 kui ipv6 aadressid ühekorraga.
Tehnoloogiad võrkude vaheliseks transleerimiseks on nt nat64/dns64 (dns server tegeleb päringute ümber kirjutamisega A kirjetest AAAA kirjeteks), 464xlat, DS-lite, map-e/map-t. Traditsioonilist ipv4 juurest tuntud nati seejuures ipv6 juures rakendada ei ole võimalik
http://www.litech.org/tayga/ linuxil NAT64 süsteemi seadistamiseks
https://en.wikipedia.org/wiki/NAT64
Ipv6 ja turvalisus
Hea ülevaade ipv6 probleemidest: https://tnc2012.terena.org/getfile/1584