我们使用/ etc / sysconfig / network-scripts / route-ethx文件静态分配路由。 这使得pipe理起来相当简单,因为我们在kickstart过程中添加了路由(通过post-script)。 他们很less改变,如果他们需要更新,我们只需推出一个改变,并更新构build脚本,以包括新的路线。
最近,我们有一个客户要求一个具有唯一IP的虚拟接口(eth0:0)。 它只需要连接到一个networking。 eth0上的第一个分配的IP将处理所有其他stream量。
我见过的所有东西都说明了如何使用ip route add来添加路由,但是我不能理清如何指定去往特定IP或networking的任何东西都可以设置源IP。 如果我使用ip命令,它会更新路由文件还是存储在其他地方为重新启动持久性? 如果我必须将条目添加到eth0:0的路由文件,该行应该是什么样子?
所以基本上:
如果转到10.0.0.2,则使用IP 10.0.1.3作为源。 如果它去其他地方使用IP 10.0.1.2作为来源。
这可能吗? 我如何完成它?
如果我清楚地明白你的问题,你可以尝试下面的东西
# ip ro add 10.0.0.2 via xxx.xxx.xxx.xxx src 10.0.1.3 # ip ro add default via yyy.yyy.yyy.yyy src 10.0.2.2
还有另外一种方法,我需要看看?
你可以尝试使用iptables
# iptables -t nat -I PREROUTING -d 10.0.0.2 -j SNAT --to-source 10.0.1.3
最近做了同样的事情的一位同事澄清了这一点。
要input到route-eth0:0文件中的一个路由的格式是:
10.0.0.2/32 via 10.0.1.1 dev eth0:0 src 10.0.1.3
所有其他通过eth0的stream量默认会被标记为10.0.1.2。 10.0.1.1是默认路由,但数据包将具有正确标记的源IP。