Eu quero ser capaz de acessar serviços em execução em uma interface TAP dentro de um namespace de fora da máquina em que está sendo executado. Eu tenho configuração que se parece com isso -
VM1/Machine1
+eth0 : Public Network
+eth1 : Private Network (IP: 192.168.2.5/24)
VM2/Machine2
+========================================+
| |
| eth0: Public Network 10.1.1.20/24 UP |
| eth1: Private Network UP |
|----------------------------------------+
| Network Namespace : test |
| TAP0: 192.168.2.10/24, UP |
|----------------------------------------|
| |
+========================================+
Eu quero ser capaz de executar ping / acessar serviços em execução no TAP0 em teste de namespace da VM1 / Machine1. Eu usei a informação no post 'OpenVSwitch entre namespaces' e alguns outros artigos online para criar uma bridge, coloque 'eth1' e 'TAP0' na mesma bridge. Mas ainda não consigo acessar. Não tenho certeza o que mais está faltando? Aqui estão os comandos que eu tentei no VM2 / Machine2 -
ip netns add test
ovs-vsctl add-br br0
ovs-vsctl add-port br0 tap0 -- set interface tap0 type=internal
ip link set tap0 netns test
ip netns exec test ip addr add 192.168.2.10/24 dev tap0
ip netns exec test ip link set tap0 up
ovs-vsctl add-port br0 eth1 -- set interface eth1 type=internal
Depois disso, a bridge 'br0' tem 'eth1' e 'tap0'. Então, quando eu faço ping no IP da interface de toque da VM1, achei que seria possível alcançar o tap0. Isso funciona corretamente sem namespaces, mas com namespace ele não funciona.
Em outra tentativa, eu também tentei
- creating 2 bridges
- one OVS bridge outside
- one linux bridge inside namespace
- created a veth pair
- ovs bridge has eth1 and one end of veth pair
- linux bridge in the namespace has 'tap' interface and other end of veth pair
Mas isso também não funcionou: (
Eu achei que o objetivo da bridging é que se eu adicionar interface / port nela eu devo ser capaz de acessar os serviços na porta, assim como um switch. Não tenho certeza do que estou perdendo.