Silencio nuevo en las redes Linux y no pude encontrar una respuesta a preguntas similares
Intentando crear 2 espacios de nombres y hacer ping entre ellos
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
Lo que busqué al 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
Respuesta1
Los dos dispositivos se encuentran en dos redes lógicas /32 diferentes y no hay ninguna ruta o tabla de enrutamiento que indique la manera de contactar con cada host.
Si ejecutas # ip netns exec red ip route get 192.168.15.2
te responderá con RTNETLINK answers: Network is unreachable
. Porque la tabla de enrutamiento no tiene respuesta sobre cómo enviar un paquete a la red 192.168.15.2/32.
Sin embargo, si agrega las rutas en ambas direcciones, esto debería actuar como una pista de que los dos hosts son vecinos (más bien técnicamente pares conectados directamente) y los paquetes deberían enviarse.
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
Luego puede imprimir la tabla de enrutamiento de una y ver cómo se indica ahora una ruta.
ip netns exec blue ip route list
192.168.15.1 dev v-blue scope link
Tenga en cuenta que es completamente válido utilizar una ruta predeterminada aquí ( ip netns exec red ip route add default dev v-red
), ya que cubre todos los hosts, no solo el que sabe que existe en el otro lado, pero para comprender cuál es el problema aquí, agregué el hosts específicos con los que buscaba comunicarse.
En este punto, (si los firewalls lo permiten) el ping debería funcionar como se esperaba.
Respuesta2
Todo fue explicado por la respuesta anterior. Estoy tratando de explicar más explicando esbozando su configuración. Le falta enrutamiento en cada espacio de nombres. Solo tenga en cuenta que un espacio de nombres es una instancia completa de una pila de enrutamiento TCP/IP (ARP, interfaces, enrutamiento, reglas de firewall, etc.).
Espero que esto ayude.
Respuesta3
Si su intención era tener espacios de nombres rojo y azul en la misma red, es posible que desee utilizar lo siguiente, que elimina el enrutador.
ip netns exec ruta ip roja agregar 192.168.15.2/24 dev v-red
ip netns exec ruta ip azul agregar 192.168.15.1/24 dev v-blue