本檔案介紹如何在思科以應用程式為中心的基礎架構(ACI)上設定交換連線埠分析器(SPAN)。
一般來說,有三種型別的SPAN。本地SPAN、遠端SPAN(RSPAN)和封裝遠端SPAN(ERSPAN)。 這些SPAN之間的差異主要是複製封包的目的地。Cisco ACI支援本地SPAN和ERSPAN。
附註:本檔案假設讀者已大致熟悉SPAN,例如本地SPAN和ERSPAN差異。

Cisco ACI有三種型別的SPANFabric SPAN;Tenant SPAN和Access SPAN。每個SPAN之間的差異是複製封包的來源。
如前所述,
此SPAN名稱對應於Cisco ACI GUI上的設定位置。
對於每個SPAN的目標,只有存取SPAN能夠同時使用本地SPAN和ERSPAN。其他兩個SPAN(光纖和租戶)僅支援ERSPAN。
請參閱思科APIC故障排除指南中的限制和指南。疑難排解工具與方法>使用SPAN中會提到該功能。
本節介紹與每個SPAN型別的設定相關的簡短範例。在後面的部分中,有有關如何選擇span型別的特定示例案例。
思科APIC故障排除指南中還介紹了SPAN配置:疑難排解工具和方法>使用SPAN。
UI可能與當前版本不同,但配置方法相同。


其中:
導覽至FABRIC > ACCESS POLICIES > Troubleshoot Policies > SPAN。
SPAN Source Group 領帶Destination和Sources。
方式:
註:請參閱圖片瞭解每個引數的詳細資訊。
附註:請參考圖片瞭解每個引數的詳細資訊。
附註:當您在此管理狀態上選擇Disabled時,SPAN停止。如果以後重複使用所有策略,則無需將其刪除。
另請確保將ERSPAN的目標IP獲知為指定目標EPG下的終結點。在上述示例中,必須在租戶TK >應用配置檔案SPAN_APP > EPG SPAN下獲取192.168.254.1。或者,如果目標裝置是靜默主機,則可以在此EPG下將目標IP配置為靜態終端。


Fabric > ACCESS POLICIES > Troubleshoot Policies > SPAN
- SPAN Source Groups
- SPAN Destination Groups
SPAN Source Group 領帶Destination 和 Sources.
確保Admin State已啟用。
※選擇Disabled on this Admin State時,SPAN停止。如果以後重複使用所有策略,則無需將其刪除。
目標介面不需要通過介面策略組進行任何配置。將電纜插入ACI枝葉上的介面時,它可正常工作。
限制:
您可以對存取span來源使用ACL過濾器。此功能提供將SPAN特定流量或流量傳入/傳出SPAN來源的功能。
當需要SPAN流量特定流量時,使用者可以將該SPAN Acl套用至來源。
交換矩陣SPAN和租戶SPAN來源群組/來源不支援此功能。
在篩選器組中新增篩選器條目時必須小心,因為它可以為當前使用篩選器組的每個源新增tcam條目。
篩選器組可以關聯到:
-Span來源:過濾器組用於過濾在此Span來源下定義的所有介面上的流量。
-Span來源群組:過濾器組(如x)用於過濾在此Span來源組的每個Span來源下定義的所有介面上的流量。
在此配置快照中,過濾器組應用於Span源組。

當特定Span來源已經與篩選群組建立關聯時(例如y),會使用該篩選群組(y)來篩選此特定Span來源下所有介面上的群組
— 應用於源組的篩選器組將自動應用於該源組中的所有源。
— 在源應用的過濾器組僅適用於該源。
— 過濾器組同時應用於源組以及該源組中的源,則應用於源的過濾器組優先。
— 刪除應用於源的篩選器組,將自動應用應用於父源組的篩選器組。
— 刪除應用於源組的篩選器組,並將其從當前繼承到該源組的所有源中刪除。


租戶> {tenant name} >故障排除策略> SPAN
- SPAN來源群組
- SPAN目的地群組
※ SPAN來源群組連結Destination和 Sources.


交換矩陣>交換矩陣策略>故障排除策略> SPAN
— 交換矩陣
- SPAN目的地群組
雖然稍後的ERSPAN版本(類型)一節會對此進行說明,但您可以得知ERSPAN版本II用於交換矩陣SPAN,而版本I用於租戶和存取SPAN。

請確保運行狀態為開啟。
請確保運行狀態為開啟。
SPAN作業階段命名慣例:
— 交換矩陣SPAN:fabric_xxxx
— 存取SPAN:infra_xxxx
— 租戶SPAN:tn_xxxx

本節詳細介紹每個ACI SPAN型別(Access、Tenant、Fabric)的場景。上一節中介紹了每個場景的基本拓撲。
如果您瞭解這些情況,則可以根據您的要求選擇適當的ACI SPAN型別,例如必須捕獲僅特定介面上的資料包或特定EPG上的所有資料包(無論必須捕獲哪些介面),等等。
在Cisco ACI中,SPAN設定了來源群組和目的地群組。源組包含多個源因素,例如介面或EPG。目的地組包含目的地資訊,例如本地SPAN的目的地介面或ESPAN的目標IP。
擷取封包後,請參閱「如何讀取SPAN資料」一節以解碼擷取封包。
附註:請關注在每個拓撲中以綠色指示燈突出顯示的VM。每種場景都是從這些突出顯示的虛擬機器捕獲資料包。
Src "Leaf1 e1/11 e1/34和Leaf2 e1/11" | Dst "192.168.254.1"

存取SPAN可以為一個SPAN作業階段指定多個介面。它可以捕獲所有從指定介面傳入或傳出的資料包,而不管其EPG如何。
將多個介面指定為來自多個枝葉交換機的源組時,目標組必須是ERSPAN,而不是本地SPAN。
在本示例中,它從EPG1和EPG2上的所有VM複製資料包。
CLI檢查點
Src "Leaf1 e1/11和Leaf2 e1/11" | Dst "192.168.254.1"

在本範例中,Leaf1 e1/34從先前案例1設定的SPAN來源群組移除。
此範例中的關鍵點在於,Access SPAN可以指定來源介面,而無論EPG如何。
CLI檢查點:
Src "Leaf1 e1/11和Leaf2 e1/11和EPG1過濾器" | Dst "192.168.254.1"

此範例顯示,存取SPAN也可以在來源連線埠上指定特定的EPG。當多個EPG在單個介面上流動並且僅需要捕獲該介面上EPG1的流量時,這非常有用。
由於EPG1未部署在Leaf2上,因此Leaf2的SPAN發生故障,故障為F1553和F1561。但是,Leaf1上的SPAN仍然有效。
此外,系統會自動為枝葉1上的SPAN作業階段新增兩個VLAN篩選條件,因為EPG1在枝葉1上使用兩個VLAN(VLAN-751、752)。
請注意,CLI上的VLAN ID(35、39)是內部VLAN,即所謂的PI-VLAN(平台獨立VLAN),它不是線路上的實際ID。如圖所示,show vlan extended命令會顯示實際封裝VLAN ID和PI-VLAN的對映。
即使EPG2(VLAN-753)在同一介面上傳輸,此SPAN作業階段也允許我們僅擷取枝葉1 e1/11上EPG1(VLAN-752)的封包。
CLI檢查點:
Src "Leaf1-Leaf2 vPC" | Dst "192.168.254.1"

將vPC介面設定為來源時,目的地必須是遠端IP(ERSPAN),而不是介面(本地SPAN)
Src "Leaf1 e1/11 e1/34" | Dst "Leaf1 e1/33"

存取SPAN也可以使用本地SPAN(即特定介面作為目的地)
但是,在這種情況下,源介面必須與目標介面位於同一枝葉上。
Src "Leaf1 e1/11 e1/34和EPG1過濾器 | Dst " Leaf1 e1/33"

使用本地SPAN的存取SPAN也可以使用EPG過濾器和ERSPAN。
Src "Leaf1 e1/11和Leaf2 e/11" | Dst "Leaf1 e1/33"(錯誤案例)

Src "Leaf1 e1/11和EPG3過濾器" | Dst "Leaf1 e1/33"(錯誤案例)

這與存取SPAN(ERSPAN)上的案例3類似,但在本範例中,由於EPG3不存在於Leaf1上,Leaf1上唯一的一個SPAN作業階段失敗。因此,SPAN完全無法使用。
Src "EPG1過濾器" | Dst "Leaf1 e1/33"(錯誤案例)

只有設定了來源連線埠時,存取SPAN上的EPG過濾器才能使用。如果EPG是唯一要指定的源,則必須使用租戶SPAN而不是訪問SPAN。
Src "Leaf1 - Leaf2 vPC" | Dst "Leaf1 e1/33"(錯誤案例)

不能將vPC介面設定為具有本地SPAN的來源。請使用ERSPAN。有關存取SPAN(ERSPAN)的資訊,請參閱案例4。
源「Leaf1 e1/11 | Dst "Leaf1 e1/33和e1/33屬於EPG"(工作有故障)

如果SPAN的目標I/F已屬於EPG,則出現故障「F1696 :連線埠的EPG和span目的地''組態無效,但在實體I/F下產生。
但即使發生此故障,SPAN也能順利運作。此故障只是SPAN導致額外流量的警告,因為它可能會影響同一I/F上客戶的正常EPG流量。
源「EPG1」 | Dst "192.168.254.1"

租戶SPAN使用EPG本身作為來源,而存取SPAN僅使用EPG作為過濾器。
租戶SPAN的關鍵點是,您不必指定每個單獨的埠,並且ACI會自動檢測每台枝葉交換機上的適當VLAN。因此,當必須監控特定EPG的所有資料包且該EPG的端點屬於枝葉交換機上的多個介面時,這將非常有用。
Src "Leaf1 e1/49-50" | Dst "192.168.254.1"

交換矩陣SPAN將交換矩陣埠指定為源,其中交換矩陣埠是枝葉和主幹交換機之間的介面。
當需要在枝葉交換機和主幹交換機之間複製資料包時,此SPAN非常有用。但是,枝葉交換機和主幹交換機之間的資料包使用iVxLAN報頭進行封裝。所以需要一些技巧來讀它。請參閱「如何讀取SPAN資料」。
附註:iVxLAN報頭是僅用於ACI交換矩陣內部使用的增強型VxLAN報頭。
Src "Leaf1 e1/49-50和VRF過濾器" | Dst "192.168.254.1"

交換矩陣SPAN可以使用篩選器和存取SPAN。但過濾器型別不同。交換矩陣SPAN使用虛擬路由和轉送(VRF)或BD作為過濾器。
如前所述,在思科ACI中,通過交換矩陣埠的資料包將封裝為iVxLAN報頭。此iVxLAN標頭將VRF或BD資訊作為虛擬網路識別符號(VNID)。 當資料包作為第2層(L2)轉發時,iVxLAN VNID代表BD。當資料包作為第3層(L3)轉發時,iVxLAN VNID代表VRF。
因此,當需要捕獲交換矩陣埠上的路由流量時,請使用VRF作為過濾器。
Src "Leaf1 e1/49-50 & BD過濾器" | Dst "192.168.254.1"

如前面的案例2所述,交換矩陣SPAN可以使用BD作為過濾器。
當需要捕獲交換矩陣埠上的橋接流量時,請使用BD作為過濾器。
附註:一次只能配置BD或VRF的單個過濾器。
影片連結:
只有這些平台支援SPAN到CPU。此清單不是靜態的,可以隨時間而更改。
SPAN統計支援
沒有CLI來檢查監察器速率,它使用500 Kbps進行硬編碼。
請檢查版本特定的版本資訊,例如思科APIC基本配置指南6.2(x)版。
與設定本地SPAN一樣,您可以設定:
sup-eth0的目標組與典型的本地SPAN目的地相比,唯一的區別是選擇sup-eth0作為目的地介面。
按一下Fabric > Access Policies > Troubleshooting > SPAN > SPAN Destination Groups。

包含來源、目的地和篩選資訊的SPAN設定:


與任何SPAN設定一樣,您可以使用交換器CLI驗證作業階段:
leaf103# show monitor session all
session 5
---------------
name : spansource_vpc_component
description : Span session 5
type : sup
scale-mode : filter
state : up (active)
mode : access
Filter Group : 4
source intf :
rx : [Po3, FG:4]
tx : [Po3, FG:4]
both : [Po3, FG:4]
source VLANs :
rx :
tx :
both :
filter VLANs : filter not specified
filter L3Outs : filter not specified
destination ports : sup-eth0
tx :
both :
filter VLANs : filter not specified
filter L3Outs : filter not specified
destination ports : sup-eth0
驗證枝葉交換機上已程式設計的過濾器條目:
leaf103# show monitor filter 4 ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________ Filter name (id): interandintraepg (4) Filter Entries: Src IP Dst IP Src port Dst port Proto dscp dot1p Routeable tcpflags ------ ------ -------- -------- ----- ---- ----- ---------- --------- 10.1.121.0/24 10.1.130.0/24 - - - - - both 10.1.121.0/24 10.1.121.0/24 - - - - - both 10.1.130.0/24 10.1.121.0/24 - - - - - both ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________
每個會話的映象資料包計數器顯示流量是否匹配和正在被映象。僅限HX平台交換機。
aci-HX-leaf# vsh_lc
module-1# show platform internal hal span session all stats
SPAN hardware session id:30 asic:0 slice:0 packet counts:2557
SPAN hardware session id:31 asic:0 slice:0 packet counts:510634359
配置後,所有匹配的流量(示例:通過eth1/4的子網之間的ICMP是SPAN到CPU。
可以使用內建指令碼對其進行解碼和過濾:
捕獲示例來自與「配置」部分中所示不同的設定
pod16-leaf3# tcpdump -xxxvi tahoe0 | python3 isan/utils/span_to_cpu_parser.py --decoder tahoe --verbose --payload
tcpdump: listening on tahoe0, link-type EN10MB (Ethernet), capture size 262144 bytes
Frame 9
Time: 1970-01-01T19:01:53.944622+00:00
ieth-extn:
sup_code=0x2b sup_qnum=0x6
icmp-request(8): id:0x7710, seq:0xf00
Payload:
Internal Header:
0x0000: 0101 0101 0101 0000 0000 0000 a00e 0000 ................
0x0010: 0404 0404 8889 0000 0000 ae00 0000 0006 ................
0x0020: 2b00 0000 fb00 0000 003f ffff ffc0 0000 +........?......
0x0030: 1000 0000 ....
Frame Data:
0x0000: 0022 bdf8 19ff acf2 c5f8 2e01 8100 0a6d .".............m
0x0010: 0800 4500 0054 ff89 0000 ff01 aec9 c0a8 ..E..T..........
0x0020: 7802 c0a8 1402 0800 a049 7710 0f00 114e x........Iw....N
0x0030: 5d69 7f67 0e00 cdab 0000 cdab 0000 cdab ]i.g............
0x0040: 0000 cdab 0000 cdab 0000 cdab 0000 cdab ................
0x0050: 0000 cdab 0000 cdab 0000 cdab ............
可以使用 — write選項將已解碼的輸出儲存到pcap文件:
pod16-leaf3# tcpdump -xxxvi tahoe0 | python3 /isan/utils/span_to_cpu_parser.py --decoder tahoe --write /data/techsupport/mualshei-SPAN-CPU.pcap
tcpdump: listening on tahoe0, link-type EN10MB (Ethernet), capture size 262144 bytes
^C
Bye!
659 packets captured
662 packets received by filter
0 packets dropped by kernel
然後讀回來:
pod16-leaf3# tcpdump -r /data/techsupport/mualshei-SPAN-CPU.pcap
reading from file /data/techsupport/mualshei-SPAN-CPU.pcap, link-type EN10MB (Ethernet)
20:07:43.966489 IP truncated-ip - 10 bytes missing! 192.168.120.2 > 192.168.20.2: ICMP echo request, id 30480, seq 27905, length 64
20:07:43.966901 IP truncated-ip - 10 bytes missing! 192.168.20.2 > 192.168.120.2: ICMP echo reply, id 30480, seq 27905, length 64
20:07:44.966505 IP truncated-ip - 10 bytes missing! 192.168.120.2 > 192.168.20.2: ICMP echo request, id 30480, seq 28161, length 64
20:07:44.966843 IP truncated-ip - 10 bytes missing! 192.168.20.2 > 192.168.120.2: ICMP echo reply, id 30480, seq 28161, length 64
只需在其上運行資料包捕獲應用程式(如tcpdump, wireshark)。設定ERSPAN目的地作業階段或其他任何方式都不是必需的。
請確保使用目的地IP對ERSPAN執行擷取工具,因為SPAN封包會被轉送到目的地IP。
收到的資料包將封裝為GRE報頭。請參閱有關如何解碼ERSPAN GRE標頭的「如何讀取ERSPAN資料」一節。
請確保在連線到ACI枝葉上的SPAN目標介面的介面上運行捕獲工具。
在此介面中接收原始資料包。不需要處理ERSPAN標頭。
ERSPAN封裝複製的資料包,將其轉送到遠端目的地。GRE用於此封裝。GRE標頭上ERSPAN的通訊協定型別為0x88be。
在Internet Engineering Task Force(IETF)文檔中,ERSPAN版本被描述為type而不是version。
有三種型別的ERSPAN。一、二和三。此RFC草案中提到了ERSPAN型別。此外,此GRE RFC1701也有助於瞭解每個ERSPAN型別。
以下是每種型別的資料包格式:

型別I不使用GRE報頭上的序列欄位。它甚至不使用ERSPAN標頭(如果是ERSPAN型別II和III,則ERSPAN標頭必須接替GRE標頭)。Broadcom Trident 2僅支援此ERSPAN型別I。

如果序列欄位是由S位啟用,則此欄位必須是ERSPAN型別II或III。ERSPAN標頭上的版本欄位會識別ERSPAN型別。在ACI中,自2016年3月20日起,不支援型別III。
如果存取或租戶SPAN的SPAN來源組在第1代和第2代節點上均有來源,ERSPAN目的地會收到來自每代節點的ERSPAN型別I和II封包。但是,Wireshark一次只能解碼其中一個ERSPAN型別。預設情況下,只會對ERSPAN型別II進行解碼。如果啟用ERSPAN Type I的解碼,Wireshark不會解碼ERSPAN Type II。請參閱後面有關如何在Wireshark上解碼ERSPAN Type I的部分。
若要避免此類問題,您可以在SPAN目的地群組上設定ERSPAN型別。

預設情況下,SPAN版本為版本2,且強制執行SPAN版本未勾選。這表示如果來源節點是支援ERSPAN型別II的第二代或更新版本,它就會產生具有型別II的ERSPAN。如果來源節點是不支援ERSPAN型別II的第1代(交換矩陣SPAN除外),則它會回復到型別I,因為未勾選「強制執行SPAN版本」。因此,ERSPAN目的地收到混合型別的ERSPAN。
下表說明存取和租戶SPAN的每種組合。
| SPAN版本 |
強制執行SPAN版本 |
第1代源節點 |
第二代源節點 |
| 版本2 |
未選中 |
使用型別I |
使用II類 |
| 版本2 |
已檢查 |
失敗 |
使用II類 |
| 版本1 |
未選中 |
使用型別I |
使用型別I |
| 版本1 |
已檢查 |
使用型別I |
使用型別I |

封包將由ERSPAN型別I封裝,因此需進行解碼。這可以通過Wireshark完成。請參閱「如何解碼ERSPAN型別1」部分。


Wireshark自動對ERSPAN II類進行解碼。但是,它仍會以iVxLAN標頭封裝。
預設情況下,Wireshark不理解iVxLAN報頭,因為它是ACI內部報頭。請參閱如何解碼iVxLAN標頭。

選項1。導覽至Edit > Preference > Protocols > ERSPAN,然後選中FORCE以解碼虛假ERSPAN幀。

user1@linux# tshark -f 'proto GRE' -nV -i eth0 -o erspan.fake_erspan:true
附註:請確保在閱讀ERSPAN型別II或III時禁用此選項。
選項2:導航至 Decode As > Network > ICMP (if it’s ICMP).


iVxLAN標頭使用目的地連線埠48879。因此,如果您在Wireshark上將UDP目的地連線埠設定為VxLAN,則可以對iVxLAN標48879以及VxLAN進行解碼。
附註:交換矩陣埠上的APIC之間存在通訊資料包。這些資料包不會以iVxLAN報頭封裝。
在執行Precision Time Protocol(PTP)的使用者網路上進行erspan擷取時,有時會看到Wireshark由於GRE封裝中的未知ethertype(0x8988)而無法解釋資料。0x8988是啟用PTP時插入到資料平面封包中的時間標籤的ethertype。將ethertype 0x8988解碼為「Cisco ttag」,以顯示資料包的詳細資訊。

| 修訂 | 發佈日期 | 意見 |
|---|---|---|
3.0 |
07-Oct-2026
|
重新格式化 |
2.0 |
06-Aug-2024
|
已重新命名為包含行動號單詞Removed 'follow'Updated MDF標籤 |
1.0 |
01-Feb-2023
|
初始版本 |