Каналдагы бардык IPv6 түйүндөрүнө пинг жүргүзүү

Темп боюнча жаңы агымдын башталышына бир нече күн калды "Тармак инженери" OTUSдан. Ушуга байланыштуу темадагы пайдалуу материалдардын котормосун сиздер менен бөлүшкүбүз келет.

Каналдагы бардык IPv6 түйүндөрүнө пинг жүргүзүү

IPv6 пинг көйгөйлөрүн чечүү боюнча кеңештер жана ыкмалар боюнча блог посттору (ICMPv6 Echo Request/Echo Reply)

Сураныч, мен Linux колдонуп жатканымды эске алыңыз (айрыкча Fedora 31), бирок башка операциялык системалар үчүн пинг буйругунун синтаксиси абдан окшош болушу керек деп үмүттөнөм.

Каналдагы бардык IPv6 түйүндөрүнө пинг жүргүзүү

Биринчи жана эң жөнөкөй кеңеш - бул шилтемедеги бардык IPv6 түйүндөрүнө пинг жүргүзүү.

IPv6 бирден көпкө байланыштын бардык түрлөрү үчүн мультикаст даректерин колдонот. Эч кандай уктуруу (же уктуруу) IPv6 даректери жок. Бул IPv6ды IPv4тен айырмалайт, мында уктуруу даректеринин бир нече түрү бар, мисалы, “чектелген берүү” дареги 255.255.255.255 [RFC1122].

Бирок, "бардык түйүндөрдүн мультикаст" IPv6 дареги бар, ошондуктан биз аны шилтемедеги бардык IPv6 түйүндөрүнө пинг жүргүзүү үчүн колдонобуз. («Тефир» дареги – бул жөн гана атайын аталган мультикаст дареги, ал бардык түйүндөрдү камтыган мультикасттык топ болуп саналат. Мисалы, шилтеме катмарындагы Ethernet уктуруу даректеринде «топ» же мультикаст дарек бит күйгүзүлгөндүгүн эске алыңыз. ).

Канал үчүн бардык түйүндөрдүн мультикаст IPv6 дареги: ff02::1. ff multicast IPv6 дарегин билдирет. Кийинки 0 - белгиленбеген биттери бар желектин бөлүгү.

Далее 2 мультикаст тобунун аянтын аныктайт. Multicast IPv4 даректеринен айырмаланып, мультикаст IPv6 даректеринин масштабы бар. Колдонуу масштабынын мааниси тармактын мультикаст пакетин жөнөтүүгө уруксат берилген бөлүгүн көрсөтөт. Пакет көрсөтүлгөн аймактын чегине жеткенден кийин, анын Hop Count талаасы нөлгө барабар эмес экенине карабастан, пакет алынып салынышы керек. Албетте, эгерде хоп саны көрсөтүлгөн мультикаст тобунун чегине жеткенге чейин нөлгө жетсе, ал да дароо баштапкы абалга келтирилет. Бул жерде IPv6 мультикаст аймагынын толук тизмеси.

акыр-аягы, ::1 бардык түйүндөрдүн мультикаст тобун белгилейт.

Дареги жөнүндө ff02::1 Бул эки ача экенин белгилей кетүү керек. Роутер же көп үйдүү хост сыяктуу бир нече интерфейси бар IPv6 хостунда дарек ff02::1 ICMPv6 жаңырык суроо-талаптары кайсы интерфейске жөнөтүлөөрүн белгилей турган эч нерсе жок же алар келгенде ICMPv6 жаңырык жоопторун алууну күтө аласыз. ff02::1 жарактуу жана көп интерфейстүү түйүнгө тиркелген интерфейстердин жана каналдардын каалаганында колдонулушу мүмкүн.

Ошентип, биз шилтемедеги бардык IPv6 түйүндөрүнө пинг койгондо, биз кандайдыр бир жол менен утилитага айтышыбыз керек ping IPv6 үчүн, кайсы интерфейсти колдонуу керек.

Интерфейстерди аныктоо - Command Line Option

Жогоруда айтылгандай, биз колдонгубуз келген бардык түйүндөрдүн мультикаст дареги - ff02::1 - ICMPv6 жаңырык суроо-талабын жана жаңырык жооп пакеттерин кайсы интерфейсти жөнөтүү жана кабыл алуу жөнүндө эч кандай маалымат бербейт.

Ошентип, мультикаст дарек мейкиндиги же Unicast Link-Local дарек мейкиндиги үчүн колдонула турган интерфейсти кантип аныктайбыз?

Биринчи жана эң айкын жол - аны биз колдонуп жаткан колдонмонун параметри катары берүү.

Пайдалуулугу үчүн 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 жаңырык жообун кабыл алып, көрсөтүүсүнө жол бербейт. Анын ордуна, канча ICMPv1 жаңырык сурамдары же жаңырык жооптору жөнөтүлгөн же кабыл алынганына карабастан, пинг 6 секунддан кийин бүтүшү керектигин көрсөтүү үчүн -w опциясын колдондук.

Дагы бир көңүл бура турган нерсе (DUP!) экинчи жана кийинки жооптор боюнча чыгаруу. Бул пакеттер кайталанган жооптор катары аныкталган, анткени алар биринчи кезекте жөнөтүлгөн жеке ICMPv6 жаңырык сурамдары менен бирдей ICMP ырааттуулугуна ээ. Алар ICMPv6 мультикаст жаңырык суроосу бир нече жеке Unicast жоопторуна алып келгендиктен пайда болот. Дубликаттардын саны статистикалык корутундуда да көрсөтүлөт.

Интерфейстерди аныктоо - Зона 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 интерфейстери болушу мүмкүн. Бул интерфейстер бир зонанын мүчөлөрү.

Иштөө тутумунун алкагында бир зонанын ичинде бир нече интерфейстерди топтоого мүмкүн болушу керек; Учурда мен бул Linux астында мүмкүнбү же аны кантип жасоо керек экенин билбейм.

Суффикс колдонуу %<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-Жергиликтүү IPv6 даректери бардык IPv6 иштетилген интерфейстерде талап кылынат [RFC4291], “IP Version 6 Addressing Architecture”. Мунун себеби, IPv6 түйүнү дайыма автоматтык түрдө бирдиктүү IPv6 дарегине ээ болот, аны жок дегенде түз туташкан шилтемелериндеги башка түйүндөр менен байланышуу үчүн колдоно алат. Бул Link-Local хост даректери аркылуу башка хосттордогу тиркемелер менен байланышты камтыйт.

Бул IPv6 Neighbor Discovery жана OSPFv3 сыяктуу протоколдорду иштеп чыгууну жана ишке ашырууну жеңилдетет. Ал ошондой эле хосттордогу акыркы колдонуучу колдонмолоруна каналда башка колдоочу IPv6 инфраструктурасын талап кылбастан канал аркылуу байланышууга мүмкүнчүлүк берет. Туташкан IPv6 хостторунун ортосундагы түз байланыш IPv6 роутерин же туташууда DHCPv6 серверин талап кылбайт.

Шилтеме-Жергиликтүү даректер 10 биттик префикс менен башталат fe80, андан кийин 54 нөл бит жана андан кийин 64 биттик интерфейстин идентификатору (IID). Жогорудагы биринчи жоопто 2392:6213:a15b:66ff 64-бит IID болуп саналат.

Looped Multicast

Демейки боюнча, мультикаст пакеттер аларды жөнөткөн түйүнгө ички түрдө кайтарылат. Бул 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 мс салыштырганда 0,453 мс) интерфейстин өзүндө конфигурацияланган Link-Local дарегинен келет enp3s2.

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

Коммуналдык ping параметрди колдонуу менен жергиликтүү мультикаст пикирди басуунун жолун камсыз кылат -L. Бул желек менен бардык түйүндөрдүн мультикаст пингин жөнөтсөк, жооптор алыскы түйүндөр менен чектелет. Биз жөнөтүүчү интерфейстин Link-Local дарегинен жооп албайбыз.

[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 шилтемеси-жергиликтүү даректер

Сиз ойлогондой, Unicast Link-Local даректери да аларга жетүү үчүн кайсы интерфейсти колдонуу керектигин көрсөтүү үчүн жетиштүү маалымат бербейт. Бардык түйүндөрдөгү мультикаст пингдегидей эле, интерфейсти буйрук сабынын параметри катары көрсөтүүбүз керек ping же Шилтеме-Жергиликтүү даректерге пинг жүргүзүүдө дареги менен зонанын ID.

Бул жолу биз колдоно алабыз -cжөнөтүлгөн жана кабыл алынган пакеттердин жана жооптордун санын чектөө 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 ~]$

Башка IPv6 даректерине ping (бардык)?

Бул макалада биз каналдагы бардык IPv6 түйүндөрүн кантип бардык түйүндөрдөн турган мультикаст IPv6 дарегин колдонууну көрдүк. ff02::1. Биз ошондой эле бардык түйүндөрдөгү мультикаст IPv6 дареги менен кайсы интерфейсти колдонууну кантип аныктоону көрдүк, анткени даректин өзү бул маалыматты бере албайт. Биз буйрук сабынын опциясын колдондук ping, же суффикс аркылуу интерфейсти көрсөткөн %<zone_id>.

Андан кийин биз Unicast Link-Local даректери жөнүндө билдик, алар бардык түйүндөрдөгү мультикаст ICMPv6 жаңырык суроо-талаптарына жооп берүү үчүн колдонулган даректер.

Ошондой эле, биз мультикаст пакеттер демейки боюнча жөнөтүүчү түйүнгө кантип кайтарылганын жана аны утилита үчүн кантип өчүрүүнү көрдүк ping.

Акыр-аягы, биз суффикс аркылуу бир Link-Жергиликтүү даректи пингдик %<zone_id>, анткени Link-Жергиликтүү даректер өздөрү да чыгыш интерфейси жөнүндө маалымат бербейт.

Башка түйүндөргө пинг жүргүзүү жана алардын глобалдык Unicast даректерин (GUAs) (башкача айтканда, алардын Интернеттеги жалпы даректерин) же уникалдуу жергиликтүү Unicast даректерин (ULAs) алуу жөнүндө эмне айтууга болот? Муну кийинки блогдо карап чыгабыз.

Болгону ушул.

Биздин курс тууралуу кененирээк бул жерден биле аласыз ачык эшиктер күнү.

Source: www.habr.com

Комментарий кошуу