Ainda novo em redes Linux e não consegui encontrar uma resposta para perguntas semelhantes
Tentando criar 2 namespaces e fazer ping entre eles
ip netns add red;
ip netns add blue;
ip link add dev v-red type veth peer name v-blue;
ip link set dev v-red netns red;
ip link set dev v-blue netns blue;
ip netns exec red ip addr add 192.168.15.1 dev v-red;
ip netns exec blue ip addr add 192.168.15.2 dev v-blue;
ip netns exec red ip link set dev v-red up;
ip netns exec blue ip link set dev v-blue up;
ip netns exec red ping 192.168.15.2;
-> ping: connect: Network is unreachable
O que procurei ao depurar
ip netns exec blue ifconfig
v-blue: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.15.2 netmask 255.255.255.255 broadcast 0.0.0.0
ip netns exec red ifconfig
v-red: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.15.1 netmask 255.255.255.255 broadcast 0.0.0.0
Responder1
Os dois dispositivos ficam em duas redes lógicas /32 diferentes e não há nenhuma rota ou tabela de roteamento que indique a maneira de contatar cada host.
Se você executar, # ip netns exec red ip route get 192.168.15.2
ele responderá com RTNETLINK answers: Network is unreachable
. Porque a tabela de roteamento não tem resposta sobre como enviar um pacote para a rede 192.168.15.2/32.
No entanto, se você adicionar as rotas em ambas as direções, isso deverá funcionar como uma dica de que os dois hosts são vizinhos (tecnicamente, mais parecidos com pares conectados diretamente) e os pacotes devem ser enviados.
ip netns exec red ip route add 192.168.15.2/32 dev v-red
ip netns exec blue ip route add 192.168.15.1/32 dev v-blue
Você pode então imprimir a tabela de roteamento para ver como uma rota é instruída.
ip netns exec blue ip route list
192.168.15.1 dev v-blue scope link
Esteja ciente de que é totalmente válido usar uma rota padrão aqui ( ip netns exec red ip route add default dev v-red
), já que isso cobre todos os hosts, não apenas aquele que você sabe que existe do outro lado, mas para entender qual é o problema aqui, adicionei o hosts específicos com os quais você estava procurando se comunicar.
Neste ponto, (se os firewalls permitirem), o ping deve funcionar conforme o esperado.
Responder2
Tudo foi explicado pela resposta acima. Estou tentando explicar melhor esboçando sua configuração. Falta roteamento em cada namespace. Apenas tenha em mente que um namespace é uma instância completa de uma pilha de roteamento TCP/IP (ARP, interfaces, roteamento, regras de firewall, etc.).
Espero que isto ajude.
Responder3
Se sua intenção era ter namespaces vermelho e azul na mesma rede, você pode usar o seguinte, o que elimina o roteador.
ip netns exec vermelho ip rota adicionar 192.168.15.2/24 dev v-red
ip netns exec azul ip rota adicionar 192.168.15.1/24 dev v-blue