هڪ چينل تي سڀني IPv6 نوڊس کي پنگ ڪريو

شرح تي نئين وهڪري جي شروعات ٿيڻ تائين ڪجهه ڏينهن باقي آهن "نيٽ ورڪ انجنيئر" OTUS کان. ان سلسلي ۾، اسان توهان سان موضوع تي مفيد مواد جو ترجمو حصيداري ڪرڻ چاهيندا.

هڪ چينل تي سڀني IPv6 نوڊس کي پنگ ڪريو

IPv6 پنگ جي مسئلن کي حل ڪرڻ لاءِ ٽوڪن ۽ ٽوڪن تي بلاگ پوسٽن جو هڪ سلسلو (ICMPv6 ايڪو ريڪوسٽ/اڪو جواب)

مهرباني ڪري نوٽ ڪريو ته مان لينڪس استعمال ڪري رهيو آهيان (خاص طور تي Fedora 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 ملٽي ڪاسٽ گونج درخواست جي نتيجي ۾ ڪيترن ئي انفرادي يونيڪاسٽ جوابن ۾. نقلن جو تعداد پڻ انگ اکر جي خلاصي ۾ ظاهر ڪيو ويو آهي.

انٽرفيس جي وضاحت ڪرڻ - زون جي سڃاڻپ

استعمال لاءِ انٽرفيس کي بي نقاب ڪرڻ جو ٻيو طريقو 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

Unicast Link-Local IPv6 ايڊريس گهربل آهن سڀني IPv6-enabled interfaces [RFC4291]، “IP ورجن 6 ايڊريسنگ آرڪيٽيڪچر” تي. هن جو سبب اهو آهي ته هڪ IPv6 نوڊ هميشه خودڪار طور تي هڪ يونيڪاسٽ IPv6 ايڊريس هوندو آهي، جيڪو گهٽ ۾ گهٽ استعمال ڪري سگهي ٿو ٻين نوڊس سان رابطو ڪرڻ لاءِ ان جي سڌي طرح ڳنڍيل لنڪ تي. ھن ۾ لنڪ-لوڪل ھوسٽ ايڊريس ذريعي ٻين ھوسٽن تي ايپليڪيشنن سان ڳالھ ٻولھ شامل آھي.

هي پروٽوڪول جي ڊيزائن ۽ عمل درآمد کي آسان بڻائي ٿو جهڙوڪ IPv6 Neighbor Discovery ۽ OSPFv3. اهو ميزبان تي آخري استعمال ڪندڙ ايپليڪيشنن کي اجازت ڏئي ٿو ته چينل تي گفتگو ڪرڻ جي بغير ڪنهن ٻئي سپورٽ IPv6 انفراسٽرڪچر جي چينل تي. ڳنڍيل IPv6 ميزبانن جي وچ ۾ سڌو رابطو ڪنيڪشن تي IPv6 روٽر يا DHCPv6 سرور جي ضرورت ناهي.

لنڪ-مقامي پتا 10-بٽ اڳيئي سان شروع ٿين ٿا 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 ~]$

پنگ (سڀ) ٻيا IPv6 پتا؟

هن آرٽيڪل ۾، اسان ڏٺو ته هڪ چينل تي سڀني IPv6 نوڊس کي ڪيئن پنگ ڪجي هڪ آل نوڊس ملٽي ڪاسٽ IPv6 ايڊريس استعمال ڪندي. ff02::1. اسان اهو پڻ ڏٺو ته ڪئين انٽرفيس کي استعمال ڪرڻ لاءِ ڪھڙو انٽرفيس آل نوڊس ملٽي ڪاسٽ IPv6 ايڊريس سان، ڇو ته ايڊريس پاڻ ھي معلومات مهيا نه ڪري سگھي. اسان يا ته ڪمانڊ لائن آپشن استعمال ڪيو ping، يا suffix استعمال ڪندي انٽرفيس بيان ڪيو %<zone_id>.

پوءِ اسان يونيڪاسٽ لنڪ-لوڪل ايڊريس جي باري ۾ سکيو، جيڪي ايڊريس استعمال ڪيا ويندا آهن سڀني نوڊس ملٽي ڪاسٽ ICMPv6 گونج جي درخواستن جو جواب ڏيڻ لاءِ.

اسان اهو پڻ ڏٺو ته ڪيئن ملٽي ڪاسٽ پيڪٽس موڪلڻ واري نوڊ تي ڊفالٽ طور واپس ڪيا ويندا آهن ۽ هن کي افاديت لاءِ ڪيئن غير فعال ڪيو وڃي ping.

آخرڪار، اسان هڪ واحد لنڪ-مقامي ايڊريس کي استعمال ڪندي پنگ ڪيو %<zone_id>, جيئن ته لنڪ-مقامي ايڊريس پاڻ به ٻاهر نڪرندڙ انٽرفيس بابت معلومات مهيا نه ڪندا آهن.

پوءِ ٻين سڀني نوڊس کي پنگ ڪرڻ ۽ انهن جا عالمي يونيڪاسٽ ايڊريس (GUAs) (يعني انٽرنيٽ تي سندن عوامي پتا) يا سندن منفرد مقامي يونيڪاسٽ ايڊريس (ULAs) حاصل ڪرڻ بابت ڇا؟ اسان ان کي ڏسنداسين ايندڙ بلاگ پوسٽ ۾.

اهو سڀ ڪجهه آهي.

توهان اسان جي ڪورس بابت وڌيڪ ڳولي سگهو ٿا کليل ڏينهن جا نوٽس.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو