kacy16 发表于 2016-06-29 00:17

奇怪的linux系统双网卡的配置问题,时灵时不灵?

目前有个项目,使用一台双网卡的工控电脑,是CentOS6.3系统,分别连接到两个网络中。
各网卡的配置信息如下:
eth0IP地址:192.168.1.22,网关:192.168.1.1, netmask: 255.255.255.0,访问192.168.1.x这个网段的机器。
eth1IP地址:193.37.3.20,   网关:193.37.3.60, 该网关已经配置好,可以通过它访问193.37.8.x 这个网段的电脑。
在这个电脑上运行一应用程序,该程序要与192.168.1.x这个网段上的客户端电脑进行网络通信,同时也要调用mysql的客户端库去
访问连接在193.37.8.11这个IP地址的mysql服务器。注意mysql服务器的IP地址与eth1网卡的IP地址也不是在同一网段上的。
不做任何设置时,默认的网关是192.168.1.1,此时应用程序是无法去连接到193.37.8.11这台服务器的。
此时手动输入命令: route add default gw 193.37.3.60, 此时启动程序,是可以成功连接到193.37.8.11这台服务器的。
1 由于默认路由信息需每次开机启动再配置会,我则在rc.local文件中增加了 route add default gw 193.37.3.60这个语句,同时在rc.local
中启动应用程序,发现应用程序无法连接到mysql服务器中。通过route -n查看,发现是有192.168.1.1与193.37.3.60这两个默认网关。
请问这是什么原因呢?
2尝试修改rc.local文件, 首先使用route del default gw 192.168.1.1,然后稍后3秒后,再 route add default gw 193.37.3.60, 最后启动应用程序。这样只设置一个默认网关,这时重启电脑,启动后发现可以成功连接到mysql服务器。但很奇怪的是,断电关机几天后,再一次通电启动,发现应用程序又
无法连接到mysql服务器了。想请教下各位这又是什么原因呢?
3linux双网卡,两张网卡是否不能同时都设置好网关,我看到一些资料说,这样会冲突,请问这有道理吗?
敬请各位指点,谢谢!
   
   

daili0703 发表于 2016-06-29 09:23

ceshi

seanking1987 发表于 2016-06-29 11:19

增加路由除了增加网关,还有一种“静态路由”

默认网关指向 192.168.1.1
静态路由:向192.168.8.X网关的路由走193.37.3.60

关于加静态路由的命令,man route吧

seanking1987 发表于 2016-06-29 11:20

回复 1# kacy16


增加路由除了增加网关,还有一种“静态路由”

默认网关指向 192.168.1.1
静态路由:向192.168.8.X网关的路由走193.37.3.60

关于加静态路由的命令,man route吧

kacy16 发表于 2016-06-29 15:46

回复 4# seanking1987
谢谢, 但是我今天已经在 /etc/sysconfig目录下增加了 static-routes这个静态路由的文件,
文件的内容如下:
any net 193.37.8.0/24gw 193.37.3.60
增加eth1这个网卡设备的静态路由。
很奇怪的是,我整套设备断电(包括网络交换机),然后一起启动,这时我使用route -n命令查看,
发现没有这个往193.37.3.60这个默认网关在,只有192.168.1.1这路由在。
当我啥也不做,只启动电脑时,这时看route -n命令,发现193.37.3.60这个默认网关已经添加进来了,没有192.168.1.1这个默认网关
(这个网关是我在rc.local启动配置文件中使用 route del default gw 192.168.1.1 这个语句删除的)。
想请教下这是什么原因呢?
我的eth0与eth1 这两张网卡都设置了默认网关。

   

seanking1987 发表于 2016-06-29 16:00

回复 5# kacy16

两个网卡不应该都设置网关。
根据你目前的情况,你将eth0设置个网关192.168.1.1,eth1不设置网关
然后先手动加一条路由信息:
route add -net 193.37.8.0 netmask 255.255.255.0eth1
此时路由的情况应该是:
193.37.8.0的包交互走eth1网卡,其他的包交互走eth0网卡。

测试成功后,避免重启后手动加的路由消失,再在rc.local里面写成重启自动执行的就行了

kacy16 发表于 2016-06-29 17:29

回复 6# seanking1987
非常谢谢seanking1987兄的耐心指点。但是有一个疑惑:
估计前面没有说清楚.
eth0 IP地址是192.168.1.22,是只接内部的网络, 连接网段为192.168.1.x,所连接的机器网段为192.168.1.x为这些的机器。
eth1 IP地址是193.37.3.20, 这张网卡连接到193.37.3.x这个网段,通过这个网段上的193.37.3.60这个网关再把数据发送到193.37.8.x这个网段,
然后再到193.37.8.11这台数据库服务器。所以eth1是面对着两个不同网段的。

你的建议为:

"然后先手动加一条路由信息:
route add -net 193.37.8.0 netmask 255.255.255.0eth1
此时路由的情况应该是:
193.37.8.0的包交互走eth1网卡,”

虽然是走了eth1网卡,但是没有指定193.37.3.60这个网关把数据包再出去,能否找到193.37.3.60这个网关呢?

我个人认为是否可以不设置eth0的网关,只设置eth1的网关呢?然后在静态路由static-routes文件中增加193.37.3.60这个网关。
默认路由就保留193.37.3.60这个。

只所以不测试,是因为该台设备已经发往外地现场,只能请客户帮忙抽点时间做一些改动,所以做不了太多的测试。

谢谢您的大力帮忙指点,谢谢!
   

seanking1987 发表于 2016-06-29 17:32

回复 7# kacy16

这种情况只要设置eth1的网关为193.37.3.60就行了,eth0不需要设置网关。
192.168.1.22访问192.168.1.X的服务器不需要走网关

   

kacy16 发表于 2016-06-29 18:00

回复 8# seanking1987
谢谢seanking1987兄指点,谢谢!

   
页: [1]
查看完整版本: 奇怪的linux系统双网卡的配置问题,时灵时不灵?