Sempre encaminhar o tráfego para fora da interface que ele originou em

1

( Esta é a pergunta original, mas minha eventual A solução era muito diferente de como eu originalmente fiz a pergunta, então estou postando como uma nova pergunta.)

Histórico:

Eu tenho uma VM com três interfaces diferentes: Management (eth0), Production (eth1) e Backup (eth2). O gerenciamento é para o tráfego RDP e SSH. A produção é para a maior parte do tráfego. O backup é para comunicação com serviços de backup, todos na mesma sub-rede. Cada rede é restrita à sua própria finalidade e qualquer tráfego que pareça ser transportado por uma das outras redes será descartado (por exemplo, tcp/22 é descartado na rede de produção).

Problema:

O tráfego SSH está chegando ao servidor na porta de gerenciamento, mas está saindo na interface de produção:

Isso faz com que o tráfego seja interrompido, já que os pacotes serão tcp/22 saindo para a rede de produção.

Se eu alterar a rota padrão para apontar para o gateway de gerenciamento, os pacotes saem da interface correta, assim o ssh funciona, mas todo o tráfego de produção pára de funcionar. Posso deixar a rota padrão apontando para PROD e ela continuará funcionando desde que eu esteja conectando de uma máquina na mesma sub-rede.

Eu preciso do kernel para configurar o gateway padrão, dependendo da interface em que o tráfego se originou.

    
por Bratchley 04.12.2014 / 15:59

1 resposta

1

Qualquer roteamento avançado, como a configuração de vários gateways padrão, envolverá o roteamento com base em políticas .

Existem várias soluções que foram postadas para encaminhamento com base na marcação de pacotes destinados a uma porta específica, mas a solução que encontrei no portal do cliente da Red Hat acabou sendo muito mais fácil e provavelmente será mais amplamente aplicável.

Adicionando a /etc/rc.local :

  1. Configure a tabela de roteamento alternativa , chamei a minha 2 .

    /sbin/ip route add table 2 default via <management-gateway>

  2. Defina o tráfego do IP de gerenciamento para usar a tabela de roteamento alternativa com o conjunto de gateway de gerenciamento.

    /sbin/ip rule add from <management-IP-address> table 2

Os trabalhos acima deixam meu gateway principal (na tabela de roteamento padrão) apontando para a produção (eth1). O gateway na etapa 2 será escolhido para qualquer tráfego originado do endereço IP associado à eth0.

No meu caso particular, a rede de backup não é sensível a uma configuração de gateway, pois todo o tráfego está na mesma sub-rede. No entanto, se a rede de backup tivesse várias sub-redes, eu poderia configurar uma terceira tabela de roteamento e fazer um ip rule add semelhante para essa.

Sem roteamento baseado em políticas, o kernel consultaria a tabela de roteamento padrão para decidir a interface para empurrar o tráfego para fora. Isso significa que a interface correta será selecionada se o outro nó estiver na mesma sub-rede que uma das interfaces conectadas, caso contrário, o tráfego será enviado pela rota padrão. Esse comportamento não seria visível se a rede continuasse a rotear o pacote apesar de sair da interface "errada", mas, no meu caso, resultou na queda do tráfego.

Depois de fazer o roteamento baseado em políticas, o tráfego de Produção e Gerenciamento / SSH começou a funcionar conforme o esperado.

    
por 04.12.2014 / 15:59