Não é possível executar ping em um dispositivo de toque com endereço ipv6

3

Estou executando o CentOS 7.

Primeiro, criei um dispositivo de toque:

ip tuntap add dev tap2 mode tap

Em seguida, atribuí o endereço ipv6 a ele:

ip -6 addr add dev tap2 fd00:4::1/64
ip link set tap2 up

Seu estado gerado a partir de ip addr mostra:

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

No entanto, ping6 fd00:4::1 não recebe nada. tcpdump -i tap2 também não produz nada.

O dispositivo de toque está pronto para ser executado no ipv6? Devo adicionar configuração em algum lugar?

    
por xywang 08.11.2015 / 08:13

1 resposta

2

Se a sua versão de ip permitir, você poderá usar o confflag nodad para dizer ao dispositivo para pular Detecção de endereço duplicado (DAD) ao atribuir o endereço:

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

Provavelmente o DAD não pode ser feito, pois o dispositivo de derivação não está conectado a nenhum meio. Ao atribuir o endereço sem o confflag, um ip addr mostra-me (Ubuntu, kernel 3.13, iproute2 versão 3.12.0) que o endereço está no estado tentative , ie está aguardando que o DAD termine:

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

Atribuindo com o confflag nodad mostra um resultado diferente:

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

O Ping funciona então:

# 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
...
    
por 08.11.2015 / 16:43