6to4 tunelis
Prisijungimas prie IPv6 tinklo panaudojant 6to4 tunelį
Jei norite prisijungti prie IPv6 tinklo, tačiau jūsų interneto paslaugų tiekėjas neteikia tokios paslaugos, jūs tai galite padaryti panaudojant 6to4 tunelį. Vienintelis reikalavimas 6to4 tunelio sukūrimui yra viešo IPv4 adreso turėjimas. Jei jūs esate už įrenginio atliekančio NAT ir turite privatų IPv4 adresą 6to4 tunelio panaudoti negalėsite, tačiau galite naudoti Teredo tunelį.
Veikimo principas
Pagrindinė 6to4 tunelio idėja yra ta, kad prie IPv6 Internet tinklo galima prisijungti persiunčiant paketus per IPv4 tinklą iki artimiausio mazgo galinčio perkelti paketus į IPv6 tinklą. Mazgas atliekantis šį perkėlimą vadinamas 6to4 relay.
Enkapsuliacija
Tam kad IPv6 paketai galėtų keliauti IPv4 tinklu jie yra enkapsuliuojami papildomai pridedant IP (4-tos versijos) antraštę. Kadangi nepridedama jokia papildoma IPv4 L4 antraštė (pvz TCP ar UDP), tarp dviejų mazgų gali būti sudaromas tik vienas 6to4 tunelis. Tarp tunelį sudarančių mazgų nėra užmezgama jokia sesija ar siunčiami kokie nors papildomi paketai. Dėl šių savybių 6to4 tunelis gali būti sudaromas automatiškai neatliekant jokių tunelio sudarymo ar išardymo procedūrų, tai leidžia naudoti asimetrinius paketų kelius į ir iš tunelio. Taip pat dėl tokio enkapsuliacijos metodo 6to4 negali naudoti įrenginiai esantys už NAT atliekančių maršrutizatorių.
Enkapsuliuoto IPv6 paketo einančio per IPv4 tinklą pavyzdys:
00 15 63 be f1 db 00 19 d1 31 ad 72 08 00 45 00 05 14 07 7c 00 00 40 29 9a ff xx xx xx xx c0 58 63 01 60 00 00 00 04 d8 06 40 20 02 xx xx xx xx 00 00 00 00 00 00 00 00 00 00 20 01 00 00 41 37 9e 76 24 b7 07 ab 9f ce d2 d1 d6 dd fb 79 f1 a1 ef 6a ea 46 28 84 50 10 00 70 ca d5 00 00 f0 76 f8 f7 0f 02 2a 66 cc 63... |
Ethernet antraštė IPv4 antraštė IPv6 antraštė TCP antraštė Duomenys |
Paketų kelias
Įrenginiui naudojančiam 6to4 tunelį norint išsiųsti paketus į IPv6 Internet tinklą, paketai pirmiausią enkapsuliuojami (įpakuojami) š IPv4 paketus ir per IPv4 tinklą persiunčiami iki artimiausio 6to4 relay. Įrenginiai atliekantys 6to4 relay darbą nukabina IPv4 antraštę ir išleidžia IPv6 paketus į IPv6 tinklą. Taip pat iš IPv6 tinklo išsiųstas paketas, kurio gavėjas naudoja 6to4 tunelį pirmiausia pasiekia 6to4 relay, kuris prikabina IPv4 antraštę ir perduoda paketą gavėjui IPv4 tinklu.
Adresai
Tam, kad 6to4 tunelį būtų galima sudaryti automatiškai ir būtų galima padalinti 6to4 relay įrenginių apkrovimą IANA paskyrė specialų anycast tipo adresą, kuriuo pasiekiamas artimiausias 6to4 relay. Šis adresas yra 192.88.99.1. Atkreipkite dėmesį, kad tai yra realus viešas IPv4 adresas, kurį užsideda visi 6to4 relay įrenginiai. Dažnai šis adresas painiojamas su privačių C klasės adresų erdve 192.168.0.0/16, tačiau atkreipkite dėmesį, kad privačių adresų erdvės tinklo prefiksas yra 16, o ne 8 bitai! Šį adresą kaip 6to4 gateway galima naudoti iš bet kurio tinklo, nepriklausomai nuo to kas yra jūsų interneto paslaugų tiekėjas, nes šis adresas yra viešas, bendras visų 6to4 relay įrenginių IPv4 adresas. Siunčiant paketus į šį adresą jūsų interneto paslaugų tiekėjas nukreips paketus iki artimiausio 6to4 relay. Tai, kad nereikia ieškoti 6to4 tunelio paslaugos tiekėjų yra vienas iš 6to4 privalumų.
Prie IPv6 tinklo per 6to4 tunelį prisijungusiems įrenginiams IPv6 adresai automatiškai suteikiami pagal jų IPv4 adresą. Tam specialiai išskirtas IPv6 prefiksas 2002::/16. Kiekvienas mazgas gauna /48 ilgio IPv6 adresų ruožą (prefiksą), kuris sudaromas prie pagrindinio 6to4 prefikso 2002::/16 nuo 16 iki 48 bito įrašant mazgo IPv4 adresą.
Pvz, jei jūsų IPv4 adresas yra 169.254.111.222, tai jums priklauso 2002:a9fe:6fde::/48 prefiksas, nes 169.254.111.222 užrašius šešioliktainiame kode gauname a9.fe.6f.de.
Tipinio 6to4 IPv6 adreso struktūra - pvz. turime adresą 2002:a9fe:6fde:1:21c:c0ff:fe0f:f5dd
- 2002 - parodo, kad tai 6to4 adresas
- a9fe:6fde - įrenginio IPv4 adresas šešioliktainiam kode (a9fe:6fde = 169.254.111.222)
- 1 - potinklio numeris
- 21c:c0ff:fe0f:f5dd - įrenginio numeris*
- * 00:1c:c0:0f:f5:dd - įrenginio MAC adresas, jei IPv6 adresas buvo sudarytas pagal IEEE EUI64
Vietinis tinklas
Kadangi vienas įrenginys turintis viešą unikalų IPv4 adresą gauna /48 ilgio IPv6 prefiksą, jis visus šios erdvės adresus gali toliau maršrutizuoti savo tinkle. /48 ilgio prefiksas apima 2128-48=280 IPv6 adresus. Dažniausiai vietiniam IPv6 tinklui išskiriami /64 ilgio prefiksai. Todėl turint vieną įrenginį, kuris prie IPv6 prijungtas per 6to4, galima papildomai turėti dar 2128-48-64=216=65536 IPv6 tinklus, kurių prefikso ilgis yra /64.
Pvz, jei jūsų IPv4 adresas yra 169.254.111.222 ir jūs gaunate 2002:a9fe:6fde::/48 prefiksą, jūs jį galite išdalinti į tokius prefiksus:
- 2002:a9fe:6fde::/64 (tai yra tas pats kaip 2002:a9fe:6fde:0::/64)
- 2002:a9fe:6fde:1::/64
- 2002:a9fe:6fde:2::/64
- 2002:a9fe:6fde:3::/64
- ...
- 2002:a9fe:6fde:ffff::/64
Jei turite savo maršrutizatorių kuris turi viešą IPv4 adresą ir atlikdamas NAT teikia internetą jūsų vidiniam tinklui ar tinklams, kuriuose naudojami privatūs IPv4 adresai - jūs galite maršrutizatoriuje sukonfigūruoti 6to4 tunelį ir savo privatiems tinkams suteikti IPv6 adresus iš gaunamo 6to4 prefikso. Tuomet jūsų maršrutizatorius bus ir IPv6 maršrutizatoriumi ir visi kiti tinklo įrenginiai galės turėti ryšį su IPv6 be jokių papildomų tunelių ar mechanizmų.
IPv6 tinklo konfigūracijos privačiame tinkle panaudojant 6to4 tunelį pavyzdys:
Reversiniai 6to4 DNS įrašai
Jei norite sukurti PTR įrašus savo naudojamiems 6to4 adresams galite nukreipti jums priklausančio 6to4 prefikso zoną į savo DNS serverius. DNS serverius galite nurodyti puslapyje https://6to4.nro.net/, tačiau tam kad parodytumėte, kad jūs tikrai esate naudojamo 6to4 prefikso administratorius jūs į šį puslapį turite ateiti iš įrenginio kuris turi patį pirmą IPv6 adresą iš jūsų 6to4 prefikso. Būtina nurodyti bent du DNS serverius.
Pvz, jei jūsų 6to4 prefiksas yra 2002:a9fe:6fde::/48, jūs turite ateiti iš įrenginio turinčio 2002:a9fe:6fde:: (tas pats kas 2002:a9fe:6fde:0::0) adresą. Kadangi IPv6 adresuose specialiai neišskiriami network ir broadcast adresai tai pirmas potinklio adresas yra tas kuris baigiasi 0. Tuomet jūsų nurodyti DNS serveriai gautų įgaliojimus (angl. authority) e.d.f.6.e.f.9.a.2.0.0.2.ip6.arpa zonai.
Įrenginių konfigūravimas
6to4 konfigūravimas Linux operacinėje sistemoje
# ip tunnel add tun6to4 mode sit remote any local {jūsų IPv4 adresas} (sukuriamas tunelio interfeisas) # ip link set dev tun6to4 up (įjungiamas tunelio interfeisas) # ip -6 addr add {jūsų IPv6 6to4 adresas}/16 dev tun6to4 # ip -6 route add 2000::/3 via {6to4 gateway} dev tun6to4
arba
# ifconfig sit0 up # ifconfig sit0 add {jūsų IPv6 6to4 adresas}/16 # route -A inet6 add 2000::/3 gw {6to4 gateway} dev sit0
o norint prijungti ir kitus tinkle esančius įrenginius, reikėtų sukonfigūruoti tinklo kortą, pvz:
# ifconfig eth0 add {kitas adresas iš to pačio IPv6 potinklio}/64
6to4 konfigūravimas Debian distribucijoje:
/etc/network/interfaces faile įrašykite:
auto tun6to4 iface tun6to4 inet6 v4tunnel pre-up modprobe ipv6 address {jūsų IPv6 6to4 adresas} netmask 16 gateway {6to4 gateway} endpoint any local {jūsų IPv4 adresas}
arba
auto sit0 iface sit0 inet6 static address {jūsų 6to4 IPv6 adresas} netmask 16 gateway {6to4 gateway}
6to4 konfigūravimas Windows tipo sistemose:
Jei naudojate Windows Vista ar naujesnę operacinę sistemą ir turite viešą IPv4 adresą sistema automatiškai sukonfigūruos 6to4 tunelį.
Jei naudojate Windows XP atlikite šiuos veiksmus:
ipv6 rtu 2002::/16 2 (įjungiamas 6to4 palaikymas) ipv6 adu 2/{jūsų IPv6 6to4 adresas} ipv6 rtu ::/0 2/{6to4 gateway} pub
6to4 konfigūravimas NetBSD:
Pirmiausia, reikėtų pasitikrinti, kad bent vienas stf(4) interfeisas būtų sukonfigūruotas kernelyje:
pseudo-device stf 1 # 6to4 IPv6 over IPv4 encapsulation (apie tai) # ifconfig stf0 inet6 {jūsų IPv6 6to4 adresas} prefixlen 16 alias (priskiriame adresą) # route add -inet6 default {6to4 gateway}
6to4 konfigūravimas FreeBSD:
Kaip ir NetBSD, pirmiausia patikrinkite ar yra stf device, tuomet į rc.conf įrašykite:
ipv6_enable="YES" ipv6_network_interfaces="auto" ipv6_gateway_enable="YES" ipv6_prefix_nn0="2002:xxxx:xxxx" (nn0 yra jūsų interfeisas) stf_interface_ipv4addr="xxx.xxx.xxx.xxx" (jūsų IPv4 adresas) ipv6_static_routes="default" ipv6_route_default="{6to4 gateway}"