简介
本文档介绍在应用中心基础设施(ACI)交换矩阵中使用地址解析协议(ARP)泛洪和ARP收集。
了解ARP泛洪
在思科ACI中,可以选择使用ARP泛洪或在需要时将其禁用。必须了解有关ARP泛洪的交换矩阵行为,才能排除第2层故障。
如果启用了ARP泛洪,ARP流量将根据传统网络中的常规ARP处理在交换矩阵内泛洪。当需要无故ARP (GARP)请求来更新主机ARP缓存或路由器ARP缓存时,需要ARP泛洪。当IP地址可以具有不同的MAC地址时(例如,使用负载平衡器和防火墙的故障转移群集功能),就会出现这种情况。
如果ARP泛洪已禁用,交换矩阵会尝试使用单播将ARP流量发送到目的地。因此,将对ARP数据包的目标IP地址进行第3层查找。ARP的行为类似于第3层单播数据包,直到它到达目的枝叶交换机。
注意:请注意,仅当网桥域上启用了单播路由时,此选项才适用。如果禁用单播路由,ARP泛洪将隐式启用。
接下来,您将看到一些与使用ARP泛洪相关的使用案例。
使用案例1.在ACI中学习终端
当枝叶交换机知道两个终端时,此使用案例适用。
在此场景中,ARP泛洪不起作用。当枝叶交换机知道其终端信息时,流量在本地交换。当一个终端(例如H1)向另一个终端(H2)发送ARP请求,并禁用ARP泛洪时,此行为相同。由于枝叶交换机知道连接H2的位置并检查ARP目标IP地址(即H2 IP地址),因此无需泛洪流量或将流量重定向到主干层。因此,它会向H2发送ARP请求。
无论终端组(EPG)、网桥域或接入/封装设置如何,如果枝叶知道终端,则以相同方式处理终端。
示例 1.交换矩阵已知的终端,在同一EPG、桥接域和接入/封装中运行。
示例 2.交换矩阵已知的终端,工作于同一EPG桥接域,但接入/封装不同。
示例 3. 交换矩阵已知的终端,工作在不同的EPG但相同的网桥域中。
当禁用ARP泛洪且终端属于同一网桥域中不同EPG的一部分时,当连接到同一枝叶交换机时,如果枝叶交换机知道ARP目标IP地址,则会本地路由ARP流量(启用单播路由)。
使用案例2.在COOP中学习终端
当两个终端连接到不同的枝叶交换机时,此使用案例适用;出现在主干交换机的协作协议(COOP)数据库中。
ARP请求必须通过交换矩阵转发。从H1到H3的ARP流量为:
-
H1使用广播目的MAC地址发送对H3的ARP请求。
-
ACI尝试使用单播转发来发送ARP请求,因此本地枝叶交换机检查ARP目标IP地址,即H3 IP地址。由于本地枝叶交换机不知道终端H3的IP地址,因此它会将ARP请求发送到主干交换机以进行主干代理。
-
主干在COOP数据库中具有H3信息(启用了单播路由),然后将ARP请求转发到交换矩阵上的目标枝叶交换机,后者再将其转发到H3。一旦H3收到该流量,它将回复H1。
示例 1. 交换矩阵已知的终端,工作于同一EPG、桥接域和接入/封装。
示例 2. 交换矩阵已知的终端,工作于同一EPG桥接域,但接入/封装不同。
示例 3. 交换矩阵已知的终端,工作在不同的EPG但相同的网桥域中。
使用案例3.目标IP未知,ARP泛洪已禁用
此使用案例适用于入口枝叶不知道目标IP地址的位置(禁用ARP泛洪,启用单播路由)。
在类似场景中,当禁用ARP泛洪且入口枝叶不知道ARP目标IP地址位于何处时,ARP请求会发送到任播主干代理隧道终端(TEP),而不是泛洪。从H1到H2的ARP流量为:
示例 1.无论EPG、网桥域或接入/封装设置如何,ARP请求流都保持与前面提到的相同。
使用案例4.目标IP未知,启用ARP泛洪
此使用案例适用于入口枝叶不知道目标IP地址的位置(启用ARP泛洪,启用单播路由)。
如果在网桥域中启用了ARP泛洪,则来自H1的ARP请求会通过泛洪到达H2。从H1到H2的ARP流量流为:
示例 1.
注意:思科ACI(网桥域或EPG级别)中的封装泛洪可用于将网桥域内的流量泛洪限制为单个封装。当两个EPG共享同一网桥域且启用了Flood in Encapsulation时,EPG泛洪流量不会到达另一个EPG。
启用ARP泛洪的优势之一是能够检测从一个位置移动到另一个位置的静默IP,而无需通知ACI枝叶。由于ARP请求在网桥域内泛洪,即使ACI枝叶仍然认为IP位于旧位置,具有静默IP的主机也会做出适当响应,以便ACI枝叶可以相应地更新其条目。
如果ARP泛洪已禁用,则ACI枝叶会一直将ARP请求仅转发到旧位置,直到IP终端老化。另一方面,禁用ARP泛洪的好处是能够将ARP请求直接发送到目标IP的位置,从而优化流量,假设没有终端移动而不通过GARP等通知其移动。
使用案例5.不同EPG和BD中的终端
当终端连接到不同的EPG和不同的网桥域时,将应用此使用案例。
当终端属于不同的EPG和不同的网桥域时,必须路由它们之间的流量。泛洪不通过网桥域,包括ARP泛洪。因此,如果H1需要与连接在同一枝叶交换机上的H2通信,流量将发送到默认网关MAC地址,因此ARP泛洪在本示例中并不相关。
了解ARP收集
思科ACI具有多种机制来检测静默主机,其中ACI枝叶未获知本地终端。ACI具有一些检测这些静默主机的机制。对于流向未知MAC的第2层交换流量,可以在网桥域(BD)下将第2层未知单播选项设置为泛洪,而对于带有广播目标MAC的ARP请求,可以在网桥域下使用ARP泛洪选项来控制泛洪行为。此外,思科ACI使用ARP收集来发送ARP请求,以解析尚未获知的终端的IP地址(静默主机检测)。
通过ARP收集,如果主干没有有关ARP请求的目标连接位置的信息(目标IP不在COOP数据库中),交换矩阵将生成源自桥接域交换机虚拟接口(SVI)(沉浸式网关)IP地址的ARP请求。此ARP请求发送到桥接域的所有枝叶节点的边缘接口部分。此外,无论配置如何(第3层)路由的流量都会触发ARP收集,例如ARP泛洪,只要流量被路由到未知IP即可。
ARP收集有几个要求:
使用案例1.目标IP未知,ARP泛洪已禁用
此使用案例适用于目标/目标终端对交换矩阵未知的情况(禁用ARP泛洪)。
当终端位于不同的枝叶交换机上,同时属于同一EPG和桥接域,并且使用同一VLAN访问映射时,ARP请求(例如,从H1到H3)必须通过交换矩阵转发。如果主干交换机(静默主机)上的COOP数据库中缺少H3信息,并且禁用了ARP泛洪,也可以使用ARP收集,如下图所示。
从H1到H3的ARP流量为:
-
H1使用广播目的MAC地址发送对H3的ARP请求。
-
ACI尝试使用单播转发来发送ARP请求,因此本地枝叶交换机检查ARP目标IP地址(H3 IP)。由于本地枝叶交换机不知道终端H3的IP地址,因此它会将ARP请求发送到主干交换机以进行主干代理。
-
脊柱交换机上的COOP数据库中缺少H3信息,因此使用沉浸式网关IP地址作为源来触发ARP收集。此ARP请求在域中泛洪。
-
H3收到ARP请求并做出应答,同时它在交换矩阵中获知。
无论EPG、网桥域或接入/封装设置如何,当两个终端尝试相互通信时,ARP收集功能的工作方式相同(无论它们与交换矩阵内的相同或不同枝叶交换机的连接如何)。
使用案例2.不同EPG和BD中的终端
此使用案例适用于终端连接在不同的EPG和网桥域(启用ARP泛洪)的情况。
当终端属于不同的EPG和不同的网桥域时,必须路由它们之间的流量。泛洪不会跨越网桥域,包括ARP泛洪可能由ARP汇聚生成。因此,如果H1需要与连接在同一枝叶交换机上的H2通信,流量将发送到默认网关MAC地址,因此ARP收集在本示例中并不相关。