在上一篇博文中,用到了添加路由的方法让不同的网络互通,但这种方法会造成部分旧网络环境不能访问宿主主机的情况。
现在我们在宿主主机上做策略路由,让不同网络环境过来的访问按原线路回去
宿主主机上:
旧网络环境业务网段:br2
10.1.7.206
gw:10.1.4.3
新网络环境业务网段:br0
10.100.241.206
gw:10.100.241.254
路由表
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.200.241.0 0.0.0.0 255.255.255.0 U 0 0 0 br1
10.100.241.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
10.1.4.0 0.0.0.0 255.255.252.0 U 0 0 0 br2
20.1.4.0 0.0.0.0 255.255.252.0 U 0 0 0 br3
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 10.100.241.254 0.0.0.0 UG 0 0 0 br0
可以看到,只设置了
添加路由表(参考资料:)
vi /ect/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
100 f3
101 f5
添加开机启动脚本
vi /etc/rc.d/after.local
#!/bin/bash
#配置原线路返回路由
ip route flush table f5
ip route add default via 10.100.241.254 dev br0 src 10.100.241.206 table f5
ip rule add from 10.100.241.206 table f5
ip route flush table f3
ip route add default via 10.1.4.3 dev br2 src 10.1.7.206 table f3
ip rule add from 10.1.7.206 table f3
#end
加载脚本
#source /etc/rc.d/after.local
把脚本加在network 重启脚本里
# vi /sbin/rcnetwork
restart|force-reload)
$0 stop $CONFIG $INTERFACE ${OPTIONS:+-o $OPTIONS}
$0 start $CONFIG $INTERFACE ${OPTIONS:+-o $OPTIONS}
rc_status
. /etc/rc.d/after.local
rc_exit
重启网络服务
测试:
ping 10.1.7.206
ping 10.100.241.206
两个都可以ping 通,完成
但这里有个问题,就是宿主主机主动去访问旧网络主机时,走的却是***
# traceroute 10.1.3.250
traceroute to 10.1.3.250 (10.1.3.250), 30 hops max, 40 byte packets using UDP
1 10.100.241.251 (10.100.241.251) 33.245 ms 32.513 ms 30.033 ms
2 10.100.240.1 (10.100.240.1) 0.513 ms 0.329 ms 0.291 ms
3 * * *
4 10.1.3.250 (10.1.3.250) 9.120 ms 5.150 ms 2.387 ms
并没有像上一篇添加路由一样直接走相应网卡出去,看来这种设置适合双线提供服务的服务器