01-VXLAN配置
本章節下載: 01-VXLAN配置 (488.27 KB)
目 錄
VXLAN(Virtual eXtensible LAN,可擴展虛擬局域網絡)是基於IP網絡、采用“MAC in UDP”封裝形式的二層VPN技術。VXLAN可以基於已有的服務提供商或企業IP網絡,為分散的物理站點提供二層互聯,並能夠為不同的租戶提供業務隔離。VXLAN主要應用於數據中心網絡和園區接入網絡。
目前,設備隻支持基於IPv4網絡的VXLAN技術,不支持基於IPv6網絡的VXLAN技術。
VXLAN具有如下優點:
· 支持大量的租戶:使用24位的標識符,最多可支持2的24次方(16777216)個VXLAN,使支持的租戶數目大規模增加,解決了傳統二層網絡VLAN資源不足的問題。
· 易於維護:基於IP網絡組建大二層網絡,使得網絡部署和維護更加容易,並且可以充分地利用現有的IP網絡技術,例如利用等價路由進行負載分擔等;隻有IP核心網絡的邊緣設備需要進行VXLAN處理,網絡中間設備隻需根據IP頭轉發報文,降低了網絡部署的難度和費用。
VXLAN技術將已有的三層物理網絡作為Underlay網絡,在其上構建出虛擬的二層網絡,即Overlay網絡。Overlay網絡通過封裝技術、利用Underlay網絡提供的三層轉發路徑,實現租戶二層報文跨越三層網絡在不同站點間傳遞。對於租戶來說,Underlay網絡是透明的,同一租戶的不同站點就像工作在一個局域網中。
圖1-1 VXLAN網絡模型示意圖
如圖1-1所示,VXLAN的典型網絡模型中包括如下幾部分:
· 用戶終端(Terminal):用戶終端設備可以是PC機、無線終端設備、服務器上創建的VM(Virtual Machine,虛擬機)等。不同的用戶終端可以屬於不同的VXLAN。屬於相同VXLAN的用戶終端處於同一個邏輯二層網絡,彼此之間二層互通;屬於不同VXLAN的用戶終端之間二層隔離。VXLAN通過VXLAN ID來標識,VXLAN ID又稱VNI(VXLAN Network Identifier,VXLAN網絡標識符),其長度為24比特。
本文檔中如無特殊說明,均以VM為例介紹VXLAN工作機製。采用其他類型用戶終端時,VXLAN工作機製與VM相同,不再贅述。
· VTEP(VXLAN Tunnel End Point,VXLAN隧道端點):VXLAN的邊緣設備。VXLAN的相關處理都在VTEP上進行,例如識別以太網數據幀所屬的VXLAN、基於VXLAN對數據幀進行二層轉發、封裝/解封裝報文等。
· VXLAN隧道:兩個VTEP之間的點到點邏輯隧道。VTEP為數據幀封裝VXLAN頭、UDP頭和IP頭後,通過VXLAN隧道將封裝後的報文轉發給遠端VTEP,遠端VTEP對其進行解封裝。
· 核心設備:IP核心網絡中的設備(如圖1-1中的P設備)。核心設備不參與VXLAN處理,僅需要根據封裝後報文的目的IP地址對報文進行三層轉發。
· VSI(Virtual Switch Instance,虛擬交換實例):VTEP上為一個VXLAN提供二層交換服務的虛擬交換實例。VSI可以看作是VTEP上的一台基於VXLAN進行二層轉發的虛擬交換機,它具有傳統以太網交換機的所有功能,包括源MAC地址學習、MAC地址老化、泛洪等。VSI與VXLAN一一對應。
· AC(Attachment Circuit,接入電路):VTEP連接本地站點的物理電路或虛擬電路。在VTEP上,與VSI關聯的三層接口或以太網服務實例(service instance)稱為AC。其中,以太網服務實例在二層以太網接口上創建,它定義了一係列匹配規則,用來匹配從該二層以太網接口上接收到的數據幀。
如圖1-2所示,VXLAN報文的封裝格式為:在原始二層數據幀外添加8字節VXLAN頭、8字節UDP頭和20字節IP頭。其中,UDP頭的目的端口號為VXLAN UDP端口號(缺省為4789)。VXLAN頭主要包括兩部分:
· 標記位:“I”位為1時,表示VXLAN頭中的VXLAN ID有效;為0,表示VXLAN ID無效。其他位保留未用,設置為0。
· VXLAN ID:用來標識一個VXLAN網絡,長度為24比特。
圖1-2 VXLAN報文封裝示意圖
VXLAN運行機製可以概括為:
(1) 發現遠端VTEP,在VTEP之間建立VXLAN隧道,並將VXLAN隧道與VXLAN關聯。
(2) 識別接收到的報文所屬的VXLAN,以便將報文的源MAC地址學習到VXLAN對應的VSI,並在該VSI內轉發該報文。
(3) 學習虛擬機的MAC地址。
(4) 根據學習到的MAC地址表項轉發報文。
為了將VXLAN報文傳遞到遠端VTEP,需要創建VXLAN隧道,並將VXLAN隧道與VXLAN關聯。
VXLAN隧道的建立方式有如下兩種:
· 手工方式:手工配置Tunnel接口,並指定隧道的源和目的IP地址分別為本端和遠端VTEP的IP地址。
· 自動方式:通過EVPN(Ethernet Virtual Private Network,以太網虛擬專用網絡)發現遠端VTEP後,自動在本端和遠端VTEP之間建立VXLAN隧道。EVPN的詳細介紹請參見“EVPN配置指導”。
VXLAN隧道與VXLAN關聯的方式有如下兩種:
· 手工方式:手工將VXLAN隧道與VXLAN關聯。
· 自動方式:通過EVPN協議自動關聯VXLAN隧道與VXLAN。EVPN的詳細介紹請參見“EVPN配置指導”。
VTEP采用如下幾種方式在數據幀和VXLAN之間建立關聯:
· 將三層接口與VSI關聯:從該三層接口接收到的數據幀均屬於指定的VSI。VSI內創建的VXLAN即為該數據幀所屬的VXLAN。
· 將以太網服務實例與VSI關聯:以太網服務實例定義了一係列匹配規則,如匹配指定VLAN的報文、匹配接口接收到的所有報文等。從二層以太網接口上接收到的、與規則匹配的數據幀均屬於指定的VSI/VXLAN。
VTEP從三層接口或以太網服務實例接收到數據幀後,根據關聯方式判斷報文所屬的VXLAN。
如圖1-3所示,VM 1屬於VLAN 2,在VTEP上配置以太網服務實例1匹配VLAN 2的報文,將以太網服務實例1與VSI A綁定,並在VSI A內創建VXLAN 10,則VTEP接收到VM 1發送的數據幀後,可以判定該數據幀屬於VXLAN 10。
對於從VXLAN隧道上接收到的VXLAN報文,VTEP根據報文中攜帶的VXLAN ID判斷該報文所屬的VXLAN。
MAC地址學習分為本地MAC地址學習和遠端MAC地址學習兩部分:
· 本地MAC地址學習
是指VTEP對本地站點內虛擬機MAC地址的學習。本地MAC地址的學習方式有如下幾種:
¡ 靜態配置:手工指定本地MAC地址所屬的VSI(VXLAN),及其對應的以太網服務實例(即AC)。
¡ 通過報文中的源MAC地址動態學習:VTEP接收到本地虛擬機發送的數據幀後,判斷該數據幀所屬的VSI,並將數據幀中的源MAC地址(本地虛擬機的MAC地址)添加到該VSI的MAC地址表中,該MAC地址對應的接口為接收到數據幀的接口。
· 遠端MAC地址學習
是指VTEP對遠端站點內虛擬機MAC地址的學習。遠端MAC地址的學習方式有如下幾種:
¡ 靜態配置:手工指定遠端MAC地址所屬的VSI(VXLAN),及其對應的VXLAN隧道接口。
¡ 通過報文中的源MAC地址動態學習:VTEP從VXLAN隧道上接收到遠端VTEP發送的VXLAN報文後,根據VXLAN ID判斷報文所屬的VXLAN,對報文進行解封裝,還原二層數據幀,並將數據幀中的源MAC地址(遠端虛擬機的MAC地址)添加到所屬VXLAN對應VSI的MAC地址表中,該MAC地址對應的接口為VXLAN隧道接口。
¡ 通過BGP EVPN學習:在VTEP上運行BGP EVPN,通過BGP EVPN將本地MAC地址及其所屬的VXLAN信息通告給遠端VTEP。遠端VTEP接收到該信息後,在VXLAN對應VSI的MAC地址表中添加MAC地址表項。EVPN的詳細介紹請參見“EVPN配置指導”。
¡ 通過OpenFlow下發:OpenFlow控製器以流表的形式向VTEP設備下發遠端MAC地址表項。OpenFlow的詳細介紹請參見“OpenFlow配置指導”。
通過不同方式學習到的遠端MAC地址優先級由高到低依次為:
a. 靜態配置、OpenFlow下發的MAC地址優先級相同,且優先級最高。
b. 通過BGP EVPN學習的MAC地址優先級次之。
c. 動態學習的MAC地址優先級最低。
完成本地和遠端MAC地址學習後,VTEP在VXLAN內轉發單播流量的過程如下所述。
對於站點內流量,VTEP判斷出報文所屬的VSI後,根據目的MAC地址查找該VSI的MAC地址表,從相應的本地接口轉發給目的VM。
如圖1-4所示,VM 1(MAC地址為MAC 1)發送以太網幀到VM 4(MAC地址為MAC 4)時,VTEP 1從接口Interface A收到該以太網幀後,判斷該數據幀屬於VSI A(VXLAN 10),查找VSI A的MAC地址表,得到MAC 4的出接口為Interface B,所在VLAN為VLAN 10,則將以太網幀從接口Interface B的VLAN 10內發送給VM 4。
如圖1-5所示,以VM 1(MAC地址為MAC 1)發送以太網幀給VM 7(MAC地址為MAC 7)為例,站點間單播流量的轉發過程為:
(1) VM 1發送以太網數據幀給VM 7,數據幀的源MAC地址為MAC 1,目的MAC為MAC 7,VLAN ID為2。
(2) VTEP 1從接口Interface A(所在VLAN為VLAN 2)收到該數據幀後,判斷該數據幀屬於VSI A(VXLAN 10),查找VSI A的MAC地址表,得到MAC 7的出端口為Tunnel1。
(3) VTEP 1為數據幀封裝VXLAN頭、UDP頭和IP頭後,將封裝好的報文通過VXLAN隧道Tunnel1、經由P設備發送給VTEP 2。
(4) VTEP 2接收到報文後,根據報文中的VXLAN ID判斷該報文屬於VXLAN 10,並剝離VXLAN頭、UDP頭和IP頭,還原出原始的數據幀。
(5) VTEP 2查找與VXLAN 10對應的VSI A的MAC地址表,得到MAC 7的出端口為Interface A(所在VLAN為VLAN 20)。
(6) VTEP 2從接口Interface A的VLAN 20內將數據幀發送給VM 7。
VTEP從本地站點接收到泛洪流量(組播、廣播和未知單播流量)後,將其轉發給除接收接口外的所有本地接口和VXLAN隧道。為了避免環路,VTEP從VXLAN隧道上接收到報文後,不會再將其泛洪到其他的VXLAN隧道,隻會轉發給所有本地接口。
根據複製方式的不同,流量泛洪方式分為單播路由方式(頭端複製)和泛洪代理方式(服務器複製)。
如圖1-6所示,VTEP負責複製報文,采用單播方式將複製後的報文通過本地接口發送給本地站點,並通過VXLAN隧道發送給VXLAN內的所有遠端VTEP。
數據中心網絡中需要通過IP核心網絡進行二層互聯的站點較多時,采用泛洪代理方式可以在沒有組播協議參與的情況下,節省泛洪流量對核心網絡帶寬資源的占用。
如圖1-7所示,在泛洪代理方式下,同一個VXLAN內的所有VTEP都通過手工方式與代理服務器建立隧道。VTEP接收到泛洪流量後,不僅在本地站點內泛洪,還會將其發送到代理服務器,由代理服務器轉發到其他遠端VTEP。
目前泛洪代理方式主要用於SDN網絡,使用虛擬服務器作為泛洪代理服務器。采用泛洪代理方式時,需要在VTEP上進行如下配置:使用vxlan tunnel mac-learning disable命令關閉遠端MAC地址自動學習功能,采用SDN控製器下發的MAC地址表項進行流量轉發。
接入模式分為VLAN接入模式和Ethernet接入模式兩種。
在該模式下,從本地站點接收到的和發送給本地站點的以太網幀必須帶有VLAN Tag。
· VTEP從本地站點接收到以太網幀後,刪除該幀的所有VLAN Tag,再轉發該數據幀;
· VTEP發送以太網幀到本地站點時,為其添加本地站點的VLAN Tag。
采用該模式時,VTEP不會傳遞VLAN Tag信息,不同站點可以獨立地規劃自己的VLAN,不同站點的不同VLAN之間可以互通。
在該模式下,從本地站點接收到的和發送給本地站點的以太網幀可以攜帶VLAN Tag,也可以不攜帶VLAN Tag。
· VTEP從本地站點接收到以太網幀後,保持該幀的VLAN Tag信息不變,轉發該數據幀;
· VTEP發送以太網幀到本地站點時,不會為其添加VLAN Tag。
采用該模式時,VTEP會在不同站點間傳遞VLAN Tag信息,不同站點的VLAN需要統一規劃,否則無法互通。
為了避免廣播發送的ARP請求或組播發送的ND請求報文占用核心網絡帶寬,VTEP從本地站點或VXLAN隧道接收到ARP/ND請求和ARP/ND應答報文後,根據該報文在本地建立ARP/ND泛洪抑製表項。後續當VTEP收到本站點內虛擬機請求其它虛擬機MAC地址的ARP/ND請求時,優先根據ARP/ND泛洪抑製表項進行代答。如果沒有對應的表項,則將ARP/ND請求泛洪到核心網。ARP/ND泛洪抑製功能可以大大減少ARP/ND泛洪的次數。
圖1-8 ARP泛洪抑製示意圖
如圖1-8所示,以ARP為例,泛洪抑製的處理過程如下:
(1) 虛擬機VM 1發送ARP請求,獲取VM 7的MAC地址。
(2) VTEP 1根據接收到的ARP請求,建立VM 1的ARP泛洪抑製表項,並在VXLAN內泛洪該ARP請求(圖1-8以單播路由泛洪方式為例)。
(3) 遠端VTEP(VTEP 2和VTEP 3)解封裝VXLAN報文,獲取原始的ARP請求報文後,建立VM 1的ARP泛洪抑製表項,並在本地站點的指定VXLAN內泛洪該ARP請求。
(4) VM 7接收到ARP請求後,回複ARP應答報文。
(5) VTEP 2接收到ARP應答後,建立VM 7的ARP泛洪抑製表項,並通過VXLAN隧道將ARP應答發送給VTEP 1。
(6) VTEP 1解封裝VXLAN報文,獲取原始的ARP應答,並根據該應答建立VM 7的ARP泛洪抑製表項,之後將ARP應答報文發送給VM 1。
(7) 在VTEP 1上建立ARP泛洪抑製表項後,虛擬機VM 4發送ARP請求,獲取VM 1或VM 7的MAC地址。
(8) VTEP 1接收到ARP請求後,建立VM 4的ARP泛洪抑製表項,並查找本地ARP泛洪抑製表項,根據已有的表項回複ARP應答報文,不會對ARP請求進行泛洪。
(9) 在VTEP 3上建立ARP泛洪抑製表項後,虛擬機VM 10發送ARP請求,獲取VM 1的MAC地址。
(10) VTEP 3接收到ARP請求後,建立VM 10的ARP泛洪抑製表項,並查找本地ARP泛洪抑製表項,根據已有的表項回複ARP應答報文,不會對ARP請求進行泛洪。
VXLAN可以為分散的物理站點提供二層互聯。如果要為VXLAN站點內的虛擬機提供三層業務,則需要在網絡中部署VXLAN IP網關,以便站點內的虛擬機通過VXLAN IP網關與外界網絡或其他VXLAN網絡內的虛擬機進行三層通信。
VXLAN IP網關的詳細介紹,請參見“VXLAN配置指導”中的“VXLAN IP網關”。
與VXLAN相關的協議規範有:
· RFC 7348:Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks
設備不支持以太網服務實例(service instance)類型的AC。
VXLAN組網中,需要在VTEP上進行如下配置:
(1) 創建VSI和VXLAN
(2) 配置VXLAN隧道
(4) 建立數據幀與VSI的關聯
(5) (可選)管理本地和遠端MAC地址
(6) (可選)減少發送到核心網的泛洪流量
¡ 配置ND泛洪抑製
在VXLAN組網中,IP核心網絡中的設備上需要配置路由協議,確保VTEP之間路由可達。
(1) 進入係統視圖。
system-view
(2) 開啟L2VPN功能。
l2vpn enable
缺省情況下,L2VPN功能處於關閉狀態。
(3) 創建VSI,並進入VSI視圖。
vsi vsi-name
(4) (可選)配置VSI的描述信息。
description text
缺省情況下,未配置VSI的描述信息。
(5) 開啟VSI。
undo shutdown
缺省情況下,VSI處於開啟狀態。
(6) 創建VXLAN,並進入VXLAN視圖。
vxlan vxlan-id
在一個VSI下隻能創建一個VXLAN。
不同VSI下創建的VXLAN,其VXLAN ID不能相同。
手工創建VXLAN隧道時,隧道的源端地址和目的端地址需要分別手工指定為本地和遠端VTEP的接口地址。
在同一台設備上,VXLAN隧道模式的不同Tunnel接口建議不要同時配置完全相同的源端地址和目的端地址。
如果設備上配置了通過EVPN自動建立並關聯VXLAN隧道,則隧道目的地址相同的EVPN自動創建隧道和手工創建隧道不能關聯同一個VXLAN。EVPN的詳細介紹請參見“EVPN配置指導”。
關於隧道的詳細介紹及Tunnel接口下的更多配置命令,請參見“接口管理配置指導”中的“隧道接口”。
(1) 進入係統視圖。
system-view
(2) 創建模式為VXLAN隧道的Tunnel接口,並進入Tunnel接口視圖。
interface tunnel tunnel-number mode vxlan [ ipv6 ]
在隧道的兩端應配置相同的隧道模式,否則會造成報文傳輸失敗。
(3) 配置隧道的源端地址。請選擇其中一項進行配置。
¡ 直接指定隧道的源端地址。
source { ipv4-address | ipv6-address }
指定的地址將作為封裝後VXLAN報文的源IP地址。
¡ 指定隧道的源接口。
source interface-type interface-number
指定接口的主IP地址將作為封裝後VXLAN報文的源IP地址。
缺省情況下,未設置VXLAN隧道的源端地址。
(4) 配置隧道的目的端地址。
destination { ipv4-address | ipv6-address }
缺省情況下,未指定隧道的目的端地址。
隧道的目的端地址是對端設備上接口的IP地址,該地址將作為封裝後VXLAN報文的目的地址。
隧道的BFD檢測功能用來避免VTEP設備無法感知或無法及時感知隧道的故障,導致報文轉發失敗。開啟隧道的BFD檢測功能後,VTEP設備周期性地通過VXLAN隧道向配置的目的MAC地址發送單跳BFD控製報文。如果在5秒內未接收到對端發送的BFD控製報文,則將隧道狀態置為Defect,隧道接口狀態仍為Up。VXLAN隧道故障排除後隧道狀態將自動恢複為Up。
隧道兩端的VTEP設備上均需要開啟隧道的BFD檢測功能。
(1) 進入係統視圖。
system-view
(2) 配置保留VXLAN。
reserved vxlan vxlan-id
缺省情況下,未指定保留VXLAN。
配置隧道的BFD檢測功能時,必須配置保留VXLAN。否則,BFD會話無法up。
設備上隻能配置一個保留VXLAN,且該VXLAN不能與VSI下創建的VXLAN相同。
配置的保留VXLAN不能與mapping vni命令配置的映射遠端VXLAN相同。mapping vni命令的詳細介紹,請參見“EVPN命令參考”中的“EVPN”。
(3) 進入VXLAN隧道模式的Tunnel接口視圖。
interface tunnel tunnel-number
(4) 開啟隧道的BFD檢測功能。
tunnel bfd enable destination-mac mac-address
缺省情況下,隧道的BFD檢測功能處於關閉狀態。
一個VXLAN可以關聯多條VXLAN隧道。一條VXLAN隧道可以關聯多個VXLAN,這些VXLAN共用該VXLAN隧道,VTEP根據VXLAN報文中的VXLAN ID來識別隧道傳遞的報文所屬的VXLAN。VTEP接收到某個VXLAN的泛洪流量後,如果采用單播路由泛洪方式,則VTEP將在與該VXLAN關聯的所有VXLAN隧道上發送該流量,以便將流量轉發給所有的遠端VTEP;如果采用泛洪代理方式,則VTEP通過與該VXLAN關聯、通過flooding-proxy參數開啟了泛洪代理功能的VXLAN隧道將泛洪流量發送給泛洪代理服務器。
VTEP必須與相同VXLAN內的其它VTEP建立VXLAN隧道,並將該隧道與VXLAN關聯。
(1) 進入係統視圖。
system-view
(2) 進入VSI視圖。
vsi vsi-name
(3) 進入VXLAN視圖。
vxlan vxlan-id
(4) 配置VXLAN與VXLAN隧道關聯。
tunnel { tunnel-number [ backup-tunnel tunnel-number | flooding-proxy ] | all }
缺省情況下,VXLAN未關聯VXLAN隧道。
參數 |
說明 |
backup-tunnel tunnel-number |
本參數指定的隧道作為備用VXLAN隧道,為主用VXLAN隧道提供保護。當主用VXLAN隧道down時,VXLAN將啟用備用VXLAN隧道 |
flooding-proxy |
如果指定了本參數,則VXLAN內的廣播、組播和未知單播流量將通過該隧道發送到泛洪代理服務器,由代理服務器進行複製並轉發到其他遠端VTEP |
將三層接口與VSI關聯後,從該接口接收到的報文,將通過查找關聯VSI的MAC地址表進行轉發。
本配置與以太網鏈路聚合功能互斥。三層接口加入聚合組後,不能再將該接口與VSI關聯;反之亦然。
(1) 進入係統視圖。
system-view
(2) 進入三層接口視圖。
interface interface-type interface-number
(3) 將三層接口與VSI關聯。
xconnect vsi vsi-name [ track track-entry-number&<1-3> ]
缺省情況下,三層接口未關聯VSI。
本地MAC地址可以靜態添加,也可以通過報文中的源MAC地址動態學習。在動態添加、刪除本地MAC地址時,可以記錄日誌信息。
遠端MAC地址表項的產生方法包括靜態添加、根據接收到的VXLAN報文內封裝的源MAC地址自動學習等。
請不要為EVPN動態創建的隧道配置靜態遠端MAC地址表項,避免出現如下問題:
· 如果公網側接口down,設備將刪除已創建的隧道,同時刪除為該隧道配置的靜態遠端MAC地址表項,公網側接口重新up後會自動重新建立隧道,但是無法恢複靜態遠端MAC地址表項;
· 如果執行了配置回滾操作,設備會重新創建隧道,新創建的隧道編號可能發生變化,造成配置回滾失敗。
有關EVPN的介紹請參見“EVPN配置指導”。
(1) 進入係統視圖。
system-view
(2) 添加靜態遠端MAC地址表項。
mac-address static mac-address interface tunnel tunnel-number vsi vsi-name
interface tunnel interface-number參數指定的隧道接口必須與vsi vsi-name參數指定的VSI對應的VXLAN關聯,否則配置將失敗。
如果網絡中存在攻擊,為了避免學習到錯誤的遠端MAC地址,可以手工關閉遠端MAC地址自動學習功能,手動添加靜態的遠端MAC地址。
(1) 進入係統視圖。
system-view
(2) 關閉遠端MAC地址自動學習功能。
vxlan tunnel mac-learning disable
缺省情況下,遠端MAC地址自動學習功能處於開啟狀態。
開啟本地MAC地址的日誌記錄功能後,VXLAN會立即根據已經學習到的本地MAC地址表項生成日誌信息,之後在增加或刪除本地MAC地址時也將產生日誌信息。生成的日誌信息將被發送到設備的信息中心,通過設置信息中心的參數,決定日誌信息的輸出規則(即是否允許輸出以及輸出方向)。
(1) 進入係統視圖。
system-view
(2) 開啟本地MAC地址的日誌記錄功能。
vxlan local-mac report
缺省情況下,本地MAC地址的日誌記錄功能處於關閉狀態。
缺省情況下,VTEP從本地站點內接收到目的MAC地址為廣播、未知單播和未知組播的數據幀後,會在該VXLAN內除接收接口外的所有本地接口和VXLAN隧道上泛洪該數據幀,將該數據幀發送給VXLAN內的所有站點;VTEP從VXLAN隧道接收到目的MAC地址為廣播、未知單播和未知組播的數據幀後,會在該VXLAN內的所有本地接口上泛洪該數據幀。通過本配置可以手工禁止某類數據幀在VXLAN內泛洪,以減少網絡中的泛洪流量。
禁止通過VXLAN隧道向遠端站點泛洪後,為了將某些單播或組播MAC地址的數據幀泛洪到遠端站點以保證某些業務的流量在站點間互通,可以配置選擇性泛洪的MAC地址,當數據幀的目的MAC地址匹配該MAC地址時,該數據幀可以泛洪到遠端站點。
(1) 進入係統視圖。
system-view
(2) 進入VSI視圖。
vsi vsi-name
(3) 關閉VSI的泛洪功能。
flooding disable { all | { broadcast | unknown-multicast | unknown-unicast } * } [ all-direction ]
缺省情況下,VSI泛洪功能處於開啟狀態。
(4) (可選)配置VSI選擇性泛洪的MAC地址。
selective-flooding mac-address mac-address
如果同時執行flooding disable命令關閉了VSI的泛洪功能,則建議通過mac-address timer命令配置動態MAC地址的老化時間大於25分鍾(ARP泛洪抑製表項的老化時間),以免MAC地址在ARP泛洪抑製表項老化之前老化,產生黑洞MAC地址。
如果配置了vxlan tunnel arp-learning disable命令,則設備從VXLAN隧道上接收到ARP請求報文後,不會采用匹配的ARP泛洪抑製表項對其進行應答。
(1) 進入係統視圖。
system-view
(2) 進入VSI視圖。
vsi vsi-name
(3) 開啟ARP泛洪抑製功能。
arp suppression enable
缺省情況下,ARP泛洪抑製功能處於關閉狀態。
(1) 進入係統視圖。
system-view
(2) 進入VSI視圖。
vsi vsi-name
(3) 開啟ND泛洪抑製功能。
ipv6 nd suppression enable
缺省情況下,ND泛洪抑製功能處於關閉狀態。
可在任意視圖下執行以下命令:
· 顯示Tunnel接口信息。
display interface [ tunnel [ number ] ] [ brief [ description | down ] ]
本命令的詳細介紹,請參見“三層技術-IP業務命令參考”中的“隧道”。
· 顯示VXLAN關聯的VXLAN隧道信息。
display vxlan tunnel [ vxlan-id vxlan-id ]
本命令的詳細介紹,請參見“接口管理命令參考”中的“隧道接口”。
可在任意視圖下執行以下命令:
· 顯示VSI的信息。
display l2vpn vsi [ name vsi-name ] [ verbose ]
· 顯示與VSI關聯的三層接口的L2VPN信息。
display l2vpn interface [ vsi vsi-name | interface-type interface-number ] [ verbose ]
可在任意視圖下執行以下命令,顯示VSI的MAC地址表信息。
display l2vpn mac-address [ vsi vsi-name ] [ dynamic ] [ count | verbose ]
請在用戶視圖下執行以下命令,清除VSI動態學習的MAC地址表項。
reset l2vpn mac-address [ vsi vsi-name ]
可在任意視圖下執行以下命令,顯示VSI的ARP泛洪抑製表項信息。
display arp suppression vsi [ name vsi-name ] [ slot slot-number [ cpu cpu-number ] ] [ count ]
請在任意視圖下執行以下命令,清除VSI的ARP泛洪抑製表項。
reset arp suppression vsi [ name vsi-name ]
可在任意視圖下執行以下命令,顯示VSI的ND泛洪抑製表項信息。
display ipv6 nd suppression vsi [ name vsi-name ] [ slot slot-number ] [ count ]
請在任意視圖下執行以下命令,清除VSI的ND泛洪抑製表項。
reset ipv6 nd suppression vsi [ name vsi-name ]
可在任意視圖下執行以下命令,顯示L2VPN的AC轉發信息。
display l2vpn forwarding ac [ vsi vsi-name ] [ slot slot-number [ cpu cpu-number ] ] [ verbose ]
Router A、Router B、Router C為與服務器連接的VTEP設備。虛擬機VM 1、VM 2和VM 3同屬於VXLAN 10。通過VXLAN實現不同站點間的二層互聯,確保虛擬機在站點之間進行遷移時用戶的訪問流量不會中斷。
具體需求為:
· 不同VTEP之間手工建立VXLAN隧道。
· 手工關聯VXLAN和VXLAN隧道。
· 通過源MAC地址動態學習遠端MAC地址表項。
· 站點之間的泛洪流量采用頭端複製的方式轉發。
圖2-1 VXLAN頭端複製組網圖
(1) 配置IP地址和單播路由協議
配置各接口的IP地址和子網掩碼,並在IP核心網絡內配置OSPF協議,具體配置過程略。
(2) 配置Router A
# 開啟L2VPN能力。
<RouterA> system-view
[RouterA] l2vpn enable
# 創建VSI實例vpna和VXLAN 10。
[RouterA] vsi vpna
[RouterA-vsi-vpna] vxlan 10
[RouterA-vsi-vpna-vxlan-10] quit
[RouterA-vsi-vpna] quit
# 配置接口Loopback0的IP地址,作為隧道的源端地址。
[RouterA] interface loopback 0
[RouterA-Loopback0] ip address 1.1.1.1 255.255.255.255
[RouterA-Loopback0] quit
# 在Router A和Router B之間建立VXLAN隧道:
¡ 創建模式為VXLAN的隧道接口Tunnel1
¡ 指定隧道的源端地址為本地接口Loopback0的地址1.1.1.1
¡ 指定隧道的目的端地址為Router B上接口Loopback0的地址2.2.2.2。
[RouterA] interface tunnel 1 mode vxlan
[RouterA-Tunnel1] source 1.1.1.1
[RouterA-Tunnel1] destination 2.2.2.2
[RouterA-Tunnel1] quit
# 在Router A和Router C之間建立VXLAN隧道。
[RouterA] interface tunnel 2 mode vxlan
[RouterA-Tunnel2] source 1.1.1.1
[RouterA-Tunnel2] destination 3.3.3.3
[RouterA-Tunnel2] quit
# 配置Tunnel1和Tunnel2與VXLAN 10關聯。
[RouterA] vsi vpna
[RouterA-vsi-vpna] vxlan 10
[RouterA-vsi-vpna-vxlan-10] tunnel 1
[RouterA-vsi-vpna-vxlan-10] tunnel 2
[RouterA-vsi-vpna-vxlan-10] quit
[RouterA-vsi-vpna] quit
# 在接入服務器的接口GigabitEthernet0/0/1上關聯VSI實例vpna。
[RouterA] interface gigabitethernet 0/0/1
[RouterA-GigabitEthernet0/0/1] xconnect vsi vpna
[RouterA-GigabitEthernet0/0/1] quit
(3) 配置Router B
# 開啟L2VPN能力。
<RouterB> system-view
[RouterB] l2vpn enable
# 創建VSI實例vpna和VXLAN 10。
[RouterB] vsi vpna
[RouterB-vsi-vpna] vxlan 10
[RouterB-vsi-vpna-vxlan-10] quit
[RouterB-vsi-vpna] quit
# 配置接口Loopback0的IP地址,作為隧道的源端地址。
[RouterB] interface loopback 0
[RouterB-Loopback0] ip address 2.2.2.2 255.255.255.255
[RouterB-Loopback0] quit
# 在Router A和Router B之間建立VXLAN隧道。
[RouterB] interface tunnel 2 mode vxlan
[RouterB-Tunnel2] source 2.2.2.2
[RouterB-Tunnel2] destination 1.1.1.1
[RouterB-Tunnel2] quit
# 在Router B和Router C之間建立VXLAN隧道。
[RouterB] interface tunnel 3 mode vxlan
[RouterB-Tunnel3] source 2.2.2.2
[RouterB-Tunnel3] destination 3.3.3.3
[RouterB-Tunnel3] quit
# 配置Tunnel2和Tunnel3與VXLAN10關聯。
[RouterB] vsi vpna
[RouterB-vsi-vpna] vxlan 10
[RouterB-vsi-vpna-vxlan-10] tunnel 2
[RouterB-vsi-vpna-vxlan-10] tunnel 3
[RouterB-vsi-vpna-vxlan-10] quit
[RouterB-vsi-vpna] quit
# 在接入服務器的接口GigabitEthernet0/0/1上關聯VSI實例vpna。
[RouterB] interface gigabitethernet 0/0/1
[RouterB-GigabitEthernet0/0/1] xconnect vsi vpna
[RouterB-GigabitEthernet0/0/1] quit
(4) 配置Router C
# 開啟L2VPN能力。
<RouterC> system-view
[RouterC] l2vpn enable
# 創建VSI實例vpna和VXLAN 10。
[RouterC] vsi vpna
[RouterC-vsi-vpna] vxlan 10
[RouterC-vsi-vpna-vxlan-10] quit
[RouterC-vsi-vpna] quit
# 配置接口Loopback0的IP地址,作為隧道的源端地址。
[RouterC] interface loopback 0
[RouterC-Loopback0] ip address 3.3.3.3 255.255.255.255
[RouterC-Loopback0] quit
# 在Router A和Router C之間建立VXLAN隧道。
[RouterC] interface tunnel 1 mode vxlan
[RouterC-Tunnel1] source 3.3.3.3
[RouterC-Tunnel1] destination 1.1.1.1
[RouterC-Tunnel1] quit
# 在Router B和Router C之間建立VXLAN隧道。
[RouterC] interface tunnel 3 mode vxlan
[RouterC-Tunnel3] source 3.3.3.3
[RouterC-Tunnel3] destination 2.2.2.2
[RouterC-Tunnel3] quit
# 配置Tunnel1和Tunnel3與VXLAN 10關聯。
[RouterC] vsi vpna
[RouterC-vsi-vpna] vxlan 10
[RouterC-vsi-vpna-vxlan-10] tunnel 1
[RouterC-vsi-vpna-vxlan-10] tunnel 3
[RouterC-vsi-vpna-vxlan-10] quit
[RouterC-vsi-vpna] quit
# 在接入服務器的接口GigabitEthernet0/0/1上關聯VSI實例vpna。
[RouterC] interface gigabitethernet 0/0/1
[RouterC-GigabitEthernet0/0/1] xconnect vsi vpna
[RouterC-GigabitEthernet0/0/1] quit
(1) 驗證VTEP設備(下文以Router A為例,其它設備驗證方法與此類似)
# 查看Router A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口處於up狀態。
[RouterA] display interface tunnel 1
Tunnel1
Current state: UP
Line protocol state: UP
Description: Tunnel1 Interface
Bandwidth: 64 kbps
Maximum transmission unit: 1464
Internet protocol processing: Disabled
Output queue - Urgent queuing: Size/Length/Discards 0/1024/0
Output queue - Protocol queuing: Size/Length/Discards 0/500/0
Output queue - FIFO queuing: Size/Length/Discards 0/75/0
Last clearing of counters: Never
Tunnel source 1.1.1.1, destination 2.2.2.2
Tunnel protocol/transport UDP_VXLAN/IP
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
# 查看Router A上的VSI信息,可以看到VSI內創建的VXLAN、與VXLAN關聯的VXLAN隧道、與VSI關聯的三層接口等信息。
[RouterA] display l2vpn vsi verbose
VSI Name: vpna
VSI Index : 0
VSI State : Up
MTU : 1500
Bandwidth : -
Broadcast Restrain : -
Multicast Restrain : -
Unknown Unicast Restrain: -
MAC Learning : Enabled
MAC Table Limit : -
MAC Learning rate : -
Drop Unknown : -
PW Redundancy Mode : Slave
Flooding : Enabled
VXLAN ID : 10
Tunnels:
Tunnel Name Link ID State Type Flood Proxy
Tunnel1 0x50000001 UP Manual Disabled
Tunnel2 0x50000002 UP Manual Disabled
ACs:
AC Link ID State
GE0/0/1 0x0 Up
# 查看Router A上VSI的MAC地址表項信息,可以看到已學習到的MAC地址信息。
[RouterA] display l2vpn mac-address
MAC Address State VSI Name Link ID/Name Aging
cc3e-5f9c-6cdb Dynamic vpna Tunnel1 Aging
cc3e-5f9c-23dc Dynamic vpna Tunnel2 Aging
--- 2 mac address(es) found ---
(2) 驗證主機
虛擬機VM 1、VM 2、VM 3之間可以互訪。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!