په یو چینل کې ټول IPv6 نوډونه پینګ کړئ

په نرخ کې د نوي جریان پیل کیدو ته څو ورځې پاتې دي "د شبکې انجنیر" له OTUS څخه. په دې اړه، موږ غواړو تاسو سره د موضوع په اړه د ګټورو موادو ژباړه شریک کړو.

په یو چینل کې ټول IPv6 نوډونه پینګ کړئ

د IPv6 ping مسلو ستونزې حل کولو لپاره د لارښوونو او چلونو په اړه د بلاګ پوسټونو لړۍ (ICMPv6 ایکو غوښتنه/ایکو ځواب)

مهرباني وکړئ په یاد ولرئ چې زه لینوکس کاروم (په ځانګړې توګه فیډورا 31)، په هرصورت، د نورو عملیاتي سیسټمونو لپاره د پینګ کمانډ ترکیب باید په امید سره ورته وي.

په یو چینل کې ټول IPv6 نوډونه پینګ کړئ

لومړۍ او ساده لارښوونه په لینک کې د ټولو IPv6 نوډونو پینګ کول دي.

IPv6 د هر ډول یو څخه تر ډیری مخابراتو لپاره ملټي کاسټ پتې کاروي. هیڅ خپرونې (یا نشر) IPv6 پتې شتون نلري. دا IPv6 د IPv4 څخه توپیر کوي، چیرې چې د خپرونو ډیری ډولونه شتون لري، د بیلګې په توګه، د "محدود نشراتو" پته 255.255.255.255 [RFC1122].

په هرصورت، د "ټول نوډز ملټي کاسټ" IPv6 پته شتون لري، نو موږ به دا په لینک کې د ټولو IPv6 نوډونو پینګ کولو لپاره وکاروو. (د "براډکاسټ" پته په حقیقت کې یوازې یو ځانګړی نومول شوی ملټي کاسټ پته ده، کوم چې یو ملټي کاسټ ګروپ دی چې ټول نوډونه پکې شامل دي. په یاد ولرئ، د مثال په توګه، د "ګروپ" یا ملټي کاسټ پته بټ د لینک په پرت کې د ایترنیټ نشراتي پتې کې فعال شوی. ).

د چینل لپاره ټول نوډ ملټيکاسټ IPv6 پته: ff02::1. ff د ملټي کاسټ IPv6 پته په ګوته کوي. راتلونکی 0 د بیرغ برخه ده چې د غیر ټاکل شوي بټونو سره.

نور 2 د څو اړخیز ګروپ ساحه تعریفوي. د ملټي کاسټ IPv4 ادرسونو برعکس، ملټي کاسټ IPv6 پتې یوه ساحه لري. د سکوپ ارزښت د شبکې هغه برخه په ګوته کوي چې په هغې کې د ملټي کاسټ کڅوړې ته د لیږلو اجازه ورکول کیږي. یوځل چې یو کڅوړه د ټاکل شوي حد حد ته ورسیږي ، پیکټ باید غورځول شي ، پرته لدې چې د هپ شمیرې ساحه غیر صفر وي. البته، که د هپ شمیره صفر ته ورسیږي مخکې له دې چې ټاکل شوي ملټي کاسټ ګروپ حد ته ورسیږي، دا هم سمدستي بیا تنظیم کیږي. دلته د IPv6 ملټي کاسټ سکوپ بشپړ لیست دی.

په پای کې ::1 د ټولو نوډونو ملټي کاسټ ګروپ مشخص کوي.

د پته په اړه ff02::1 دا باید په پام کې ونیول شي چې دا مبهم دی. په IPv6 کوربه کې د ډیری انٹرفیسونو سره ، لکه روټر یا څو کور کوربه ، پته ff02::1 دلته هیڅ شی شتون نلري چیرې چې تاسو مشخص کولی شئ چې کوم انٹرفیس د ICMPv6 اکو غوښتنې لیږلو لپاره یا د ICMPv6 ایکو ځوابونو ترلاسه کولو تمه لري کله چې دوی راشي. ff02::1 د اعتبار وړ دی او په هر یو انٹرفیس او چینلونو کې کارول کیدی شي چې د ملټي انٹرفیس نوډ سره وصل وي.

نو کله چې موږ ټول IPv6 نوډونه په لینک کې پینګ کوو ، نو موږ اړتیا لرو یو څه هم یوټیلیټ ته ووایو ping د IPv6 لپاره، کوم انٹرفیس د کارولو لپاره.

د انٹرفیس تعریف کول - د کمانډ لاین اختیار

لکه څنګه چې موږ دمخه لیدلي، د ټولو نوډونو ملټي کاسټ پته چې موږ یې کارول غواړو - دی ff02::1 - پدې اړه هیڅ معلومات نه وړاندې کوي چې کوم انٹرفیس د ICMPv6 ایکو غوښتنې او د ځواب پاکټونو لیږلو او ترلاسه کولو لپاره.

نو، موږ څنګه انٹرفیس مشخص کړو چې د ملټي کاسټ پته ځای یا یونیکاسټ لینک - محلي پته ځای لپاره کارول کیږي؟

لومړۍ او خورا څرګنده لاره دا ده چې دا هغه غوښتنلیک ته د پیرامیټر په توګه چمتو کړئ چې موږ یې کاروو.

د کارونې لپاره ping موږ یې د اختیار له لارې چمتو کوو -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 ~]$

د دې ټولو نوډونو ملټي کاسټ پینګ په کارولو سره ، موږ د 6 IPv6 نوډونو څخه ځوابونه ترلاسه کړل. ځوابونه د Link-Local IPv6 نوډ پتې څخه راغلي، د مخکینۍ سره پیل کیږي fe80::/10.

چې ping د ICMPv6 ایکو غوښتنو لیږلو ته دوام نه ورکوي تر هغه چې موږ یې مداخله ونه کړو، موږ معمولا د -c اختیار له لارې لیږلو لپاره د پاکټونو شمیر مشخص کوو. په هرصورت، دا د پینګ څخه د ډیرو ICMPv6 اکو ځواب منلو او ښودلو مخه نیسي کله چې د ملټي کاسټ ICMPv6 ایکو غوښتنه لیږل کیږي. پرځای یې، موږ د -w اختیار کارولی ترڅو مشخص کړي چې پینګ باید د 1 ثانیې وروسته بشپړ شي، مهمه نده چې څومره ICMPv6 ایکو غوښتنې یا د اکو ځوابونه لیږل شوي یا ترلاسه شوي.

یو بل شی چې باید پام ورته وشي هغه دا دی (DUP!) په دوهم او ورپسې ځوابونو کې محصول. دا پاکټونه د نقل ځوابونو په توګه پیژندل شوي ځکه چې دوی ورته ICMP ترتیب ارزښت لري د انفرادي ICMPv6 ایکو غوښتنو په څیر چې په لومړي ځای کې لیږل شوي. دوی ښکاري ځکه چې د ICMPv6 ملټي کاسټ ایکو غوښتنه د ډیری انفرادي یونیکاسټ ځوابونو پایله لري. د نقلونو شمیر هم د احصایې په لنډیز کې ښودل شوی.

د انٹرفیس تعریف کول - د زون ID

د کارولو لپاره د انٹرفیس افشا کولو بله لاره د IPv6 پته پیرامیټر برخې په توګه ده.

موږ کولی شو د دې مثال په پینګ محصول کې وګورو ، چیرې چې د ځواب ورکونکي IPv6 کوربه پتې هم ضمیمه لري %enp3s2د بیلګې په توګه:

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

د انٹرفیسونو مشخص کولو دا طریقه په رسمي ډول په [RFC4007] کې تشریح شوې، "IPv6 تعریف شوي پته جوړښت." که څه هم دوی معمولا د عملیاتي سیسټم انٹرفیس په نوم یادیږي، دوی په حقیقت کې یو څه نور عمومي تعریفوي - یو "زون" یا "سوق".

د ډیرو عمومي زونونو یا سکوپ زونونو درلودو دلیل دا دی چې لکه څنګه چې په [RFC4007] کې یادونه وشوه، یو IPv6 نوډ کولی شي څو مختلف IPv6 انٹرفیسونه ولري چې ورته چینل سره وصل وي. دا انٹرفیس د ورته زون غړي دي.

دا باید ممکنه وي چې د عملیاتي سیسټم لاندې په یوه زون کې ډیری انٹرفیسونه ګروپ کړئ؛ اوس مهال زه نه پوهیږم چې دا د لینکس لاندې ممکنه ده یا دا څنګه ترسره کړئ.

د ضمیمې په کارولو سره %<zone_id>، موږ کولی شو د کمانډ لاین اختیار لرې کړو -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 ~]$

لینک - د محلي ادرس ځوابونه

د دې ټولو نوډونو ملټي کاسټ پینګ څخه موږ ټول 6 ځانګړي ځوابونه ترلاسه کړل.

دا ځوابونه د unicast Link-Local IPv6 کوربه پتې څخه راغلي. د مثال په توګه، دلته لومړی ځواب دی:

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

د یونیکاسټ لینک - محلي IPv6 پتې په ټولو IPv6-فعال شوي انٹرفیسونو کې اړین دي [RFC4291]، "IP نسخه 6 د پته کولو جوړښت". د دې دلیل دا دی چې د IPv6 نوډ تل په اوتومات ډول یو یونیکاسټ IPv6 پته لري، کوم چې دا کولی شي لږترلږه د نورو نوډونو سره د مستقیم وصل شوي لینکونو سره اړیکه ونیسي. پدې کې د لینک - محلي کوربه ادرسونو له لارې د نورو کوربه توب غوښتنلیکونو سره اړیکه شامله ده.

دا د پروتوکولونو ډیزاین او پلي کول ساده کوي لکه IPv6 Neighbor Discovery او OSPFv3. دا په کوربه کې د پای کارونکي غوښتنلیکونو ته اجازه ورکوي چې پرته له دې چې په چینل کې کوم بل ملاتړ کونکي IPv6 زیربنا ته اړتیا ولري په چینل کې اړیکه ونیسي. د وصل شوي IPv6 کوربه ترمینځ مستقیم اړیکه په پیوستون کې IPv6 روټر یا DHCPv6 سرور ته اړتیا نلري.

د لینک ځایی پته د 10-bit مخکینۍ سره پیل کیږي fe80، ورپسې د 54 صفر بټونه او بیا د 64-bit انٹرفیس پیژندونکی (IID). په پورتني لومړي ځواب کې 2392:6213:a15b:66ff یو 64-bit IID دی.

لوپ شوی ملټي کاسټ

په ډیفالټ ډول ، ملټي کاسټ پاکټونه په داخلي توګه هغه نوډ ته راستانه کیږي چې دوی یې لیږلي. دا دواړه د IPv6 او IPv4 ادرسونو لپاره پیښیږي.

د دې ډیفالټ چلند دلیل دا دی چې کله ملټي کاسټ پاکټونه لیږل کیږي ، ممکن د اوریدونکي محلي ملټي کاسټ غوښتنلیک هم وي چې پخپله د لیږلو کوربه کې روان وي ، په بیله بیا په شبکه کې چیرې. دا محلي غوښتنلیک باید ملټي کاسټ پاکټونه هم ترلاسه کړي.

موږ کولی شو دا ملټي کاسټ محلي لوپ زموږ په پینګ محصول کې وګورو:

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

لومړی او ګړندی ځواب (0,106 ms د 0,453 ms په پرتله) د لینک - ځایی پتې څخه راځي چې پخپله په انٹرفیس کې ترتیب شوی enp3s2.

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

افادیت ping د پیرامیټر په کارولو سره د محلي ملټي کاسټ فیډبیک فشارولو لپاره لاره چمتو کوي -L. که موږ د دې بیرغ سره ټول نوډونه ملټي کاسټ پینګ واستوو، نو بیا ځوابونه د لرې پرتو نوډونو پورې محدود دي. موږ د لیږلو انٹرفیس د لینک - محلي پتې څخه ځواب نه ترلاسه کوو.

[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 یا د زون ID د پتې سره کله چې د لینک ځایی پتې پینګ کول.

دا ځل موږ کولی شو وکاروو -cد لیږلو او ترلاسه شویو کڅوړو او ځوابونو شمیر محدودولو لپاره 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 (ټول) نور IPv6 پتې؟

پدې مقاله کې ، موږ ولیدل چې څنګه د ټولو نوډونو ملټي کاسټ IPv6 پتې په کارولو سره په چینل کې ټول IPv6 نوډونه پینګ کړئ ff02::1. موږ دا هم ولیدل چې څنګه مشخص کړو چې کوم انٹرفیس د ټول نوډ ملټيکاسټ IPv6 پتې سره کارول کیږي ، ځکه چې پته پخپله دا معلومات نشي چمتو کولی. موږ یا د کمانډ لاین اختیار کارولی ping، یا د ضمیمې په کارولو سره انٹرفیس مشخص کړی %<zone_id>.

بیا موږ د یونیکاسټ لینک - محلي ادرسونو په اړه زده کړل، کوم چې هغه پتې دي چې د ټولو نوډونو ملټي کاسټ ICMPv6 ایکو غوښتنو ته ځواب ویلو لپاره کارول کیږي.

موږ دا هم ولیدل چې څنګه ملټي کاسټ پاکټونه د ډیفالټ لخوا د لیږلو نوډ ته راستنیږي او دا څنګه د کارونې لپاره غیر فعال کړو ping.

په نهایت کې ، موږ د ضمیمې په کارولو سره یو واحد لینک - محلي پته پینګ کړه %<zone_id>, ځکه چې د لینک محلي پتې پخپله هم د وتلو انٹرفیس په اړه معلومات نه ورکوي.

نو د نورو ټولو نوډونو پینګ کولو په اړه څه وکړئ او د دوی نړیوال یونیکاسټ پتې (GUAs) (دا په انټرنیټ کې د دوی عامه پتې) یا د دوی ځانګړي محلي یونیکاسټ پتې (ULAs) ترلاسه کړئ؟ موږ به دا په راتلونکي بلاګ پوسټ کې وګورو.

بس.

تاسو کولی شئ زموږ د کورس په اړه نور معلومات ترلاسه کړئ خلاصې ورځې یادښتونه.

سرچینه: www.habr.com

Add a comment