Como rotear apenas sub-rede específica (ip de origem) para uma interface específica?


31

Como rotear apenas sub-rede específica (ip de origem) para uma interface específica?
SO: Linux

Eu sei que posso fazer facilmente pelo IP de destino usando algo como

route add 1.2.3.4/24 dev eth4

mas não vejo como rotear com base no IP de origem.

Respostas:


30

Você precisa usar o roteamento baseado em políticas. Algo como

ip rule add from <source>/<mask> table <name>
ip route add 1.2.3.4/24 via <router> dev eth4 table <name>

<name>é o nome da tabela especificado em /etc/iproute2/rt_tablesou você pode usar o ID numérico ...

Isso praticamente diz que todo o tráfego 1.2.3.4/24será roteado usando a tabela de roteamento <name>. Como o IIRC não usa a tabela padrão depois de passar por isso, se você precisar de outras rotas (por exemplo, gateway padrão), precisará adicioná-las à tabela também.


1
uma correção (mas não tenho certeza se o seu um vai também trabalho para o segundo comando:. ip route add default dev eth4 table <name>( tabledirectiva deve ir no final eu acho que, assim como no primeiro comando ... também defaultpode ser substituída por uma sub-rede, assim como no seu exemplo )
Alex

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.