Linux主机路由问题---没有下行路由,上行报文也不转发

来源:互联网 发布:js树形菜单 编辑:程序博客网 时间:2024/05/22 01:53

Client<------>Gateway_intf0--Gateway_intf1<------->Server

如上所示的连接,Client和Server之间经过Gateway连接。各个设备(接口)的IP如下:

Client: 192.168.0.168/24

Gateway_intf0:192.168.0.169/24

Gateway_intf1:192.168.1.169/24

Server:192.168.2.200/24

由于工作需要在Gataway和Server之间增加一个Linux主机,组网修改为如下:

Client<------>Gateway_intf0--Gateway_intf1<------->Linux_eth0--Linux_eth1<------->Server

各个接口IP

Linux_eth0:192.168.1.170/24

Linux_eth1:192.168.2.170/24

物理上组网完成了,进一步如下操作:

1. Gateway上配置如下路由:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.2.200  192.168.1.170 255.255.255.255   U    2      0       intf1        ------- (目的地址Server的下一跳为Linux_eth0接口地址192.168.1.170/24)

2. Linux上IP转发使能打开 echo 1 > /proc/sys/net/ipv4/ip_forward

Client上访问Server,同时在Linux上tcpdump -i eth0抓包发现报文已经到达eth0,源IP是Client的IP(192.168.0.168),目的IP是Server的IP(192.168.2.200)。同时由于 Linux_eth1和Server的IP是一个网段,Linux主机上自动生成到Server的出接口是eth1的路由,这样上行(Client-->Server)的路由是完备了,但是奇怪的是报文在eth0收到后没有从eth1送出发给Server。经过尝试后,在Linux上配置如下路由后报文上行报文可以发给Server:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.0.168  192.168.1.169  255.255.255.255   U    2      0       eth0        ------- (目的地址Client的下一跳为Gateway_intf1接口地址192.168.1.169/24)

按理说上行报文已经有路由了,报文也已经在eth0上收到了,为什么Linux主机上不配置下行报文的路由上行报文也不转发呢?可能是Linux为了防止攻击,对于收到报文如果没有源IP的路由是不处理的?



0 0