Iproute2: roteamento com várias redes e vários gateways

2

Eu tenho uma caixa Linux rodando o Ubuntu 10.04 com três interfaces: eth0 , eth1 e eth2 . Estou planejando usá-lo como um roteador WAN para 4 sub-redes públicas atribuídas por dois ISPs diferentes. Aqui estão as sub-redes (eu converti as sub-redes atribuídas pelo ISP às sub-redes privadas da classe C):

ISP 1   
WAN 192.168.0.176/30 gateway 192.168.0.177   
LAN 192.168.3.192/29

ISP 2   
WAN 192.168.6.208/30 gateway 192.168.6.209  
LAN 192.168.9.216/29

/30 sub-redes estão voltadas para os ISPs e /29 sub-redes para o meu switch de LAN.

É assim que os IPs são atribuídos às interfaces:

LAN interface 
eth0 192.168.3.193/29
eth0:0 192.168.9.217/29

ISP 1 interface
eth1 192.168.0.178/30

ISP 2 interface
eth2 192.168.6.210/30

Desejo rotear o tráfego entre o respectivo ISP atribuído /30 e /29 sub-redes separadamente. Se o tráfego vier da rede /30 de um ISP, ele deverá ser roteado para os ISPs /29 network e vice-versa. Não me importo se o tráfego originado na rede /29 de um ISP destinada à rede /29 de outro ISP é roteado em meu roteador (sem ser enviado para um ISP e retornar o link de outro ISP).

Meu objetivo é não comprar dois roteadores para dois ISPs. Como posso conseguir isso usando tabelas iproute2 e roteamento de políticas?

    
por nixnotwin 05.04.2012 / 17:04

1 resposta

3

Primeiro, crie uma tabela de roteamento para cada ISP (feito apenas uma vez):

echo "11 isp1" >> /etc/iproute2/rt_tables
echo "12 isp2" >> /etc/iproute2/rt_tables

Em seguida, adicione uma rota padrão a cada tabela que aponta para o gateway correspondente:

ip route add default via 192.168.0.177 table isp1
ip route add default via 192.168.6.209 table isp2

Em seguida, adicione regras para enviar tráfego para essas tabelas com base no endereço de origem:

ip rule add from 192.168.3.192/29 table isp1
ip rule add from 192.168.0.176/30 table isp1
ip rule add from 192.168.9.216/29 table isp2
ip rule add from 192.168.6.208/30 table isp2
    
por 11.04.2012 / 23:15