ARP高速缓存、分组格式和ARP代理原理详细阐述
2008-11-21 13:32:07 来源:WEB开发网举例是说明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链路的目的地址。
更多精彩
赞助商链接