Roteamento com Quagga e OpenVPN

1

Planejamos conectar servidores em dois racks uns com os outros. Vamos supor que temos 5 servidores em cada rack conectados a um switch rápido. Cada servidor tem um uplink de Internet de 1 GBit.

O seguinte pode ser muito estúpido, mas a rede não é minha área de especialização, é por isso que preciso da sua ajuda.

Estamos criando várias conexões OpenVPN (veja a imagem anexada, as 'nuvens azuis' são redes VPN), porque queremos usar a conexão completa de 1 GBit entre elas. Mas se um servidor ficar inativo, ainda queremos uma conexão funcional entre os dois racks.

Então, o que fizemos: 1. Configure o OpenVPN entre cada servidor S [1-5] e C [1-5], criando uma rede virtual de 10.0.5x.0 / 24. (Isso já está funcionando) 2. Instale e configure o Quagga com o OSPF para anunciar as rotas. Fizemos isso para cada nó, para que todos possam ser um roteador para outra pessoa (não queremos apenas um único gateway, porque isso limitaria a conexão entre os racks a apenas 1 GBit, certo ?!)
3. Quagga agora anuncia rotas e todos podem pingar todos os outros (também trabalhando)

Agora a peça começa: Nós pegamos C4 e as rotas são atualizadas de acordo (falando de OSPF e quagga). Mas o que acontece agora, se tentarmos fazer o ping do S4 para o C5, é preciso um caminho que o C5 acredite não é o melhor caminho (isso é o meu entendimento da configuração de rede linux do rp_filter para 1). A rota que vemos no tcpdump é S4 - > S3 - > C3 - > C5. Uma rota melhor seria S4 - > S5 - > C5.

Se definirmos rp_filter como 2, o ping funcionará, mas parece errado permitir rotas não ideais? Pensamos que o OSPF está lá para obter o melhor (caminho mais curto) possível? Mas nós achamos que nós configuramos o Quagga / OSPFd errado.

Aqui está a imagem da topologia que temos em mente: topologia

O ospfd.conf se parece com isso

interface eth0
interface bond0
interface tun0

router ospf
  router-id 10.0.1.4
  network 10.0.1.0/24 area 0
  network 10.0.54.0/24 area 1
  redistribute static

zebra.conf:

interface bond0
  link-detect
interface tun0
  link-detect
    
por lbenedix 20.10.2016 / 17:11

1 resposta

0

Em suma, você deve colocar todas as suas interfaces na mesma área para obter o comportamento desejado. O roteamento entre áreas é bastante complicado internamente e todo o conceito de áreas existe principalmente para o particionamento de grandes redes de roteamento em redes de tamanho gerenciado. Este não é o seu caso, se o número de roteadores que você fornecer estiver correto.

    
por 21.10.2016 / 00:52