Ping kabeh simpul IPv6 ing saluran

Sawetara dina tetep nganti wiwitan aliran anyar ing tingkat "Teknisi Jaringan" saka OTUS. Ing babagan iki, kita pengin nuduhake terjemahan materi sing migunani babagan topik kasebut.

Ping kabeh simpul IPv6 ing saluran

Serangkaian kiriman blog babagan tips lan trik kanggo ngatasi masalah ping IPv6 (ICMPv6 Echo Request/Echo Reply)

Elinga yen aku nggunakake Linux (khusus Fedora 31), nanging sintaks perintah ping kanggo sistem operasi liyane muga-muga padha banget.

Ping kabeh simpul IPv6 ing saluran

Tip pisanan lan paling gampang yaiku ping kabeh simpul IPv6 ing link kasebut.

IPv6 nggunakake alamat multicast kanggo kabeh jinis komunikasi siji-kanggo-akeh. Ora ana alamat IPv6 siaran (utawa siaran). Iki mbedakake IPv6 saka IPv4, ing ngendi ana sawetara jinis alamat siaran, contone, alamat "siaran winates" 255.255.255.255 [RFC1122].

Nanging, ana alamat IPv6 "kabeh-node multicast", supaya kita bakal nggunakake kanggo ping kabeh simpul IPv6 ing link. (Alamat "siaran" sejatine mung alamat multicast sing dijenengi khusus, yaiku klompok multicast sing kalebu kabeh kelenjar. Elinga, contone, bit alamat "grup" utawa multicast diuripake ing alamat siaran Ethernet ing lapisan link. ).

Alamat IPv6 multicast kabeh simpul kanggo saluran: ff02::1. ff nuduhake alamat IPv6 multicast. 0 sabanjure yaiku bagean saka gendΓ©ra kanthi bit sing ora disetel.

luwih 2 nemtokake area klompok multicast. Ora kaya alamat IPv4 multicast, alamat IPv6 multicast duwe ruang lingkup. Nilai ruang lingkup nuduhake bagean jaringan sing diijini diterusake paket multicast. Sawise paket tekan wates ruang lingkup sing ditemtokake, paket kasebut kudu dibuwang, sanajan kolom Hop Count ora nol. Mesthi wae, yen count hop tekan nol sadurunge tekan wates klompok multicast sing ditemtokake, uga langsung direset. Iki minangka dhaptar lengkap jangkoan multicast IPv6.

Pungkasane ::1 nemtokake klompok multicast kabeh-node.

Babagan alamat ff02::1 Sampeyan kudu nyatet sing iku ambigu. Ing host IPv6 kanthi macem-macem antarmuka, kayata router utawa host multihomed, alamat kasebut ff02::1 ora ana apa-apa ing ngendi sampeyan bisa nemtokake antarmuka sing ngirim panjalukan gema ICMPv6 utawa nyana nampa balesan gema ICMPv6 nalika teka. ff02::1 bener lan bisa digunakake ing sembarang antarmuka lan saluran sing ditempelake ing simpul multi-antarmuka.

Dadi nalika kita ping kabeh simpul IPv6 ing link, kita kudu piye wae uga marang sarana ping kanggo IPv6, kang antarmuka digunakake.

Nemtokake Antarmuka - Pilihan Command Line

Kaya sing wis kita deleng, alamat multicast kabeh simpul sing pengin digunakake yaiku βˆ’ ff02::1 - ora menehi informasi babagan antarmuka sing ngirim lan nampa panjalukan gema ICMPv6 lan paket balesan kumandhang.

Dadi, kepiye carane nemtokake antarmuka sing bakal digunakake kanggo ruang alamat multicast utawa ruang alamat Link-Local unicast?

Cara pisanan lan paling jelas yaiku nyedhiyakake minangka parameter kanggo aplikasi sing digunakake.

Kanggo sarana ping kita nyedhiyani liwat pilihan -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 ~]$

Nggunakake ping multicast kabeh-node iki, kita nampa respon saka 6 simpul IPv6. Tanggapan teka saka alamat simpul Link-Lokal IPv6, diwiwiti kanthi awalan fe80::/10.

sing ping ora terus ngirim panjalukan gema ICMPv6 tanpa wates nganti kita ngganggu, biasane kita nemtokake jumlah paket sing bakal dikirim liwat pilihan -c. Nanging, iki uga nyegah ping nampa lan nampilake luwih saka siji balesan gema ICMPv6 nalika ngirim panjalukan gema ICMPv6 multicast. Nanging, kita nggunakake pilihan -w kanggo nemtokake manawa ping kudu rampung sawise 1 detik, ora ketompo carane akeh panjalukan gema ICMPv6 utawa balesan gema sing dikirim utawa ditampa.

Bab liyane sing kudu digatekake yaiku (DUP!) output ing jawaban kapindho lan sabanjure. Paket kasebut diidentifikasi minangka respon duplikat amarga padha duwe nilai urutan ICMP sing padha karo panjalukan gema ICMPv6 individu sing dikirim ing wiwitan. Padha katon amarga panjalukan gema multicast ICMPv6 ngasilake sawetara respon unicast individu. Jumlah duplikat uga dituduhake ing ringkesan statistik.

Nemtokake Antarmuka - ID Zona

Cara liya kanggo mbukak antarmuka sing digunakake minangka bagean saka parameter alamat IPv6.

Kita bisa ndeleng conto iki ing output ping, ing ngendi alamat host IPv6 sing nanggapi uga duwe suffix. %enp3s2, contone:

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

Cara nemtokake antarmuka kasebut kanthi resmi diterangake ing [RFC4007], "Arsitektur Alamat Ditetepake IPv6." Sanajan biasane diarani antarmuka sistem operasi, dheweke nemtokake sing luwih umum - "zona" utawa "ruang lingkup."

Alesan kanggo nduwe zona utawa zona ruang lingkup sing luwih umum yaiku, kaya sing kasebut ing [RFC4007], simpul IPv6 bisa duwe sawetara antarmuka IPv6 sing disambungake menyang saluran sing padha. Antarmuka iki minangka anggota saka zona sing padha.

Sampeyan kudu bisa nglumpukake sawetara antarmuka ing zona miturut sistem operasi; Saiki aku ora ngerti apa iki bisa ditindakake ing Linux utawa kepiye carane.

Nggunakake sufiks %<zone_id>, kita bisa mbusak pilihan baris printah -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 ~]$

Link-Tanggepan Alamat Lokal

Saka ping multicast kabeh-node iki, kita nampa total 6 tanggapan unik.

Tanggepan kasebut teka saka alamat host IPv6 Link-Lokal Unicast. Contone, iki jawaban pisanan:

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

Alamat IPv6 Link-Lokal Unicast dibutuhake ing kabeh antarmuka sing diaktifake IPv6 [RFC4291], "Versi IP 6 Alamat Arsitektur". Alesan kanggo iki yaiku simpul IPv6 kanthi otomatis nduweni alamat IPv6 unicast, sing paling ora bisa digunakake kanggo komunikasi karo kelenjar liyane ing pranala sing disambungake langsung. Iki kalebu komunikasi karo aplikasi ing host liyane liwat alamat host Link-Local.

Iki nyederhanakake desain lan implementasine protokol kayata IPv6 Neighbor Discovery lan OSPFv3. Iki uga ngidini aplikasi pangguna pungkasan ing host bisa komunikasi liwat saluran kasebut tanpa mbutuhake infrastruktur IPv6 liyane sing ndhukung ing saluran kasebut. Komunikasi langsung antarane host IPv6 sing disambungake ora mbutuhake router IPv6 utawa server DHCPv6 ing sambungan kasebut.

Alamat Link-Lokal diwiwiti kanthi awalan 10-bit fe80, ngiring dening 54 nul bit lan banjur 64-bit antarmuka pengenal (IID). Ing jawaban pisanan ndhuwur 2392:6213:a15b:66ff punika 64-dicokot IID.

Looped Multicast

Kanthi gawan, paket multicast bali menyang simpul sing dikirim. Iki kedadeyan kanggo alamat IPv6 lan IPv4.

Alesan kanggo prilaku standar iki yaiku nalika paket multicast dikirim, bisa uga ana aplikasi multicast lokal ngrungokake sing mlaku ing host sing ngirim dhewe, uga ing endi wae ing jaringan. Aplikasi lokal iki uga kudu nampa paket multicast.

Kita bisa ndeleng loop lokal multicast iki ing output ping kita:

[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!)
...

Tanggepan pisanan lan paling cepet (0,106 ms dibandhingake karo 0,453 ms) asale saka alamat Link-Local sing dikonfigurasi ing antarmuka dhewe enp3s2.

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

Utilitas ping menehi cara kanggo nyuda umpan balik multicast lokal nggunakake parameter -L. Yen kita ngirim ping multicast kabeh-node karo gendΓ©ra iki, banjur respon diwatesi kanggo node remot. Kita ora nampa respon saka alamat Link-Local antarmuka ngirim.

[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-Alamat Lokal

Kaya sing sampeyan duga, alamat Link-Lokal unicast dhewe uga ora nyedhiyakake informasi sing cukup kanggo nuduhake antarmuka sing digunakake kanggo nggayuh. Kaya ping multicast kabeh-node, kita uga kudu nemtokake antarmuka minangka parameter baris printah ping utawa ID zona kanthi alamat nalika ping alamat Link-Lokal.

Wektu iki kita bisa nggunakake -ckanggo matesi jumlah paket lan respon sing dikirim lan ditampa ping, amarga kita nindakake ping unicast.

[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 (kabeh) alamat IPv6 liyane?

Ing artikel iki, kita weruh carane ping kabeh simpul IPv6 ing saluran nggunakake alamat IPv6 multicast kabeh-node ff02::1. Kita uga weruh carane nemtokake antarmuka sing digunakake karo alamat IPv6 multicast kabeh simpul, amarga alamat kasebut ora bisa menehi informasi kasebut. Kita nggunakake salah siji pilihan baris printah ping, utawa nemtokake antarmuka nggunakake suffix %<zone_id>.

Banjur kita sinau babagan alamat Link-Local unicast, yaiku alamat sing digunakake kanggo nanggapi panjalukan gema ICMPv6 multicast kabeh-node.

Kita uga weruh carane paket multicast bali menyang simpul ngirim minangka standar lan carane mateni iki kanggo sarana ping.

Pungkasan, kita ping siji alamat Link-Lokal nggunakake sufiks %<zone_id>, amarga alamat Link-Local dhewe uga ora menehi informasi babagan antarmuka sing metu.

Dadi, kepiye ping kabeh simpul liyane lan entuk alamat unicast global (GUA) (yaiku, alamat umum ing Internet) utawa alamat unicast lokal (ULA) sing unik? Kita bakal ndeleng iki ing kirim blog sabanjure.

Iku pancen kabeh.

Sampeyan bisa ngerteni luwih akeh babagan kursus kita ing cathetan dina mbukak.

Source: www.habr.com

Add a comment