本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文說明如何在SD-Access(SDA)交換矩陣中的第2層專用網路中排除有線終端的DHCP故障。
思科建議您瞭解以下主題:
硬體和軟體要求
限制
只有一個L2邊界可以同時切換唯一的VLAN/VNI,除非正確配置了強大的環路防止機制(如用於禁用鏈路的FlexLink+或EEM指令碼)。
在典型的SD-Access部署中,L2/L3邊界位於交換矩陣邊緣(FE),其中FE以SVI的形式承載客戶端網關,通常稱為「任播網關」。第3層VNI(路由)針對子網間流量建立,而第2層VNI(交換)管理子網內流量。跨所有FE的一致配置可實現無縫客戶端漫遊。轉發已最佳化:子網內(L2)流量直接橋接在FE之間,而子網間(L3)流量則在FE之間或FE與邊界節點之間路由。
對於SDA交換矩陣中需要交換矩陣外部的嚴格網路入口點的終端,SDA交換矩陣必須提供從邊緣到外部網關的L2通道。
此概念類似於傳統的乙太網園區部署,其中第2層接入網路連線到第3層路由器。VLAN內流量保留在L2網路中,而VLAN間流量由L3裝置路由,通常會返回到L2網路上的不同VLAN。
在LISP上下文中,站點控制平面主要跟蹤MAC地址及其相應的MAC到IP繫結,非常類似於傳統的ARP條目。僅L2 VNI/L2池專門用於促進基於這兩種EID型別的註冊、解析和轉發。因此,在僅使用L2的環境中,任何基於LISP的轉發僅依賴於MAC和MAC到IP資訊,它完全忽略IPv4或IPv6 EID。為了補充LISP EID,僅第2層池嚴重依賴泛洪和學習機制,與傳統交換機的行為類似。因此,L2泛洪成為此解決方案中處理廣播、未知單播和多播(BUM)流量的關鍵元件,需要使用底層多播。相反,通常的單點傳播流量使用標準LISP轉發流程轉發,主要通過對映快取轉發。
交換矩陣邊緣和「L2邊界」(L2B)都維護對映到本地VLAN的第2層VNI(此對映在SDA內對本地裝置有效,允許不同的VLAN跨節點對映到相同的L2 VNI)。 在此特定使用案例中,在這些節點的這些VLAN上未配置SVI,這意味著沒有對應的第3層VNI。
在任播網關池中,DHCP帶來了挑戰,因為每個交換矩陣邊緣都充當其直連端點的網關,所有FE上使用相同的網關IP。要正確識別DHCP中繼資料包的原始源,FE必須插入DHCP選項82及其子選項,包括LISP RLOC資訊。這是通過在交換矩陣邊緣的客戶端VLAN上執行DHCP監聽實現的。DHCP監聽在此環境中具有雙重作用:它方便了選項82的插入,而且關鍵的是,防止了DHCP廣播資料包通過橋接域(VLAN/VNI)泛洪。 即使為任播網關啟用第2層泛洪,DHCP監聽也會有效地抑制廣播資料包,使其作為廣播從交換矩陣邊緣轉發出去。
相比之下,僅第2層VLAN缺少網關,從而簡化了DHCP源識別。由於資料包不通過任何交換矩陣邊緣中繼,因此不需要複雜的源識別機制。如果L2 Only VLAN上沒有DHCP監聽,則有效地繞過DHCP資料包的泛洪控制機制。這允許通過L2泛洪將DHCP廣播轉發到其最終目的地,該目的地可以是直接連線到交換矩陣節點的DHCP伺服器,或提供DHCP中繼功能的第3層裝置。
警告:L2 Only池中的「多個IP到MAC」功能在網橋VM模式下自動啟用DHCP監聽,從而實施DHCP泛洪控制。因此,這會導致L2 VNI池無法支援其終端的DHCP。
由於DHCP嚴重依賴廣播流量,因此必須利用第2層泛洪來支援此協定。與任何其他啟用第2層泛洪的池一樣,底層網路必須配置為組播流量,尤其是使用PIM稀疏模式的Any-Source-Multicast。雖然底層組播配置是通過LAN自動化工作流程自動執行的,但如果省略此步驟,則需要額外的配置(手動或模板)。
一個常見的設計問題是是否可在SD-Access交換矩陣中部署DHCP伺服器。從本質上講,答案既是肯定的,也是否定的。
官方Cisco Validated Design建議將DHCP伺服器放置在交換矩陣之外,通常放在Shared Services塊中。但是,如果情況需要DHCP伺服器物理連線到交換矩陣節點(例如邊緣或邊界),則唯一支援的方法是通過僅第2層網路。這是因為任播網關池的固有行為,其中預設啟用DHCP監聽。這不僅會阻塞來自伺服器的DHCP提供和確認,而且會阻止DHCP發現和請求資料包(即使封裝在VXLAN中)被轉發。雖然DHCP伺服器連線埠上的「DHCP窺探信任」允許提供和確認,但探索和請求封包不會使用相同的方法轉送。此外,不支援刪除任播網關池中的DHCP監聽,因為Catalyst Center會在合規性驗證期間標籤這樣的配置偏差。
反之,當DHCP伺服器放置在L2 Only網路中時,不會實施DHCP監聽,從而允許所有DHCP資料包通過,而無需基於策略的檢查或阻止。SD-Access交換矩陣上游的網路裝置(例如,Fusion Router)被配置為僅第2層網路的網關,使來自多個VRF的流量能夠訪問該L2 Only網段內的同一DHCP伺服器。
網路拓撲
在此拓撲中:
路徑:Catalyst中心/調配/交換矩陣站點/第2層虛擬網路/編輯第2層虛擬網路
L2VNI組態
交換矩陣邊緣節點的VLAN配置為啟用CTS、禁用IGMP和IPv6 MLD以及所需的L2 LISP配置。此L2 Only池不是無線池;因此,未配置L2 Only Wireless Pools中通常存在的功能,如RA-Guard、DHCPGuard和泛洪接入隧道。相反,ARP資料包的泛洪是使用「flood arp-nd」顯式啟用的
交換矩陣邊緣(192.168.0.101)配置
cts role-based enforcement vlan-list 1041
vlan 1041
name L2ONLY_WIRED
no ip igmp snooping vlan 1041 querier
no ip igmp snooping vlan 1041
no ipv6 mld snooping vlan 1041
router lisp
instance-id 8240
remote-rloc-probe on-route-change
service ethernet
eid-table vlan 1041
broadcast-underlay 239.0.17.1
flood arp-nd
flood unknown-unicast
database-mapping mac locator-set rloc_91947dad-3621-42bd-ab6b-379ecebb5a2b
exit-service-ethernet
從操作角度來看,允許DHCP伺服器(或路由器/中繼)連線到任何交換矩陣節點,包括邊界和邊緣。
使用Border節點連線DHCP伺服器是推薦的方法,但需要仔細設計考慮。這是因為必須在每個介面上為第2層傳遞配置邊框。這允許將交換矩陣池傳遞給交換矩陣內相同的VLAN或不同的VLAN。交換矩陣邊緣和邊界之間的VLAN ID具有這種靈活性,因為兩者都對映到相同的L2 LISP例項ID。不能使用同一個VLAN同時啟用L2切換物理埠,以防止SD-Access網路出現第2層環路。若要實現冗餘,需要使用StackWise Virtual、FlexLink+或EEM指令碼等方法。
相反,將DHCP伺服器或網關路由器連線到交換矩陣邊緣不需要額外的配置。
L2轉接配置
交換矩陣邊界(192.168.0.201)配置
cts role-based enforcement vlan-list 141
vlan 141
name L2ONLY_WIRED
no ip igmp snooping vlan 141 querier
no ip igmp snooping vlan 141
no ipv6 mld snooping vlan 141
router lisp
instance-id 8240
remote-rloc-probe on-route-change
service ethernet
eid-table vlan 141
broadcast-underlay 239.0.17.1
flood arp-nd
flood unknown-unicast
database-mapping mac locator-set rloc_91947dad-3621-42bd-ab6b-379ecebb5a2b
exit-service-ethernet
interface TenGigabitEthernet1/0/44
switchport mode trunk
通訊流 — 僅L2中的DHCP發現和請求
當終端aaaa.dddd.bbb傳送DHCP發現或請求(廣播資料包)時,邊緣節點必須獲取終端的MAC地址,將其新增到其MAC地址表,然後新增到L2/MAC SISF表,最後到VLAN 1041的L2LISP資料庫,對映到L2LISP例項8240。
Edge-1#show mac address-table interface te1/0/2
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1041 aaaa.dddd.bbbb DYNAMIC Te1/0/2
Edge-1#show vlan id 1041
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1041 L2ONLY_WIRED active L2LI0:8240, Te1/0/2, Te1/0/17, Te1/0/18, Te1/0/19, Te1/0/20, Ac2, Po1
Edge-1#show device-tracking database mac | i aaaa.dddd.bbbb|vlan
MAC Interface vlan prlvl state Time left Policy Input_index
aaaa.dddd.bbbb Te1/0/2 1041 NO TRUST MAC-REACHABLE 123 s IPDT_POLICY 10
Edge-1#show lisp instance-id 8240 dynamic-eid summary | i Name|aaaa.dddd.bbbb
Dyn-EID Name Dynamic-EID Interface Uptime Last Pending
Auto-L2-group-8240 aaaa.dddd.bbbb N/A 6d04h never 0
Edge-1#show lisp instance-id 8240 ethernet database aaaa.dddd.bbbb
LISP ETR MAC Mapping Database for LISP 0 EID-table Vlan 1041 (IID 8240), LSBs: 0x1
Entries total 1, no-route 0, inactive 0, do-not-register 0
aaaa.dddd.bbbb/48, dynamic-eid Auto-L2-group-8240, inherited from default locator-set rloc_91947dad-3621-42bd-ab6b-379ecebb5a2b
Uptime: 6d04h, Last-change: 6d04h
Domain-ID: local
Service-Insertion: N/A
Locator Pri/Wgt Source State
192.168.0.101 10/10 cfg-intf site-self, reachable
Map-server Uptime ACK Domain-ID
192.168.0.201 6d04h Yes 0
192.168.0.202 6d04h Yes 0
如果終端的MAC地址已正確獲知,並且交換矩陣控制平面的ACK標誌已標籤為「Yes」,則此階段視為已完成。
禁用DHCP監聽時,不會阻止DHCP廣播;相反,它們會封裝在組播中,以便進行第2層泛洪。反之,啟用DHCP監聽可以防止這些廣播資料包泛洪。
Edge-1#show ip dhcp snooping
Switch DHCP snooping is enabled
Switch DHCP gleaning is disabled
DHCP snooping is configured on following VLANs:
12-13,50,52-53,333,1021-1026
DHCP snooping is operational on following VLANs:
12-13,50,52-53,333,1021-1026 <-- VLAN1041 should not be listed, as DHCP snooping must be disabled in L2 Only pools.
Proxy bridge is configured on following VLANs:
1024
Proxy bridge is operational on following VLANs:
1024
<snip>
由於DHCP監聽已禁用,因此DHCP發現/請求利用L2LISP0介面,通過L2泛洪橋接流量。根據Catalyst Center版本和應用的Fabric Banner,L2LISP0介面可能具有雙向配置的訪問清單;因此,請確保任何存取控制專案(ACE)都沒有明確拒絕DHCP流量(UDP連線埠67和68)。
interface L2LISP0
ip access-group SDA-FABRIC-LISP in
ip access-group SDA-FABRIC-LISP out
Edge-1#show access-list SDA-FABRIC-LISP
Extended IP access list SDA-FABRIC-LISP
10 deny ip any host 224.0.0.22
20 deny ip any host 224.0.0.13
30 deny ip any host 224.0.0.1
40 permit ip any any
利用為L2LISP例項配置的廣播底層組和交換矩陣邊緣的Loopback0 IP地址來檢驗將該資料包橋接至其他交換矩陣節點的L2泛洪(S,G)條目。請參閱mroute和mfib表以驗證引數,如傳入介面、傳出介面清單和轉發計數器。
Edge-1#show ip interface loopback 0 | i Internet
Internet address is 192.168.0.101/32
Edge-1#show running-config | se 8240
interface L2LISP0.8240
instance-id 8240
remote-rloc-probe on-route-change
service ethernet
eid-table vlan 1041
broadcast-underlay 239.0.17.1
Edge-1#show ip mroute 239.0.17.1 192.168.0.101 | be \(
(192.168.0.101, 239.0.17.1), 00:00:19/00:03:17, flags: FT
Incoming interface: Null0, RPF nbr 0.0.0.0 <-- Local S,G IIF must be Null0
Outgoing interface list:
TenGigabitEthernet1/1/2, Forward/Sparse, 00:00:19/00:03:10, flags: <-- 1st OIF = Te1/1/2 = Border2 Uplink
TenGigabitEthernet1/1/1, Forward/Sparse, 00:00:19/00:03:13, flags: <-- 2nd OIF = Te1/1/1 = Border1 Uplink
Edge-1#show ip mfib 239.0.17.1 192.168.0.101 count
Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kilobits per second
Other counts: Total/RPF failed/Other drops(OIF-null, rate-limit etc)
Default
13 routes, 6 (*,G)s, 3 (*,G/m)s
Group: 239.0.17.1
Source: 192.168.0.101,
SW Forwarding: 1/0/392/0, Other: 1/1/0
HW Forwarding: 7/0/231/0, Other: 0/0/0 <-- HW Forwarding counters (First counter = Pkt Count) must increase
Totals - Source count: 1, Packet count: 8
提示:如果找不到(S,G)條目或傳出介面清單(OIL)不包含傳出介面(OIF),則表明底層組播配置或操作有問題。
在交換機上配置同時嵌入式資料包捕獲,以記錄來自終端的傳入DHCP資料包和相應的輸出資料包,以進行L2泛洪。捕獲資料包時,應觀察兩個不同的資料包:原始DHCP探索/要求及其VXLAN封裝的對應項,目的地為底層組(239.0.17.1)。
光纖邊緣(192.168.0.101)封包擷取
monitor capture cap interface TenGigabitEthernet1/0/2 IN <-- Endpoint Interface
monitor capture cap interface TenGigabitEthernet1/1/1 OUT <-- One of the OIFs from the multicast route (S,G)
monitor capture cap match any
monitor capture cap buffer size 100
monitor capture cap limit pps 1000
monitor capture cap start
monitor capture cap stop
Edge-1#show monitor capture cap buffer display-filter "bootp and dhcp.hw.mac_addr==aaaa.dddd.bbbb" <-- aaaa.dddd.bbbb is the endpoint MAC
Starting the packet display ........ Press Ctrl + Shift + 6 to exit
22 2.486991 0.0.0.0 -> 255.255.255.255 DHCP 356 DHCP Discover - Transaction ID 0xf8e <-- 356 is the Length of the original packet
23 2.487037 0.0.0.0 -> 255.255.255.255 DHCP 406 DHCP Discover - Transaction ID 0xf8e <-- 406 is the Length of the VXLAN encapsulated packet
Edge-1#show monitor capture cap buffer display-filter "bootp and dhcp.hw.mac_addr==aaaa.dddd.bbbb and vxlan"
Starting the packet display ........ Press Ctrl + Shift + 6 to exit
23 2.487037 0.0.0.0 -> 255.255.255.255 DHCP 406 DHCP Discover - Transaction ID 0xf8e
Edge-1#show monitor capture cap buffer display-filter "bootp and dhcp.hw.mac_addr==aaaa.dddd.bbbb and vxlan" detail | i Internet
Internet Protocol Version 4, Src: 192.168.0.101, Dst: 239.0.17.1 <-- DHCP Discover is encapsulated for Layer 2 Flooding
Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255
邊緣通過第2層泛洪傳送DHCP發現和請求資料包後(封裝了Broadcast-Underlay組239.0.17.1),這些資料包將由L2轉發邊界接收,在本場景中具體是Border/CP-1。
為此,Border/CP-1必須擁有與邊緣(S,G)的組播路由,其傳出介面清單必須包括L2切換VLAN的L2LISP例項。必須注意的是,L2轉接邊界共用相同的L2LISP例項ID,即使它們為轉接使用不同的VLAN。
BorderCP-1#show vlan id 141
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
141 L2ONLY_WIRED active L2LI0:8240, Te1/0/44
BorderCP-1#show ip mroute 239.0.17.1 192.168.0.101 | be \(
(192.168.0.101, 239.0.17.1), 00:03:20/00:00:48, flags: MTA
Incoming interface: TenGigabitEthernet1/0/42, RPF nbr 192.168.98.3 <-- Incoming Interface Te1/0/42 is the RPF interface for 192.168.0.101 (Edge RLOC)
Outgoing interface list:
TenGigabitEthernet1/0/26, Forward/Sparse, 00:03:20/00:03:24, flags:
L2LISP0.8240, Forward/Sparse-Dense, 00:03:20/00:02:39, flags:
BorderCP-1#show ip mfib 239.0.17.1 192.168.0.101 count
Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kilobits per second
Other counts: Total/RPF failed/Other drops(OIF-null, rate-limit etc)
Default
13 routes, 6 (*,G)s, 3 (*,G/m)s
Group: 239.0.17.1
Source: 192.168.0.101,
SW Forwarding: 1/0/392/0, Other: 0/0/0
HW Forwarding: 3/0/317/0, Other: 0/0/0 <-- HW Forwarding counters (First counter = Pkt Count) must increase
Totals - Source count: 1, Packet count: 4
提示:如果未找到(S,G)條目,則表示底層組播配置或操作有問題。如果所需例項的L2LISP未作為OIF存在,則表明L2LISP子介面的操作UP/DOWN狀態或L2LISP介面的IGMP啟用狀態存在問題。
與交換矩陣邊緣節點類似,請確保沒有訪問控制項會拒絕L2LISP0介面上的輸入DHCP資料包。
BorderCP-1#show access-list SDA-FABRIC-LISP
Extended IP access list SDA-FABRIC-LISP
10 deny ip any host 224.0.0.22
20 deny ip any host 224.0.0.13
30 deny ip any host 224.0.0.1
40 permit ip any any
將封包解除封裝並放置在與VNI 8240相符的VLAN上後,其廣播性質表示封包已泛洪到轉送的VLAN 141的所有跨距樹狀目錄通訊協定轉送連線埠。
BorderCP-1#
show spanning-tree vlan 141 | be Interface
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Te1/0/44 Desg FWD 2000 128.56 P2p
Device-Tracking表確認連線到網關/DHCP中繼的介面Te1/0/44必須是STP轉發埠。
BorderCP-1#
show device-tracking database address 172.16.141.254 | be Network
Network Layer Address Link Layer Address Interface vlan prlvl age state Time left
ARP 172.16.141.254 f87b.2003.7fc0 Te1/0/44 141 0005 133s REACHABLE 112 s try 0
在交換機上配置同時嵌入式資料包捕獲,以記錄來自L2泛洪(S,G傳入介面)的傳入DHCP資料包和到DHCP中繼的相應輸出資料包。捕獲資料包時,應觀察兩個不同的資料包:來自Edge-1的VXLAN封裝資料包,以及到達DHCP中繼的解封裝資料包。
光纖邊界/CP(192.168.0.201)封包擷取器
monitor capture cap interface TenGigabitEthernet1/0/42 IN <-- Incoming interface for Edge's S,G Mroute (192.168.0.101, 239.0.17.1)
monitor capture cap interface TenGigabitEthernet1/0/44 OUT <-- Interface that connects to the DHCP Relay
monitor capture cap match any
monitor capture cap buffer size 100monitor capture cap start
monitor capture cap stop
BorderCP-1#
show monitor capture cap buffer display-filter "bootp and dhcp.hw.mac_addr==aaaa.dddd.bbbb"
Starting the packet display ........ Press Ctrl + Shift + 6 to exit
427 16.695022 0.0.0.0 -> 255.255.255.255 DHCP 406 DHCP Discover - Transaction ID 0x2030 <-- 406 is the Lenght of the VXLAN encapsulated packet
428 16.695053 0.0.0.0 -> 255.255.255.255 DHCP 364 DHCP Discover - Transaction ID 0x2030 <-- 364 is the Lenght of the VXLAN encapsulated packet
Packet 427: VXLAN Encapsulated
BorderCP-1#
show monitor capture cap buffer display-filter "bootp and dhcp.hw.mac_addr==aaaa.dddd.bbbb and vxlan" detail | i Internet
Internet Protocol Version 4, Src: 192.168.0.101, Dst: 239.0.17.1
Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255
Packet 428: Plain (dot1Q cannot be captured at egress direction)BorderCP-1#
show monitor capture cap buffer display-filter "bootp and dhcp.hw.mac_addr==aaaa.dddd.bbbb and not vxlan " detailed | i Internet
Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255
通訊流 — 僅在第2層廣播DHCP提供和ACK
現在DHCP發現已退出SD-Access交換矩陣,DHCP中繼將插入傳統的DHCP中繼選項(例如GiAddr/GatewayIPAddress),並將資料包作為單播傳輸轉發到DHCP伺服器。在此流程中,SD-Access交換矩陣不附加任何特殊的DHCP選項。
在伺服器收到DHCP發現/請求後,伺服器會執行嵌入的廣播或單播標誌。此標籤指示DHCP中繼代理是否將DHCP提供作為廣播幀或單播幀轉發到下游裝置(我們的邊界)。在本演示中,假設存在廣播場景。
當DHCP中繼傳送DHCP提供或ACK時,L2BN節點必須獲取網關的MAC地址,將其新增到其MAC地址表中,然後到L2/MAC SISF表,最後到VLAN 141的L2LISP資料庫,對映到L2LISP例項8240。
BorderCP-1
#
show mac address-table interface te1/0/44
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
141 f87b.2003.7fc0 DYNAMIC Te1/0/44
BorderCP-1#show vlan id 141
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
141 L2ONLY_WIRED active L2LI0:8240, Te1/0/44
BorderCP-1#
show device-tracking database mac | i 7fc0|vlan
MAC Interface vlan prlvl state Time left Policy Input_index
f87b.2003.7fc0 Te1/0/44 141 NO TRUST MAC-REACHABLE 61 s LISP-DT-GLEAN-VLAN 64
BorderCP-1#
show lisp ins 8240 dynamic-eid summary | i Name|f87b.2003.7fc0
Dyn-EID Name Dynamic-EID Interface Uptime Last Pending
Auto-L2-group-8240 f87b.2003.7fc0 N/A 6d06h never 0
BorderCP-1#
show lisp instance-id 8240 ethernet database f87b.2003.7fc0
LISP ETR MAC Mapping Database for LISP 0 EID-table Vlan 141 (IID 8240), LSBs: 0x1
Entries total 1, no-route 0, inactive 0, do-not-register 0
f87b.2003.7fc0/48, dynamic-eid Auto-L2-group-8240, inherited from default locator-set rloc_0f43c5d8-f48d-48a5-a5a8-094b87f3a5f7, auto-discover-rlocs
Uptime: 6d06h, Last-change: 6d06h
Domain-ID: local
Service-Insertion: N/A
Locator Pri/Wgt Source State
192.168.0.201 10/10 cfg-intf site-self, reachable
Map-server Uptime ACK Domain-ID
192.168.0.201 6d06h Yes 0
192.168.0.202 6d06h Yes 0
如果網關的MAC地址已正確獲知,並且交換矩陣控制平面的ACK標誌已標籤為「Yes」,則此階段視為已完成。
如果沒有啟用DHCP監聽,DHCP廣播不會受到阻止,而是封裝在組播中,以實現第2層泛洪。反之,如果啟用DHCP監聽,則會阻止DHCP廣播資料包泛洪。
BorderCP-1#
show ip dhcp snooping
Switch DHCP snooping is
enabled
Switch DHCP gleaning is disabled
DHCP snooping is configured on following VLANs:
1001
DHCP snooping is operational on following VLANs:
1001 <-- VLAN141 should not be listed, as DHCP snooping must be disabled in L2 Only pools.
Proxy bridge is configured on following VLANs:
none
Proxy bridge is operational on following VLANs:
none
提示:由於L2Border中未啟用DHCP監聽,因此不需要配置DHCP監聽信任。
在這個階段,兩台裝置都已完成L2LISP ACL驗證。
利用為L2LISP例項配置的廣播底層組和L2Border Loopback0 IP地址來檢驗將該資料包橋接到其他交換矩陣節點的L2泛洪(S,G)條目。請參閱mroute和mfib表以驗證引數,如傳入介面、傳出介面清單和轉發計數器。
BorderCP-1#
show ip int loopback 0 | i Internet
Internet address is 192.168.0.201/32
BorderCP-1#
show run | se 8240
interface L2LISP0.8240
instance-id 8240
remote-rloc-probe on-route-change
service ethernet
eid-table vlan 1041
broadcast-underlay 239.0.17.1
BorderCP-1#show ip mroute 239.0.17.1 192.168.0.201 | be \(
(192.168.0.201, 239.0.17.1), 1w5d/00:02:52, flags: FTA
Incoming interface: Null0, RPF nbr 0.0.0.0 <-- Local S,G IIF must be Null0
Outgoing interface list:
TenGigabitEthernet1/0/42, Forward/Sparse, 1w3d/00:02:52, flags: <-- Edge1 Downlink
TenGigabitEthernet1/0/43, Forward/Sparse, 1w3d/00:02:52, flags: <-- Edge2 DownlinkBorderCP-1#show ip mfib 239.0.17.1 192.168.0.201 count
Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kilobits per second
Other counts: Total/RPF failed/Other drops(OIF-null, rate-limit etc)
Default
13 routes, 6 (*,G)s, 3 (*,G/m)s
Group: 239.0.17.1
Source: 192.168.0.201,
SW Forwarding: 1/0/392/0, Other: 1/1/0
HW Forwarding: 92071/0/102/0, Other: 0/0/0 <-- HW Forwarding counters (First counter = Pkt Count) must increase
Totals - Source count: 1, Packet count: 92071
提示:如果找不到(S,G)條目或傳出介面清單(OIL)不包含傳出介面(OIF),則表明底層組播配置或操作有問題。
通過這些驗證,沿資料包捕獲(類似於前面的步驟),本節將結束,因為DHCP提供會使用傳出介面清單內容(在本例中是介面TenGig1/0/42和TenGig1/0/43之外)以廣播形式轉發到所有交換矩陣邊緣。
與上一個流完全相同,在交換矩陣邊緣驗證L2Border S、G,其中傳入介面指向L2BN,並且OIL包含對映到VLAN 1041的L2LISP例項。
Edge-1#
show vlan id 1041
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1041 L2ONLY_WIRED active L2LI0:8240, Te1/0/2, Te1/0/17, Te1/0/18, Te1/0/19, Te1/0/20, Ac2, Po1
Edge-1#
show ip mroute 239.0.17.1 192.168.0.201 | be \(
(192.168.0.201, 239.0.17.1), 1w3d/00:01:52, flags: JT
Incoming interface: TenGigabitEthernet1/1/2, RPF nbr 192.168.98.2 <-- IIF Te1/1/2 is the RPF interface for 192.168.0.201 (L2BN RLOC)
Outgoing interface list:
L2LISP0.8240, Forward/Sparse-Dense, 1w3d/00:02:23, flags:
Edge-1#
show ip mfib 239.0.17.1 192.168.0.201 count
Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kilobits per second
Other counts: Total/RPF failed/Other drops(OIF-null, rate-limit etc)
Default
13 routes, 6 (*,G)s, 3 (*,G/m)s
Group: 239.0.17.1
Source: 192.168.0.201,
SW Forwarding: 1/0/96/0, Other: 0/0/0
HW Forwarding: 76236/0/114/0, Other: 0/0/0
<-- HW Forwarding counters (First counter = Pkt Count) must increase
Totals - Source count: 1, Packet count: 4
提示:如果未找到(S,G)條目,則表示底層組播配置或操作有問題。如果所需例項的L2LISP未作為OIF存在,則表明L2LISP子介面的操作UP/DOWN狀態或L2LISP介面的IGMP啟用狀態存在問題。
兩台裝置中都已完成L2LISP ACL驗證。
將封包解除封裝並放在與VNI 8240相符的VLAN上後,其廣播性質表示其已泛洪出去,從VLAN1041的所有跨距樹狀目錄通訊協定轉送連線埠中轉出。
Edge-1#
show spanning-tree vlan 1041 | be Interface
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Te1/0/2 Desg FWD 20000 128.2 P2p Edge
Te1/0/17 Desg FWD 2000 128.17 P2p
Te1/0/18 Back BLK 2000 128.18 P2p
Te1/0/19 Desg FWD 2000 128.19 P2p
Te1/0/20 Back BLK 2000 128.20 P2p
MAC地址表將埠Te1/0/2標識為終端埠,該埠通過STP處於FWD狀態,資料包被泛洪到終端。
Edge-1#
show mac address-table interface te1/0/2
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1041 aaaa.dddd.bbbb DYNAMIC Te1/0/2
DHCP提供和ACK過程始終保持一致。如果未啟用DHCP監聽,則不會在DHCP監聽表中建立任何條目。因此,啟用DHCP的終端的裝置跟蹤條目通過收集ARP資料包生成。由於DHCP監聽已禁用,因此「show platform dhcpsnooping client stats」等命令預計不會顯示任何資料。
Edge-1#
show device-tracking database interface te1/0/2 | be Network
Network Layer Address Link Layer Address Interface vlan prlvl age state Time left
ARP 172.16.141.1 aaaa.dddd.bbbb Te1/0/2 1041 0005 45s REACHABLE 207 s try 0
Edge-1#
show ip dhcp snooping binding vlan 1041
MacAddress IpAddress Lease(sec) Type VLAN Interface
------------------ --------------- ---------- ------------- ---- --------------------
Total number of bindings: 0
通訊流 — 單播DHCP提供和ACK(僅限第2層)
在此場景略有不同,終端將DHCP廣播標誌設定為unset或「0」。
DHCP中繼不會將DHCP提供/ACK作為廣播傳送,而是作為單播資料包傳送,其目的MAC地址從DHCP負載內的客戶端硬體地址派生。這顯著地修改了SD-Access交換矩陣處理資料包的方式,它使用L2LISP對映快取來轉發流量,而不是第2層泛洪組播封裝方法。
交換矩陣邊界/CP(192.168.0.201)資料包catpure:輸入DHCP提供
BorderCP-1#show monitor capture cap buffer display-filter "bootp.type==1 and dhcp.hw.mac_addr==aaaa.dddd.bbbb" detailed | sect Dynamic
Dynamic Host Configuration Protocol (Discover)
Message type: Boot Request (1)
Hardware type: Ethernet (0x01)
Hardware address length: 6
Hops: 0
Transaction ID: 0x00002030
Seconds elapsed: 0
Bootp flags: 0x0000, Broadcast flag (Unicast)
0... .... .... .... = Broadcast flag: Unicast
.000 0000 0000 0000 = Reserved flags: 0x0000
Client IP address: 0.0.0.0
Your (client) IP address: 0.0.0.0
Next server IP address: 0.0.0.0
Relay agent IP address: 0.0.0.0
Client MAC address: aa:aa:dd:dd:bb:bb (aa:aa:dd:dd:bb:bb)
在此場景中,L2泛洪專門用於發現/請求,而提供/ACK則通過L2LISP對映快取轉發,從而簡化了整體操作。根據單播轉發原則,L2邊界向控制平面查詢目的MAC地址(aaaa.dddd.bbb)。 假設在交換矩陣邊緣上成功「MAC學習和終端註冊」,則控制平面已註冊此終端ID(EID)。
BorderCP-1#show
lisp instance-id 8240 ethernet server aaaa.dddd.bbbb
LISP Site Registration Information
Site name: site_uci
Description: map-server configured from Catalyst Center
Allowed configured locators: any
Requested EID-prefix:
EID-prefix: aaaa.dddd.bbbb/48 instance-id 8240
First registered: 00:36:37
Last registered: 00:36:37
Routing table tag: 0
Origin: Dynamic, more specific of any-mac
Merge active: No
Proxy reply: Yes
Skip Publication: No
Force Withdraw: No
TTL: 1d00h
State: complete
Extranet IID: Unspecified
Registration errors:
Authentication failures: 0
Allowed locators mismatch: 0
ETR 192.168.0.101:51328, last registered 00:36:37, proxy-reply, map-notify
TTL 1d00h, no merge, hash-function sha1
state complete, no security-capability
nonce 0x1BF33879-0x707E9307
xTR-ID 0xDEF44F0B-0xA801409E-0x29F87978-0xB865BF0D
site-ID unspecified
Domain-ID 1712573701
Multihoming-ID unspecified
sourced by reliable transport
Locator Local State Pri/Wgt Scope
192.168.0.101 yes up 10/10 IPv4 none
在邊界向控制平面(本地或遠端)查詢後,LISP解析為終端的MAC地址建立對映快取條目。
BorderCP-1#
show lisp instance-id 8240 ethernet map-cache aaaa.dddd.bbbb
LISP MAC Mapping Cache for LISP 0 EID-table Vlan 141 (IID 8240), 1 entries
aaaa.dddd.bbbb/48, uptime: 4d07h, expires: 16:33:09, via map-reply, complete, local-to-site
Sources: map-reply
State: complete, last modified: 4d07h, map-source: 192.168.0.206
Idle, Packets out: 46(0 bytes), counters are not accurate (~ 00:13:12 ago)
Encapsulating dynamic-EID traffic
Locator Uptime State Pri/Wgt Encap-IID
192.168.0.101 4d07h up 10/10 -
解決RLOC後,DHCP提供將封裝為單播,並使用VNI 8240直接傳送到Edge-1(192.168.0.101)。
BorderCP-1#
show mac address-table address aaaa.dddd.bbbb
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
141 aaaa.dddd.bbbb CP_LEARN L2LI0
BorderCP-1#
show platform software fed switch active matm macTable vlan 141 mac aaaa.dddd.bbbb
VLAN MAC Type Seq# EC_Bi Flags machandle siHandle riHandle diHandle *a_time *e_time ports Con
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------141 aaaa.dddd.bbbb 0x1000001 0 0 64 0x718eb5271228 0x718eb52b4d68 0x718eb52be578 0x0 0 1064 RLOC 192.168.0.101 adj_id 747 No
BorderCP-1#
show ip route 192.168.0.101
Routing entry for 192.168.0.101/32
Known via "isis", distance 115, metric 20, type level-2
Redistributing via isis, bgp 65001T
Advertised by bgp 65001 level-2 route-map FABRIC_RLOC
Last update from 192.168.98.3 on TenGigabitEthernet1/0/42, 1w3d ago
Routing Descriptor Blocks:
* 192.168.98.3, from 192.168.0.101, 1w3d ago, via TenGigabitEthernet1/0/42
Route metric is 20, traffic share count is 1
使用與前面部分相同的方法,捕獲從DHCP中繼和RLOC輸出介面的輸入流量,以觀察單播到邊緣RLOC的VXLAN封裝。
邊緣從邊界接收單播DHCP提供/ACK,解封裝流量並查詢其MAC地址表以確定正確的出口埠。與廣播Offer/ACK不同,邊緣節點僅將資料包轉發到終端所連線的特定埠,而不是將其泛洪到所有埠。
MAC地址表將埠Te1/0/2標識為我們的客戶端埠,該埠通過STP處於FWD狀態,資料包將被轉發到終端。
Edge-1#
show mac address-table interface te1/0/2
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1041 aaaa.dddd.bbbb DYNAMIC Te1/0/2
DHCP提供和ACK過程始終保持一致。如果未啟用DHCP監聽,則不會在DHCP監聽表中建立任何條目。因此,啟用DHCP的終端的裝置跟蹤條目由收集ARP資料包生成。由於DHCP監聽已禁用,因此「show platform dhcpsnooping client stats」等命令預計不會顯示任何資料。
Edge-1#
show device-tracking database interface te1/0/2 | be Network
Network Layer Address Link Layer Address Interface vlan prlvl age state Time left
ARP 172.16.141.1 aaaa.dddd.bbbb Te1/0/2 1041 0005 45s REACHABLE 207 s try 0
Edge-1#
show ip dhcp snooping binding vlan 1041
MacAddress IpAddress Lease(sec) Type VLAN Interface
------------------ --------------- ---------- ------------- ---- --------------------
Total number of bindings: 0
必須注意的是,SD-Access交換矩陣不影響單播或廣播標誌的使用,因為這只是端點行為。雖然此功能可能被DHCP中繼或DHCP伺服器本身所覆蓋,但兩種機制對於在L2 Only環境中無縫DHCP操作都至關重要:使用廣播提供/ACK的底層組播進行第2層泛洪,並在控制平面中為單播提供/ACK進行正確的端點註冊。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
19-Aug-2025
|
初始版本 |