问题现象:

医大一院项目发现,前置机,无法用网口1,设置成192.168.2.X的IP上跟服务器建立连接,网口2则可以。

问题分析

通讯管理机有两个网口,网口1(对应eth0)跟网口2(对应eth1)。管理机的网线连在网口1。

初始IP设置如下:(配置文件 /etc/init.d/S40network)

Android双网口 双网口怎么设置_IP


管理机配置软件再出厂配置时下载setnet.sh 进行IP跟端口的重新设置如下图:

Android双网口 双网口怎么设置_Android双网口_02


设置完成后,网口1跟网口2的IP变为:

Android双网口 双网口怎么设置_IP_03


现场操作步骤如下:工程现场通过管理机配置软件的IP设置功能进行现场设置,如下图:

Android双网口 双网口怎么设置_服务器_04


将网口1的IP,网关设为2网段,网口2的IP,网关设为其他网段,比如3网段。如下图:

Android双网口 双网口怎么设置_Android双网口_05


Android双网口 双网口怎么设置_重启_06


设置完成后,网口1无法通过路由器跟9000服务器通讯。

为方便分析, 经沟通后,初步确定现场环境:
165E管理机放在2网段
9000服务器不再2网段,两者之间通过1个路由器连接。

问题复现:

按上述步骤设置后,检查管理机的IP跟网关如下:

Android双网口 双网口怎么设置_重启_07


检查设置文件:setnet.sh

Android双网口 双网口怎么设置_重启_08


修改setnet.Sh文件,指定网口如下:

[root@M28x ~]# cat /opt/nts/setnet.sh
 #! /bin/sh
 ifconfig eth0 192.168.2.120 netmask 255.255.255.0
 route add default gw 192.168.2.1 eth0
 ifconfig eth0 up
 ifconfig eth1 192.168.3.120 netmask 255.255.255.0
 route add default gw 192.168.3.1 eth1
 ifconfig eth1 up

后重启管理机,检查ip跟gw设置如下:

Android双网口 双网口怎么设置_重启_09


进一步测试管理机经路由器访问跨网段的工作情况:工作正常。

Android双网口 双网口怎么设置_IP_10


释疑:

为什么网口1只有在设置2网段的时候gw失效,而其他网段都正常:

1、管理机上电先运行操作系统,这时候2个网口通过S40设置了默认IP

Android双网口 双网口怎么设置_Android双网口_11


2、操作系统加载完成后, 运行start.sh脚本文件,通过setnet.sh进行网口参数重新设置。代码顺序执行如下:

ifconfig eth0 192.168.2.120 netmask 255.255.255.0 //先设网口0的IP

route add default gw 192.168.2.1 //再设2网段的网关,未指定网口,因1有一个默认2网段,此命令执行完毕后,eth1的gw变成192.168.2.1。

ifconfig eth0 up //eth0 设置生效。

ifconfig eth1 192.168.3.120 netmask 255.255.255.0 //再设置网口1的IP,3网段。

route add default gw 192.168.3.1 //系统又将eth1的 gw变位192.168.3.1

ifconfig eth1 up //eth1 设置生效。

所以我们查到的route信息丢失了2网段的gw,也即根本没有设成功过。

解决方法

1、修改配置管理工具IP配置功能,setnet.sh 脚本文件再配置网关时增加网口信息,升级版本。如下:

#! /bin/sh
 ifconfig eth0 192.168.2.120 netmask 255.255.255.0
 route add default gw 192.168.2.1 eth0
 ifconfig eth0 up
 ifconfig eth1 192.168.3.120 netmask 255.255.255.0
 route add default gw 192.168.3.1 eth1

总结建议

修改网口的参数信息时,需附带网口参数,否则可能达不到预期效果