Eu criei um par de dispositivos veth da seguinte forma no Ubuntu 16.04:
$ sudo ip link add veth1 type veth peer name veth2
$ sudo ip link set dev veth1 up
$ sudo ip link set dev veth2 up
$ sudo ip address add 10.0.10.50/24 dev veth1
$ sudo ip address add 10.0.10.51/24 dev veth2
O par de dispositivos veth está no mesmo namespace. Estou tentando testar o ping de um dispositivo veth para o outro. Então eu tento o ping da seguinte forma:
$ ping -I veth1 10.0.10.51
PING 10.0.10.51 (10.0.10.51) from 10.0.10.50 veth1: 56(84) bytes of data.
From 10.0.10.50 icmp_seq=1 Destination Host Unreachable
From 10.0.10.50 icmp_seq=2 Destination Host Unreachable
From 10.0.10.50 icmp_seq=3 Destination Host Unreachable
Quando eu faço check in wireshark trace para veth2, a solicitação ARP não obtém nenhuma resposta (trace semelhante também é observado para veth1):
Broadcast ARP 42 Who has 10.0.10.51? Tell 10.0.10.50
Eu quero perguntar por que veth2 não pode responder à solicitação ICMP quando está no mesmo namespace que veth1 ?
Atualização : Se eu tentar o ping da seguinte forma, recebo uma resposta ICMP, mas o wireshark não mostra nenhum rastreamento para os dispositivos veth1 e veth2.
$ ping -I 10.0.10.50 10.0.10.51
PING 10.0.10.51 (10.0.10.51) from 10.0.10.50 : 56(84) bytes of data.
64 bytes from 10.0.10.51: icmp_seq=1 ttl=64 time=0.016 ms
64 bytes from 10.0.10.51: icmp_seq=2 ttl=64 time=0.022 ms
Alguém pode explicar a diferença de resultado para os dois testes de ping?