现在的位置: 首页 > 综合 > 正文

arp协议的混乱引发的思考

2013年09月29日 ⁄ 综合 ⁄ 共 1017字 ⁄ 字号 评论关闭

曾几何时,人们多么淳朴,创造了arp这样的协议,这种群问一答的形式总是要么在乌托邦之类的组织能行得通要么是独裁的组织,想一下议会制,如果有一个针对全体的提问,得到的答案往往是千奇百怪的,其中,鬼知道有多少答案是欺骗。arp的提问是针对全体的,但是答案的正确与否arp请求的发送端如何能辨别呢?除了伦理,除了发送arp回应的机器的伦理可以信任之外,别的再没有标准了,然而,arp回应机器本身并不会发,软件也不知怎么发,只有编制软件的人才知道,因此,这又是人的伦理问题,人是自私的,自我的,所以arp本质上是不安全的!arp本质上内置了“arp欺骗”这种“功能”,这正是arp的作者们赋予的。
     arp代理功能我觉得就是是一种欺骗功能,只不过这是一种善意的欺骗,如果arp明确禁止了这种欺骗,事情会好很多,但是不再一个网段且没有配置网关的机器之间的通信就难了,或者配置了SO_DONTROUTE的套接字通信就麻烦了,为了这种方便,纵容了arp代理,同时也纵容了arp欺骗。arp代理,本身也会带来一些混乱,比如在设置了SO_DONTROUTE的套接字上发送数据,如果局域网中其中一台或多台机器设置了arp代理,并且所请求的机器的地址又在该arp代理机器的“另一端”,那么这些机器均将回复arp请求,按照各种操作系统协议栈arp缓存更新策略的不同实现将会有不同的行为,比如,linux下情况是如果在一个可配置的时间(用sysctl配置/proc/sys/net/ipv4/neigh/eth0/locktime)内来了两个或者多个不同的arp回复,那么linux将采用第一个到来的arp回复,后续arp回复的到来将不会更新linux的arp缓存,可是对于windows server 2003来讲,情况就有所不同了,之所以会锁定某一个arp回复一段时间是arp发送端有理由相信,回复最快的主机是最好的主机,既然它们几个都能处理这个arp请求,那么就选最先到来的吧,arp发送端只负责将数据发送到通往目的地的“下一跳”,而不管这下一跳是否真的可以将数据送达目的地,这往后情况就复杂了...
    不仅仅arp,最显而易见的ip协议,也是人们在理想的情况下设计出来的,ip本身也有很多不尽人意之处,可是反对的声音就出现了,ip管得了那么多么吗?既然上面的tcp和ssl能够良好的处理连接和安全,ip为何不是越简单越好呢?总之,众口难调,实用为先!

抱歉!评论已关闭.