安全中国首页 > 文章中心 > ARP技术文章
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

ARP高速缓存、分组格式和ARP代理原理详细阐述(图)

更新时间:2007-10-28 1:12:18
责任编辑:果果龙
热 点:

ARP代理
如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求,这个过程称作委托ARP或ARP代理(Proxy ARP)。这样可以欺骗发起ARP请求的发送端,使它误以为路由器就是目的主机,而事实上目的主机是在路由器的“另一边”。路由器的功能相当于目的主机的代理,把分组从其他主机转发给它。
举例是说明ARP代理的最好方法。如图6所示,系统sun与两个以太网相连。但是,我们也指出过,事实上并不是这样,请把它与封内图1进行比较。在sun和子网140.252.1.1之间实际存在一个路由器,就是这个具有ARP代理功能的路由器使得sun就好像在子网140.252.1.1上一样。具体安置如图4-6所示,路由器Telebit NetBlazer,取名为netb,在子网和主机sun之间。

图6

当子网140.252.1.1(称作gemini)上的其他主机有一份IP数据报要传给地址为140.252.1.29 的sun时,gemini比较网络号(140.252)和子网号(1),因为它们都是相同的,因而在图4-6 上面的以太网中发送IP地址140.252.1.29的ARP请求。路由器netb识别出该IP地址属于它的一个拔号主机,于是把它的以太网接口地址140.252.1.1作为硬件地址来回答。主机gemini通过以太网发送IP数据报到netb,netb通过拨号SLIP链路把数据报转发到sun。这个过程对于所有140.252.1.1子网上的主机来说都是透明的,主机sun实际上是在路由器netb后面进行配置的。

如果在主机gemini上执行ARP命令,经过与主机sun通信以后,我们发现在同一个子网140.252.1.1上的netb和sun的IP地址映射的硬件地址是相同的。这通常是使用委托ARP的线索。

gemini % arp -a

这里是子网140.252.1.1上其他主机的输出行

netb (140.252.1.183) at 0:80:ad:3:6a:80
sun (140.252.1.29) at 0:80:ad:3:6a:80

图6中的另一个需要解释的细节是在路由器netb的下方(SLIP链路)显然缺少一个IP地址。为什么在拨号SLIP链路的两端只拥有一个IP地址,而在bsdi和slIP之间的两端却分别有一个IP地址?用ifconfig命令可以显示拨号SLIP链路的目的地址,它是140.252.1.183。NetBlazer不需要知道拨号SLIP链路每一端的IP地址(这样做会用更多的IP地址)。相反,它通过分组到达的串行线路接口来确定发送分组的拨号主机,因此对于连接到路由器的每个拨号主机不需要用唯一的IP地址。所有的拨号主机使用同一个IP地址140.252.1.183作为SLIP链路的目的地址。

ARP代理可以把数据报传送到路由器sun上,但是子网140.252.1.13上的其他主机是如何处理的呢?选路必须使数据报能到达其他主机。这里需要特殊处理,选路表中的表项必须在网络140.252的某个地方制定,使所有数据报的目的端要么是子网140.252.1.13,要么是子网上的某个主机,这样都指向路由器netb。而路由器netb知道如何把数据报传到最终的目的端,即通过路由器sun。

ARP代理也称作混合ARP(promiscuous ARP)或ARP 出租(ARP hack)。这些名字来自于ARP代理的其他用途:通过两个物理网络之间的路由器可以互相隐藏物理网络。在这种情况下,两个物理网络可以使用相同的网络号,只要把中间的路由器设置成一个ARP代理,以响应一个网络到另一个网络主机的ARP请求。这种技术在过去用来隐藏一组在不同物理电缆上运行旧版TCP/IP的主机。分开这些旧主机有两个共同的理由,其一是它们不能处理子网划分,其二是它们使用旧的广播地址(所有比特值为0的主机号,而不是目前使用的所有比特值为1的主机号)。

上一页 1 2 3 4 5 下一页

 
相关文章
一日一文章
 
一日一软件
一日一动画