Eu criei duas VMs do Ubuntu 12.04 usando o VMWare Player com configuração de rede NAT. Eu sou capaz de fazer ping de um para o outro. Depois disso, criei um namespace de rede em um deles e adicionei uma interface virtual. A partir do namespace de rede, posso acessar a interface física da VM por meio da outra extremidade da interface virtual que reside no namespace padrão, adicionando uma rota no namespace. Eu habilitei ip_forward
para a VM que causa acesso à Internet do namespace da rede. No entanto, não consegui fazer o ping da outra VM na rede privada a partir do namespace. Alguém pode explicar a razão por trás disso. Estou anexando minha configuração:
Crie um namespace de rede e faça a comunicação entre as interfaces virtuais:
sudo ip netns add vnet
ip netns list
sudo ip link add veth0 type veth peer name veth1
ip link
sudo ip link set veth1 netns vnet
sudo ip netns exec vnet ip link list
sudo ip netns exec vnet ip link set dev lo up
ip netns exec vnet ping -c5 127.0.0.1
sudo ip addr add 10.0.0.1/24 dev veth0
sudo ip link set dev veth0 up
ip netns exec vnet ip addr add 10.0.0.2/24 dev veth1
ip netns exec vnet ip link set dev veth1 up
ip netns exec vnet ping -c5 10.0.0.1
Comunicação de interfaces virtuais com as interfaces físicas:
sudo ip netns exec vnet route add default gw 10.0.0.1 veth1
Comunicação de interfaces virtuais com o mundo exterior:
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/veth0/proxy_arp