Definindo exceções para uma rota de sub-rede

1

Eu tenho uma tabela de roteamento padrão bastante simples na minha caixa linux:

default via 192.168.1.1 dev eth0  proto static
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.162  metric 1

Agora preciso rotear uma sub-rede específica para outro gateway. Não tem problema, apenas adicione

10.0.0.0/8 via 192.168.1.2 dev eth0

No entanto, existe um subconjunto daquilo que NÃO deve ir para lá. Isso funciona:

10.0.2.0/24 via 192.168.1.1 dev eth0

Mas eu prefiro não ter que repetir o gateway padrão lá; Gostaria de poder dizer "para 10.0.2.0/24, faça o que faria se não houvesse uma rota 10.0.0.0/8 definida"

Qualquer maneira de fazer isso? (Além de substituir o 10.0.0.0/8 por um monte de rotas mais específicas para evitar cuidadosamente o 10.0.2 / 24)

    
por Jochen 24.07.2013 / 09:18

2 respostas

2

O roteamento é correspondido como um dos ganhos mais específicos.

Isto:

10.0.2.0/24 via 192.168.1.1 dev eth0

É mais específico que isso:

10.0.0.0/8 via 192.168.1.2 dev eth0

/24 vs /8

Portanto, basta adicionar as duas rotas, o tráfego para 10.0.2.0/24 corresponderá a essa rota, qualquer outra coisa corresponderá à rota menos específica / 8.

Lembre-se de que sua rota padrão é 0.0.0.0/0, que é o CIDR menos específico existente, e é por isso que todas as outras rotas correspondem à sua rota padrão. ( 192.168.1.0/24 é parte de 0.0.0.0/0 lembrar)

    
por 24.07.2013 / 10:33
0

Por que não adicionar a rota a 10.0.0.0/8 em 192.168.1.1? Dessa forma, novos hosts em sua rede não precisam saber sobre essa rota estática e você pode deixar 192.168.1.1 como a rota padrão e ter como responsável encontrar redes únicas como 10.0.2.0/24 e mais geralmente 10.0.0.0 / 8.

    
por 24.07.2013 / 09:37