简介
本文档介绍了解ACI访问策略并对其进行故障排除的步骤。
背景信息
本文档中的材料摘自排除思科以应用为中心的基础设施,第二版书籍,特别是访问策略 — 概述和访问策略 — 故障排除工作流章。
访问策略概述
ACI管理员如何在交换矩阵中的端口上配置VLAN?ACI管理员如何开始解决与访问策略相关的故障?本节将介绍如何排除与交换矩阵访问策略相关的问题。
在进入故障排除场景之前,读者必须很好地了解访问策略在ACI对象模型中的功能及其关系。为此,读者可参阅Cisco.com(https://developer.cisco.com/site/apic-mim-ref-api/)上提供的“ACI策略模型”和“APIC管理信息模型参考”文档。
访问策略的功能是在枝叶交换机的下行链路端口上启用特定配置。在定义租户策略以允许流量通过ACI交换矩阵端口之前,应准备好相关访问策略。
通常,在将新枝叶交换机添加到交换矩阵或设备连接到ACI枝叶下行链路时定义访问策略;但是,根据环境的动态性,可以在交换矩阵的正常运行期间修改访问策略。例如,要允许一组新的VLAN或向交换矩阵接入端口添加新的路由域。
ACI访问策略虽然最初有点吓人,但非常灵活,旨在简化在大规模SDN网络的配置调配和持续发展。
访问策略配置:方法
访问策略可以独立配置,即通过独立创建所需的所有对象,也可以通过ACI GUI提供的大量向导进行定义。
向导非常有用,因为它们可以指导用户完成工作流程,并确保所有所需的策略都已到位。
访问策略 — 快速入门向导
上图显示了可找到多个向导的“快速入门”页面。
定义访问策略后,一般建议是通过确保所有关联对象不显示任何故障来验证策略。
例如,在下图中,交换机配置文件分配了一个不存在的接口选择器策略。细心的用户可以轻松发现对象的“missing-target”状态,并验证是否从GUI中标记了故障:
枝叶配置文件 — SwitchProfile_101
枝叶配置文件 — SwitchProfile_101 — 故障
在这种情况下,纠正故障与创建名为“Policy”的新接口选择器配置文件一样简单。
以下段落将探讨基本访问策略的手动配置。
访问策略手动基本配置
部署访问策略时,将定义对象以表示给定下行链路的目标用途。编程下行链路(例如EPG静态端口分配)的声明依赖于此明确意图。这有助于扩展配置并对相似的使用对象进行逻辑分组,例如专门连接到给定外部设备的交换机或端口。
在本章的其余部分中,请参考下面的拓扑。
双宿主服务器访问策略定义的拓扑
Web服务器连接到ACI交换矩阵。Web服务器在LACP端口通道中配置了2个网络接口卡(NIC)。Web服务器连接到枝叶交换机101和102的端口1/9。Web服务器依赖于VLAN-1501,应位于EPG“EPG-Web”中。
配置交换机策略
第一个逻辑步骤是定义将使用的枝叶交换机。“Switch Profile”将包含“Switch Selectors”,定义要使用的枝叶节点ID。
交换机策略
一般建议为每个枝叶交换机配置1个交换机配置文件,为每个VPC域对配置1个交换机配置文件,使用命名方案指明配置文件中的节点。
“快速入门”部署了一个逻辑命名方案,可以让您轻松了解其应用位置。已完成的名称采用“Switch<node-id>_Profile”格式。例如,“Switch101_Profile”将用于包含枝叶节点101的交换机配置文件,而“Switch101-102_Profile”将用于包含应属于VPC域的枝叶节点101和102的交换机配置文件。
配置接口策略
创建交换机访问策略后,下一步的逻辑步骤是定义接口。这是通过创建“接口配置文件”来实现的,该配置文件由1个或多个“接入端口选择器”组成,这些选择器包含“端口块”定义。
接口策略
要形成“接口配置文件”和涉及的交换机之间的关系,请将“交换机配置文件”链接到“接口配置文件”。
“接口配置文件”可以通过多种方式定义。类似于“交换机配置文件”,每个物理交换机可以创建一个“接口配置文件”,每个VPC域也可以创建一个“接口配置文件”。然后,这些策略应有一对一映射至其对应的交换机配置文件。遵循此逻辑,交换矩阵访问策略得到极大简化,便于其他用户理解。
此处也可以使用快速入门使用的默认命名方案。它采用“<switch profile name>_ifselector”格式来表示此配置文件用于选择接口。例如“Switch101_Profile_ifselector”。 此示例“Interface Profile”将用于配置枝叶交换机101上的非VPC接口,并且它仅与“Switch101_Profile”访问策略相关联。
与接口配置文件关联的交换机配置文件
请注意,由于带有Eth 1/9的“Interface Profile”连接到“Switch Profile”(包括枝叶交换机101和102),因此在两个节点上同时开始调配Eth1/9。
此时,已定义枝叶交换机及其端口。下一个逻辑步骤是定义这些端口的特征。“接口策略组”允许定义这些端口属性。将创建“VPC接口策略组”以允许上述LACP端口通道。
策略组
“VPC接口策略组”通过“接入端口选择器”与“接口策略组”关联,形成从枝叶交换机/接口到端口属性的关系。
交换机和接口配置文件相结合
配置VPC
要在2台枝叶交换机上创建LACP端口通道,必须在枝叶交换机101和102之间定义VPC域。这通过在两台枝叶交换机之间定义“VPC保护组”来完成。
VPC
配置VLAN池
下一个逻辑步骤是创建将在此端口(本例中为VLAN-1501)上使用的VLAN。使用“Encap Blocks”定义“VLAN池”可完成此配置。
考虑VLAN池范围大小时,请记住,如果使用VMM集成,大多数部署只需要一个VLAN池和一个附加池。要将VLAN从传统网络引入ACI,请将传统VLAN的范围定义为静态VLAN池。
例如,假设VLAN 1-2000用于传统环境。创建一个包含VLAN 1-2000的静态VLAN池。这将允许将ACI网桥域和EPG中继到传统交换矩阵。如果部署VMM,可以使用一系列免费VLAN ID创建第二个动态池。
VLAN池
配置域
下一个逻辑步骤是创建“域”。“域”定义了VLAN池的范围,即该池将应用于何处。“域”可以是物理、虚拟或外部(桥接或路由)。 在本示例中,将使用“物理域”将裸机服务器连接到交换矩阵。此“域”将关联到“VLAN池”以允许所需的VLAN。
物理域
对于大多数部署,单个“物理域”就足以部署裸机,单个“路由域”就足以部署L3Out。两者都可以映射到相同的“VLAN池”。 如果以多租户方式部署交换矩阵,或者需要更精细的控制来限制哪些用户可以在端口上部署特定EPG和VLAN,则应考虑更具战略意义的访问策略设计。
“域”还提供使用基于角色的访问控制(RBAC)通过“安全域”限制用户访问策略的功能。
在交换机上部署VLAN时,ACI将使用基于VLAN所来自域的唯一VXLAN ID封装生成树BPDU。因此,在连接需要与其他网桥进行STP通信的设备时,必须使用同一个域。
VLAN VXLAN ID还用于允许VPC交换机同步VPC学习的MAC和IP地址。因此,最简单的VLAN池设计是使用单个池进行静态部署,创建第二个池进行动态部署。
配置可附加访问实体配置文件(AEP)
两个主要访问策略配置块现已完成;交换机和接口定义以及域/VLAN定义。名为“可连接访问实体配置文件”(AEP)的对象将用于将这两个数据块连接在一起。
“策略组”以一对多关系链接到AEP,这允许AEP将共享相似策略要求的接口和交换机分组到一起。这意味着在表示特定交换机上的一组接口时,只需要引用一个AEP。
可附加访问实体配置文件
在大多数部署中,单个AEP应该用于静态路径,每个VMM域一个额外的AEP。
最重要的考虑事项是通过AEP在接口上部署VLAN。这可以通过将EPG直接映射到AEP或配置VMM域进行预调配来实现。这两种配置都会使关联的接口成为中继端口(传统交换机上的“switchport mode trunk”)。
因此,当使用路由端口或路由子接口时,为L3Out创建单独的AEP非常重要。如果在L3Out中使用SVI,则无需创建其他AEP。
配置租户、APP和EPG
ACI使用基于策略的方法来定义连接。
最低级别的对象称为“终端组”(EPG)。 EPG结构用于定义一组具有相似策略要求的虚拟机或服务器(终端)。租户下的“应用配置文件”用于将EPG逻辑分组。
租户、应用和EPG
下一个逻辑步骤是将EPG链接到域。这会在代表我们工作负荷的逻辑对象EPG和物理交换机/接口、访问策略之间创建链路。
EPG到域链路
配置EPG静态绑定
最后一个逻辑步骤是为给定EPG将VLAN编程到交换机接口上。如果使用物理域,这一点尤为重要,因为此类域需要显式声明才能执行此操作。这将允许EPG扩展到交换矩阵之外,并允许裸机服务器分类到EPG中。
静态绑定
引用的“端口封装”需要针对“VLAN池”进行解析。 如果不是,将标记故障。本章的“故障排除工作流程”一节对此进行了介绍。
访问策略配置摘要
下图汇总了创建的所有对象,这些对象用于通过VLAN-1501(使用VPC连接到枝叶交换机101和102)连接主机。
裸机ACI连接
连接其他服务器
创建之前的所有策略后,在枝叶交换机101和102的端口Eth1/10上使用端口通道连接多一台服务器意味着什么?
参考“裸机ACI连接”图,需要创建以下最低配置:
- 额外的接入端口选择器和端口块。
- 额外的VPC接口策略组。
- 带有端口封装的额外静态绑定。
请注意,对于LACP端口通道,必须使用专用VPC接口策略组作为此VPC策略组定义VPC ID。
对于单个链路,如果链路需要相同的端口属性,则可以将非VPC接口策略组重新用于额外的服务器。
生成的策略类似于下图。
将server2连接到安装程序
接下来做什么?
下一部分将介绍几个访问策略故障场景,从本概述中讨论的拓扑和使用案例开始。
故障排除工作流程
使用访问策略时,可能会遇到以下故障排除场景:
- 访问策略中两个或多个实体之间缺少关系,例如未链接到AEP的访问策略组。
- 缺少或意外的策略与给定的访问策略(例如名为“lldp_enabled”的LLDP策略)关联,而实际上策略配置已禁用LLDP rx/tx。
- 访问策略中缺少或意外的值,例如配置的VLAN ID封装在配置的VLAN池中丢失。
- EPG和访问策略之间缺少关系,例如没有与EPG的物理或虚拟域关联。
上述故障排除大多涉及遍历访问策略关系,以了解是否缺少任何关系、了解配置了哪些策略和/或配置是否导致了所需的行为。
使用“配置接口、PC和VPC快速入门”进行故障排除
在APIC GUI中,“配置接口、PC和VPC”快速入门向导为管理员提供现有访问策略的汇总视图,方便访问策略查找。此快速入门向导可在GUI中找到:
'交换矩阵>访问策略>快速启动>步骤>配置接口、PC和VPC'。
“配置接口、PC和VPC”快速入门的位置
尽管向导的名称中带有“Configure”(配置),但提供许多访问策略的聚合视图非常方便,这些访问策略必须配置为使接口程序化。此聚合作为一个单一视图,用于了解已定义的策略,并有效地减少开始隔离访问策略相关问题所需的点击次数。
加载快速入门视图时,可参考“配置的交换机接口”视图(左上窗格)来确定现有访问策略。该向导根据访问策略配置,对代表单个或多个枝叶交换机的文件夹下的条目进行分组。
为了演示向导的价值,提供了以下向导屏幕截图,因为读者事先并不了解交换矩阵拓扑:
“配置接口、PC和VPC”快速入门的演示视图
“Configured Switch Interfaces”窗格显示访问策略映射。“VPC交换机对”窗格显示完整的VPC保护组定义。
下表显示可从上述屏幕截图导出的已完成访问策略定义的子集。
可从上述快速入门视图派生的已完成访问策略的子集
交换机节点 |
接口 |
策略组类型 |
域类型 |
VLAN |
101 |
1/31 |
个人 |
路由(L3) |
2600 |
101 |
1/4 |
个人 |
Phys(裸机) |
311-3 |
103-104 |
1/10 |
VPC |
Phys(裸机) |
100-3? |
在默认视图中,VLAN列条目有意不完整。
同样,已完成的“VPC保护组”策略可以从“VPC交换机对”视图(左下窗格)中派生。 如果没有“VPC保护组”,则无法部署VPC,因为这是在两个枝叶节点之间定义VPC域的策略。
考虑到由于调整了窗格大小,长条目并非完全可见。要查看任何条目的完整值,请将鼠标指针悬停在感兴趣的字段上。
鼠标指针悬停在103-104 int 1/10 VPC条目的“Attached Device Type”字段上:
将鼠标悬停在窗格上即可看到完整的条目。
使用鼠标悬停详细信息更新已完成的访问策略子集
交换机节点 |
接口 |
策略组类型 |
域类型 |
VLAN |
101 |
1/31 |
个人 |
路由(L3) |
2600 |
101 |
1/4 |
个人 |
Phys(裸机) |
311-320 |
103-104 |
1/10 |
VPC |
Phys(裸机) |
100-300,900-999 |
103-104 |
1/10 |
VPC |
路由(L3) |
100-300,900-999 |
现在可观察和理解完整的VLAN关联,以进行故障排除和验证。
故障排除情况
对于以下故障排除场景,请参考上一章中的相同拓扑。
来自访问策略“简介”部分的拓扑
情形 1:故障F0467 — 路径无效,新问题
在没有相应的访问策略允许正确应用配置的情况下进行交换机/端口/VLAN声明时,会引发此故障。根据对此故障的描述,访问策略关系的另一个元素可能丢失。
为带有中继封装VLAN 1501的上述VPC接口部署静态绑定后,如果没有相应的访问策略关系,EPG上会出现以下故障:
故障:F0467
描述:故障委派:uni/tn-Prod1/ap-App1/epg-EPG-Web节点101 101_102_eth1_9配置失败,因为路径配置无效、VLAN配置无效、调试消息:invalid-vlan:vlan-1501:封装的STP网段ID不存在。EPG未与域关联,或者域未分配此vlan;invalid-path:vlan-1501:没有与EPG和端口关联的域具有所需的VLAN;
从上述故障描述中,可以清晰地指示什么原因可能导致触发故障。系统会发出警告,检查访问策略关系,以及检查与EPG的域关联。
查看上述场景中的“快速入门”视图,很明显访问策略缺少VLAN。
快速入门视图,其中101-102,Int 1/9 VPC缺少VLAN
请注意,该条目缺少对任何VLAN ID的引用。
更正后,快速入门视图将显示“(VLAN 1500-1510)”。
101-102,Int 1/9 VPC现在显示裸机(VLAN:1500-1510)
但是,EPG故障仍然存在,并更新了故障F0467的说明:
故障:F0467
描述:故障委派:由于路径配置无效,uni/tn-Prod1/ap-App1/epg-EPG-Web节点101 101_102_eth1_9的配置失败,调试消息:无效路径:vlan-150:没有与EPG和端口关联的域具有所需的VLAN。
出现上述更新故障时,请检查EPG域关联,以发现没有域与EPG关联。
EPG-Web具有静态端口关联,但缺少域关联
一旦包含VLAN 1501的域与EPG关联,就不会出现进一步故障。
方案 2:无法选择VPC作为在EPG静态端口或L3Out逻辑接口配置文件(SVI)上部署的路径
尝试将VPC配置为EPG静态端口或L3Out逻辑接口配置文件SVI条目的路径时,不会将要部署的特定VPC显示为可用选项。
尝试部署VPC静态绑定时,有两个硬要求:
- 必须为所讨论的枝叶交换机对定义VPC显式保护组。
- 必须定义完全访问策略映射。
从快速入门视图可以检查上述两项要求。如果两者都不完整,VPC将不会显示为静态端口绑定的可用选项。
情形 3:故障F0467 — 已在另一个EPG中使用交换矩阵封装
默认情况下,VLAN具有全局范围。这意味着给定的VLAN ID只能用于给定枝叶交换机上的单个EPG。在给定枝叶交换机内的多个EPG上重复使用同一VLAN的任何尝试都会导致以下故障:
故障:F0467
描述:故障委派:由于封装已在另一个EPG中使用,调试消息:encap-already-in-use:Prod1:App1:EPG-Web;
除了选择不同的VLAN外,此配置适用的另一个选项是考虑使用“本地端口”VLAN范围。此范围允许基于每个接口映射VLAN,这意味着VLAN-1501可能用于同一枝叶上的多个接口上的不同EPG。
虽然“Port Local”范围基于策略组进行关联(尤其是通过L2策略),但它应用于枝叶级别。
在APIC GUI中更改“VLAN范围”设置的位置
在实施“本地端口”VLAN范围配置之前,请查看Cisco.com上的“思科APIC第2层网络配置指南”,以确保其限制及设计限制对于期望的使用案例和设计而言是可接受的。
特别提及
显示使用情况
虽然并非访问策略所特有,但GUI中标记为“Show Usage”的大多数对象都有一个按钮。 此按钮执行根于选定对象的策略查找,以确定哪些枝叶节点/接口与其有直接关系。这对于一般查找方案以及了解特定对象或策略是否在使用中都有用。
在下面的屏幕截图中,所选的AEP正被两个不同的接口使用。这意味着,对AEP进行修改将对相关接口产生直接影响。
重叠VLAN池
虽然访问策略的功能是允许将特定VLAN部署到接口上,但在设计阶段必须考虑其他用途。具体而言,域用于计算与外部封装关联的VXLAN ID(称为交换矩阵封装)。虽然此功能通常对数据平面流量没有重大影响,但此类ID与泛洪通过交换矩阵的协议子集特别相关,包括生成树BPDU。如果leaf1上的VLAN-<id> BPDU入口应出口枝叶2(例如,让旧式交换机通过ACI收敛生成树),则VLAN-<id>必须在两个枝叶节点上拥有相同的交换矩阵封装。如果同一接入VLAN的交换矩阵封装值不同,则BPDU不会遍历交换矩阵。
如上一节所述,请避免在多个域(例如,VMM与物理)中配置相同的VLAN,除非特别注意确保每个域只应用于一组唯一的枝叶交换机。当两个域都能够解析到给定VLAN的同一枝叶交换机时,基础VXLAN可能会在升级(或全新重新加载)后发生更改,例如,这会导致STP收敛问题。该行为是每个域具有唯一数值(“base”属性)的结果,该值用于以下公式以确定VXLAN ID:
VXLAN VNID =基本+(encap — from_encap)
要验证将哪些域推送到给定枝叶上,可以对“stpAllocEncapBlkDef”类运行moquery:
leaf# moquery -c stpAllocEncapBlkDef
# stp.AllocEncapBlkDef
encapBlk : uni/infra/vlanns-[physvlans]-dynamic/from-[vlan-1500]-to-[vlan-1510]
base : 8492
dn : allocencap-[uni/infra]/encapnsdef-[uni/infra/vlanns-[physvlans]-dynamic]/allocencapblkdef-[uni/infra/vlanns-[physvlans]-dynamic/from-[vlan-1500]-to-[vlan-1510]]
from : vlan-1500
to : vlan-1510
从此输出中,识别以下访问策略定义:
- 有一个已编程的VLAN池,其中包含明确定义VLAN 1500-1510的VLAN块。
- 此VLAN块与名为“physvlan”的域关联。
- VXLAN计算中使用的基值为8492。
- 作为交换矩阵封装,VLAN-1501的VXLAN结果计算为8492 +(1501-1500)= 8493。
生成的VXLAN ID(在本例中为8493)可以通过以下命令进行验证:
leaf# show system internal epm vlan all
+----------+---------+-----------------+----------+------+----------+-----------
VLAN ID Type Access Encap Fabric H/W id BD VLAN Endpoint
(Type Value) Encap Count
+----------+---------+-----------------+----------+------+----------+-----------
13 Tenant BD NONE 0 16121790 18 13 0
14 FD vlan 802.1Q 1501 8493 19 13 0
如果有任何包含VLAN-1501的其他VLAN池被推送到同一枝叶上,升级或全新重新加载可能会获取唯一的基本值(以及随后的不同交换矩阵封装),这将导致BPDU停止将其发送到另一个枝叶上,而后者预期会在VLAN-1501上接收BPDU。