6

У меня есть базовая сеть с 3 узлами (ВМ).

Один узел публикует событие, другие узлы прослушивают его и распечатывают что-то при получении. Раньше он работал один на один (поэтому узел передает событие друг другу отдельно), но я бы хотел реализовать многоадресную рассылку.

В качестве быстрого эксперимента я хочу провести базовую «трансляцию» в сети, но мне не удалось определить правильный адрес IPv6. Используя широковещательный адрес IPv4, оба узла что-то печатают, поэтому адрес узла 1: inet addr: 192.168.56.101 Bcast: 192.168.56.255 Mask: 255.255.255.0 inet6 addr: fe80:: a00: 27ff: fef7: 30a7/64 Область применения: ссылка

Узел 2: адрес inet: 192.168.56.102 Bcast: 192.168.56.255 Маска: 255.255.255.0 inet6 адрес: fe80:: a00: 27ff: fe56: a2f7/64 Область действия: ссылка

Узел 3: адрес inet: 192.168.56.103 Bcast: 192.168.56.255 Маска: 255.255.255.0 inet6 адрес: fe80:: a00: 27ff: fe82: ae4a/64 Область действия: ссылка

Таким образом, IPv6 не имеет широковещательной рассылки, а использует многоадресную рассылку. Эти многоадресные адреса всегда начинаются с ff. Затем у вас есть флаг, который по умолчанию равен 0 для назначенного mlc и 1 для переходного процесса. И тогда сфера. Желая сделать базовый эквивалент широковещания, я попробовал ff01::1, который должен достигать всех узлов, и ff01::2 для всех маршрутизаторов. Но это не работает. Я также пробовал ff02, ff05 и ff0e. Я что-то здесь неправильно понимаю, каков правильный IPv6-адрес многоадресной / широковещательной передачи для достижения узла 2 и узла 3, когда узел 1 публикует событие?

РЕДАКТИРОВАТЬ:

После некоторых экспериментов я обнаружил, что не могу даже пропинговать адреса inet6, но могу узнать адреса ipv4! Любая подсказка, что происходит?

2 ответа2

7

Правильный адрес для многоадресной рассылки всем узлам в ссылке:ff02::1%<interface> . Вы, вероятно, забыли идентификатор интерфейса, который требуется для адресов области ссылок .

Например:

# ping6 ff02::1%br0
PING ff02::1%br0(ff02::1) 56 data bytes
64 bytes from fe80::6e62:6dff:fed1:dfad: icmp_seq=1 ttl=64 time=0.052 ms
64 bytes from fe80::5054:ff:fede:b69c: icmp_seq=1 ttl=64 time=0.455 ms (DUP!)
64 bytes from fe80::5054:ff:fe90:de19: icmp_seq=1 ttl=64 time=0.650 ms (DUP!)
64 bytes from fe80::6e62:6dff:fed1:dfad: icmp_seq=2 ttl=64 time=0.046 ms
64 bytes from fe80::5054:ff:fe90:de19: icmp_seq=2 ttl=64 time=0.203 ms (DUP!)
64 bytes from fe80::5054:ff:fede:b69c: icmp_seq=2 ttl=64 time=0.241 ms (DUP!)
64 bytes from fe80::6e62:6dff:fed1:dfad: icmp_seq=3 ttl=64 time=0.064 ms
64 bytes from fe80::5054:ff:fe90:de19: icmp_seq=3 ttl=64 time=0.237 ms (DUP!)
64 bytes from fe80::5054:ff:fede:b69c: icmp_seq=3 ttl=64 time=0.254 ms (DUP!)
^C
--- ff02::1%br0 ping statistics ---
3 packets transmitted, 3 received, +6 duplicates, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.046/0.244/0.650/0.189 ms

Адреса в ff01::/16 предназначены для интерфейса- локальная многоадресная рассылка, которая действительно полезна только для многоадресной рассылки на локальный хост.

Рекомендации: RFC 4291

0

Не забудьте включить интерфейс в аргумент так:

ping6 ff02::1 не будет работать.

ping6 ff02::1%en0 должен работать, но зависит от вашего имени интерфейса в этом случае en0 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .