Ubuntu

Ubuntu 14.04 Ipv6 多播

  • April 23, 2014

我在使用 Ubuntu 14.04 設置 IPv6 多播伺服器時遇到了麻煩,嘗試綁定到 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 addr)輸出

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 鏈路本地地址、多播鏈路本地地址或多播節點本地地址綁定到 IPv6 套接字時,核心需要範圍標識符。

這些的語法是例如ff01::1:1%eth0。確保您的應用程序正確支持它們。此語法由 支持getaddressinfo(),因此正確編寫的應用程序應該無關緊要。


此行為在 3.10 以下的核心版本中不存在,顯然沒有正確處理節點本地多播。請參閱強制執行此操作的實際核心更新檔__ipv6_addr_needs_scope_id和.

引用自:https://serverfault.com/questions/590558