Невозможно выполнить ping для устройства с адресом IPv6

Невозможно выполнить ping для устройства с адресом IPv6

Я использую 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 не может быть выполнен, так как устройство-ответчик не подключено ни к одному носителю. При назначении адресабез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
...

Связанный контент