Назад | Перейти на главную страницу

Ubuntu 14.04, многоадресная рассылка IPv6

У меня возникли проблемы с настройкой многоадресного сервера IPv6 с Ubuntu 14.04, сервер выходит из строя с недопустимым аргументом при попытке привязки к многоадресному адресу IPv6, проверяется с помощью инструмента mcfirst и получает ту же ошибку.

mcfirst -6 ff01::1:1 10000
bind [multicast]: Invalid argument
errno=22

Это отлично работало с Ubuntu 12.04.

mcfirst -6 ff01::1:1 10000
mcfirst joined (*,G) = (*,ff01::1:1)

Изменить: 1 (вывод Ifconfig)

eth0      Link encap:Ethernet  HWaddr 00:0c:29:53:a1:fb  
          inet addr:192.168.50.5  Bcast:192.168.50.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe53:a1fb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:22424 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11825 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:29238784 (29.2 MB)  TX bytes:1061497 (1.0 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1838133 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1838133 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1026295857 (1.0 GB)  TX bytes:1026295857 (1.0 GB)

Изменить: 2 (IP-адрес) вывод

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:53:a1:fb brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.5/24 brd 192.168.50.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe53:a1fb/64 scope link 
       valid_lft forever preferred_lft forever

Ядро ожидает идентификатор области при привязке локального адреса IPv6 Link, локального адреса многоадресной ссылки или локального адреса узла многоадресной рассылки к сокету IPv6.

Синтаксис для них, например, ff01::1:1%eth0. Убедитесь, что ваши приложения правильно их поддерживают. Этот синтаксис поддерживается getaddressinfo(), поэтому правильно написанные приложения не должны иметь ничего общего.


Это поведение отсутствовало в версиях ядра ниже 3.10, которые, по-видимому, неправильно обрабатывали локальную многоадресную рассылку узла. Увидеть фактический патч ядра, который обеспечивает это и определение функции __ipv6_addr_needs_scope_id.