LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2288|回复: 17

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

[复制链接]
发表于 2005-11-18 16:27:58 | 显示全部楼层 |阅读模式
我有四台电脑,串联,如下图:
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 21:23:22 | 显示全部楼层
你没block什么东西吧?如果默认是DROP的话,那么要把ICMP的包放过去。
检查一下机器3,其他的,没觉得有什么问题。Linux不会不支持的。:)。
回复 支持 反对

使用道具 举报

发表于 2005-11-18 22:54:36 | 显示全部楼层
应该是配置的问题,linux软路由做这点事简直太轻松了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-19 08:27:11 | 显示全部楼层
我这里有好几台机子,现在有点忘了,在装的时候防火墙是怎么设的,但没记错的话,我设置的都是关闭的,我现在在终端下敲入setup,设置防火墙,但总是告知ipchanins:protocol not available。但我现在用的是2.4.18-3的内核,RH7.3,据我所知现在用的不是ipchains了,2.4内核用的是iptables,这该如何设置防火墙啊,如何block?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-19 21:52:51 | 显示全部楼层
今天我又在做这个路由,怪的很,我现在用四台机:
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通。我觉得我路由表也没设错,设的是静态路由,下附三台机子的路由表:
我在终端中敲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 23:51:50 | 显示全部楼层
如果你装了 iproute2 这个软件的话,

在4台机器上分别运行以下命令:

ip route get 192.168.10.1
ip route get 192.168.20.1
ip route get 192.168.30.1
ip route get 192.168.40.1
ip route get 192.168.50.1

反正把你所有机器的IP都顺序打一次,结果贴上来。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-20 18:51:08 | 显示全部楼层
http://www.linuxsir.cn/bbs/showthread.php?t=231763
谢谢各位指点,我今天己经调通四机了,但我的目标是五机串联路由,今天试了一下,还是有问题,请各位多多帮忙指点迷津.
上面是我发贴的链接.
回复 支持 反对

使用道具 举报

发表于 2005-11-20 21:32:45 | 显示全部楼层
你别乱开题目好不好。。。。。呵呵。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-21 12:55:32 | 显示全部楼层
不好意思,这个简单问题我自己也弄的混了,烦啊,当初开始做的时候觉得也不是很难啊,如果五机的话,也就在三台模拟路由的机子上共加六条静态路由了,可不知为什么,就是不通啊。
回复 支持 反对

使用道具 举报

发表于 2005-11-21 19:57:12 | 显示全部楼层
其实不管你用几台机,即每台机模拟一台路由器。
有一个原则,即分清哪些地址是需要通过哪个网卡连接,然后添加静态路由的时候,设置下一跳为该网卡所连接的对端网卡的IP地址(当然这两个网卡的地址是在同一个网段)。
假设你有10个子网
192.168.1.0/24 ..... 192.168.10.0/24
中间有某一台路同器,1-5网段需要通过eth0连接,6-10需要通过eth1连接
eth0网卡的对端网卡的地址是x.x.x.x,eth1网卡的对端网卡的地址是y.y.y.y
则路由表应该是
192.168.[1-5].0/24的下一跳是x.x.x.x
192.168.[6-10].0/24的下一跳是y.y.y.y
以此类推就没有问题了。
注意一个问题,路同器的两端地址的子网掩码一般都设置为255.255.255.252,即只有两个有效的互连地址。
回复 支持 反对

使用道具 举报

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

本版积分规则

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