问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

ARP协议及其在VLAN间的应用详解

创作时间:
作者:
@小白创作中心

ARP协议及其在VLAN间的应用详解

引用
CSDN
1.
https://blog.csdn.net/qq_chenjin/article/details/146336051

ARP(Address Resolution Protocol)协议是网络通信中不可或缺的一部分,它负责将IP地址解析为对应的MAC地址。本文将详细介绍ARP协议的基本概念、工作原理以及在VLAN间的应用,帮助读者深入理解这一重要的网络协议。

1、ARP

ARP(Address Resolution Protocol)用于将一个IP地址映射到正确的MAC地址。

应用场景:本地无mac地址缓存记录,用来获取目的ip对应的mac地址。分为同网段直接获取和跨网段通过网关代理获取。

特性:ARP不能穿越广播域,就是不能穿越路由器或VLAN。三层设备路由器不转发ARP广播。

1.1、arp代理

一个物理网络的子网(Subnet)中的源主机向另一个物理网络的子网中的目的主机发ARP request,和源主机直连的网关用自己接口的MAC地址代替目的主机回ARP reply,这个过程称为ARP 代理。

1.2、地址解析过程

1.2.1、同一网段内

  1. 在同一广播域内,所有主机处于同一网段,主机A要向主机C发送信息,主机A的ARP表中没有对应的MAC地址,主机先以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的源IP地址和源MAC地址,目标IP地址和目标MAC地址为主机C的IP地址和全0的MAC地址。
  2. ARP的请求以广播方式发出,在同一广播域内所有主机都可以接收到该请求,但只有被请求的主机C才会对该请求进行处理。
  3. 收到ARP的主机C通过比较接收的目的IP地址与自己的IP地址相同,查询自己的ARP表有没有主机A的MAC地址,没有就添加主机A的MAC地址和IP地址。
  4. 响应是单播方式发出,包含有自己的MAC地址。

1.2.2、不同网段间

当主机A和主机D不在同一网段时,主机A就会先向网关(路由器)发出ARP请求, ARP请求报文中的目标IP地址为网关的IP地址。

当主机A从收到的响应报文中获得网关的 MAC地址后,将报文封装并发给网关。

如果网关没有主机D的ARP表项,网关会广播ARP请求,目标IP地址为主机D 的IP地址,当网关从收到的响应报文中获得主机D的 MAC 地址后,就可以将报文发给主机 D;

如果网关已经D 的 ARP 表项,网关直接把报文发给主机 D。

1.3、arp格式和表项

1.3.1、arp格式

ARP 协议是通过报文进行工作的,ARP 报文格式如图所示。

ARP 报文总长度为 28 字节,MAC 地址长度为 6 字节,IP 地址长度为 4 字节。

其中,每个字段的含义如下。

  • 硬件类型:指明了发送方想知道的硬件接口类型,以太网的值为 1。
  • 协议类型:表示要映射的协议地址类型。它的值为 0x0800,表示 IP 地址。
  • 硬件地址长度和协议长度:分别指出硬件地址和协议的长度,以字节为单位。对于以太网上 IP 地址的ARP请求或应答来说,它们的值分别为 6 和 4。
  • 操作类型:用来表示这个报文的类型,ARP 请求为 1,ARP 响应为 2,RARP 请求为 3,RARP 响应为 4。
  • 发送方 MAC 地址:发送方设备的硬件地址。
  • 发送方 IP 地址:发送方设备的 IP 地址。
  • 目标 MAC 地址:接收方设备的硬件地址。
  • 目标 IP 地址:接收方设备的IP地址。

ARP 数据包分为请求包和响应包,对应报文中的某些字段值也有所不同。

  • ARP 请求包报文的操作类型(op)字段的值为 request(1),目标 MAC 地址字段的值为 Target 00:00:00_00:00:00(00:00:00:00:00:00)(广播地址)。
  • ARP 响应包报文中操作类型(op)字段的值为 reply(2),目标 MAC 地址字段的值为目标主机的硬件地址。

1.3.2、表项

各列含义详解

列名 说明
Address IP 地址:目标设备的 IPv4 地址(-n 选项禁用 DNS 反向解析,直接显示 IP)。
HWtype 硬件类型:目标设备的网络接口类型,常见值:

  • ether:以太网(Ethernet)
  • loopback:本地回环接口。

HWaddress MAC 地址:目标设备的物理地址(格式为 xx:xx:xx:xx:xx:xx)。
Flags Mask 标志掩码:ARP 缓存条目的状态(详见下文)。
Iface 网络接口:本机用于与目标设备通信的接口(如 eth0、wlan0)。

Flags Mask 标志的详细解释

标志通过位掩码组合,常见标志如下:

标志符 掩码值 说明
C 0x1 Complete:条目已成功解析(MAC 地址有效)。
M 0x2 Permanent:静态条目(手动添加,不会被自动删除或更新)。
P 0x4 Published:代理 ARP 条目(本机可代表其他设备响应 ARP 请求)。
U 0x8 Used:条目正在被使用(活跃状态)。

1.4、免费arp

免费ARP:Gratuitous ARP,设备主动使用自己的IP地址作为目的IP地址发送ARP请求。此种方式称免费ARP。

免费ARP有如下作用:

  1. IP地址冲突检测:当设备接口的协议状态变为Up时,设备主动对外发送免费ARP报文。正常情况下不会收到ARP应答,如果收到,则表明本网络中存在与自身IP地址重复的地址。如果检测到IP地址冲突,设备会周期性的广播发送免费ARP应答报文,直到冲突解除。
  2. 用于通告一个新的MAC地址:发送方更换了网卡,MAC地址变化了,为了能够在动态ARP表项老化前通告网络中其他设备,发送方可以发送一个免费ARP。
  3. 在VRRP备份组中用来通告主备发生变换:发生主备变换后,MASTER设备会广播发送一个免费ARP报文来通告发生了主备变换。

1.5、vlan间arp代理

代理ARP就是通过使用一个主机,来作为指定的设备使用自己的 MAC 地址来对另一设备的ARP请求作出应答。

代理ARP的作用:主机查询的对象不在同一个局域网内,路由器就提供了代理ARP为这个问题提供了解决方案。

主机A发送ARP请求主机D的MAC地址时,因为路由器不转发广播包的原因,ARP请求只能到达路由器。

这时路由器启用了代理ARP功能,并知道主机D属于它连接的网络,那么路由器就用自己接口的MAC地址代替主机D的MAC地址来对主机A进行ARP应答。主机A接收ARP应答,但并不知道代理ARP的存在。

Proxy ARP方式 作用
路由Proxy ARP 解决同一网段不同物理网络上计算机的互通问题。
Vlan内部Proxy ARP 解决相同Vlan内,且Vlan配置用户隔离的网络上计算机互通问题。
Vlan间Proxy ARP 解决不同Vlan之间对应计算机的三层互通问题。

1.5.1、同网段,不同广播域间主机
1.5.2、同网段,不同vlan之间主机
15.3、同网段,同vlan内由于配置了端口隔离

2、vlan之间的三层通信

实际网络部署:

  • 在实际网络部署中常常会将不同的IP地址段划分为不同的Vlan。
  • 在同Vlan并且相同的网段的PC之间可直接进行通信,就不需要三层转发设备,这种方式被称为二层通信。
  • 在Vlan之间需要通过三层通信来进行互访,这时需要借助三层设备。

2.1、二层报文转发流程:

  • 未知单播-泛洪 如果找不到,就向入端口以外的其它所有端口发送;
  • 已知单播-转发 交换机在MAC地址表中查找数据帧中的目的MAC地址,如果找到,就将该数据帧发送到相应的端口;
  • 同端口-不转发 如果交换机收到的报文中源MAC地址和目的MAC地址所在的端口相同,则丢弃该报文;
  • 组播和广播-泛洪 交换机向入端口以外的其它所有端口转发广播报文。

Vlan间二层通讯被隔离了,不同VLAN之间的终端无法直接通讯。怎么解决?使用三层路由设备将不同的VLAN打通。使用路由器和三层交换机都可以,不过由于路由器成本太高,路由器也没有这么多接口,实际中使用三层交换机。

带VLAN报文转发流程:

类型 描述
转发报文 匹配VLAN和MAC地址,符合发送到相应的端口,不符合在VLAN内泛洪;
防环 报文中源MAC地址和目的MAC地址所在的端口相同,则丢弃该报文;
广播 交换机向(VLAN内)入端口以外的其它所有端口转发广播报文。

三层交换机的原理模型可以认为是:三层交换机 = 二层交换机+三层路由器。

在三层交换机上,可以在一个VLAN配置三层接口(cisco成为交换机虚拟接口 SVI:switch virtual interface),这个SVI接口就是上面原理模型中的那个路由模块对应的接口。它具备普通路由器接口的基本特性,比如:

  • 该接口有自己的MAC地址;
  • 在该SVI接口上,我们可以进行标准的三层协议的配置,包括IP地址,路由协议等等。

三层交换机内部既有MAC地址表,用以二层转发;又有IP路由表,用以三层转发。

2.2、三层交换机转发方式

1、软件三层转发

  • 查找目的IP的网段路由(最佳匹配查找,次优路径),
  • 如果路由不存在,报文丢弃。
  • 如果存在,查找下一跳的ARP表,如果ARP不存在,进行ARP学习。
  • 学习到ARP后,进行报文转发,并将转发信息写入硬件主机路由表,以后该目的IP的报文就可以通过硬件进行三层转发了

2、硬件二层交换

  • 根据报文的目的MAC(精确匹配查找),查找二层MAC转发表:
  • 如果不存在该MAC条目,则在所有端口上进行泛洪处理(广播组播也会泛洪)。
  • 如果存在该MAC条目,并且该条目没有Route标志,则进行标准交换转发。
  • 如果该MAC条目上有Route标记,则进行硬件三层转发。

3、硬件三层转发【表项由软件更新】

  • 根据报文的目的IP地址(精确匹配查找,优选路径),查找三层主机路由表:
  • 如果存在,直接转发(TTL–,目的MAC地址进行替换)
  • 如果不存在,则进行标准的软件三层报文转发。

PC1跨网段访问PC3时,PC1会将数据交给网关R1,所以DMAC是R1,此时交换机发现DMAC是自己,拆开二层头部,查看三层头部的DIP进行三层转发。

2.3、三层交换机处理流程

收到数据流多个数据包,只有第一个数据包是有三层交换机的三层引擎来处理的,处理的方式是软件方式,查找目的IP的网段路由,查找下一跳的ARP表,三层引擎获取了新的2层封装信息后,然后进入硬件三层,先硬件二层后硬件三层。

在第一个数据包转发完成后,在硬件中创建一个MLS条目。MLS是基于CEF(一种基于拓扑转发的模型)的。

Cisco Catalyst 交换机使用传统的MLS(Multilayer Switching,多层交换)体系结构或基于CEF(Cisco Express Forwarding, Cisco 快速转发)的MLS体系结构。传统的MLS是一种老式结构,而所有新型的Catalyst交换机都支持CEF多层交换。

类型 描述
转发信息表 匹配VLAN和MAC地址,符合发送到相应的端口,不符合在VLAN内泛洪;
邻接关系表(FIB) 记录了主机MAC地址和交换机地址;

2.4、vlanif转发流程

虚接口概述:

路由器的物理接口上可以配置IP地址,那么三层交换机上面是否可以?答案是可以的。 SVI----交换虚拟接口,交换机上针对不同的VLAN可以设置的接口,充当对应VLAN之内的网关,为不同VLAN之间通信提供可能。

1、PC1发送数据包给PC3,计算机

网卡

比较目的IP地址不在同一网段,将数据发送给网关,目的MAC为MAC10。

2、路由模块解析发现目的IP为172.16.2.5,不是本地接口存在的IP地址,因此需要对该报文三层转发。查找目的IP的网段路由,根据报文的目的IP地址(精确匹配查找,优选路径),查找三层主机路由表,匹配中VLANIF20产生的直连路由,直接转发。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号