Linux下多块网卡同一网段连通配置

Linux下多块网卡同一网段连通配置,第1张

概述前提:服务器有四块网卡,信息如下所示: [[email protected] ~]# ipaddr|grep net     inet 127.0.0.1/8 scope host lo     inet6 ::1/128 scope host     inet 192.168.1.150/24 brd 192.168.1.255scope global dynamic enP3p9s0f0   

前提:服务器有四块网卡,信息如下所示:

@H_419_14@

[[email protected] ~]# ipaddr|grep net

    inet 127.0.0.1/8 scope host lo

    inet6 ::1/128 scope host

    inet 192.168.1.150/24 brd 192.168.1.255scope global dynamic enP3p9s0f0

    inet6 fd00:1:1:1:42f2:e9ff:fe5c:b5bc/64scope global dynamic

    inet6 fe80::42f2:e9ff:fe5c:b5bc/64 scopelink

    inet 192.168.1.104/24 brd 192.168.1.255scope global dynamic enP3p9s0f1

    inet6 fd00:1:1:1:42f2:e9ff:fe5c:b5bd/64scope global dynamic

    inet6 fe80::42f2:e9ff:fe5c:b5bd/64 scopelink

    inet 192.168.1.118/24 brd 192.168.1.255scope global dynamic enP3p9s0f2

    inet6 fd00:1:1:1:42f2:e9ff:fe5c:b5be/64scope global dynamic

    inet6 fe80::42f2:e9ff:fe5c:b5be/64 scopelink

    inet 192.168.1.23/24 brd 192.168.1.255scope global br0

    inet6 fe80::42f2:e9ff:fe5c:b5bf/64 scopelink

    inet 192.168.122.1/24 brd 192.168.122.255scope global virbr0

9:vnet0: <broADCAST,MulTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast masterbr0 state UNKNowN qlen 500

inet6fe80::fc54:ff:fe87:d8a/64 scope link

 

写此文章的目的:23服务器有四块网卡,都插有网线并连接交换机,重启后自动分配地址。但是发现.23Ping不通。原因是路由表main表,有多条路由规则,23这个IP是br0的IP,在规则表中第四条,不被优先匹配。路由表有多条同网段但不通出口的路由,会优先匹配第一条。所以23不通。路由表信息如下所示:

 [[email protected] cjxlvdir]# route -n

KerneliP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.1.1     0.0.0.0         UG   100    0        0 enP3p9s0f0

0.0.0.0         192.168.1.1     0.0.0.0         UG   101    0        0 enP3p9s0f2

0.0.0.0         192.168.1.1     0.0.0.0         UG   102    0        0 enP3p9s0f1

0.0.0.0         192.168.1.1     0.0.0.0         UG   425    0        0 br0

169.254.0.0     0.0.0.0         255.255.0.0     U    1006   0        0 br0

169.254.0.0     0.0.0.0         255.255.0.0     U    1008   0        0 br0

192.168.1.0     0.0.0.0         255.255.255.0   U    0      0        0 enP3p9s0f2

192.168.1.0     0.0.0.0         255.255.255.0   U    0      0        0enP3p9s0f1

192.168.1.0     0.0.0.0         255.255.255.0   U    100    0        0 enP3p9s0f0

192.168.1.0     0.0.0.0         255.255.255.0   U    425    0        0 br0

192.168.122.0   0.0.0.0         255.255.255.0   U    0      0        0 virbr0

路由表输出详解:

第一行:0.0.0.0         192.168.1.1     0.0.0.0         UG   100    0        0 enP3p9s0f0

说明:表示数据传送目的是访问Internet,则由接口enP3p9s0f0,将数据包发送到网关192.168.1.1

 

第五行:169.254.0.0     0.0.0.0         255.255.0.0     U    1006   0        0 br0

说明:表示本机所在的网络地址为169.254.0.0,若数据传送目标是在本局域网内通信,则可直接通过br0转发数据包

 

第七行:192.168.1.0     0.0.0.0         255.255.255.0   U    0      0        0 enP3p9s0f2

说明:表示本机所在的网络地址为192.168.1.0,若数据传送目标是在本局域网内通信,则可直接通过enP3p9s0f2转发数据包

 

第十一行:192.168.122.0   0.0.0.0         255.255.255.0   U    0      0       0 virbr0

说明:表示主机所在网络的地址为192.168.122.0,若数据传送目标是在本局域网内通信,则可直接通过virbr0转发数据包;

 

思考2:这个route -n 命令是不是就查的这个表的信息ip route List table main?是

 

 

解决方法是:把4块网卡分到4个不同的路由表,并且这四个表都在main表之前,具体方法如下所示

 

 

步骤1:为网卡f0、f1、f2、br0新增路由规则表

[[email protected] all]# echo"210    f0table" >> /etc/iproute2/rt_tables

[[email protected] all]# echo"220    f1table" >>/etc/iproute2/rt_tables

[[email protected] all]# echo"230    f2table" >>/etc/iproute2/rt_tables

[[email protected] all]# echo"240    br0table" >>/etc/iproute2/rt_tables

 

新增成功后,查看规则表

 [[email protected] all]#  cat /etc/iproute2/rt_tables

#

# reserved values

#

255     local

254     main

253     default

0       unspec

#

# local

#

#1      inr.ruhep

210    f0table

220    f1table

230    f2table

240    br0table

 

查看规则列表,目前还没有新增的规则表哦!

# ip rule List

0:      from all lookup local

32766:  from all lookup main

32767:  from all lookup default

 

步骤2:向不同的路由表添加规则,为了重启后生效添加到rc.local中。

[[email protected]]# cat <<Eol >> /etc/rc.local

> ip routeadd 192.168.1.0/24 dev enP3p9s0f0 src 192.168.1.150 table f0table

> ip  route add  192.168.1.0/24  dev enP3p9s0f1  src  192.168.1.104 table  f1table

> ip  route add 192.168.1.0/24 dev enP3p9s0f2  src 192.168.1.118table  f2table

> ip routeadd 192.168.1.0/24 dev br0 src 192.168.1.23 table br0table

> ip routeadd default dev enP3p9s0f0 via 192.168.1.1 table f0table

> ip routeadd default dev enP3p9s0f1  via192.168.1.1 table f1table

> ip routeadd default dev enP3p9s0f2  via192.168.1.1 table f2table

> ip routeadd default dev br0 via 192.168.1.1 table br0table

> ip ruleadd from 192.168.1.150 table f0table

> ip ruleadd from 192.168.1.104 table f1table

> ip ruleadd from 192.168.1.118 table f2table

> ip ruleadd from 192.168.1.23 table br0table

> Eol

 

执行完如上命令,再查看规则表

# ip rule List

0:     from all lookup local

32762:  from 192.168.1.23 lookup br0table

32763:  from 192.168.1.118 lookup f2table

32764:  from 192.168.1.104 lookup f1table

32765:  from 192.168.1.150 lookup f0table

32766: from all lookup main

32767: from all lookup default

 

步骤3:执行如下命令

echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

或写入到开机自启动文件中:

# cat <<Eol>> /etc/rc.local

> echo 1 >/proc/sys/net/ipv4/conf/all/arp_filter

> echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

> echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore

> Eol

步骤4:重启服务器reboot

步骤5:Ping118\23\104\150都可以通。

 

还有一个问题,现象是重启服务器后,f0\f1\f2的地址都 是可以Ping通的,br0 的IP是192.168.1.23,23死活都不通,必须执行一下Ping192.168.1.1 -I br0,才可以通。原因是什么?

总结

以上是内存溢出为你收集整理的Linux下多块网卡同一网段连通配置全部内容,希望文章能够帮你解决Linux下多块网卡同一网段连通配置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1080076.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存