
我運行的是 CentOS 7。
首先我創建了一個點擊設備:
ip tuntap add dev tap2 mode tap
然後我給它分配了ipv6位址:
ip -6 addr add dev tap2 fd00:4::1/64
ip link set tap2 up
其狀態產生自ip addr
顯示:
tap2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 500
link/ether fe:ea:2b:e0:c3:08 brd ff:ff:ff:ff:ff:ff
然而,ping6 fd00:4::1
什麼也沒收到。tcpdump -i tap2
也什麼也不輸出。
Tap 設備是否準備好在 ipv6 中運作?我應該在某處添加配置嗎?
答案1
如果您的版本ip
支援它,您可以使用 confflagnodad
告訴設備跳過重複地址檢測 (DAD)分配地址時:
# ip -6 addr add dev tap2 fd00:4::1/64 nodad
由於分接設備未連接到任何介質,因此 DAD 可能無法完成。分配地址時沒有confflagip addr
顯示了位址(Ubuntu,核心 3.13,iproute2 版本 3.12.0)暫定的狀態,即正在等待 DAD 完成:
3: tap2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 500
link/ether 6a:fe:48:a1:b2:1d brd ff:ff:ff:ff:ff:ff
inet6 fd00:4::1/64 scope global tentative
valid_lft forever preferred_lft forever
分配和confflagnodad
顯示不同的結果:
3: tap2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 500
link/ether 6a:fe:48:a1:b2:1d brd ff:ff:ff:ff:ff:ff
inet6 fd00:4::1/64 scope global nodad
valid_lft forever preferred_lft forever
然後 Ping 工作:
# ping6 fd00:4::1
PING fd00:4::1(fd00:4::1) 56 data bytes
64 bytes from fd00:4::1: icmp_seq=1 ttl=64 time=0.050 ms
64 bytes from fd00:4::1: icmp_seq=2 ttl=64 time=0.056 ms
...