Lunix服务器多网卡配置路由

这几天遇到一个坑:多网卡配置默认网关,导致部分网络不通。
产品在客户现场部署时候网络环境比较复杂,三个大网完全隔离的但产品必须要被三个大网能访问到。开始觉的简单三个网口配置默认网关搞定,错了错了错了。实践告诉我错了,现场有的区域无法访问产品。
问题出错原因:
多网口配置了默认网关后(即是缺省路由),配置后lunix系统会自动自动生成不同的metric值的路由条目,路由选路时会选择metric值最小的哪条路(网口),这样有的目的ip不在转发网口能通的区域,就会出现不可达的情况。
Metric
为路由指定所需跃点数的整数值,它用来在路由表里的多个路由中选择与转发包中的目标地址最为匹配的路由。所选的路由具有最少的跃点数。metric值越小路径约佳,也就选择哪条路(网口)转发。
问题复现
虚拟机中桥接两个网卡,同时配置缺省网关(与真实环境有差异,原理一样)。
如:
网关
环境可知
网卡1(ens33):192.168.1.27
网卡2(ens34):192.168.1.26
同时配置 default gw是192.168.1.1 通过路由表中可以看到只有metric值不一样。
测试ping 8.8.8.8 会选择哪个网口出去?(如图)
路由选路
可以看出只有metric为100的ens34的网口有包通信,另一个网口没有数据。
这就证明了三个网口同时配置缺省路由,未知的destination-ip只走一个网口出去,这样在隔离的三个大网中,有的destination ip是访问不到的。
那么怎么解决?加精准路由条目
解决问题:
[root@localhost ~]# route add -net 8.8.8.0/24 gw 192.168.1.1 dev ens33 #添加精准路由。改变路由选择,使的8.8.8.0的选ens33网口。
精准路由

猜你喜欢

转载自blog.csdn.net/u013908944/article/details/82719842