同一网段 ARP直接对目标查询,路由器收到ARP查询 ,但是接口不对,那路由器也已经意识到 另外一个接口才是正确的目标,
那回应还是不回应 这是个问题,WINDOWS下不回应 LINUX下有参数控制回应还是不回应,系统怎么实现协议栈的??它们可能会遵循RFC的标准,可能不会!!!这种处理没有RFC标准可言.各个厂商自己的标准吧,据说CISCO还不一样 呵呵
你在做的时候 show ip route 看一下路由器表,仔细想想 为什么不能出去,为什么能近来,最好有协议分析器捕获数据包 这个问题就很明显了
我做的时候就是有一个多端口的X86设备,实际环境来做的
我以前做过一个实验,无意中碰到的 和你这个很相似
laptop (A)------------------(B) PC (C)
笔记本A口接PC的B口 PC还有一个网卡C口 下面以A B C来代替
一
OS :WINDOWS2003
C口上没插线,也就是链路是不通的 没有一个能成功的,现在不讨论这个不插线的情况下
现在讨论插线的情况下
ABC 为同一网段
A PING B OK
A PING C NG
无法获得C的MAC地址
AB 为同一个网段 C是另外一个网段 把A口上的网关配置为B
A PING B OK
A PING C OK
A C 同一网段,B是另外一个网段
A PING B NG
A PING C NG
无法获得C的MAC地址
二 PCOS FC4 C口上没插线 (请注意是没插网线) /sbin/ifconfig ethC up
ABC 同一网段
A PING B OK
A PING C OK
AB同一网段,C不是 把A的网关配置成B
A PING B OK
A PING C OK
A C 同一网段 B 另外一个段
A PING B NG
A PING C NG
但是A在PING C的时候获得了 B的MAC地址
A把ARP查询包发到B口上
B口代替C回应了ARP应答
但是使用的是C上的IP B上的MAC
大家来看 OS不同 在双网卡处理的情况下是不同的
--------------------------------------------------------------------------
LINUX下的控制参数
arp_ignore : INTEGER
默认为0
定义对目标地址为本地IP的ARP询问不同的应答模式
0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,那么即使eth0收到来自10.1.1.2这样地址发起的对10.1.1.1 的arp查询也会回应--而原本这个请求该是出现在eth1上,也该有eth1回应的)
1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,那么即使eth0收到来自10.1.1.2这样地址发起的对192.168.0.1的查询会回答,而对10.1.1.1 的arp查询不会回应)
2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,eth1收到来自10.1.1.2这样地址发起的对192.168.0.1的查询不会回答,而对192.168.0.2发起的对192.168.0.1的arp查询会回应)
3 - 不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应(do not reply for local addresses configured with scope host,only resolutions for global and link addresses are replied 翻译地似乎不好,这个我的去问问人)
4-7 - 保留未使用
arp_announce : INTEGER
默认为0
对网络接口上本地IP地址发出的ARP回应作出相应级别的限制:
确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口
0 - (默认) 在任意网络接口上的任何本地地址
1 -尽量避免不在该网络接口子网段的本地地址. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理.
2 - 对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送
这个是LINUX上参数的控制 WINDOWS和LINUX不一样
http://linux.chinaunix.net/bbs/v ... 5%C1%CD%CC%F8%CE%E8
这是我在CU发过的帖子 希望能对你有帮助
[
本帖最后由 带脚镣跳舞 于 2008-3-7 11:51 编辑 ]