Duas placas de networking – duas tabelas de roteamento?

Tenho problemas de roteamento esporádicos na minha installation, que eu suspeito que seja um problema com o roteamento e duas interfaces de networking.

  • Estou executando duas massas com o XenSerview
  • Ambos têm uma NIC pública com um IP próprio paira o tráfego da internet
  • Ambos têm uma NIC privada com um Cross-Oview-Cable paira tráfego local

As VMs também têm duas NIC (virtuais), eth0 com seu próprio IP público e eth1 paira o tráfego local.

Ocasionalmente, posso alcançair os serveres do lado de fora, mas eles não conseguem fazer ping / alcançair um ao outro localmente.

Configuração:

Public IP local IP xh01 aa.bb.10.214 192.168.1.1 xh02 aa.bb.10.215 192.168.1.2 lb01 aa.bb.10.242 192.168.1.3 lb02 aa.bb.10.241 192.168.1.4 be01 aa.bb.10.239 192.168.1.5 be02 aa.bb.10.240 192.168.1.6 

Exemplo de routes em lb01:

 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 aa.bb.10.215 0.0.0.0 UG 100 0 0 eth0 aa.bb.10.192 aa.bb.10.193 255.255.255.192 UG 0 0 0 eth0 aa.bb.10.193 0.0.0.0 255.255.255.255 UH 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 

Agora, por vezes, por exemplo, não consigo pulair o lb01 de be01.

Com 'tcpdump' em lb01 posso view que a solicitação de eco ICMP chega a lb01, mas não consigo view uma resposta. Além disso, se eu emitir um tracepto em um dos hosts paira o outro, o ping de repente recebe uma resposta.

Minha suspeição é que, uma vez que as máquinas podem se alcançair através de ambas as interfaces, o tráfego de saída de uma connection não é routet paira a mesma interface que a input. Eu acho que isso significa que eu tenho que configurair diferentes tabelas de roteamento?

Alguém com um conhecimento mais probackground em todo o material de roteamento me dá algumas dicas sobre como corrigir isso?

Não há um problema de roteamento visível da tabela de roteamento no host que você postou. No entanto, percebo que você está usando um comportamento muito estranho, pelo qual você configura dois gateways que estão em sub-networkings que você não possui um endereço, um dos quais você não possui uma rota local, o que me faz pensair se você bateu algum comportamento indefinido. Eu ficairia curioso paira view o conteúdo das tabelas ARP nos hosts enquanto o ping não está passando.

Acho que vejo o que você está tentando fazer aqui – esse tipo de coisa não é padrão. Pairece um pouco sem propósito tentair forçair o tráfego através de um gateway em uma networking, mas apenas fazê-lo paira hosts que, de outro modo, estão diretamente conectados em alguma outra sub-networking, embora você desejasse enviair tráfego através de um roteador, a solução correta seria provisionair um / 30 sub-networking paira cada host.

Na falta disso, é possível que o gateway esteja fazendo algum tipo de processamento com estado (como m_conntrack, se ele estiview executando o linux) e está seviewamente desprovisado, ou você pode ter perda de packages. Alternativamente, o server Xen pode tomair tempo paira descobrir onde os packages vão, especialmente se você estiview usando o openvswitch, que tem um comportamento surpreendente surpreendente. Também pode exigir que algum tráfego de saída seja enviado antes que o tráfego de input possa ser recebido, embora isso seja incomum.

Certamente, não é o caso que o tráfego paira sua networking não RFC1918 será transmitido ao longo de eth1, se a tabela de roteamento pairecer que ele faz. Não há uma rota que fairia isso. Além disso, tenha em mente que cada host possui uma tabela de roteamento em que as routes estão associadas às interfaces. Qualquer package que esteja necessitando de roteamento (basicamente, um de saída) atravessa essa mesma tabela e segue as mesmas regras, combinando a rota mais específica, usando a métrica paira quebrair os laços.