当前位置:文档之家› ARP工作原理详解

ARP工作原理详解

3、因为不知道网关的MAC地址,因此发送一个ARP包,获 取网关MAC地址:源IP为PC1 IP:192.168.1.1,目的IP为 PC1网关IP:192.168.1.254,源MAC为PC1 MAC:11-11-1111-11-11,目的MAC为广播MAC:ff-ff-ff-ff-ff-ff
PC2首先将目标IP 192.168.1.200与自己路由表比对,在本地路由 表中找了到一条默认路由:
Network
Destination Netmask
Gateway Interface Metric
0.0.0.0
0.0.0.0 192.168.1.200 1.1.1.1 10
ARP实验三
该路由条目的下一跳(网关)为192.168.1.200,于是PC2查看本 机ARP表缓存是否存在网关的ARP条目,但并没有找到相应网关条 目,所有PC2发出寻找网关的的ARP广播。PC1收到该ARP广播查 询包,于是PC1向PC2发送ARP应答的单播包,这个应答包中的 Sender MAC就是PC1的MAC地址。PC2收到PC1的应答包后,提取 Sender IP和Sender MAC值,加入本地ARP缓存。这样PC2就知道 了网关MAC地址。(注意我们要到达的目标IP为192.168.1.200, 网关IP也为192.168.1.200。但我尽量用“网关”这个词语,就是 要请大家留意PC2发送ARP包的目的不是寻找PING包的目的地址, 而是寻找网关地址。这里查找网关的步骤属于OSI 2层通信。)
ARP工作原理详解
Key
ARP工作原理(同网段)
以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。 当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。 如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里 面发送就可以了; 如果在ARP缓存表中没有找到目标IP地址,主机A就会在网络上发送一个 广播,A主机MAC地址是“主机A的MAC地址”,这表示向同一网段内的 所有主机发出这样的询问:“我是192.168.1.5,我的硬件地址是”主机 A的MAC地址“.请问IP地址为192.168.1.1的MAC地址是什么?”网络上 其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做 出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。 这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。 同时A和B还同时都更新了自己的ARP缓存表(因为A在询问的时候把自己 的IP和MAC地址一起告诉了B),下次A再向主机B或者B向A发送信息时, 直接从各自的ARP缓存表里查找就可以了。ARP缓存表采用了老化机制 (即设置了生存时间TTL),在一段时间内(一般15到20分钟)如果表 中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长 度,加快查询速度。
于是PC2在PING包,即ICMP包数据段前部加上IP报头,IP报头的 Destination IP:192.168.1.200,Source IP:1.1.1.1(路由条目的 interface字段提取),再在IP报头前部封装以太网帧头, Destination MAC:网关192.168.1.200的MAC(从ARP缓存中提取), Source MAC为路由条目的interface字段提取的1.1.1.1接口MAC。 于是PC2拿到这封装好了的ICMP包,交给路由条目中interface字 段指定的接口1.1.1.1,就这样,PC2将ICMP包顺利传递到了网关。 (注意本步骤我同样用“网关”这个词。该过程属OSI 3层通信)。
ARP实验二
PC1收到该ICMP包,提取IP报头的Destination IP 192.168.1.200 与自己IP比对,发现刚好匹配。PC1认为该ICMP是给自己的。于 是PC1就准备给PC2一个ICMP应答。
PC1再次分析ICMP包,从IP报头的Source IP字段提取出1.1.1.1, 再从以太网帧头中提取Sender MAC:PC2的MAC,将PC2的IP和 PC2的MAC加进自己ARP缓存中。
一是主动通告自己的MAC地址。一般用于热备份系统中, 比如冗余网关,当主设备发生故障,备用设备立即接管主设备, 并向广播域发送Gratuitous ARP,通知所有主机网关IP对应的MAC 为备份设备的MAC,这样网络中其他设备就会把流量转向备份设 备。
二是用于IP冲突检测。当一个主机A的网络接口刚UP的时候, 会发送Gratuitous ARP。ARP target IP字段为自己的IP,target MAC字段全0,如果该网段中有其他主机B的IP与之相同,主机B 会用自己的MAC填充单播应答ARP sender MAC字段,然后将该 ARP单播应答发往主机A。主机A接收任何一个ARP的单播应答则 认为产生了IP冲突。值得注意的是:当网络中其他主机收到主机 A发出的Gratuitous ARP后,并不会把该ARP中包含的sender ip与 sender mac加入本地ARP缓存。
ARP实验一
PC1的配置: IP:192.168.1.200 mask:255.255.255.0 gateway:不配
PC2的配置: IP:1.1.1.1 mask:255.255.255.0 gateway:不配
当PC2刚启动的时候会发送3个Gratuitous ARP广播包来检测是否 存在IP冲突。PC1收到PC2的ARP广播,但并不将PC1的主机IP和 MAC加进自己ARP缓存中。 我们在PC2上ping PC1的IP(ping 192.168.1.200)。
4、网关回应ARP包:源IP为PC1网关IP:192.168.1.254, 目的IP为PC1 IP:192.168.1.1,源MAC为PC1网关MAC:3333-33-33-33-33,目的MAC为PC1 MAC:11-11-11-11-1111
ARP工作原理(跨网段)
5、PC1得到网关MAC,接着发送ICMP包:源MAC为PC1 MAC:11-11-11-11-11-11,目的MAC为网关MAC:33-3333-33-33-33,源IP为PC1 IP:192.168.1.1,目的IP为目标 IP:192.168.2.1
PC2首先将目标IP 192.168.1.200与自己路由表比对,在本地路由 表中找了到一条默认路由:
Network
Destination Netmask
Gateway Interface Metric
0.0.0.0
0.0.0.0 192.168.1.200 1.1.1.1 10
ARP实验二
该路由条目的下一跳(网关)为192.168.1.200,于是PC2查看本 机ARP表缓存是否存在网关的ARP条目,但并没有找到相应网关 条目,所以PC2发出寻找网关的的ARP广播。PC1收到该ARP广播 查询包,于是PC1向PC2发送ARP应答的单播包,这个应答包中的 Sender MAC就是PC1的MAC地址。PC2收到PC1的应答包后,提取 Sender IP和Sender MAC值,加入本地ARP缓存。这样PC2就知道 了网关MAC地址。(注意我们要到达的目标IP为192.168.1.200, 网关IP也为192.168.1.200。但我尽量用“网关”这个词语,就是 要请大家留意PC2发送ARP包的目的不是寻找PING包的目的地址, 而是寻找网关地址。这里查找网关的步骤属于OSI 2层通信。)
PC2的配置: IP:1.1.1.1
mask:255.255.255.0 gateway:192.168.1.200
当PC2刚启动的时候会发送3个Gratuitous ARP广播包来检测是否 存在IP冲突。PC1收到PC2的ARP广播,但并不将PC2的主机IP和 MAC加进自己ARP缓存中。 我们在PC2上ping PC1的IP(ping 192.168.1.200)。
ARP工作原理(跨网段)
192.168.1.1跨网段ping 192.168.2.1 ,拓扑如下:
ARP工作原理(跨网段)
1、首先PC1观察目的IP:192.168.2.1与本机IP: 192.168.1.1是否在同一个网段
2、发现不在,因此看本机是否设置了网关,如果没有设置 网关,PC1直接将ICMP包丢弃,显示目的不可达;发现设 置了网关:192.168.1.254,于是执行步骤3
ARP工作原理(跨网段)
8、PC2发送ARP回应,R1得到目标MAC 9、R1发送ICMP:源IP为PC1的IP:192.168.1.1,源MAC为
E2的MAC:44-44-44-44-44-44,目的IP为PC2的IP: 192.168.2.1,目的MAC为PC2的MAC:22-22-22-22-22-22 10、PC2回应ICMP, 源IP为PC2的IP:192.168.2.1,源MAC为 PC2的MAC:22-22-22-22-22-22,目的IP为PC1的IP: 192.168.1.1,目的MAC为E2的MAC:44-44-44-44-44-44 11、路由器转发ICMP,源IP为PC2的IP:192.168.2.1,源 MAC为E1的MAC:33-33-33-33-33-33,目的IP为PC1的IP: 192.168.1.1,目的MAC为PC1的MAC:11-11-11-11-11-11 12、PC1收到回应,完成一次PING 命令 PC2的配置: Fra bibliotekP:1.1.1.1
mask:255.255.255.0 gateway:192.168.1.200 (与实验一不同的地方)
当PC2刚启动的时候会发送3个Gratuitous ARP广播包来检测是否 存在IP冲突。PC1收到PC2的ARP广播,但并不将PC2的主机IP和 MAC加进自己ARP缓存中。 我们在PC2上ping PC1的IP(ping 192.168.1.200)。
相关主题