1. ip route show 查看一下本地路由:
笔者为了图方便,直接在园区网络使用了公网地址,这里就把公网地址隐掉了,如果按照第一节的内容应该是default via 192.168.101.1(默认网关);
192.168.101.0/24 dev enp1s0f0 :这里是网络号和掩码;
link 192.168.101.2 metric 100:这里就是网卡的本地地址。
分段来看:
default via 192.168.101.1 dev enp1s0f0 proto static metric 100
192.168.101.0/24 dev enp1s0f0 proto kernel scope link src 192.168.101.2 metric 100
dev enp1s0f0:定义了默认路由的网卡。
metric 100:metric值,越小优先级越高,优先执行。
2. 首先设置第二块网卡,由于默认网关(default GW)只能有一条所以对于第二块网卡而言,笔者需要做的只是设置IP地址。配置方法与第一节类似,配置前后如下图:
前:
后:
除了IP地址外这次什么都不做配置。
重启网卡:service network restart
查看ip状态:ip addr
这时找一台专网内的设备来ping一下进行测试:
网络已经连通。
在笔者电脑上去ping一下网关(这个没有在网卡中配置,是专网中定义的概念):
发现也是通的!这时其实已经实现了这台设备同时接入专网。
网关查看arp信息:
对照一下笔者本机的mac地址和已经设置的IP地址。确认无误。
3. Tracert路由测试:
Windows环境下tracert测试本机路由笔者已经比较熟悉了,linux下可以之直接通过tracerroute来测试。由于该版本centos 7不带traceroute指令,笔者通过yum来进行安装。
Traceroute网关:traceroute 10.150.101.1
查看yum安装:yum list installed | grep route
发现centos 7确实没有安装traceroute工具。
安装traceroute:yum install traceroute
再次检查一下:yum list installed | grep route
Traceroute网关,发现正常:traceroute 10.150.101.1
Traceroute专网内不同地址段的IP:traceroute 10.150.120.2
果然,由于默认路由是走的园区网,而园区网络内没有该IP地址,路由不通。
4. 将如上的两部分做对比,笔者下一步要做的就是“优先转发”,即对于10.150.0.0/16的数据报文优先通过网卡eth1。
测试阶段:
查看一下本地路由:ip route show
可以看出这次比第一次的路由表多了一条10.150.101.0/24的路由,就是因为有了这条自动生成的路由,才能使得笔者ping 10.150.101.1可通。
由于对于linux设备而言,默认网关(default gateway)只能有一个,而采用双网卡来实现的时候就需要分别写不同地址的路由。因此第一步笔者先回到第一节笔者设置的网卡0上:
cd /etc/sysconfig/network-scripts/
vi ifcfg-enp1s0f0
删除第一节配置的GATEWAY=192.168.101.1
wq!
请注意,删除之后由于没有默认网关的缘故,出网关的数据报文便不再转发。这时候如果通过不同/24网络内远程管理的主机会连接中断。
直接登陆该服务器或者同网段远程管理该设备,执行service network restart。
修改过后继续ip route show:
这时仅剩两条子网内的路由,然后笔者开始新增路由:
新增10.150.0.0/16路由:#ip route add 10.150.0.0/16 via 10.150.101.1 dev enp1s0f1
新增除上述地址段外其余路由:#ip route add 0.0.0.0/0 via 192.168.101.1 dev enp1s0f0
再次查看一下路由:ip route show
发现想要的路由已配置好。笔者来测试一下:
ping www.baidu.com ; ping 10.150.102.3
当然也可以traceroute测试一下路由是怎么走的。
5. 如上笔者发现重启设备时路由就没了,因此也参考windows的做法,把上述路由设置为静态路由:cd /etc/sysconfig/network-scripts/
ls看一下文件:
在上述的基础上笔者新建两个文件,并把之前添加的两条路由加入其中,由于笔者专网中还有172.17.0.0/16的业务地址,所以一并加上去:
vi route-enp1s0f0
0.0.0.0/0 via 192.168.101.1 dev enp1s0f0
vi route-enp1s0f1
10.150.0.0/16 via 10.150.101.1 dev enp1s0f1
172.17.0.0/16 via 10.150.101.1 dev enp1s0f1
重启服务器:reboot。按照测试阶段的方法再进行尝试。
这时笔者发现比测试阶段多出了一条关于172.17.0.0/16的路由,多网卡设置成功~
思考:
1. 对比最初的单网卡配置和最终实现双网卡接入的图片:
为何要删掉第一条:default via 192.168.101.1 dev enp1s0f0 proto static metric 100并新增一条default via 192.168.101.1 dev enp1s0f0
2. 对于最终路由,有些没有metric值,有些metric值为100。对于同为100的路由(比如上图第二条和第三条),是如何执行优先级的?
3. 最终生成的路由表169.254.0.0/16 dev enp1s0f0 scope link metric 1002是什么意思?
转自:https://www.jianshu.com/u/0d31bfec82e7
本文详细介绍了如何在Linux系统中配置双网卡以实现不同网络间的优先转发。从基本的iproute命令用法到复杂的多网卡路由设置,包括设置默认网关、优先级调整、静态路由配置等关键步骤。
325

被折叠的 条评论
为什么被折叠?



