目錄

簡介

必要條件

需求

採用元件

背景資訊

設定

網路拓撲

組態

第1步：為組播伺服器和客戶端主機連線配置交換矩陣訪問策略

第2步：為組播接收器和源建立EPG、BD和VRF

步驟3:將物理域連線到EPG並配置靜態埠

第4步：配置IGMP查詢器

驗證

第2層組播資料包流說明

IGMP查詢器要求

疑難排解

相關資訊

簡介

本文說明如何配置和驗證單一以應用為中心的基礎設施(ACI)交換矩陣上同一終端組(EPG)中的第2層(L2)組播。

必要條件

需求

思科建議您瞭解以下主題：

- 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內轉發。如果您有多個EPG使用相同的BD，則無論各EPG之間簽訂了什麼合約，組播流量都會在所有EPG中泛洪。

思科ACI在枝葉和主幹交換機之間構建的重疊組播樹上轉發組播幀。第2層流量使用轉發標籤(FTAG)樹在多條冗餘成本相同的鏈路上提供高效的負載均衡。有關FTAG樹的詳細資訊，請參閱ACI基礎文檔。

注意:建議您不要在BD上禁用IGMP監聽。如果您禁用IGMP監聽，則可能會看到組播效能降低，因為BD內發生了過多虛假泛洪。

設定

網路拓撲

組態

以下是組態步驟的摘要。除了啟用IGMP查詢器外，L2組播沒有太多配置。

- 第1步：為組播伺服器和客戶端主機連線配置交換矩陣訪問策略

- 第2步：為組播接收器和源建立EPG、BD和VRF

- 步驟3:將物理域連線到EPG並配置靜態埠

- 第4步：配置IGMP查詢器

本節介紹詳細的配置步驟。

第1步：為組播伺服器和客戶端主機連線配置交換矩陣訪問策略

圖中顯示配置的高層次方法。ACI Initial Deployment文檔中提供了有關訪問策略的其他詳細資訊。

如果訪問策略已經到位，則可以跳過此步驟。

- 此圖顯示組播伺服器埠交換矩陣策略。

- 此圖顯示組播接收器埠（客戶端）交換矩陣策略。

第2步：為組播接收器和源建立EPG、BD和VRF

- 使用預設引數建立EPG、BD和VRF。

預設情況下，BD使用在「通用」租戶中預定義的預設IGMP監聽策略。

預設情況下，BD子網下未啟用IGMP查詢器，這也適用於基於傳統NXOS或Cisco IOS®的部署。

- 要檢查預設的IGMP監聽策略，請選擇「Common」（公共）租戶> Policies（策略）> Protocol（協定）> IGMP Snoop（IGMP監聽）> default，以檢視預設的IGMP策略沒有選中Enable querier框。

- 此圖顯示EPG、BD和VRF配置的摘要（邏輯檢視）。

步驟3:將物理域連線到EPG並配置靜態埠

- 此圖顯示連線到EPG的物理域。

- 此圖顯示EPG下已配置的靜態埠。

- 此圖顯示，多點傳送伺服器（來源）端點和多點傳送使用者端（接收器）端點都在同一EPG下得知（連線）。

第4步：配置IGMP查詢器

必須在各自的IGMP監聽策略和BD子網下啟用兩位IGMP查詢器。

附註：由於啟用了Enable querier的IGMP監聽策略需要源IP地址來傳送IGMP查詢，因此需要在BD子網下配置啟用IGMP Querier IP。否則，枝葉交換機不會將IGMP查詢傳送到組播接收器。

始終建議在啟用IGMP查詢器的情況下配置新的IGMP監聽策略，而不是使用預設的IGMP監聽策略。請注意，預設的IGMP監聽策略預設情況下未啟用IGMP查詢器，並且預設與每個BD關聯。更改預設IGMP監聽策略下的任何配置會影響與預設IGMP監聽策略連線的每個BD，因此建議不要更改ACI中的預設IGMP監聽策略引數。

- 要建立新的IGMP監聽策略，請選擇TN_D Tenant > Policies > Protocols，然後按一下右鍵IGMP Snoop，然後按一下Create IGMP Snoop Policy。

- 對於新的IGMP監聽策略('TN_D_IGMP_snooping_POL')，請選中Enable querier覈取方塊，然後按一下Submit。
附註：只有在BD子網配置了Querier IP時，才需要Enable querier設定。如果IGMP查詢器在ACI之外，則不需要此配置。

- 若要將新的IGMP策略連線到BD，請選擇TN_D > Networking > Bridge Domain > 'L2_Mcast_BD'，然後從IGMP Snoop Policy下拉選單中選擇新的IGMP監聽策略。按一下「Submit」以應用變更。

- 要為BD子網啟用IGMP查詢器，請選擇該子網並選中Querier 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 命令顯示BD子網上也啟用了IGMP查詢器。

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

此輸出顯示leaf-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

此輸出顯示leaf-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

第2層組播資料包流說明

- 枝葉101從組播源接收組播資料包。

- 此圖顯示EPG pcTag:

- 您可以使用內建的擷取工具Embedded Logic Analyzer Module(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）分配的。 FTAG值是不可預測的，並且即使枝葉節點和目標BD GiPO相同，該值也不相同。

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接收的包中新增到後4位BD GIPO的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...>

- 然後，骨幹–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接收資料包並查詢監聽表條目，然後將資料包轉發給組播接收器。

- 此命令顯示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

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

- Leaf-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