Ukubethelela zonke iindawo ze-IPv6 kwitshaneli

Kusele iintsuku ezimbalwa de kuqale ukuhamba okutsha kwireyithi "Injineli yeNethiwekhi" ukusuka OTUS. Kulo mba, singathanda ukwabelana nawe ngenguqulelo yezinto eziluncedo kwisihloko.

Ukubethelela zonke iindawo ze-IPv6 kwitshaneli

Uthotho lwezithuba zebhlog kwiingcebiso kunye namaqhinga okusombulula imiba ye-ping ye-IPv6 (Isicelo se-ICMPv6 Echo/Impendulo ye-Echo)

Nceda uqaphele ukuba ndisebenzisa i-Linux (ngokukodwa i-Fedora 31), nangona kunjalo umyalelo we-ping we-syntax yezinye iinkqubo zokusebenza kufuneka ngethemba elifanayo kakhulu.

Ukubethelela zonke iindawo ze-IPv6 kwitshaneli

Ingcebiso yokuqala nelula kuku-ping zonke iindawo ze-IPv6 kwikhonkco.

I-IPv6 isebenzisa iidilesi ezininzi kuzo zonke iintlobo zonxibelelwano olunye ukuya kwabaninzi. Akukho kusasazo (okanye kusasazo) iidilesi ze-IPv6. Oku kwahlula i-IPv6 kwi-IPv4, apho kukho iindidi ezininzi zeedilesi zosasazo, umzekelo, idilesi “yosasazo olulinganiselweyo” 255.255.255.255 [RFC1122].

Nangona kunjalo, kukho idilesi ye-IPv6 "yonke-nodes-multicast", ngoko ke siya kusebenzisa oko ukubethelela zonke iindawo ze-IPv6 kwikhonkco. (Idilesi "yokusasaza" eneneni yidilesi ebizwa ngokuba yi-multicast, eliqela losasazo oluninzi olubandakanya zonke iindawo. Qaphela ukuba, umzekelo, "iqela" okanye idilesi ye-multicast ivuliwe kwiidilesi zosasazo ze-Ethernet kumaleko wekhonkco. ).

Zonke iindawo ezininzi ze-IPv6 idilesi yesitishi: ff02::1. ff Ichaza idilesi ye-IPv6 yokusasazwa okuninzi. U-0 olandelayo yinxalenye yeflegi enamasuntswana angamiselwanga.

Ngexesha elizayo 2 ichaza indawo yeqela losasazo oluninzi. Ngokungafaniyo needilesi ze-IPv4 ezininzi, iidilesi ezininzi ze-IPv6 zine-scope. Ixabiso lomda libonisa indawo yenethiwekhi apho ipakethi yemulticast ivumelekile ukuba idluliselwe phambili. Nje ukuba ipakethe ifikelele kumda wobubanzi obuchaziweyo, ipakethe kufuneka iwiswe, nokuba ibala layo leHop Count liyi-nonzero. Kunjalo, ukuba ubalo lwe-hop lufikelela ku-zero phambi kokufikelela kumda weqela le-multicast, luphinda lusekwe kwakhona kwangoko. Nalu uluhlu olupheleleyo lwe IPv6 multicast scope.

Ekugqibeleni ::1 ixela iqela le-multicast-nodes-zonke.

Malunga nedilesi ff02::1 Kufuneka kuqatshelwe ukuba ayicacanga. Kumamkeli we-IPv6 ononxibelelwano oluninzi, olufana nerutha okanye umamkeli onezinto ezininzi, idilesi ff02::1 akukho nto apho unokuxela ukuba loluphi ujongano omaluthumele kuyo izicelo ze-ICMPv6 echo okanye ulindele ukufumana iimpendulo ze-echo ze-ICMPv6 xa zifika. ff02::1 iyasebenza kwaye inokusetyenziswa nakweyiphi na imidibaniso kunye nemijelo edityaniswe kwinode yojongano oluninzi.

Ke xa sicofa zonke iindawo ze-IPv6 kwikhonkco, kufuneka ngandlela ithile sixelele into eluncedo ping ye IPv6, ujongano olunokusetyenziswa.

Ukuchaza i-Interfaces-Ukhetho lomgca womyalelo

Njengoko sele sibonile, idilesi ye-multicast-nodes esifuna ukuyisebenzisa ngu- ff02::1 - ayiboneleli naluphi na ulwazi malunga nokuba loluphi ujongano omaluthumele kwaye ufumane isicelo se-ICMPv6 echo kunye neepakethi zeempendulo ze-echo.

Ke, siluchaza njani ujongano oluza kusetyenziselwa indawo yedilesi ye-multicast okanye indawo yedilesi ye-unicast yeNdawo?

Indlela yokuqala necacileyo kukubonelela ngayo njengeparameter kwisicelo esisisebenzisayo.

Yeyoncedo ping sinikezela ngenketho -I.

[mark@opy ~]$ ping -w 1 -I enp3s2 ff02::1
ping: Warning: source address might be selected on device other than: enp3s2
PING ff02::1(ff02::1) from :: enp3s2: 56 data bytes
64 bytes from fe80::1d36:1fff:fefd:82be%enp3s2: icmp_seq=1 ttl=64 time=0.438 ms
64 bytes from fe80::f31c:ccff:fe26:a6d9%enp3s2: icmp_seq=1 ttl=64 time=0.589 ms (DUP!)
64 bytes from fe80::7e31:f5ff:fe1b:9fdb%enp3s2: icmp_seq=1 ttl=64 time=5.15 ms (DUP!)
64 bytes from fe80::f7f8:15ff:fe6f:be6e%enp3s2: icmp_seq=1 ttl=64 time=58.0 ms (DUP!)
64 bytes from fe80::877d:4ff:fe1a:b881%enp3s2: icmp_seq=1 ttl=64 time=62.3 ms (DUP!)
64 bytes from fe80::877d:4ff:fe1a:ad79%enp3s2: icmp_seq=1 ttl=64 time=62.8 ms (DUP!)
 
--- ff02::1 ping statistics ---
1 packets transmitted, 1 received, +5 duplicates, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.438/31.544/62.786/29.566 ms
[mark@opy ~]$

Sisebenzisa le-ping ye-multicast-nodes, sifumene iimpendulo ezivela kwi-6 IPv6 nodes. Iimpendulo zivela kwi-Link-Local IPv6 iidilesi zendawo, ukuqala ngesimaphambili fe80::/10.

ukuba ping ayiqhubeki nokuthumela izicelo ze-ICMPv6 echo ngokungenasiphelo de siyiphazamise, siqhele ukucacisa inani leepakethi ezithunyelwa ngo -c ukhetho. Nangona kunjalo, oku kukwathintela i-ping ekwamkeleni nasekuboniseni ngaphezulu kwe-ICMPv6 enye impendulo ye-echo xa uthumela isicelo se-echo se-ICMPv6 semulticast. Endaweni yoko, sisebenzise i--w ukhetho ukucacisa ukuba i-ping kufuneka igqibe emva komzuzwana omnye, nokuba zingaphi izicelo ze-ICMPv1 echo okanye iimpendulo ze-echo ezithunyelweyo okanye ezifunyenweyo.

Enye into ekufuneka uyithathele ingqalelo kukuba (DUP!) isiphumo kwimpendulo yesibini nelandelayo. Ezi pakethe zichongwa njengeempendulo eziphindiweyo ngenxa yokuba zinexabiso elifanayo le-ICMP lolandelelwano njengezicelo ze-echo ze-ICMPv6 eziye zathunyelwa kuqala. Zivela ngenxa yokuba isicelo se-ICMPv6 se-echo se-multicast siphumela kwiimpendulo ezininzi ze-unicast. Inani labaphindwayo likwabonisiwe kwisishwankathelo seenkcukacha-manani.

Ukuchaza i-Interfaces-ID yoMmandla

Enye indlela yokubonisa ujongano olusetyenziswayo njengenxalenye yeparamitha yedilesi ye-IPv6.

Singawubona umzekelo woku kwimveliso yeping, apho iidilesi zeenginginya eziphendulayo ze-IPv6 zikwanazo nesimamva. %enp3s2, umzekelo:

64 bytes from fe80::1d36:1fff:fefd:82be%enp3s2: icmp_seq=1 ttl=64 time=0.438 ms

Le ndlela yokuchaza ujongano ichazwe ngokusesikweni kwi- [RFC4007], "IPv6 Defined Address Architecture." Nangona zihlala zibizwa ngokuba lujongano lwenkqubo yokusebenza, eneneni zichaza into eqhelekileyo- "indawo" okanye "umda."

Isizathu sokuba neezowuni ngokubanzi okanye iindawo ezisikelweyo kukuba, njengoko kukhankanyiwe kwi-[RFC4007], indawo ye-IPv6 inokuba nojongano olwahlukeneyo lwe-IPv6 oludityaniswe kwisitishi esinye. Olu jongano ngamalungu ommandla omnye.

Kufuneka kwenzeke ukwenza iqela ujongano oluninzi ngaphakathi kwendawo ephantsi kwenkqubo yokusebenza; Okwangoku andazi ukuba oku kuyenzeka na phantsi kweLinux okanye kwenziwa njani.

Ukusebenzisa isimamva %<zone_id>, sinokususa ukhetho lomgca womyalelo -I ping.

[mark@opy ~]$ ping -w 1 ff02::1%enp3s2
PING ff02::1%enp3s2(ff02::1%enp3s2) 56 data bytes
64 bytes from fe80::2392:6213:a15b:66ff%enp3s2: icmp_seq=1 ttl=64 time=0.106 ms
64 bytes from fe80::1d36:1fff:fefd:82be%enp3s2: icmp_seq=1 ttl=64 time=0.453 ms (DUP!)
64 bytes from fe80::f31c:ccff:fe26:a6d9%enp3s2: icmp_seq=1 ttl=64 time=0.606 ms (DUP!)
64 bytes from fe80::7e31:f5ff:fe1b:9fdb%enp3s2: icmp_seq=1 ttl=64 time=6.23 ms (DUP!)
64 bytes from fe80::f7f8:15ff:fe6f:be6e%enp3s2: icmp_seq=1 ttl=64 time=157 ms (DUP!)
64 bytes from fe80::877d:4ff:fe1a:ad79%enp3s2: icmp_seq=1 ttl=64 time=159 ms (DUP!)
64 bytes from fe80::877d:4ff:fe1a:b881%enp3s2: icmp_seq=1 ttl=64 time=161 ms (DUP!)
64 bytes from fe80::23d:e8ff:feec:958c%enp3s2: icmp_seq=1 ttl=64 time=179 ms (DUP!)
 
--- ff02::1%enp3s2 ping statistics ---
1 packets transmitted, 1 received, +7 duplicates, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.106/82.858/179.216/81.281 ms
 
[mark@opy ~]$

Unxulumano-Iimpendulo zeedilesi zeNdawo

Ukusuka kule ndawo yonke i-multicast ping sifumene iimpendulo ezi-6 ezipheleleyo.

Ezi mpendulo zivela kwi-unicast Link-Local IPv6 host host addresses. Umzekelo, nantsi impendulo yokuqala:

64 bytes from fe80::2392:6213:a15b:66ff%enp3s2: icmp_seq=1 ttl=64 time=0.106 ms

Iidilesi ze-Unicast Link-Local IPv6 ziyafuneka kuzo zonke ii-IPv6-enabled interfaces [RFC4291], "IP Version 6 addressing Architecture". Isizathu soku kukuba i-IPv6 node ihlala inedilesi ye-unicast IPv6 ngokuzenzekelayo, enokuthi isebenzise ubuncinane ukunxibelelana nezinye iindawo kwiikhonkco zayo eziqhagamshelwe ngokuthe ngqo. Oku kuquka ukunxibelelana nezicelo kwezinye iinginginya ngeedilesi ze-Link-Local host.

Oku kwenza kube lula ukuyilwa kunye nokuphunyezwa kweeprothokholi ezifana ne-IPv6 Neighbor Discovery kunye ne-OSPFv3. Ikwavumela usetyenziso lwabasebenzisi bokugqibela kwiinginginya ukuba zinxibelelane ngetshaneli ngaphandle kokufuna nayiphi na enye inkxaso yeziseko ezingundoqo ze-IPv6 kwisitishi. Unxibelelwano oluthe ngqo phakathi kweenginginya ze-IPv6 eziqhagamshelweyo alufuni i-IPv6 irutha okanye iseva yeDHCPv6 kumdibaniso.

Ikhonkco-Iidilesi zeNdawo ziqala nge-10-bit yesiqalo fe80, ilandelwa ngamasuntswana angama-54 zero kunye ne-64-bit interface identifier (IID). Kule mpendulo yokuqala ingentla 2392:6213:a15b:66ff yi-64-bit IID.

Looped Multicast

Ngokungagqibekanga, iipakethi zemulticast zibuyiselwa ngaphakathi kwindawo ebathumeleyo. Oku kwenzeka kuzo zombini iidilesi ze-IPv6 kunye ne-IPv4.

Isizathu sokuziphatha okungagqibekanga kukuba xa iipakethe zemulticast zithunyelwa, kusenokubakho isicelo sokumamela sasekhaya semulticast esisebenza kumamkeli othumelayo ngokwawo, kunye naphi na kumsebenzi womnatha. Esi sicelo sasekhaya kufuneka sifumane iipakethi ezininzi.

Sinokuyibona le loop yasekhaya yemulticast kwimveliso yethu yeping:

[mark@opy ~]$ ping -w 1 ff02::1%enp3s2
PING ff02::1%enp3s2(ff02::1%enp3s2) 56 data bytes
64 bytes from fe80::2392:6213:a15b:66ff%enp3s2: icmp_seq=1 ttl=64 time=0.106 ms
64 bytes from fe80::1d36:1fff:fefd:82be%enp3s2: icmp_seq=1 ttl=64 time=0.453 ms (DUP!)
...

Impendulo yokuqala nekhawulezayo (i-0,106 ms xa ithelekiswa ne-0,453 ms) ivela kwidilesi ye-Link-yeNdawo eqwalaselwe kwi-interface ngokwayo. enp3s2.

[mark@opy ~]$ ip addr show dev enp3s2 | grep fe80
    inet6 fe80::2392:6213:a15b:66ff/64 scope link noprefixroute 
[mark@opy ~]$

Uncedo ping inikeza indlela yokucinezela impendulo yosasazo oluninzi usebenzisa i parameter -L. Ukuba sithumela i-ping ye-multicast-nodes kunye nale flegi, iimpendulo zikhawulelwe kwiindawo ezikude. Asifumani mpendulo kwidilesi ye-Link-Local ye-interface yokuthumela.

[mark@opy ~]$ ping -L -w 1 ff02::1%enp3s2
PING ff02::1%enp3s2(ff02::1%enp3s2) 56 data bytes
64 bytes from fe80::1d36:1fff:fefd:82be%enp3s2: icmp_seq=1 ttl=64 time=0.383 ms
 
64 bytes from fe80::f31c:ccff:fe26:a6d9%enp3s2: icmp_seq=1 ttl=64 time=0.467 ms (DUP!)
...

Ping Link-Iidilesi zeNgingqi

Njengoko unokuthelekelela, iidilesi ze-unicast Link-Local ngokwazo aziboneleli ngolwazi olwaneleyo ukubonisa ukuba loluphi ujongano olunokusetyenziswa ukufikelela kuzo. Njengazo zonke ii-node ezininzi ze-ping, kufuneka sicacise ujongano njengeparamitha yomgca womyalelo ping okanye i-ID yendawo enedilesi xa ucofa i-Link-yeNgingqi iidilesi.

Eli xesha sinokulisebenzisa -cukunciphisa inani leepakethi kunye neempendulo ezithunyelweyo nezifunyenweyo ping, kuba senza i-unicast ping.

[mark@opy ~]$ ping -c 1 fe80::f31c:ccff:fe26:a6d9%enp3s2
 
PING fe80::f31c:ccff:fe26:a6d9%enp3s2(fe80::fad1:11ff:feb7:3704%enp3s2) 56 data bytes
64 bytes from fe80::f31c:ccff:fe26:a6d9%enp3s2: icmp_seq=1 ttl=64 time=0.395 ms
 
--- fe80::f31c:ccff:fe26:a6d9%enp3s2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.395/0.395/0.395/0.000 ms
[mark@opy ~]$

Ping (zonke) ezinye iidilesi ze-IPv6?

Kweli nqaku, sibone indlela yokubethela zonke iindawo ze-IPv6 kwitshaneli usebenzisa idilesi ye-IPv6 yeenodi zonke. ff02::1. Siphinde sabona indlela yokucacisa ukuba loluphi ujongano emalusetyenziswe ngedilesi ye-IPv6 yeenodi zonke, kuba idilesi ngokwayo ayinakho ukunika olu lwazi. Sisebenzise nokuba kukhetho lomgca womyalelo ping, okanye ichaze ujongano kusetyenziswa isimamva %<zone_id>.

Emva koko siye safunda malunga needilesi ze-Unicast Link-Local, ezizidilesi ezisetyenziselwa ukuphendula kuzo zonke ii-nodes multicast ICMPv6 echo izicelo.

Siphinde sabona ukuba iipakethi ezininzi zibuyiselwa njani kwindawo yokuthumela ngokungagqibekanga kunye nendlela yokukhubaza oku kusetyenziso. ping.

Ekugqibeleni, siye safaka idilesi enye yeNxibelelwano-yeNdawo sisebenzisa isimamva %<zone_id>, kuba iidilesi zeDibanisi-zeNdawo ngokwazo nazo aziboneleli ngolwazi malunga nojongano oluphumayo.

Ke kuthekani nge-ping zonke ezinye iindawo kwaye ufumane iidilesi zabo zehlabathi jikelele (ii-GUAs) (oko kukuthi, iidilesi zabo zoluntu kwi-Intanethi) okanye iidilesi zabo ezizodwa zasekuhlaleni zeunicast (ii-ULAs)? Siza kujonga oku kwiposti yebhlog elandelayo.

Kuko konke.

Ungafumana ngakumbi malunga nekhosi yethu apha amanqaku osuku oluvulekileyo.

umthombo: www.habr.com

Yongeza izimvo