Centos

無法使用 ipv6 地址 ping 分接頭設備

  • April 23, 2017

我正在執行 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 中執行?我應該在某處添加配置嗎?

如果您的版本ip支持它,您可以使用 confflag**nodad告訴設備在分配地址時跳過重複地址檢測 (DAD) :**

# ip -6 addr add dev tap2 fd00:4::1/64 nodad

由於分接頭設備未連接到任何介質,因此可能無法完成 DAD。分配不帶confflag的地址時,會ip 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

使用confflag進行分配nodad顯示了不同的結果:

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

平工作然後:

# 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
...

引用自:https://unix.stackexchange.com/questions/241592