Linux roteando duas LANs diferentes com dois gateways diferentes

1

Eu tenho duas redes diferentes (LANs separadas), cada uma com seu próprio gateway ISP, que eu quero cruzar (usuários de uma LAN para alcançar a outra LAN). Os gateways do ISP são gateways domésticos estúpidos, sem nenhuma funcionalidade sofisticada (por exemplo, roteamento estático).

Basicamente, a topologia atual é:

LAN1 -> ISP_G1 -> WAN
LAN2 -> ISP_G2 -> WAN

Eu quero ser capaz de cruzar as LANs, mas mantendo o tráfego da WAN para cada uma delas. Minha idéia é usar uma máquina Linux como um servidor roteador / dhcp, a fim de manter a conectividade WAN para cada LAN, mas também ser capaz de, por exemplo. ping de uma LAN para outra.

A topologia que estou tentando fazer é:

WAN -> ISP_G1 -> LAN1/Switch1 -> Linux/Router <- LAN2/Switch2 <- ISP_G2 <- WAN

A máquina Linux / Roteador tem duas interfaces Ethernet, cada uma conectada às diferentes LANs, e também serve como o servidor DHCP, fornecendo duas sub-redes diferentes para os clientes de cada LAN.

O endereçamento é o seguinte:

Linux/Router machine:
eth0: 10.0.0.2
eth1: 10.0.1.2

ISP gateways:
ISP_G1: 10.0.0.1
ISP_G2: 10.0.1.1

O DHCP nos gateways do ISP está desativado; em vez disso, a máquina Linux é o servidor DHCP que fornece IPs aos clientes de acordo com as diferentes sub-redes, por exemplo, 10.0.0.0/24 e 10.0.1.0/24. Também informa aos clientes que o seu gateway não é o gateways ISP, mas a própria máquina Linux, por exemplo. 10.0.0.2 para LAN1 e 10.0.1.2 para LAN2.

Meu problema é que apenas uma LAN pode ter acesso a ambas as sub-redes e à sua WAN, e isso depende de qual gateway da WAN está configurado na máquina Linux.

Por exemplo: Se a máquina Linux estiver configurada com o ISP_G2 como seu gateway, a LAN1 poderá acessar a LAN2, mas não poderá acessar a WAN e vice-versa.

Estou tentando designar um gateway diferente com base nas tabelas de rotas na máquina do Linux, por exemplo:

ip route add default via 10.0.0.1 dev eth0 table subnet1
ip rule add from 10.0.0.0/24 table subnet1

Mas, enquanto a LAN1 pode acessar a WAN através do ISP_G1, ela não pode mais acessar a LAN2.

O que eu preciso é uma maneira de alterar o gateway LAN1 para ISP_G1, SOMENTE para o tráfego que é destinado à WAN, e manter a máquina Linux como o gateway LAN1 para todo o tráfego relacionado à LAN.

Qualquer ponteiro é muito apreciado

    
por Xavi 12.08.2016 / 16:56

1 resposta

2

Acho que as rotas de origem devem tornar isso possível, mas é necessário criar todas as rotas explicitamente para as duas redes, ou seja, a rota padrão e a rota da outra rede. Algo parecido com isto:

ip route add default via 10.0.0.1 dev eth0 table subnet1
ip route add 10.0.1.0/24 dev eth1 table subnet1
ip rule add from 10.0.0.0/24 table subnet1

O mesmo para o outro bloco e uma rota padrão para a caixa central em si.

A outra opção seria informar ao DHCP para fornecer aos clientes uma rota padrão e uma rota estática para o outro bloco de rede. Assim, eles falavam em seu próprio portal de internet sem passar pela caixa central, e só passavam pelo centro para chegar ao lado oposto.

Existem menções de option classless-static-routes no contexto de dhclient , mas o ISC DHCP servidor parece não suportar isso diretamente.

Em vez disso, a opção pode precisar ser inserida manualmente. Existem alguns exemplos para este aqui , mas a explicação sobre o formato é um pouco breve. RFC 3442 descreve o formato em "Formato de opção de rota sem classe".

    
por 12.08.2016 / 17:15