ARP工作原理详解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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)。
PC1拿1.1.1.1与自己路由表比对,找不到相应路由(原因在于PC1 没有配置网关)。最后PC1将放弃对PC2进行ICMP应答,显示请 求超时。
ARP实验三
PC1的配置: IP:192.168.1.200 mask:255.255.255.0 gateway:1.1.1.1 (与实验二不同的地方)
于是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工作原理(跨网段)
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再PING包,即ICMP包数据段的前部加上IP报头,IP报头 的Destination IP:192.168.1.200,Source IP:1.1.1.1,再在IP报头 前部封装以太网帧头,Destination MAC:网关192.168.1.200的 MAC(从ARP缓存中提取),Source MAC为PC2 1.1.1.1接口MAC。 于是PC2拿到这封装好了的ICMP包,交给1.1.1.1接口,就这样, PC2将ICMP包顺利传递到了网关。(注意本步骤同样用“网关” 这个词。该过程属OSI 3层通信)。
一是主动通告自己的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工作原理详解
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首先将目标IP 192.168.1.200与子网掩码相与,发现不在同一 网段,查看路由表,在本地路由表中找不到相关路由,原因是没有 配置网关,从而没有默认路由。PC2直接将该ICMP包丢弃,显示 目的不可达。
ARP实验二
PC1的配置: IP:192.168.1.200
mask:255.255.255.0 gateway:不配
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层通信。)
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
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缓存中。
6、路由器收到ICMP包,拆包,查IP-端口对照表,发现IP 为192.168.2.0网段的数据,通过E2口发出,于是转发包给 端口E2
7、R1获取目标PC2的MAC,发送一个ARP包:源IP为E2 IP: 192.168.2.254,目的IP为PC2 IP:192.168.2.1,源MAC为 E2的MAC:44-44-44-44-44-44,目的MAC为广播MAC:ffff-ff-ff-ff- ff
Gratuitous ARP(无故ARP)
Gratuitous ARP包含的重要信息: sender MAC:发送者的MAC地址;sender IP:发送者的IP地址;
target MAC:00:00:00:00:00:00;target Ip:发送者的IP地址; Gratuitous主要有两个作用:
Байду номын сангаас
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实验一
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)。
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)。
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层通信。)
相关文档
最新文档