Eu tenho proxmox 4 baseado no debian 8 em dois hosts A e B. Ambos possuem dois NICs. Uma NIC de cada host é conectada por meio de um cabo Crossover.
Host A:
eth0: public IP
eth1: 10.0.0.2/24
vmbr1: 10.0.0.1/24
Host B:
eth0: public IP
eth1: 10.0.1.2/24
vmbr1: 10.0.1.1/24
No vmbr1, há um contêiner anexado em cada host com 10.0.x.10. Eu vou denotar assim:
Host A:
veth100i1@if12: 10.0.0.10/24 (IP only visible inside container on eth0)
Host B:
veth100if1@if30: 10.0.1.10/24 (IP only visible inside container on eth0)
Host da tabela de roteamento A:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 X.X.X.X 0.0.0.0 UG 0 0 0 eth0
X.X.X.0 X.X.X.X 255.255.255.224 UG 0 0 0 eth0
X.X.X.0 0.0.0.0 255.255.255.224 U 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 vmbr1
10.0.1.0 10.0.0.2 255.255.255.0 UG 0 0 0 eth1
10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Host B da tabela de roteamento:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 Y.Y.Y.Y 0.0.0.0 UG 0 0 0 eth0
Y.Y.Y.0 Y.Y.Y.Y 255.255.255.224 UG 0 0 0 eth0
Y.Y.Y.0 0.0.0.0 255.255.255.224 U 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.0.0.0 10.0.1.2 255.255.255.0 UG 0 0 0 eth1
10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 vmbr1
Do Host A, eu posso pingar para
- seu contêiner em 10.0.0.10
- B eth1 do host em 10.0.1.2
- B vmbr1 do host em 10.0.1.1
- mas não ao contêiner B do host em 10.0.1.10
Do Host B, posso pingar para
- seu contêiner em 10.0.1.10
- A eth1 do host em 10.0.0.2
- A vmbr1 do host em 10.0.1.1
- mas não no contêiner A do host em 10.0.0.10
Quando eu tento pingar 10.0.1.10 do Host A no container no Host B, posso ver o seguinte na eth1 do Host B:
tcpdump -nni eth1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
12:42:48.567438 ARP, Request who-has 10.0.1.10 tell 10.0.0.2, length 46
No vmbr1 do host B, o tcpdump não mostra nada.
Como encaminhar os pacotes para os contêineres do outro host?