目录

简介

先决条件

要求

使用的组件

背景信息

配置

网络拓扑

配置

步骤 1：配置组播服务器和客户端主机连接的交换矩阵访问策略

步骤 2：为组播接收方和源创建EPG、BD和VRF

步骤 3：将物理域连接到EPG并配置静态端口

步骤 4：配置IGMP查询器

验证

L2组播数据包流的说明

IGMP查询器要求

故障排除

相关信息

简介

本文档介绍如何在单个以应用为中心的基础设施(ACI)交换矩阵上配置和验证同一终端组(EPG)中的第2层(L2)组播。

先决条件

要求

Cisco 建议您了解以下主题：

- ACI中的L2组播支持 — 始终受支持

- ACI中的互联网组管理协议(IGMP)监听 — 默认启用

注意：有关IGMP监听的详细信息，请参阅思科APIC和IGMP监听第2层组播配置文档。

使用的组件

本文档中的信息基于以下软件和硬件版本：

- N9K-C93180YC-FX

- 版本4.2(7q)

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

背景信息

L2组播是指在L2网段(网桥域(BD)/子网)上转发的IP组播数据包，而不是L2非IP组播数据包，这些数据包是具有目的组播MAC地址且没有IP报头的组播数据包。L2组播也不包括链路本地组播(224.0.0.0/24)。 链路本地组播始终转发到BD中的所有端口。

ACI中的L2组播仅在BD内转发。如果您有多个使用相同BD的EPG，则无论EPG之间是否有合同，组播流量都会泛洪到所有EPG中。

思科ACI在枝叶交换机和主干交换机之间构建的重叠组播树上转发组播帧。L2流量使用转发标记(FTAG)树在多个冗余的相同开销链路之间提供有效的负载均衡。有关FTAG树详细信息的详细信息，请参阅ACI基础文档。

注意:我们建议您不要在BD上禁用IGMP监听。如果禁用IGMP监听，则可能会因BD中的过多错误泛洪而导致组播性能下降。

配置

网络拓扑

配置

这是配置步骤的摘要。除了启用IGMP查询器外，没有太多L2组播配置。

- 步骤 1：配置组播服务器和客户端主机连接的交换矩阵访问策略

- 步骤 2：为组播接收方和源创建EPG、BD和VRF

- 步骤 3：将物理域连接到EPG并配置静态端口

- 步骤 4：配置IGMP查询器

本节介绍详细的配置步骤。

步骤 1：配置组播服务器和客户端主机连接的交换矩阵访问策略

图像显示了配置的高级方法。有关访问策略的其他详细信息，请参阅ACI初始部署文档。

如果访问策略已经到位，则可以跳过此步骤。

- 此图显示组播服务器端口交换矩阵策略。

- 此图显示组播接收器端口（客户端）交换矩阵策略。

步骤 2：为组播接收方和源创建EPG、BD和VRF

- EPG、BD和VRF使用默认参数创建。

默认情况下，BD使用在“常用”租户中预定义的默认IGMP监听策略。

默认情况下，IGMP查询器在BD子网下未启用，传统NXOS或基于Cisco IOS®的部署也是如此。

- 要检查默认IGMP监听策略，请选择“Common”租户>策略>协议> IGMP监听>默认，以查看默认IGMP策略未选中启用查询器框。

- 此图显示EPG、BD和VRF配置的摘要（逻辑视图）。

步骤 3：将物理域连接到EPG并配置静态端口

- 此图显示连接到EPG的物理域。

- 此图显示EPG下配置的静态端口。

- 此图显示组播服务器（源）终端和组播客户端（接收方）终端在同一EPG下均获知（连接）。

步骤 4：配置IGMP查询器

IGMP查询器必须启用两个位置，分别在各自的IGMP监听策略和BD子网下。

注意：由于启用查询器的IGMP监听策略需要源IP地址来发送IGMP查询，因此需要在BD子网下配置启用IGMP查询器IP。否则，枝叶交换机不会向组播接收方发送IGMP查询。

始终建议在启用IGMP查询器时配置新的IGMP监听策略，而不是使用默认IGMP监听策略。请注意，默认IGMP监听策略默认未启用IGMP查询器，并且默认与每个BD连接。对默认IGMP监听策略下的任何配置的更改会影响与默认IGMP监听策略连接的每个BD，因此不建议更改ACI中的默认IGMP监听策略参数。

- 要创建新的IGMP监听策略，请选择TN_D租户>策略>协议，然后右键单击IGMP监听，然后单击创建IGMP监听策略。

- 对于新的IGMP监听策略(“TN_D_IGMP_snooping_POL”)，选中“启用查询器”复选框，然后单击提交。
注意：仅当BD子网配置了查询器IP时，才需要“启用查询器”设置。如果IGMP查询器在ACI之外，则无需此配置。

- 要将新IGMP策略附加到BD，请选择TN_D > Networking > Bridge Domain > 'L2_Mcast_BD'，然后从IGMP监听策略下拉列表中选择新的IGMP监听策略。单击 Submit 以应用更改。

- 要为BD子网启用IGMP查询器，请选择子网并选中查询器IP复选框。

lf101# show ip igmp snooping querier

Vlan  IP Address       Version   Expires     Port

21    10.100.0.254     v3        00:01:06     Switch querier

lf102# show ip igmp snooping querier

Vlan  IP Address       Version   Expires     Port

19    10.100.0.254     v3        00:01:46     Switch querier

验证

使用本部分可确认配置能否正常运行。

此 MO query 命令显示IGMP查询器策略已启用查询器。

apic1# moquery -d uni/tn-TN_D/snPol-TN_D_IGMP_snooping_POL

Total Objects shown: 1

# igmp.SnoopPol

name             : TN_D_IGMP_snooping_POL

adminSt          : enabled

annotation       :

childAction      :

ctrl             : querier

descr            :

dn               : uni/tn-TN_D/snPol-TN_D_IGMP_snooping_POL

extMngdBy        :

lastMbrIntvl     : 1

lcOwn            : local

modTs            : 2022-01-26T19:32:18.660+00:00

nameAlias        :

ownerKey         :

ownerTag         :

queryIntvl       : 125

rn               : snPol-TN_D_IGMP_snooping_POL

rspIntvl         : 10

startQueryCnt    : 2

startQueryIntvl  : 31

status           :

uid              : 15374

此 MO query 命令显示IGMP查询器也在BD子网上启用。

apic1# moquery -c fvSubnet -f 'fv.Subnet.ip=="10.100.0.254/24"'

Total Objects shown: 1

# fv.Subnet

ip           : 10.100.0.254/24

annotation   :

childAction  :

ctrl         : querier                                                <<

descr :

dn : uni/tn-TN_D/BD-L2_Mcast_BD/subnet-[10.100.0.254/24] extMngdBy : lcOwn : local modTs : 2021-12-28T19:28:54.860+00:00 monPolDn : uni/tn-common/monepg-default name : nameAlias : preferred : no

rn : subnet-[10.100.0.254/24] scope : private status : uid : 15374 virtual : no

此 MO query 命令显示BD配置的验证。

apic1# moquery -c fvBD -f "fv.BD.name==\"L2_Mcast_BD\""

Total Objects shown: 1

# fv.BD

name                     : L2_Mcast_BD

OptimizeWanBandwidth     : no

annotation               :

arpFlood                 : yes

bcastP                   : 225.1.156.240

childAction              :

configIssues             :

descr                    :

dn                       : uni/tn-TN_D/BD-L2_Mcast_BD

epClear                  : no

epMoveDetectMode         :

extMngdBy                :

hostBasedRouting         : no

intersiteBumTrafficAllow : no

intersiteL2Stretch       : no

ipLearning               : yes

ipv6McastAllow           : no

lcOwn                    : local

limitIpLearnToSubnets    : yes

llAddr                   : ::

mac                      : 00:22:BD:F8:19:FF

mcastAllow               : no

modTs                    : 2021-12-25T23:47:57.717+00:00

monPolDn                 : uni/tn-common/monepg-default

mtu                      : inherit

multiDstPktAct           : bd-flood

nameAlias                :

ownerKey                 :

ownerTag                 :

pcTag                    : 49154

rn                       : BD-L2_Mcast_BD

scope                    : 2490368

seg                      : 16351140

status                   :

type                     : regular

uid                      : 15374

unicastRoute             : yes

unkMacUcastAct           : proxy

unkMcastAct              : flood

v6unkMcastAct            : flood

vmac                     : not-applicable

此输出显示了枝叶101已连接到组播源10.100.0.10的验证。

lf101# show endpoint ip 10.100.0.10 detail

Legend:

s - arp              H - vtep             V - vpc-attached     p - peer-aged

R - peer-attached-rl B - bounce           S - static           M - span

D - bounce-to-proxy  O - peer-attached    a - local-aged       m - svc-mgr

L - local            E - shared-service

+-----------------------------------+---------------+-----------------+--------------+-------------+------------------------------+

VLAN/                           Encap           MAC Address       MAC Info/       Interface     Endpoint Group

Domain                          VLAN            IP Address        IP Info                       Info

+-----------------------------------+---------------+-----------------+--------------+-------------+------------------------------+

20                                        vlan-1900    0011.0100.0001 L                     eth1/47 TN_D:Multicast_Servers:L2_Mcast_EPG

TN_D:VRF_A                                vlan-1900       10.100.0.10 L                     eth1/47

此输出显示了枝叶102已连接到组播接收器10.100.0.20的验证。

lf102# show endpoint ip 10.100.0.20 detail

Legend:

s - arp              H - vtep             V - vpc-attached     p - peer-aged

R - peer-attached-rl B - bounce           S - static           M - span

D - bounce-to-proxy  O - peer-attached    a - local-aged       m - svc-mgr

L - local            E - shared-service

+-----------------------------------+---------------+-----------------+--------------+-------------+------------------------------+

VLAN/                           Encap           MAC Address       MAC Info/       Interface     Endpoint Group

Domain                          VLAN            IP Address        IP Info                       Info

+-----------------------------------+---------------+-----------------+--------------+-------------+------------------------------+

17                                        vlan-1900    0011.0200.0001 L                     eth1/47 TN_D:Multicast_Servers:L2_Mcast_EPG

TN_D:VRF_A                                vlan-1900       10.100.0.20 L                     eth1/47

L2组播数据包流的说明

- 枝叶101从组播源接收组播数据包。

- 下图显示EPG pcTag:

- 您可以使用嵌入式逻辑分析器模块(ELAM)（一个内置的捕获工具）捕获传入的数据包。此输出显示枝叶101 ELAM捕获和输出。ELAM语法取决于硬件类型。在本实验中，ELAM输出来自FX交换机。另一种方法是使用ELAM Assistant应用程序。

lf101# vsh_lc

module-1# debug platform internal roc elam asic 0

module-1(DBG-elam)#  trigger reset

module-1(DBG-elam)#  trigger init in-select 6 out-select 0

module-1(DBG-elam-insel6)#  set outer ipv4 src_ip 10.100.0.10 dst_ip 239.100.0.10

module-1(DBG-elam-insel6)#  start

module-1(DBG-elam-insel6)#  status

ELAM STATUS

===========

Asic 0 Slice 0 Status Triggered

module-1(DBG-elam-insel6)#

module-1(DBG-elam-insel6)# ereport

Python available. Continue ELAM decode with LC Pkg

ELAM REPORT

<snip..>

======================================================================================================================================================

Captured Packet

======================================================================================================================================================

------------------------------------------------------------------------------------------------------------------------------------------------------

Outer Packet Attributes

------------------------------------------------------------------------------------------------------------------------------------------------------

Outer Packet Attributes       : l2mc ipv4 ip ipmc ipv4mc udp

Opcode                        : OPCODE_L3MC

------------------------------------------------------------------------------------------------------------------------------------------------------

Outer L2 Header

------------------------------------------------------------------------------------------------------------------------------------------------------

Destination MAC               : 0100.5E64.000A <<

802.1Q tag is valid : no( 0x0 ) CoS : 0( 0x0 ) Access Encap VLAN : 0( 0x0 ) ------------------------------------------------------------------------------------------------------------------------------------------------------ Outer L3 Header ------------------------------------------------------------------------------------------------------------------------------------------------------ L3 Type : IPv4 IP Version : 4 DSCP : 0 IP Packet Length : 1362 ( = IP header(28 bytes) + IP payload ) Don't Fragment Bit : not set TTL : 64 IP Protocol Number : UDP IP CheckSum : 31679( 0x7BBF )

Destination IP : 239.100.0.10 <<

<snip...> ------------------------------------------------------------------------------------------------------------------------------------------------------ Sideband SB Multicast Information ------------------------------------------------------------------------------------------------------------------------------------------------------ BD : 11266( 0x2C02 ) Source is l3 interface : no

FTAG : 4( 0x4 ) <<< FTAG value 4 assigned by lf101 <snip..>

- 枝叶101收到此流量后，将其封装到BD组IP外部(GIPO)地址和FTAG值，并发送到主干以进行主干查找。此图显示BD GIPO地址225.1.156.240。

FTAG ID根据负载散列算法（0到12）分配。 即使枝叶节点和目标BD GiPO相同，FTAG值也是不可预测的，且不相同。

225.1.156.140的二进制数= 11100001.00000001.10011100.1111000

目的GIPO最后一个八进制值的最后4位是'0000'，因此最后4位（介于0到12之间）会添加到FTAG值。

此输出显示GIPO路由和输出接口(OIF)列表。

lf101# show isis internal mcast routes gipo

IS-IS process: isis_infra

VRF : default

GIPo Routes

====================================

System GIPo - Configured: 0.0.0.0

Operational: 239.255.255.240

====================================

GIPo: 225.0.0.0 [LOCAL]

OIF List:

Ethernet1/49.14

GIPo: 225.0.73.208 [TRANSIT]

OIF List:

GIPo: 225.1.110.160 [LOCAL]

OIF List:

Ethernet1/49.14

GIPo: 225.1.149.64 [LOCAL]

OIF List:

Ethernet1/49.14

GIPo: 225.1.156.240 [LOCAL]

OIF List:

Ethernet1/49.14

GIPo: 225.1.179.176 [TRANSIT]

OIF List:

GIPo: 225.1.192.0 [TRANSIT]

OIF List:

GIPo: 239.255.255.224 [LOCAL]

OIF List:

Ethernet1/49.14

GIPo: 239.255.255.240 [LOCAL]

OIF List:

Ethernet1/49.14

此输出显示FTAG值和OIF列表。

lf101# show isis internal mcast routes ftag

IS-IS process: isis_infra

VRF : default

FTAG Routes

====================================

System ftag order: NEW

Phantom Spine Capable: NO

FTAG ID:   0  [Enabled] Cost:(   1/  13/   0)

----------------------------------

Root port: Ethernet1/49.14

OIF List:

FTAG ID:   1  [Enabled] Cost:(   1/   1/   0)

----------------------------------

Root port: Ethernet1/49.14

OIF List:

FTAG ID:   2  [Enabled] Cost:(   1/   2/   0)

----------------------------------

Root port: Ethernet1/49.14

OIF List:

FTAG ID:   3  [Enabled] Cost:(   1/   3/   0)

----------------------------------

Root port: Ethernet1/49.14

OIF List:

FTAG ID:   4  [Enabled] Cost:(   1/   4/   0)

----------------------------------

Root port: Ethernet1/49.14

OIF List:

FTAG ID:   5  [Enabled] Cost:(   1/   5/   0)

----------------------------------

Root port: Ethernet1/49.14

OIF List:

FTAG ID:   6  [Enabled] Cost:(   1/   6/   0)

----------------------------------

Root port: Ethernet1/49.14

OIF List:

FTAG ID:   7  [Enabled] Cost:(   1/   7/   0)

----------------------------------

Root port: Ethernet1/49.14

OIF List:

FTAG ID:   8  [Enabled] Cost:(   1/   8/   0)

----------------------------------

Root port: Ethernet1/49.14

OIF List:

FTAG ID:   9  [Enabled] Cost:(   1/   9/   0)

----------------------------------

Root port: Ethernet1/49.14

OIF List:

FTAG ID:  10  [Enabled] Cost:(   1/  10/   0)

----------------------------------

Root port: Ethernet1/49.14

OIF List:

FTAG ID:  11  [Enabled] Cost:(   1/  11/   0)

----------------------------------

Root port: Ethernet1/49.14

OIF List:

FTAG ID:  12  [Enabled] Cost:(   1/  12/   0)

----------------------------------

Root port: Ethernet1/49.14

OIF List:

FTAG ID:  13 [Disabled]

FTAG ID:  14 [Disabled]

FTAG ID:  15 [Disabled]

- 此图显示Spine-201 ELAM捕获和输出。

- 在这种情况下，此输出显示从枝叶101接收的数据包中添加到BD GIPO最后4位的FTAG值4。

Spine201# vsh_lc                                        <<< (OR "ssh root@lcX" if spine is modular). (Please engage TAC for spine ELAM)

module-1# debug platform internal roc elam asic 0

module-1(DBG-elam)# trigger reset

module-1(DBG-elam)# trigger init in-select 14 out-select 0

module-1(DBG-elam-insel6)# set inner ipv4 src_ip 10.100.0.10 dst_ip 239.100.0.10

module-1(DBG-elam-insel6)# start

module-1(DBG-elam-insel6)# status

module-1(DBG-elam-insel6)# ereport

------------------------------------------------------------------------------------------------------------------------------------------------------

Inner L2 Header

------------------------------------------------------------------------------------------------------------------------------------------------------

Inner Destination MAC         : 0100.5E64.000A

Source MAC                    : 0011.0100.0001

802.1Q tag is valid           : no

CoS                           : 0

Access Encap VLAN             : 0

------------------------------------------------------------------------------------------------------------------------------------------------------

Outer L3 Header

------------------------------------------------------------------------------------------------------------------------------------------------------

L3 Type                       : IPv4

DSCP                          : 0

Don't Fragment Bit            : 0x0

TTL                           : 32

IP Protocol Number            : UDP

Destination IP                : 225.1.156.244           <<<< BD GIPO + FTAG 4 (binary 11100001.00000001.10011100.11110100)

Source IP                     : 10.1.160.64             <<<< Leaf 101 infra TEP address

------------------------------------------------------------------------------------------------------------------------------------------------------

Inner L3 Header

------------------------------------------------------------------------------------------------------------------------------------------------------

L3 Type                       : IPv4

DSCP                          : 0

Don't Fragment Bit            : 0x0

TTL                           : 64

IP Protocol Number            : UDP

Destination IP                : 239.100.0.10

Source IP                     : 10.100.0.10

<snip...>

------------------------------------------------------------------------------------------------------------------------------------------------------

Sideband SB Multicast Information

------------------------------------------------------------------------------------------------------------------------------------------------------

BD                                      : 3( 0x3 )

Source is l3 interface                  : no

FTAG                                    : 4( 0x4 )

<snip...>

- 然后，Spine-201会查看其自己的GIPO路由和FTAG值，以查找转发数据包的OIF列表。

- 使用此命令查找BD GIPO的OIF列表。

sp201# show isis internal mcast routes gipo

IS-IS process: isis_infra

VRF : default

GIPo Routes

====================================

System GIPo - Configured: 0.0.0.0

Operational: 239.255.255.240

====================================

GIPo: 225.0.0.0 [TRANSIT]

OIF List:

Ethernet1/2.35

Ethernet1/1.36

GIPo: 225.0.0.16 [TRANSIT]

OIF List:

<snip..>

GIPo: 225.1.156.240 [TRANSIT]

OIF List:

Ethernet1/2.35

Ethernet1/1.36

<snip...>

sp201# show isis internal mcast routes ftag

IS-IS process: isis_infra

VRF : default

FTAG Routes

====================================

System ftag order: NEW

System ftag preference: 2

Max Fabric System ftag preference: 2

Phantom Spine Capable: NO

FTAG ID:   0 [Root] [Enabled] Cost:(   0/   0/   0)

----------------------------------

Root port: -

OIF List:

Ethernet1/2.35

Ethernet1/1.36

FTAG ID:   1 [Root] [Enabled] Cost:(   0/   0/   0)

----------------------------------

Root port: -

OIF List:

Ethernet1/2.35

Ethernet1/1.36

FTAG ID:   2 [Root] [Enabled] Cost:(   0/   0/   0)

----------------------------------

Root port: -

OIF List:

Ethernet1/2.35

Ethernet1/1.36

FTAG ID:   3 [Root] [Enabled] Cost:(   0/   0/   0)

----------------------------------

Root port: -

OIF List:

Ethernet1/2.35

Ethernet1/1.36

FTAG ID:   4 [Root] [Enabled] Cost:(   0/   0/   0)

----------------------------------

Root port: -

OIF List:

Ethernet1/2.35              <<

<snip...> sp201#

show lldp neighbors Capability codes: (R) Router, (B) Bridge, (T) Telephone, (C) DOCSIS Cable Device (W) WLAN Access Point, (P) Repeater, (S) Station, (O) Other Device ID Local Intf Hold-time Capability Port ID lf101 Eth1/1 120 BR Eth1/49 <<< Spine received packet from Leaf 101

lf102 Eth1/2 120 BR Eth1/49 <<< forward packet to Leaf 102 (and not back to Leaf 101) Total entries displayed: 2

- 枝叶102接收数据包并查找snoop表条目，然后将数据包转发到组播接收器。

- 此命令显示ELAM capture命令输出，以验证组播数据包是否从主干接收。

lf102# vsh_lc

module-1# debug platform internal roc elam asic 0

module-1(DBG-elam)# trigger reset

module-1(DBG-elam)# trigger init in-select 14 out-select 0

module-1(DBG-elam-insel14)#   set inner ipv4 src_ip 10.100.0.10 dst_ip 239.100.0.10

module-1(DBG-elam-insel14)#       start

module-1(DBG-elam-insel14)#       status

ELAM STATUS

===========

Asic 0 Slice 0 Status Triggered

module-1(DBG-elam-insel14)# ereport

------------------------------------------------------------------------------------------------------------------------------------------------------

Outer L3 Header

------------------------------------------------------------------------------------------------------------------------------------------------------

L3 Type                       : IPv4

DSCP                          : 0

Don't Fragment Bit            : 0x0

TTL                           : 31

IP Protocol Number            : UDP

Destination IP                : 225.1.156.244

Source IP                     : 10.1.160.64

------------------------------------------------------------------------------------------------------------------------------------------------------

Inner L3 Header

------------------------------------------------------------------------------------------------------------------------------------------------------

L3 Type                       : IPv4

DSCP                          : 0

Don't Fragment Bit            : 0x0

TTL                           : 64

IP Protocol Number            : UDP

Destination IP                : 239.100.0.10

Source IP                     : 10.100.0.10

------------------------------------------------------------------------------------------------------------------------------------------------------

- 枝叶102查看IGMP监听条目，将数据包转发到组播接收器。

lf102# show ip igmp snooping group

Type: S - Static, D - Dynamic, R - Router port, F - Fabricpath core port

Vlan  Group Address      Ver  Type  Port list

16    239.100.0.10       v2   D     Eth1/47

IGMP查询器要求

IGMP查询器要求包括：

- IGMP监听要求IGMP查询器进行正确操作，以避免组静默丢弃。

- 协议独立组播(PIM)路由器仍可充当查询器来发送IGMP查询。

- 在BD中完全没有PIM路由器的纯L2组播情况下，我们可以启用IGMP查询器功能来发送查询，而不运行PIM。

故障排除

本部分提供的信息可用于对配置进行故障排除。

使用以下命令排除L2 IGMP问题：

- show endpoints IP

detail

- show ip igmp snoop groups vlan x

- show ip igmp snoop groups vlan x detail

- show ip igmp snooping mrouter

- moquery -c fmcast.Grp

相关信息

- 组播思科实时会话(DGTL-BRKACI-2608)

- 技术支持和文档 - Cisco Systems