我运行一个使用quagga的ubuntu路由器。 路由器有许多虚拟接口,每个都连接到不同的上游伙伴。 其中一个虚拟接口连接到IX。 由IX分配的IP不是全球路由,只用于与IX的对等伙伴进行通信(但它是公共IP,而不是私有IP)。
问题是在路由器上运行的prorgrams似乎取决于目标IP的源IP。 因此,例如mtr 50.31.164.145使用我们的IX分配IP作为其来源,因此不起作用。 我知道我可以在使用mtr时指定源IP地址 – mtr --address XXXX 50.31.164.145 ,但是有很多程序不提供这个选项。
有没有办法一般拒绝接口/ IP的(自动)使用,以便IX分配IP永远不会自动使用?
我将尝试使用SNAT目标的iptables进行更改,当数据包使用此接口IP地址离开系统时,将IP源IP转换为另一个IP。
sudo iptables -t nat -A POSTROUTING -s 10.20.20.20 -j SNAT --to-source 10.30.30.30