IPv6 アドレスのタップ デバイスに ping を実行できません

IPv6 アドレスのタップ デバイスに ping を実行できません

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何も出力しません。

タップデバイスは IPv6 で実行できる状態ですか? どこかに設定を追加する必要がありますか?

答え1

のバージョンが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

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

関連情報