27、地址解析协议(三)

本节内容是我们ARP协议的最后一节内容,主要介绍ARP代理的应用,以及windows系统中CMD环境下的一些ARP相关命令。


ARP代理

前面我们所讲述的ARP协议的解析过程,是针对于两台主机都处在同一个物理网络相同的网段中的,这是一个很简单的情境。那么,如果两台主机不在同一个物理网络,比如主机A的IP地址是192.168.1.2,主机B的IP地址是172.16.1.2,按照标准IP地址分类和子网掩码,这显然两台主机不在同一个物理网络中,但是我们说两台主机互相通信最终要靠MAC地址,那么处于不同网络中的两台主机如何利用ARP获取到对方的MAC地址,这就要靠ARP代理

首先,我们要知道,两个不同的物理网络之间的连通,要通过路由器把它们连接起来,路由器一般会有两个接口,分别承接着两个网络,路由器接口的IP地址,我们称之为“网关地址”处于一个网络中的主机要想把数据发送给其它网络的主机,首先要经过这个“网关”(也就是路由器上承接着此网络的一个接口),才能到达别的网络,把数据交付到目标主机

现在,我们再来说一下路由器的特性,路由器是工作在网络层的设备,比普通的交换机还要高一层。前面讲了工作在物理层和链路层的设备,主要代表是集线器和交换机,集线器不能隔离广播域,不能隔离冲突域,交换机隔离冲突域但不能隔离广播域,现在路由器,网络层的设备,它是既隔离冲突域又隔离广播域的,要记住这一特性,非常重要。

现在问题就来了,我们知道如果主机A要和主机B通信,而又不知道主机B的MAC地址时,会广播发出ARP请求来期望得到主机B的回应。但是如果现在两台主机处于不同的网络中,两个网络之间用路由器互联,这时候,主机A发出的ARP请求是广播发出的,而由于路由器的隔离广播域的特点,所以路由器根本不会把这个广播包转发到主机B所在的那个网络中

为了解决这个问题,就要在路由器的接口上开启ARP代理。所谓“代理”就是代替主角去做一些工作,说到底也就是“让路由器来充当代理人的角色,当路由器收到主机A发出的ARP请求广播包以后,路由器先扮演主机B来给主机A回复一个ARP应答,然后由路由器再去访问主机B”。

在这个过程中,其实主机A会一直以为路由器就是主机B,我们举例来说:

设主机A的IP地址是192.168.1.2,MAC地址是01-02-03-04-05-06;

设主机B的IP地址是172.16.1.2,MAC地址是11-22-33-44-55-66;

设路由器和主机A相连的接口的IP地址是192.168.1.1,和主机B相连的接口的IP地址是172.16.1.1,路由器的MAC地址是AA-BB-CC-DD-EE-FF。

当主机A发出一个想要知道主机B的MAC地址的ARP请求之后,由于它们不在同一个网络中,所以主机B不会直接收到,而路由器同时承接着这两个网络,所以路由器会收到这个ARP的请求,这时候路由器就开始运用ARP代理的功能,把自己的MAC地址先告诉主机A,然后自己再发出一个新的ARP请求去往主机B,主机B就会把自己的MAC地址告诉路由器,这样一来,路由器就成了一个中间人,主机A和主机B都互相以为它们是直接通信的,而不知道其中隔着一个路由器

所以主机A的ARP缓存表中就会有“172.16.1.2 对应于 AA-BB-CC-DD-EE-FF”,

主机B的ARP缓存表中就会有“192.168.1.2对应于AA-BB-CC-DD-EE-FF”,

路由器的ARP缓存表中就会有“192.168.1.2对应于01-02-03-04-05-06、172.16.1.2对应于11-22-33-44-55-66”,用一句打趣的话来讲,就是:其中的苦,只有路由器默默承受着。

它们的逻辑关系如下图:


ARP命令

最后,我们再介绍几种windows系统下常用的ARP命令的选项:

1、arp -a(或 arp -g):这是最常用的一个命令,显示出本机的ARP缓存表。

2、arp -d:此命令是用来清空目前的ARP缓存,一般用在做实验观察效果时使用,平时不要轻易使用。

3、arp -s:此命令是用来绑定一个IP地址与MAC的对应。普通的ARP缓存记录都是动态的,如果在一定时间限制之内没有和特定某个主机通信,就会发生“ARP超时”,缓存表就会自动删除这条记录。而如果用arp -s 命令做了绑定,这条记录就不会超时被删除,

比如arp -s 192.168.1.1 AA-BB-CC-DD-EE-FF,就是把这个IP地址与MAC地址“绑”在一起,不会有时间限制,即使是电脑刚刚启动,缓存表也会自动加载出这条记录。如要解除绑定,就用arp -d 192.168.1.1即可。

4、arp -v:用来显示更详细更完整的arp缓存表,环回接口上的arp表项也会被显示出来,平时此命令很少用到。


在ARP协议的最后一节内容,我们学习了ARP代理和相关的命令。下节内容,我们将学习子网掩码、子网的划分。

参考资料:W.Richard Stevevs《TCP/IP详解/卷一》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值