Eu tentaria iptables com o alvo SNAT para mudar, IP de origem para outro IP quando o pacote está deixando o sistema com este endereço IP de interface.
sudo iptables -t nat -A POSTROUTING -s 10.20.20.20 -j SNAT --to-source 10.30.30.30
Estou executando um roteador ubuntu usando quagga. O roteador tem muitas interfaces virtuais, cada uma conectada a um parceiro upstream diferente. Uma dessas interfaces virtuais está conectada a um IX. O IP atribuído a partir do IX não é roteado globalmente e só é usado para se comunicar com os parceiros de peering deste IX (é um IP público, no entanto, não um privado).
O problema é que os programas em execução no roteador parecem ter seu IP de origem dependendo do IP de destino. Por exemplo, mtr 50.31.164.145
usa nosso IP atribuído como sua fonte e, portanto, não funciona. Eu sei que posso especificar o IP de origem ao usar mtr com mtr --address X.X.X.X 50.31.164.145
, mas existem muitos programas que não oferecem essa opção.
Existe alguma maneira de negar o uso (automático) de uma interface / ip, de modo que o IX IP atribuído nunca seja usado automaticamente?
Eu tentaria iptables com o alvo SNAT para mudar, IP de origem para outro IP quando o pacote está deixando o sistema com este endereço IP de interface.
sudo iptables -t nat -A POSTROUTING -s 10.20.20.20 -j SNAT --to-source 10.30.30.30