Įvadas
IPv4 yra puikus protokolas, sukurtas leisti ryšį tarp kompiuterių tinkluose. Šis tinklas palaipsniui vystėsi į Internetą, didžiausią įrenginių tinklą žemėje. IPv4 kūrėjai niekada nemanė, kad Internetas augs tokiu eksponentišku tempu. Greitai paaiškėjo, kad turimų IPv4 adresų kiekis nepakaks masiškai prijungtų įrenginių srautui. Todėl vidurio 1990-ųjų pradžioje pradėtas svarstyti naujo protokolo (IPv6) kūrimas. 1998 m. IPv6 tapo IETF (Interneto inžinerijos darbo grupės) projektu, o 2017 m. jis tapo interneto standartu. Nuo IPv6 sukūrimo yra lėtas perėjimas prie IPv6 standarto ir IPv4 naudojimo nutraukimas. Deja, tai nėra lengva, nes IPv4 tvirtai įsitvirtino internete.
Perėjimas buvo lėtas, bet pastaraisiais metais yra daug didesnis spaudimas diegti IPv6 internete. IPv6 naudojimas pastaraisiais 5 metais išaugo nuo apie 5% iki apie 36% ir neparodo sulėtėjimo. Bet kodėl kam nors reikėtų naudoti IPv6? Ar yra naudos ir/ar trūkumų palyginti su IPv4? Kaip IPv6 skiriasi nuo IPv4? Kaip jis veikia?
Atsakysiu į šiuos klausimus ir dar daugiau. Šis straipsnis turi prielaidą, kad skaitytojas jau žino, kaip veikia IPv4, bent jau pagrindus.
Kodėl naudoti IPv6?
Jeigu įdėtumėte IPv6 adresą šalia IPv4 adreso, būtų lengva nepastebėti, kad vienas yra kito sekėjas. Jie turi visiškai skirtingą žymėjimą. Tačiau jie naudoja tą patį pagrindinį sistemą. Vienintelis skirtumas yra naudojamas skaičių sistema IP adreso atvaizdavimui. IPv4 adresai rodomi kaip keturi trijų skaitmenų grupės, skirtos taškais, o IPv6 adresai naudoja aštuonis keturiais šešioliktainiais skaitmenimis, atskirtais dvitaškiais.
IPv6 šešioliktainis: 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff
IPv4 dešimtainis: 192.0.2.223
Jeigu pažvelgtumėte į IPv6 adresą, jį gali būti sunku perskaityti, ir jį išmokti atmintinai yra neprotinga. Tačiau IPv6 kūrėjai įgyvendino keletą suspaudimo triukų, kurie gali būti taikomi IPv6, kad sutrumpintų viso adreso ilgį. Kartais tai gali padaryti netgi trumpesnį nei IPv4 adresą. Jei konvertuojame IPv6 adresą į dvejetainį kodą, tai gali būti lengviau suvokti pagrindinę struktūrą. Pavyzdžiui, aukščiau pateiktas IPv6 adresas dvejetainiu kodu atrodo taip:
0010000000000001:0000110110111000:1111111111111111:1111111111111111:1111111111111111:1111111111111111:1111111111111111:1111111111111111
Tai jau gali būti girdėta kai kuriems, nes tai atrodo gana panašu į IPv4 dvejetainį adresą, tik daugiau. IPv4 adresas susideda iš 32 bitų, o IPv6 adresas turi 128 bitus – keturis kartus daugiau. Kaip pastebėjote, tai reiškia, kad galime sukurti 2 pakelius iki 128 IPv6 adresų. Tai būtų apie 340 trilijonus trilijonų trilijonų IPv6 adresų! Taigi iš esmės neįmanoma, kad kada nors pasibaigs IPv6 adresai, kaip įvyko su IPv4 adresais, kurių buvo tik 2 pakelius iki 32 (apie 4,2 milijardai) galimų adresų.
IPv6 suteikia ne tik didesnį prieinamų IP adresų kiekį, bet taip pat yra būtinas interneto ilgalaikiam gyvybingumui ir plėtrai.
IPv6 privalumai
Kuriant IPv6, buvo siekiama padidinti protokolo saugumą. IP saugumas (IPsec) suteikia saugų būdą perduoti jautrią informaciją per internetą. Ši sistema susideda iš IETF sukurtų atviro standarto. IPsec teikia keletą tinklo saugumo paslaugų, kurios naudojamos duomenims apsaugoti. Pirma, duomenų konfidencialumas yra funkcija, leidžianti siuntėjui šifruoti paketus prieš juos siunčiant per tinklą. Tai užtikrina, kad tik numatytasis paskirties įrenginys gali perskaityti paketą. Antra, duomenų vientisumo tikrinimas galimas gavėjui, leidžiant jam patikrinti IPsec paketų vientisumą ir pamatyti, ar duomenys buvo bet kaip pakeisti keliaujant į paskirties vietą. Trečia, duomenų kilmės autentifikavimas leidžia gavėjui autentikuoti siuntėjo siunčiamų paketų šaltinį. Šie patobulinimai leidžia siųsti informaciją per viešą tinklą be modifikacijų, stebėjimo ar klastojimo.
IPv6 vis dar apima šiuos privalumus:
- NAT nebėra būtinas, bet vis dar gali būti naudojamas
- Automatinė konfigūracija
- Nebėra privačių adreso susidūrimų
- Antraštės formato supaprastinimas
- Geresnis daugiapakopio maršrutizavimo
Šiuos privalumus išnagrinėsiu platesniuose skyriuose.
IPv6 trūkumai
Nors yra daug privalumų naudojant IPv6, yra keletas trūkumų ir problemų, kurias IPv6 gali sukelti galutiniam naudotojui.
Akivaizdiausias trūkumas yra IPv6 adresų ilgis. Kaip anksčiau minėta, IPv6 adresas susideda iš aštuonių keturių šešioliktainių skaitmenų grupių. Tokio ilgo adreso įsiminimas ar jo įvedimas į terminalą administraciniam darbui gali būti skausmingas.
IPv6 maršrutizavimas turi būti įjungtas daugelyje sistemų, prieš tai jį galima būtų naudoti. Tai reiškia, kad administratoriams kyla daugiau darbo, dėl kurio reikia ilgesnio sąrankos laiko. Susijęs su šiuo trūkumu yra tai, kad daugelio senųjų galutinio naudotojo įrenginių nėra sukonfigūruoti naudoti IPv6.
Kadangi dauguma pasaulio vis dar naudoja IPv4, naudojant tik IPv6 sistemas, gali sumažėti srautas į jūsų sistemą, arba jūsų sistema gali negalėti bendrauti su IPv4 sistemomis.
Kaip struktūrizuotas IPv6 adresas?
Iš esmės IPv6 vis dar atlieka tą pačią funkciją kaip IPv4. IPv6 adresai struktūrizuoti panašiai kaip IPv4, t.y. jie turi tinklo prefiksą ir sąsajos/šaltinio identifikatorių. IPv6 prefiksai yra tie patys kaip ir IPv4 adresuose naudojamos subneto kaukės. IPv6 naudoja CIDR (beklasės tarpdomenų maršrutizavimo) notaciją maskės rodyti, naudojant sveikąjį skaičių nuo 1 iki 128, kad būtų nurodyti tinklo bitai.
Tinklo prefiksas Sąsajos identifikatorius
XXXX : XXXX : XXXX : XXXX : XXXX : XXXX : XXXX : XXXX
Pavyzdžiui, 2001:db8:85a3:8d3:0000:0000:0000:001a/64
, 2001:db8:85a3:8d3::/64
yra tinklo prefiksas, o galimi IPv6 adresai šiame diapazone yra nuo 2001:db8:85a3:8d3:0000:0000:0000:0001/64
iki 2001:db8:85a3:8d3:ffff:ffff:ffff:ffff/64
.
( XXXX : XXXX : XXXX ) : XXXX : XXXX : XXXX : XXXX : XXXX
Pirmieji 3 IPv6 adreso tinklo prefikso laukai (pažymėti skliaustais) yra svetainės prefiksas. Prefiksas apibūdina viešą topologiją, paprastai jūsų svetainei priskirtą ISP (Internet Service Provider) arba RIR (Regional Internet Registry).
XXXX : XXXX : XXXX : ( XXXX ) : XXXX : XXXX : XXXX : XXXX
Sekantis ketvirtasis laukas (pažymėtas skliaustais) yra subneto prefiksas, kuris apibrėžia tinklo vidinę topologiją maršrutizatoriui.
IPv6 adresų suspaudimas
Anksčiau minėjau, kad IPv6 adresai gali būti suspausti, kad būtų trumpesni ir lengviau skaitytini. Šiam supaprastinimo metodui taikomos dvi taisyklės. Pirma, pirminiai nuliai gali būti pašalinti iš bet kurios adreso grupės (heksadecimtainės) grupės. Pavyzdžiui,
1001:0005:ffc0:0000:0000:5893:0032:0001
gali būti supaprastinta į,
1001:5:ffc0:0:0:5893:32:1
Mes negalime pašalinti galūninių nulių, nes maršrutizatoriai tada manytų, kad nulis atėjo iš priekio esančios heksadecimtainės grupės. Pavyzdžiui, jei pašalintume galūninį nulį iš šios heksadecimtainės grupės,
ffc0
Maršrutizatorius nepridėtų nulio atgal į heksadecimtainės grupės galą. Vietoj to nulis būtų įstatytas prieš kitus skaitmenis, kaip, pavyzdžiui:
0ffc
Antra, galime pašalinti tęstinės nulius. Šiame pavyzdyje turėjome 2 ketvertų nulius. Tai galima pakeisti į,
1001:5:ffc0::5893:32:1
Maršrutizatoriai, skaitantys šį adresą, automatiškai užpildo trūkstamus nulius. Tačiau ši procedūra gali būti atlikta tik kartą adrese. Taigi mūsų IPv6 adresas jau atrodo daug lengviau skaitytinas.
Automatinė konfigūracija
IPv6 kompiuteriai turi galimybę generuoti savo adresą, palengvinant administravimą ir mažinant laiko sąnaudas. IPv6 sąsajai automatiškai konfigūruoti vyksta kelios etapų. Šio proceso metu sukuriamas link-local adresas. Link-local adresas yra IPv6 adresas, leidžiantis bendravimą tarp to paties tinklo esančių kompiuterių. Adresas gali būti nustatomas naudojant vieną iš dviejų mechanizmų – be būsenos ir su būsena.
Būsenos be būsenos adreso automatinė konfigūracija (SLAAC) nereikalauja jokių kompiuterių rankinių nustatymų ir jokių papildomų serverių konfigūracijų. Šis mechanizmas leidžia kompiuteriui automatiškai generuoti savo adresus. Adresams generuoti naudojama vietinė informacija ir maršrutizatorių skelbiami nevietiniai duomenys. Maršrutizatoriai skelbia prefiksus, kurie identifikuoja tinklą ar tinklus, susijusius su ryšiu. Kompiuteriai generuoja sąsajos identifikatorių, kuris unikaliai identifikuoja sąsają tinkle. Kombinuojant prefiksą ir sąsajos identifikatorių, formuojamas unikalus adresas. Jei nėra maršrutizatorių, kompiuteris gali generuoti tik vietinius adresus.
Būsenos su būsena automatinės konfigūracijos modelyje kompiuteriai gauna sąsajos adresus ar konfigūracijos informaciją ir parametrus iš serverio. Tai galima palyginti su IPv4 DHCP procesu, o serveriai, tiekiantys informaciją, taip pat vadinami DHCPv6 serveriais. Šie serveriai palaiko duomenų bazę, kuri tikrina, kurie adresai buvo priskirti kuriems kompiuteriams. Būsena su būsena automatinės konfigūracijos protokolas leidžia kompiuteriams gauti adresus ir kitą konfigūracijos informaciją iš serverio. Būsenos ir be būsenos automatinė konfigūracija dažnai papildo viena kitą. Pavyzdžiui, kompiuteris gali naudoti be būsenos automatinę konfigūraciją, kad sukonfigūruotų savo adresus, bet naudoti būsenos su būsena automatinę konfigūraciją gauti kitą informaciją.
IPv6 adresų tipai
Yra keletas IPv6 adresų tipų. Šiame skyriuje žvelgsime į kiekvieno tipo apibrėžimą ir trumpai paaiškinsime, kuo jie naudojami ir kaip jie palyginami su IPv4.
Adreso tipas | Prefiksas | Naudota |
---|---|---|
Globalus unikalus | 2000::/3 | Viešai maršrutizuojamas |
Unikalus vietinis | fc00::/7 | Maršrutizuojamas LAN tinkle |
Ryšio vietinis | fe80::/10 | Nemaršrutizuojamas |
Multicast | ff00::/8 | Adresai grupėms |
Anycast | 2000::/3 | Bendrinis adresas |
Globalus unikalus
adresas yra viešai maršrutizuojamas adresas, panašiai kaip viešas IPv4 adresas. Šiuos adresus galima atpažinti pagal prefiksą 2000::/3
. Tai reiškia, kad pirmieji 3 bitai nustato globalų unikalų
adresą.
Unikalus vietinis
adresas yra panašus į IPv4 privataus adreso tipą ir nėra globaliai maršrutizuojamas. Šiems adresams yra priskirtas prefiksas fc00::/7
. Panaudojus pirmuosius 7 bitus, unikalus vietinis
adresas visada prasidės su “f”, po to seka “c” arba “d”.
Ryšio vietinis
adresai gali būti laikomi greitais automatiniais IP adresais, kuriuos galima generuoti be jokios kitos įranga. Šie adresai nėra maršrutizuojami per tinklą. Kaip jau minėta anksčiau, šie adresai skirti tik bendravimui su kitomis įrenginio tinkle. Jie turi prefiksą fe80::/10
. Galbūt jau pastebėjote šį modelį. Tai rodo, kad ryšio vietiniai
adresai panaudos pirmuosius 10 bitų prasidėti nuo “fe”.
Multicast
adresai yra adresai, priskirti grupėms įrenginių, kurie klausysis to konkretaus multicast
adreso. Šio tipo adresą lengva atpažinti, nes jis visada prasideda “ff”.
Galiausiai turime anycast
adresus. Šie adresai yra įdomūs tuo, kad gali būti priskirti keliems įrenginiams. Duomenys tuomet bus siunčiami artimiausiam įrenginiui su tuo adresu. Nėra konkretaus IP diapazono anycast
adresams, ir jie naudoja tą patį diapazoną kaip globalūs unikalus
adresai.
IPv4 naudoja transliavimo
adresus, kurie leidžia įrenginiui siųsti paketą visiems tinklo įrenginiams. Šis adreso tipas buvo atmestas IPv6, ir vietoj to naudojamas multicast
.
Antraštės formato supaprastinimas
IPv6 antraštė buvo supaprastinta ir atsisakė kai kurių IPv4 antraštės laukų. Tai sumažina juostos plotį, nepaisant padidėjusio adreso dydžio. IPv6 antraštė yra tik dvigubai didesnė nei IPv4 antraštė, nors adresas yra keturis kartus ilgesnis.
IPv6 antraštė | ||
---|---|---|
Versija | Eismo klasė | Srauto etiketė |
Paketo ilgis | Kita antraštė | Maršruto riba |
Šaltinio adresas | ||
Paskirties adresas |
IPv4 antraštė | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Versija | IHL | Paslaugų tipas | Bendras ilgis | ||||||||
Identifikavimas | Vėliavos | Fragmento poslinkis | |||||||||
Gyvavimo laikas | Protokolas | Antraštės suma | |||||||||
Šaltinio adresas | |||||||||||
Paskirties adresas | |||||||||||
Parinktys | Pildymas |
Kaip matome, IPv6 antraštės supaprastinimas lėmė daugelio IPv4 antraštės laukų išnykimą. Pažiūrėkime į laukus, kurie daugiau nėra IPv6, ir analizuokime, kaip IPv6 tvarko šią informaciją. Laukai, kurie yra identiški, pažymėti lygybės ženklu.
IPv4 Antraštė | IPv6 Antraštė | |||
---|---|---|---|---|
Versija | 4 bitai | = | Versija | 4 bitai |
IHL (Interneto Antraštės Ilgis) | 4 bitai | ≠ | Neegzistuoja IPv6 | – |
Paslaugų tipas | 8 bitai | = | Eismo klasė | 8 bitai |
Neegzistuoja IPv4 | – | ≠ | Srauto etiketė | 20 bitai |
Bendras ilgis | 16 bitai | = | Paketo ilgis | 16 bitai |
Identifikavimas | 16 bitai | ≠ | Neegzistuoja IPv6 | – |
Vėliavos | 3 bitai | ≠ | Neegzistuoja IPv6 | – |
Fragmento poslinkis | 13 bitai | ≠ | Neegzistuoja IPv6 | – |
Gyvavimo laikas (TTL) | 8 bitai | = | Maršruto riba | 8 bitai |
Protokolas | 8 bitai | = | Kitas antraštė | 8 bitai |
Antraštės suma | 16 bitai | ≠ | Neegzistuoja IPv6 | – |
Šaltinio adresas | 32 bitai | = | Šaltinio adresas | 128 bitai |
Paskirties adresas | 32 bitai | = | Paskirties adresas | 128 bitai |
Parinktys | 0-320 bitų | = | Papildomos antraštės | 0-320 bitų |
Pildymas | Kintama ilgį | ≠ | Neegzistuoja IPv6 | – |
Lauko “Eismo klasė” funkcija yra paketo klasės arba prioriteto identifikatorius ir atlieka tą pačią funkciją kaip IPv4 “Paslaugų tipas” laukas.
“Srauto etiketės” laukas yra vienintelis naujas laukas IPv6. Jis nurodo tarpinėms įrenginiams, kad paketas priklauso konkretaus sekoje esančių paketų tarp šaltinio ir paskirties. Šis laukas skiria skirtingus srautus tarp IPv6 maršrutizatorių.
“Paketo ilgis” yra “Bendro ilgio” lauko atitikmuo IPv6 ir tiesiog rodo paketo duomenų dalies ilgį baitais.
“Gyvavimo laikas” laukas pervadintas į “Maršruto ribą”, nes tai tiksliau apibūdina lauko funkciją.
“Protokolo” laukas pervadintas į “Kito antraštės” ir nurodo protokolą paketo duomenų dalyje, pvz., TCP, UDP ar ICMPv6. Šis laukas turi keletą papildomų parinkčių palyginti su IPv4 “Protokolo” lauku, tokias kaip Generic Routing Encapsulation (GRE), Encapsulating Security Payload (ESP) ir Open Shortest Path First (OSPF).
Nebėra NAT
NAT (Tinklo Adreso Vertimas) yra protokolas, kuris dažniausiai naudojamas atvaizduoti vietinius/privačius IP adresus į vieną viešą IP adresą ir atvirkščiai, siekiant suteikti vietiniams įrenginiams interneto prieigą. NAT buvo sukurtas kaip būdas sulėtinti neišvengiamą IPv4 adresų išsekimą. Tačiau didelis IPv6 adresų kiekis tai keičia, nes nebėra būtinybės taupyti adresus, ir kiekvienam įrenginiui lengva priskirti unikalų visame pasaulyje maršrutizuojamą adresą. IPv6 gali nebūti būtina naudoti NAT, tačiau vis tiek galima jį įgyvendinti IPv6 tinkle. Jis daugiausia naudojamas versti IPv4 adresus į IPv6 adresus.
Išvada
Šiuo metu internete dauguma įrenginių vis dar naudoja IPv4. Praeis dar keletas metų, kol IPv4 bus visiškai pakeistas IPv6 naudai. Naujesniojo protokolo naudojimas yra pažengęs toliau moderniose pasaulio šalyse, tokiose kaip Vokietija, JAV, Saudo Arabija ir Japonija, ir šalyse, kuriose didelė dalis gyventojų turi sparčiai augantį IT sektorių, pavyzdžiui, Indija ir Brazilija. Tačiau prognozuojama, kad ateityje gyvensime pasaulyje, kuriame bus ir IPv4, ir IPv6, ir kur daugelis sistemų veiks dvigubu IP sistemos modeliu. Tik tada, kai IPv6 aplenks IPv4 rinkos dalies atžvilgiu, galėsime turėti tik IPv6 sistemų.
Šaltiniai
- https://docs.oracle.com/cd/E19683-01/817-0573/chapter1-42/index.html
- http://www.csg.uzh.ch/teaching/ws0405/inteco/extern/talk12.pdf
- https://en.wikipedia.org/wiki/IPv6_address
- https://www.networkworld.com/article/3254575/what-is-ipv6-and-why-aren-t-we-there-yet.html
- https://www.researchgate.net/publication/4010090_Impact_of_IPv6_on_End-User_Applications
- https://www.google.com/intl/en/ipv6/statistics.html
- https://www.internetsociety.org/blog/2014/06/ipv6-for-the-end-user/
- https://labs.ripe.net/author/emileaben/measuring-world-ipv6-day-long-term-effects/
- https://www.hitechwhizz.com/2020/08/6-advantages-and-disadvantages-drawbacks-benefits-of-ipv6.html
- https://www.ietf.org/blog/sudden-changes-and-ipv6-everyone/
- http://www.vomodagroup.com/pdfs/how-will-ipv6-impact-your-network.pdf
- https://www.iana.org/assignments/ipv6-address-space/ipv6-address-space.xhtml
- https://www.rfc-editor.org/rfc/rfc5737.html
- https://en.wikipedia.org/wiki/IPv6_packet#Extension_headers
- https://www.networkcomputing.com/networking/six-benefits-ipv6
- https://www.setra.com/blog/ipsec-for-ipv6-is-it-more-secure-than-ipv4
- https://www.redhat.com/sysadmin/ipv6-packets-and-ipsec
- http://www.ipv6now.com.au/primers/IPv6PacketSecurity.php
- https://www.rfc-editor.org/rfc/rfc2402.html