
Atribuímos nossas rotas estaticamente usando os arquivos /etc/sysconfig/network-scripts/route-ethx. Isso torna o gerenciamento deles bastante fácil, pois adicionamos as rotas durante o processo de kickstart (por meio de pós-script). Eles raramente mudam e se precisarem ser atualizados, simplesmente realizamos uma alteração e atualizamos os scripts de construção para incluir a nova rota.
Recentemente, um cliente solicitou uma interface virtual (eth0:0) com um IP exclusivo. Ele precisa se conectar exclusivamente a uma rede. O primeiro IP atribuído na eth0 tratará de todo o outro tráfego.
Tudo o que vi indica como adicionar uma rota usando ip route add
, mas não consigo descobrir como especificar que qualquer coisa que vá para um determinado IP ou rede possa ter o IP de origem definido. Se eu usar o comando ip, ele atualizará os arquivos de rota ou será armazenado em outro lugar para persistência nas reinicializações? Se eu tiver que adicionar a entrada ao arquivo de rota para eth0:0, como deve ser a linha?
Então, basicamente:
Se for para 10.0.0.2 use IP 10.0.1.3 como fonte. Se for para qualquer outro lugar, use IP 10.0.1.2 como fonte.
Isso é possível? Como faço isso?
Responder1
Se entendi claramente sua pergunta, você pode tentar algo como o seguinte
# ip route add 10.0.0.2 via xxx.xxx.xxx.xxx src 10.0.1.3
# ip route add default via yyy.yyy.yyy.yyy src 10.0.2.2
Existe outro método que preciso examinar?
Você poderia tentar usar o iptables
# iptables -t nat -I PREROUTING -d 10.0.0.2 -j SNAT --to-source 10.0.1.3
Responder2
Isso foi esclarecido por um colega que fez a mesma coisa recentemente.
O formato da rota a ser inserida no arquivo route-eth0:0 é:
10.0.0.2/32 via 10.0.1.1 dev eth0:0 src 10.0.1.3
Todo o outro tráfego através da eth0 será marcado como sendo de 10.0.1.2 por padrão. 10.0.1.1 é a rota padrão, mas os pacotes terão um IP de origem devidamente marcado.