简介
本文档介绍如何使用ACI 1.2(x)版本在两个终端组(EPG)之间部署应用虚拟交换机(AVS)交换机,该交换机在路由/GOTO模式下与自适应安全虚拟设备(ASAv)单防火墙作为L4-L7服务图,以建立客户端到服务器的通信。
先决条件
要求
Cisco 建议您了解以下主题:
- 访问策略已配置,接口已启用且处于服务中
- 已配置EPG、网桥域(BD)和虚拟路由和转发(VRF)
使用的组件
本文档中的信息基于以下软件和硬件版本:
硬件和软件:
- UCS C220 - 2.0(6d)
- ESXi/vCenter - 5.5
- ASAv - asa-device-pkg-1.2.4.8
- AVS - 5.2.1.SV3.1.10
- APIC - 1.2(1i)
- 枝叶/主干 — 11.2(1i)
- 已下载设备软件包*.zip
功能:
- AVS
- ASAv
- EPG、BD、VRF
- 访问控制列表(ACL)
- L4-L7服务图
- vCenter
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
配置
网络图
如图所示,

配置
AVS初始设置创建VMware vCenter域(VMM集成)2
注意:
- 您可以在单个域下创建多个数据中心和分布式虚拟交换机(DVS)条目。但是,每个数据中心只能分配一个Cisco AVS。
- 思科AVS服务图部署由思科ACI版本1.2(1i)和思科AVS版本5.2(1)SV3(1.10)提供支持。 整个服务图配置在思科应用策略基础设施控制器(思科APIC)上执行。
- 只有具有虚拟局域网(VLAN)封装模式的虚拟机管理器(VMM)域支持使用思科AVS的服务虚拟机(VM)部署。但是,计算VM(提供商和消费者VM)可以是具有虚拟可扩展LAN(VXLAN)或VLAN封装的VMM域的一部分。
- 另请注意,如果使用本地交换,则不需要组播地址和池。如果未选择本地交换,则必须配置组播池,并且AVS交换矩阵范围组播地址不应成为组播池的一部分。所有源自AVS的流量将采用VLAN或VXLAN封装。
导航到VM Networking > VMWare > Create vCenter Domain,如图所示:

如果您使用端口通道或VPC(虚拟端口通道),建议将vSwitch策略设置为使用Mac Pinning。
之后,APIC应将AVS交换机配置推送到vCenter,如图所示:

在APIC上,您可以看到VXLAN隧道终端(VTEP)地址已分配给AVS的VTEP端口组。无论使用哪种连接模式(VLAN或VXLAN),都会分配此地址

在vCenter中安装Cisco AVS软件
- 使用此链接从CCO下载vSphere安装包(VIB)
注:在本例中,我们使用ESX 5.5,表1,显示ESXi 6.0、5.5、5.1和5.0的兼容性表
表1 - ESXi 6.0、5.5、5.1和5.0的主机软件版本兼容性

在ZIP文件中,有3个VIB文件,每个ESXi主机版本对应一个,请选择一个适用于ESX 5.5的VIB文件,如图所示:

- 将VIB文件复制到ESX Datastore — 可通过CLI或直接从vCenter完成此操作
注意:如果主机上存在VIB文件,请使用esxcli software vib remove命令将其删除。
esxcli软件vib remove -n cross_cisco-vem-v197-5.2.1.3.1.5.0-3.2.1.vib
或者直接浏览Datastore。
esxcli软件vib install -v /vmfs/volumes/datastore1/cross_cisco-vem-v250-5.2.1.3.1.10.0-3.2.1.vib —maintenance-mode —no-sig-check

- 虚拟以太网模块(VEM)启动后,可以将主机添加到AVS:
在Add Host to vSphere Distributed Switch对话框中,选择连接到枝叶交换机的虚拟NIC端口(在本示例中,您仅移动vmnic6),如图所示:

- 单击“下一步”
- 在Network Connectivity(网络连接)对话框中,单击Next
- 在虚拟机网络对话框中,点击下一步
- 在“准备完成”对话框中,单击“完成”
注意:如果使用多个ESXi主机,所有主机都需要运行AVS/VEM,以便可以从标准交换机管理到DVS或AVS。
这样,AVS集成已经完成,我们准备继续进行第4-7层ASAv部署:
ASAv初始设置
- 下载Cisco ASAv设备软件包并将其导入到APIC:
导航到L4-L7服务>包>导入设备包,如图所示:

- 如果一切正常,您可以看到导入的设备包正在展开L4-L7 Service Device Types文件夹,如图所示:

在继续之前,在执行实际的L4-L7集成之前,需要确定安装的一些方面:
管理网络分为两种类型:带内管理和带外(OOB),它们可用于管理不属于基本以应用为中心的基础设施(ACI)的设备(枝叶、主干或apic控制器),包括ASAv、负载均衡器等。
在这种情况下,ASAv的OOB是使用标准vSwitch部署的。对于裸机ASA或其他服务设备和/或服务器,请将OOB管理端口连接到OOB交换机或网络,如图所示。

ASAv OOB管理端口管理连接需要使用ESXi上行链路端口通过OOB与APIC通信。在映射vNIC接口时,网络适配器1始终匹配ASAv上的管理0/0接口,其余数据平面接口从网络适配器2启动。
表2显示了网络适配器ID和ASAv接口ID的统一情况:
表 2

- 通过File>Deploy OVF(Open Virtualization Format)Template中的向导部署ASAv VM
- 如果要将独立ESX Server或asav-vi用于vCenter,请选择asav-esxi。在本例中,使用vCenter。

- 完成安装向导,接受条款和条件。在向导的中间,您可以确定多个选项,如主机名、管理、ip地址、防火墙模式和其他与ASAv相关的特定信息。请记住对ASAv使用OOB管理,因为在这种情况下,在使用VM网络(标准交换机)时,需要保留接口Management0/0,而接口GigabitEthernet0-8是默认网络端口。






- 如图所示,某些管理配置已推送到ASAv防火墙。配置管理员用户名和密码。APIC使用此用户名和密码登录并配置ASA。ASA应能连接到OOB网络,并能访问APIC。
username admin password <device_password> encrypted privilege 15

此外,从全局配置模式启用http服务器:
http server enable
http 0.0.0.0 0.0.0.0管理
L4-L7 for ASAv集成在APIC中:
- 登录到ACI GUI,点击将部署服务图的租户。展开导航窗格底部的L4-L7服务,右键单击L4-L7设备,然后单击创建L4-L7设备以打开向导
— 托管模式
— 防火墙服务
— 虚拟设备
— 通过单个节点连接到AVS域
-ASAv型号
— 路由模式(GoTo)
— 管理地址(必须与之前分配给Mgmt0/0接口的地址匹配)
- 使用HTTPS作为APIC,默认情况下使用最安全的协议与ASAv通信

对于第一部分,使用上一节中显示的表2将网络适配器ID与您要使用的ASAv接口ID正确匹配。路径是指允许进出防火墙接口的物理端口、端口通道或VPC。在这种情况下,ASA位于ESX主机中,其中两个接口的传入和传出相同。在物理设备中,防火墙(FW)的内部和外部将是不同的物理端口。
对于第二部分,必须始终以无异常的方式定义集群接口(即使未使用集群HA),这是因为对象模型在mIf接口(设备包上的元接口)、LIf接口(叶接口,例如,外部、内部、内部等)和CIf(具体接口)之间具有关联。 必须在设备集群配置中配置L4-L7具体设备,这种抽象称为逻辑设备。逻辑设备具有映射到具体设备上的具体接口的逻辑接口。
在本示例中,将使用以下关联:
Gi0/0 = vmnic2 = ServerInt/provider/server > EPG1
Gi0/1 = vmnic3 = ClientInt/consumer/client > EPG2

注意:对于故障切换/HA部署,GigabitEthernet 0/8已预配置为故障切换接口。
设备状态应为“稳定”,并且您应准备好部署功能配置文件和服务图模板
服务图神庙
首先,为ASAv创建功能配置文件,但在此之前,您需要在该文件夹下创建功能配置文件组,然后创建L4-L7服务功能配置文件,如图所示:


- 从下拉菜单中选择WebPolicyForRoutedMode配置文件,然后继续配置防火墙上的接口。从此处开始,这些步骤是可选的,以后可以实施/修改。这些步骤可以在部署的几个不同阶段执行,具体取决于服务图的可重用性或自定义性。
在本练习中,路由防火墙(GoTo模式)要求每个接口都具有唯一的IP地址。标准ASA配置还具有接口安全级别(外部接口的安全级别较低,内部接口的安全级别较高)。 您也可以根据需要更改接口名称。本示例中使用默认值。
- 展开Interface Specific Configuration,为ServerInt添加IP地址和安全级别,其中IP地址格式如下x.x.x.x/y.y.y.y或x.x.x.x/yy。对ClientInt接口重复此过程。

注意:您还可以修改默认访问列表设置并创建自己的基本模板。默认情况下,RoutedMode模板将包括HTTP和HTTPS规则。在本练习中,SSH和ICMP将被添加到允许的外部访问列表。


- 将设备集群拖放到右侧,形成消费者和提供商之间的关系,选择路由模式和先前创建的功能配置文件。

- 检查模板是否存在故障。模板创建为可重复使用,然后必须将其应用于特定EPG等。
- 要应用模板,请右键单击并选择“应用L4-L7服务图模板”

- 定义哪个EPG将位于消费者端和提供商端。在本练习中,AVS-EPG2是消费者(客户端),AVS-EPG1是提供商(服务器)。 请记住,未应用任何过滤器,这将允许防火墙根据此向导的最后一部分中定义的访问列表执行所有过滤。
- 单击“下一步”

- 验证每个EPG的BD信息。在这种情况下,EPG1是IntBD DB上的提供商,EPG2是BD ExtBD上的消费者。EPG1将连接到防火墙接口ServerInt,EPG2将连接到接口ClientInt。两个FW接口将成为每个EPG的DG,因此流量必须始终通过防火墙。
- 单击“下一步”

- 在Config Parameters部分,点击All Parameters并验证是否有需要更新/配置的RED指示灯。在图中所示的输出中,可以注意到访问列表上的顺序错过了。这相当于您将在show ip access-list X中看到的行顺序。

- 您还可以验证从之前定义的功能配置文件分配的IP编址,此时如有需要,可以更改信息。设置所有参数后,单击Finish,如图所示:


验证
- 创建Service图后需要检验的一个重要事项是,创建消费者/提供商关系时使用了正确的Meta Connector。在“Function Connector Properties(功能连接器属性)”下验证。

注意:从AVS动态池为防火墙的每个接口分配一个encap-vlan。确认没有故障。


- 新合同在EPG下分配。从现在起,如果您需要修改访问列表上的任何内容,则必须根据提供商EPG的L4-L7服务参数完成更改。

- 在vCenter上,您还可以验证影子EPG已分配到每个防火墙接口:

在本测试中,我让2个EPG与标准合同通信,这些2个EPG位于不同的域和不同的VRF中,因此之前已配置它们之间的路由泄漏。在插入Service Graph后,由于防火墙在2个EPG之间设置路由和过滤,这可以简化一些操作。以前在EPG和BD下配置的DG现在与合同相同地删除。只有L4-L7推送的合同应保留在EPG下。

删除标准合同后,您可以确认流量现在流经ASAv,每次客户端向服务器发送请求时,命令show access-list应显示规则的命中计数递增。

在枝叶上,应该为客户端和服务器VM以及ASAv接口学习终端

查看连接到VEM的两个防火墙接口。
ESX-1

ESX-2

最后,如果我们知道源和目标EPG的PC标记,也可以在枝叶级别验证防火墙规则:

可以将过滤器ID与枝叶上的PC标记匹配以验证FW规则。

注意:EPG PCTags/S类不会直接通信。通信通过L4-L7服务图插入创建的影子EPG中断或绑定在一起。
Client to Server可以正常工作。


故障排除
未分配VTEP地址
验证是否已在AEP下检查基础设施VLAN:

不支持的版本
验证VEM版本是否正确并支持适当的ESXi VMWare系统。
~ # vem version
Running esx version -1746974 x86_64
VEM Version: 5.2.1.3.1.10.0-3.2.1
OpFlex SDK Version: 1.2(1i)
System Version: VMware ESXi 5.5.0 Releasebuild-1746974
ESX Version Update Level: 0
VEM和交换矩阵通信不起作用
- Check VEM status
vem status
- Try reloading or restating the VEM at the host:
vem reload
vem restart
- Check if there’s connectivity towards the Fabric. You can try pinging 10.0.0.30 which is (infra:default) with 10.0.0.30 (shared address, for both Leafs)
~ # vmkping -I vmk1 10.0.0.30
PING 10.0.0.30 (10.0.0.30): 56 data bytes
--- 10.0.0.30 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss
If ping fails, check:
- Check OpFlex status - The DPA (DataPathAgent) handles all the control traffic between AVS and APIC (talks to the immediate Leaf switch that is connecting to) using OpFlex (opflex client/agent).
All EPG communication will go thru this opflex connection.
~ # vemcmd show opflex
Status: 0 (Discovering)
Channel0: 0 (Discovering), Channel1: 0 (Discovering)
Dvs name: comp/prov-VMware/ctrlr-[AVS]-vCenterController/sw-dvs-129
Remote IP: 10.0.0.30 Port: 8000
Infra vlan: 3967
FTEP IP: 10.0.0.32
Switching Mode: unknown
Encap Type: unknown
NS GIPO: 0.0.0.0
you can also check the status of the vmnics at the host level:
~ # esxcfg-vmknic -l
Interface Port Group/DVPort IP Family IP Address Netmask Broadcast MAC Address MTU TSO MSS Enabled Type
vmk0 Management Network IPv4 10.201.35.219 255.255.255.0 10.201.35.255 e4:aa:5d:ad:06:3e 1500 65535 true STATIC
vmk0 Management Network IPv6 fe80::e6aa:5dff:fead:63e 64 e4:aa:5d:ad:06:3e 1500 65535 true STATIC, PREFERRED
vmk1 160 IPv4 10.0.32.65 255.255.0.0 10.0.255.255 00:50:56:6b:ca:25 1500 65535 true STATIC
vmk1 160 IPv6 fe80::250:56ff:fe6b:ca25 64 00:50:56:6b:ca:25 1500 65535 true STATIC, PREFERRED
~ #
- Also on the host, verify if DHCP requests are sent back and forth:
~ # tcpdump-uw -i vmk1
tcpdump-uw: verbose output suppressed, use -v or -vv for full protocol decode
listening on vmk1, link-type EN10MB (Ethernet), capture size 96 bytes
12:46:08.818776 IP truncated-ip - 246 bytes missing! 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:50:56:6b:ca:25 (oui Unknown), length 300
12:46:13.002342 IP truncated-ip - 246 bytes missing! 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:50:56:6b:ca:25 (oui Unknown), length 300
12:46:21.002532 IP truncated-ip - 246 bytes missing! 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:50:56:6b:ca:25 (oui Unknown), length 300
12:46:30.002753 IP truncated-ip - 246 bytes missing! 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:50:56:6b:ca:25 (oui Unknown), length 300
此时,可以确定ESXi主机和枝叶之间的交换矩阵通信不能正常工作。可以在枝叶端检查某些验证命令,以确定根本原因。
leaf2# show cdp ne
Capability Codes: R - Router, T - Trans-Bridge, B - Source-Route-Bridge
S - Switch, H - Host, I - IGMP, r - Repeater,
V - VoIP-Phone, D - Remotely-Managed-Device,
s - Supports-STP-Dispute
Device-ID Local Intrfce Hldtme Capability Platform Port ID
AVS:localhost.localdomainmain
Eth1/5 169 S I s VMware ESXi vmnic4
AVS:localhost.localdomainmain
Eth1/6 169 S I s VMware ESXi vmnic5
N3K-2(FOC1938R02L)
Eth1/13 166 R S I s N3K-C3172PQ-1 Eth1/13
leaf2# show port-c sum
Flags: D - Down P - Up in port-channel (members)
I - Individual H - Hot-standby (LACP only)
s - Suspended r - Module-removed
S - Switched R - Routed
U - Up (port-channel)
M - Not in use. Min-links not met
F - Configuration failed
-------------------------------------------------------------------------------
Group Port- Type Protocol Member Ports
Channel
-------------------------------------------------------------------------------
5 Po5(SU) Eth LACP Eth1/5(P) Eth1/6(P)通过Po5连接的ESXi中有2个端口
leaf2# show vlan extended
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
13 infra:default active Eth1/1, Eth1/20
19 -- active Eth1/13
22 mgmt:inb active Eth1/1
26 -- active Eth1/5, Eth1/6, Po5
27 -- active Eth1/1
28 :: active Eth1/5, Eth1/6, Po5
36 common:pod6_BD active Eth1/5, Eth1/6, Po5
VLAN Type Vlan-mode Encap
---- ----- ---------- -------------------------------
13 enet CE vxlan-16777209, vlan-3967
19 enet CE vxlan-14680064, vlan-150
22 enet CE vxlan-16383902
26 enet CE vxlan-15531929, vlan-200
27 enet CE vlan-11
28 enet CE vlan-14
36 enet CE vxlan-15662984
从上述输出可以看到,Infra Vlan不允许通过或穿过指向ESXi主机的上行链路端口(1/5-6)。 这表示在APIC上配置了接口策略或交换机策略的配置错误。
检查两者:
Access Policies > Interface Policies > Profiles Access Policies > Switch Policies > Profiles 在这种情况下,接口配置文件连接到错误的AEP(用于DVS的旧AEP),如图所示:
在为AVS设置正确的AEP后,我们现在可以看到,Infra Vlan通过枝叶上的正确取消链接看到:
leaf2# show vlan extended
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
13 infra:default active Eth1/1, Eth1/5, Eth1/6,
Eth1/20, Po5
19 -- active Eth1/13
22 mgmt:inb active Eth1/1
26 -- active Eth1/5, Eth1/6, Po5
27 -- active Eth1/1
28 :: active Eth1/5, Eth1/6, Po5
36 common:pod6_BD active Eth1/5, Eth1/6, Po5
VLAN Type Vlan-mode Encap
---- ----- ---------- -------------------------------
13 enet CE vxlan-16777209, vlan-3967
19 enet CE vxlan-14680064, vlan-150
22 enet CE vxlan-16383902
26 enet CE vxlan-15531929, vlan-200
27 enet CE vlan-11
28 enet CE vlan-14
36 enet CE vxlan-15662984
and Opflex connection is restablised after restarting the VEM module:
~ # vem restart
stopDpa
VEM SwISCSI PID is
Warn: DPA running host/vim/vimuser/cisco/vem/vemdpa.213997
Warn: DPA running host/vim/vimuser/cisco/vem/vemdpa.213997
watchdog-vemdpa: Terminating watchdog process with PID 213974
~ # vemcmd show opflex
Status: 0 (Discovering)
Channel0: 14 (Connection attempt), Channel1: 0 (Discovering)
Dvs name: comp/prov-VMware/ctrlr-[AVS]-vCenterController/sw-dvs-129
Remote IP: 10.0.0.30 Port: 8000
Infra vlan: 3967
FTEP IP: 10.0.0.32
Switching Mode: unknown
Encap Type: unknown
NS GIPO: 0.0.0.0
~ # vemcmd show opflex
Status: 12 (Active)
Channel0: 12 (Active), Channel1: 0 (Discovering)
Dvs name: comp/prov-VMware/ctrlr-[AVS]-vCenterController/sw-dvs-129
Remote IP: 10.0.0.30 Port: 8000
Infra vlan: 3967
FTEP IP: 10.0.0.32
Switching Mode: LS
Encap Type: unknown
NS GIPO: 0.0.0.0
相关信息
应用虚拟交换机安装
Cisco Systems, Inc.思科应用虚拟交换机安装指南,版本5.2(1)SV3(1.2)
使用VMware部署ASAv
Cisco Systems, Inc.思科自适应安全虚拟设备(ASAv)快速入门指南,9.4
“使用思科以应用为中心的基础设施进行服务图设计”白皮书
“使用思科以应用为中心的基础设施进行服务图设计”白皮书
技术支持和文档 - Cisco Systems