羡天不嫌地 发表于 2013-10-22 15:33

回复 7# apen
做了些实验,查到一个叫免费arp的数据包,这个包过滤就没有IP冲突了。
但是有个新问题,我PC设备发出的arp包:who has 192.168.1.1
这个包路由器不回我。相当困惑啊。
其他条件不变,单把PC的IP地址修改为192.168.2.1,那个arp包就回复了,完全不明白为什么。

   

羡天不嫌地 发表于 2013-10-22 15:35

回复 8# ssffzz1
做了些实验,查到一个叫免费arp的数据包,这个包过滤就没有IP冲突了。
但是有个新问题,我PC设备发出的arp包:who has 192.168.1.1
这个包路由器不回我。相当困惑啊。
其他条件不变,单把PC的IP地址修改为192.168.2.1,那个arp包就回复了,完全不明白为什么。

   

apen 发表于 2013-10-22 15:36

你的应用有点特殊,日常用的不多,所以只知道一点皮毛。自己在路由器的过滤规则上下点功夫试试吧!

ssffzz1 发表于 2013-10-23 07:58

羡天不嫌地 发表于 2013-10-22 15:35 static/image/common/back.gif
回复 8# ssffzz1
做了些实验,查到一个叫免费arp的数据包,这个包过滤就没有IP冲突了。
但是有个新问题, ...


这个你的测试环境要讲清楚的,否则也没法判断啊。谁是谁都搞不清楚。

羡天不嫌地 发表于 2013-10-23 12:44

回复 13# apen

谢谢
   

羡天不嫌地 发表于 2013-10-23 12:55

回复 14# ssffzz1

PC在申请到IP地址后,会发送一个广播的免费ARP报文(Gratuitous ARP REQUEST)。
路由器在收到这个广播报文后,由于跟WAN口IP冲突,会返回一个报文,告知PC该IP已经被使用(Gratuitous ARP REPLY)。

如果我用arptables,拦截了这个包。IP就不会冲突了。
拦击命令:
arptables -A INPUT -s 0.0.0.0 --opcode 1 -j DROP

但是,当PC发送ARP包(who has 192.168.1.1, Tell 192.168.2.100),询问哪个是路由器的时候(假设路由器LAN口IP是192.168.1.1),路由器不会发送包回来。
这时候我的PC的IP已经是192.168.2.100了(假设192.168.2.100是路由器WAN口的IP),所以不应该被之前的拦截命令拦截。

那为什么路由器不回复PC发出的ARP包呢?
这地方卡住,想不明白了。
   

ssffzz1 发表于 2013-10-23 13:46

哦,这个你想想路由器如何回复啊。

192.168.2.100这个地址本身就是路由器的WAN口地址。从我的LAN口来了一个数据包,源是我的WAN口,这不是自己给自己的吗????

按照标准的IP协议规范,这个是不应该回复的。

所以SUPER DMZ肯定是做了特殊的处理打破了这个规范。

羡天不嫌地 发表于 2013-10-23 14:01

回复 17# ssffzz1

不过,ARP报文不是基于MAC的吗?
为什么IP方面的问题也会影响到他回复呢?

我的理解是,ARP报文只管根据MAC去找数据包走的路径。
这样,即使IP有冲突,因为在发送报文的时候不会参考IP的设定,于是路由器端应该回复PC的寻找路由器的ARP报文。

请指正这里面的错误。

谢谢

   

apen 发表于 2013-10-25 12:03

在使用IP进行数据时,发送端只知道目的端的IP地址,需要通过ARP来获取目的端的MAC地址。

羡天不嫌地 发表于 2013-10-29 17:31

回复 19# apen

arp表还没建立完毕,所以跟IP应该没关系吧?
   
页: 1 [2] 3
查看完整版本: [求教]: super DMZ功能IP冲突问题