QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1179|回复: 10

linux,双网卡,路由,TC,做的好累!

[复制链接]
发表于 2005-11-18 16:24:15 | 显示全部楼层 |阅读模式
我有四台电脑,串联,如下图:
1——2——3——4
中间2 3两台双网卡做路由,但做路由的PC与远端主机就是ping不通——2ping不通4,3ping不通1,但只要相领的两台电脑都能很好的ping通(包括双网卡中的任意一张网卡)。
而且更奇怪的是如果拓朴如下图:
1——2——4则路由功通很好,一切正常, 1 4之间完全可以ping通,甚至在windows下还能局域网互访共享文件。

我没有用软件路由,用的是/proc/sys/net/ipv4/ip_forward置1这个方法,并且用的是静态路由。

现在想问一下,到底是2 3两台双网卡路由实现1 4通信在linux下根本就是不支持,还是会不会是其它原因,比如说我可能有些设置出错或是什么的原因

PS:还想问一下,这里有没有人对TC熟一点,linux下的traffic control,有些问题想请教一下。
发表于 2005-11-18 18:14:46 | 显示全部楼层
你还不如把你的路由表列出来,以及配置

路由讲究有去的路由规则,也有回来的路由规则。
回复

使用道具 举报

 楼主| 发表于 2005-11-19 21:45:21 | 显示全部楼层
今天我又在做这个路由,怪的很,我现在用四台机:

1——2——3——4

Device    Eth0                                Eth1

PC1         192.168.10.2/24   

Route1    192.168.10.1/24    192.168.20.1/24

Route2    192.168.20.2/24    192.168.30.1/24

PC2          192.168.30.2/24   



1 4为两客户机——PC1 PC2,只有一张网卡。

2 3为两模拟的路由linux PC,有双网卡。

三个网段,同网段的网卡互连,这个我还是不会出错的。

两路由器都开启/proc/sys/net/ipv4/ip_forward,



开始时1 4号机还没开启,只是2——3互连,完全四张网卡ping通没问题,但当连上1号机后,1号机——linux redhat9 也装了双网卡,但一网卡没接网线,接上1号机后,2号机仍能与1号机ping通,但2 3号机也能ping通,但1 3机不通。我觉得我路由表也没设错,设的是静态路由,下附三台机子的路由表:

我在终端中敲route后:

1号机:



kernel ip routing table

destination             gateway                  genmask              flag           metric         ref         use         iface

192.168.50.0                X                      255.255.255.0         U                0               0             0           eth1

192.168.10.0                X                      255.255.255.0         U                0               0             0           eth0

192.168.20.0                X                      255.255.255.0         U                0               0             0           eth0

127.0.0.0                       X                        255.0.0.0                U                0               0             0              lo

169.254.0.0                  X                        255.255.0.0           U                 0                0            0           eth1



PS:在一开始1号机启动的时候,默认的eth1 ip是 192.168.30.1, eth0 192.168.20.2,当时2 3号机在线,但我开机后马上改过来了,变成上面所示了,这应该没太多问题吧。





2号机:

kernel ip routing table

destination             gateway              genmask                 flag              metric            ref        use     iface

192.168.20.0            X                        255.255.255.0          U                   0                     0         0        eth1

192.168.30.0            X                        255.255.255.0          U                   0                    0          0        eth1

192.168.10.0            X                        255.255.255.0         U                    0                     0         0       eth0

127.0.0.0                   X                             255.0.0.0              U                   0                     0         0         lo



3号机:

kernel ip routing table

destination           gateway          genmask         flag          metric             ref          use               iface

192.168.20.0             X              255.255.255.0       U              0                   0              0                 eth0

192.168.30.0             X              255.255.255.0       U              0                   0              0                 eth1

192.168.10.0             X              255.255.255.0       U              0                   0              0                 eth0

127.0.0.0                   X                  255.0.0.0             U              0                   0              0                     lo





望各位指点啊,十分感谢,为了这个我搞了两天了。还是不行。怪事啊。路由表也不觉有错啊。
回复

使用道具 举报

 楼主| 发表于 2005-11-19 21:46:02 | 显示全部楼层

新问题!

接上1号机后,2号机仍能与1号机ping通,但2 3号机也能ping通,但1 3机不通。

其它的都没变!出现了新问题,如上。
回复

使用道具 举报

发表于 2005-11-19 22:30:31 | 显示全部楼层
1、把1号机的eth0的网关设为192.168.10.1
2、在2号机上添加一条路由,目标地址是192.168.30.0/24,下一跳是192.168.20.2
3、在3号机上添加一条路由,目标地址是192.168.10.0/24,下一跳是192.168.20.1
4、把4号机的eth0的网关设为192.168.30.1

最重要的,把1号机上的eth1停掉。
回复

使用道具 举报

 楼主| 发表于 2005-11-20 18:49:27 | 显示全部楼层
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=139768
谢谢各位指点,我今天己经调通四机了,但我的目标是五机串联路由,今天试了一下,还是有问题,请各位多多帮忙指点迷津.
上面是我发贴的链接.
回复

使用道具 举报

发表于 2005-11-21 00:48:36 | 显示全部楼层
RIP
回复

使用道具 举报

发表于 2005-11-21 08:11:12 | 显示全部楼层
五机,如果使用静态路由的话,要在2.3.4号机上一共加六条路由了。
回复

使用道具 举报

 楼主| 发表于 2005-11-21 19:46:09 | 显示全部楼层
老大们,我回来了,终于搞定了,这几天的问题一扫而空了,原来我几台机子的路由表是完全没问题的,只是不知为什么arp通告上有点问题,几台机子ping 最远端的机子时,不通,我先用tcpdump监听,发现有请求,但只是无回应,然后我敲入arp命令,发现arp表中的相对应的mac一栏写在:incomplete,我就用arp命令,强行添加一个mac地址,现在一切都解决了。
我就想啊,我再怎么笨也不可能把才要加六个静态路由这么简单的事弄错,现在算是勉强解决了问题。但为什么会出现arp不通告的问题,还有待检查,但能用就行,以后空下来再说,接下去还要试验两个TC命令的脚本。呵呵,有问题,还会再麻烦各位老大们的。

PS:回Axin大哥,谢谢指点了,我就是用route add -net XX.XX.XX.XX netmask XX.XX.XX.XX dev ethX添加的路由,六条,可是只能与相领的机子的所有网卡ping通,隔一台就不行。我现在用default gwate的方法,但效果也差不多了。发现就是ARP的问题。
回复

使用道具 举报

发表于 2005-11-21 21:48:50 | 显示全部楼层
你在1在ping 3,在3上监听。
然后在3上ping 1,在1上监听。

如果以上两条能监听到,那这两个点之间应该就可以访问。
回复

使用道具 举报

 楼主| 发表于 2005-11-22 10:45:19 | 显示全部楼层
回Axin大哥,我的问题是在1上ping 3,没应答,在1 3中间的2上监听,发现有1有发请求,但2应答:主机不可答。但奇怪的是2机是与3机直连的,不可能不知其IP网段,虽说3机有两个网段,但我在2机上也加上相应的静态路由。
后来检查ARP表,发现3机上的MAC地址没有找到。我加上MAC地址后就搞定这事了。哈哈哈。开心。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-3 02:14 , Processed in 0.091167 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表