Ubuntu
Ubuntu 14.04 Ipv6 多播
我在使用 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
和.