使用BGP E***方式部署分佈式網關VXLAN

BGP E***

VXLAN能夠通過VETP隧道實現大二層MAC IN UDP,但是沒有控制平面,雖然可以手動創建隧道,但是再面對大規模虛擬機場景下,基本不太現實,同時BUM報文氾濫,佔用帶寬
華爲的VXLAN方案可以通過BGP E***方式來充當控制平面,解決相關問題。
E***(Ethernet Virtual Private Network)是一種用於二層網絡互聯的***技術。E***技術採用類似於BGP/MPLS IP ***的機制,在BGP協議的基礎上定義了一種新的NLRI(Network Layer Reachability Information,網絡層可達信息)即E*** NLRI,E*** NLRI定義了幾種新的BGP E***路由類型,用於處在二層網絡的不同站點之間的MAC地址學習和發佈。

BGP E***路由

Type2路由,MAC/IP路由

報文格式
使用BGP E***方式部署分佈式網關VXLAN
字段解釋如下

使用BGP E***方式部署分佈式網關VXLAN

主要實現的功能是:

  1. 主機MAC地址通告

要實現同子網主機的二層互訪,兩端VTEP需要相互學習主機MAC。作爲BGP E***對等體的VTEP之間通過交換MAC/IP路由,可以相互通告已經獲取到的主機MAC。其中,MAC Address Length和MAC Address字段爲主機MAC地址。

  1. 主機ARP通告

MAC/IP路由可以同時攜帶主機MAC地址+主機IP地址,因此該路由可以用來在VTEP之間傳遞主機ARP表項,實現主機ARP通告。其中,MAC Address和MAC Address Length字段爲主機MAC地址,IP Address和IP Address Length字段爲主機IP地址。此時的MAC/IP路由也稱爲ARP類型路由。

Type3路由Inclusive Multicast路由

報文格式
使用BGP E***方式部署分佈式網關VXLAN

字段解釋如下:
使用BGP E***方式部署分佈式網關VXLAN

該類型路由在VXLAN控制平面中主要用於VTEP的自動發現和VXLAN隧道的動態建立。作爲BGP E***對等體的VTEP,通過Inclusive Multicast路由互相傳遞二層VNI和VTEP IP地址信息。其中,Originating Router's IP Address字段爲本端VTEP IP地址,MPLS Label字段爲二層VNI。如果對端VTEP IP地址是三層路由可達的,則建立一條到對端的VXLAN隧道。同時,如果對端VNI與本端相同,則創建一個頭端複製表,用於後續BUM報文轉發。

在vxlan跨子網通信的場景中,使用typ3路由

VXLAN分佈式網關

VXLAN網關劃分

和VLAN類似,不同VNI之間的VXLAN,及VXLAN和非VXLAN之間不能直接相互通信。爲了使VXLAN之間,以及VXLAN和非VXLAN之間能夠進行通信,VXLAN引入了VXLAN網關。

VXLAN網關分爲:
二層網關:用於解決租戶接入VXLAN虛擬網絡的問題,也可用於同一VXLAN虛擬網絡的子網通信。

三層網關:用於VXLAN虛擬網絡的跨子網通信以及外部網絡的訪問。

根據三層網關部署方式的不同,VXLAN三層網關又可以分爲集中式網關和分佈式網關。

分佈式網關

VXLAN分佈式網關是指在典型的“Spine-Leaf”組網結構下,將Leaf節點作爲VXLAN隧道端點VTEP,每個Leaf節點都可作爲VXLAN三層網關,Spine節點不感知VXLAN隧道,只作爲VXLAN報文的轉發節點。如下所示,Server1和Server2不在同一個網段,但是都連接到一個Leaf節點。Server1和Server2通信時,流量只需要在Leaf1節點進行轉發,不再需要經過Spine節點。
使用BGP E***方式部署分佈式網關VXLAN

VXLAN分佈式網關具有如下特點:
同一個Leaf節點既可以做VXLAN二層網關,也可以做VXLAN三層網關,部署靈活。
Leaf節點只需要學習自身連接服務器的ARP表項,而不必像集中三層網關一樣,需要學習所有服務器的ARP表項,解決了集中式三層網關帶來的ARP表項瓶頸問題,網絡規模擴展能力強。

分佈式網關模型

使用BGP E***方式部署分佈式網關VXLAN

VXLAN大二層,VNI標記二層域,VXLAN隧道實現域內連通
分佈式VXLAN網關,VNI標記三層VRF域,VXLAN隧道實現VRF連通
使用BGP E***方式部署分佈式網關VXLAN

分佈式網關實驗

實驗拓撲

使用BGP E***方式部署分佈式網關VXLAN

組網說明:
1、三臺CE交換機,按照spine-leaf組網,CE1屬於spine,可以使用不具備VXLAN的功能交換機,CE2,CE2分別數據LEAF-1,LEAF-2,除了作爲NVE接入點之外,充當分佈式網關,即
leaf作爲網關,兩個網關是一樣的
2、spine,leaf之間,underlay網絡使用ospf協議組網,使用area0,實現vtep之間的互通,每個ce交換機使用loopback接口,充當ospf的router id和vtep地址
3、spine,leaf之間,配置bgp,使用loopback接口配置全互聯鄰居都屬於一個AS 100,配置BGP E***協議來實現vxlan的控制層面,實現vxlan隧道的自動發現,配置
4、leaf交換機上,配置*** INSTANCE A,用來模擬區分不同租戶,使他們路由信息隔離
5、POD1,POD2,模擬數據中心下同一個租戶的不同網絡,實現同子網,跨子網通信
6、在leaf上,配置VNI10,VNI20二層VNI,實現VXLAN標記,滿足同一個VXLAN下同子網二層通信,同時在SPINE上配置VNI99三層VNI,滿足不同VXLAN下跨子網三層通信

現在需要通過分佈式網關,實現PC1->PC2的同子網和PC1->PC4的跨子網通信

POD網絡配置

PC1 :192.168.1.1/24 ,GW192.168.1.254
PC2:192.168.2.1/24,GW192.168.1.254
PC3:192.168.1.2/24,GW192.168.1.254
PC4:192.168.2.2/24,GW192.168.1.254
交換機S1配置VLAN10,20,對應PC1,PC2,S1配置如下:

interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 10 20
#
interface GigabitEthernet0/0/2
 port link-type access
 port default vlan 10
#
interface GigabitEthernet0/0/3
 port link-type access
 port default vlan 20

S2配置配置類似

UNDEYLAY配置

配置OSPF

CE1作爲SPINE,配置如下

[HUAWEI]sysname CE1
[CE1-LoopBack0]ip address 1.1.1.1 32
[CE1-LoopBack0]q    
[CE1]interface GE 1/0/1 
[CE1-GE1/0/1]undo portswitch 
[CE1-GE1/0/1]ip address 10.1.12.1 24
[CE1-GE1/0/1]q
[CE1]interface GE 1/0/2 
[CE1-GE1/0/2]undo portswitch    
[CE1-GE1/0/2]undo shutdown 
[CE1-GE1/0/2]ip address 10.1.13.1 24
[CE1-GE1/0/2]q
[CE1]ospf 1 router-id 1.1.1.1
[CE1-ospf-1]are 
[CE1-ospf-1]area 0
[CE1-ospf-1-area-0.0.0.0]network 10.1.12.0 0.0.0.255
[CE1-ospf-1-area-0.0.0.0]network 10.1.13.0 0.0.0.255
[CE1-ospf-1-area-0.0.0.0]network 1.1.1.1 255.255.255.0

CE2作爲leaf,配置如下:

<HUAWEI>system-view immediately 
[HUAWEI]sysname CE2
[CE2]interface LoopBack 0
[CE2-LoopBack0]ip address 2.2.2.2 32
[CE2-LoopBack0]q
[CE2]interface GE 1/0/1 
[CE2-GE1/0/1]undo portswitch 
[CE2-GE1/0/1]undo shutdown 
[CE2-GE1/0/1]ip address 10.1.12.2 24
[CE2-GE1/0/1]q
[CE2]ospf 1 router-id 2.2.2.2
[CE2-ospf-1]area 0
[CE2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[CE2-ospf-1-area-0.0.0.0]network 10.1.12.0 0.0.0.255
[CE2-ospf-1-area-0.0.0.0]q

CE3配置類似

配置完成後,檢查OSPF鄰居建立和路由,以CE2爲例

使用BGP E***方式部署分佈式網關VXLAN

配置BGP和BGP E***對等體

配置BGP全互聯,使用loopback接口,創建BGP E***對等體,同時使用發佈irb類型的路由,可以實現跨子網互訪

CE1配置如下:

[CE1]e***-overlay enable
[CE1]bgp  100
[CE1-bgp]peer 2.2.2.2 as-number 100
[CE1-bgp]peer 3.3.3.3 as-number 100
[CE1-bgp]peer 2.2.2.2 connect-interface LoopBack 0  
[CE1-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[CE1-bgp]l2***-family e*** 
[CE1-bgp-af-e***]   
[CE1-bgp-af-e***]peer 2.2.2.2 enable    
[CE1-bgp-af-e***] peer 2.2.2.2 advertise irb    
[CE1-bgp-af-e***]peer 3.3.3.3 enable 
[CE1-bgp-af-e***] peer 3.3.3.3  advertise irb   

CE2,CE3配置類似
配置完成後檢查bgp鄰居和BGP e***鄰居建立情況,以CE1爲例

使用BGP E***方式部署分佈式網關VXLAN

使用BGP E***方式部署分佈式網關VXLAN

LEAF的CE2,CE3的***實例和E***實例

使用BGP E***方式部署分佈式網關VXLAN
在***實例中,除了配置本地***實例的ERT X和IRT X外,還需要配置帶E***參數的ERT Y和IRT Y,用於和對端E***實例交叉,生成主機路由。
在E***實例中,除了針對不同的BD配置不同的ERT A、ERT B和IRT A、IRT B外,還必須配置用來和對端***實例交叉的ERT Y。一般情況下不需要配置IRT Y,否則會導致不同BD下的E***實例相互擴散MAC地址。

配置E***實例,以CE2爲例

[CE2]bridge-domain 10
[CE2-bd10]vxlan vni 10  
[CE2-bd10]e*** 
[CE2-bd10-e***]rou  
[CE2-bd10-e***]route-distinguisher 100:1
[CE2-bd10-e***]***-target 100:1 both 
 IVT Assignment result:
Info: ***-Target assignment is successful.
 EVT Assignment result:
Info: ***-Target assignment is successful.
[CE2-bd10-e***]q
[CE2-bd10]q
[CE2]bridge-domain 20
[CE2-bd20]vxlan vni 20  
[CE2-bd20]e*** 
[CE2-bd20-e***]route-distinguisher 100:2
[CE2-bd20-e***]vp   
[CE2-bd20-e***]***-target 100:2 b   
[CE2-bd20-e***]***-target 100:2 both 

說明:
1、不同的BD域只能綁定一個vxlan vni
2、ERT和IRT即***-target ,注意配置正確,即CE2的bd10的***-target和CE3的bd10的***-target一致,不然無法正確傳遞和接受
3、E***的rd值和***的rd值可以配置一樣,方便區分,但是兩者不是一個概念

CE3的e***實例配置與CE2類似,不再重複

配置***實例,以CE2爲例

創建***實例A,用於區別不同租戶,配置RD值爲100:1,同時配置***-target,同時綁定E***實例,注意,需要創建三層vni,同時爲三層vni綁定E***實例

[CE2]ip ***-instance A
[CE2-***-instance-A]vxlan vni 99    
[CE2-***-instance-A]route-distinguisher 100:1 
[CE2-***-instance-A-af-ipv4]***-target 100:1 both 
 IVT Assignment result:
Info: ***-Target assignment is successful.
 EVT Assignment result:
Info: ***-Target assignment is successful.
[CE2-***-instance-A-af-ipv4]***-target 100:1 both e*** 
 IVT Assignment result:
Info: ***-Target assignment is successful.
 EVT Assignment result:
Info: ***-Target assignment is successful.
[CE2-***-instance-A-af-ipv4]***-target 100:2 import-extcommunity e*** 
 EVT Assignment result:
Info: ***-Target assignment is successful.

說明:
1、相同的***實例RD值要一致
2、vxlan vni 99爲三層vni,二層VNI用於同子網互訪,三層VNI用於跨子網互訪。bd域下綁定的就是二層vni
3、配置100:2的e***實例是爲了將 三層vni 99發佈,三層VNI可以隨意指定,但是不能和二層vni相同

CE3配置與此一樣

配置LEAF的CE2,CE3的BD接口作爲分佈式網關

CE2上配置vbdif10,vbdif20,分別作爲分佈式網關,對應各自的BD域
bdif接口綁定***實例,開啓分佈式網關功能

[CE2]interface Vbdif 10
[CE2-Vbdif10]ip binding ***-instance A
[CE2-Vbdif10]ip address 192.168.1.254 24
[CE2-Vbdif10]arp distribute-gateway enable  
[CE2-Vbdif10]arp collect host enable 
[CE2-Vbdif10]q
[CE2]interface Vbdif 20 
[CE2-Vbdif20]ip binding ***-instance A
[CE2-Vbdif20]IP address 192.168.2.254 24
[CE2-Vbdif20]arp distribute-gateway enable 
[CE2-Vbdif20]arp collect host enable

CE3的配置與此一致
關於arp collect host enable命令功能如下
使用BGP E***方式部署分佈式網關VXLAN

配置完成了後,在POD1,POD2,因爲租戶都是***實例A,可以區分租戶路由

配置LEAF的CE2,CE3的vxlan接入點

CE2配置BD10,BD20,分別綁定vni10,vni20,同時配置二層子接口,以DOT1Q方式終結VLAN

[CE2]interface GE 1/0/2
[CE2-GE1/0/2]undo shutdown
[CE2]bridge-domain 10
[CE2-bd10]vxlan vni  10
[CE2-bd10]q
[CE2]interface GE 1/0/2.1 mode l2
[CE2-GE1/0/2.1]bridge-domain 10 
[CE2-GE1/0/2.1]encapsulation dot1q vid 10
[CE2]interface GE 1/0/2.2 mode l2   
[CE2]bridge-domain 20
[CE2-bd20]vxlan vni 20
[CE2-bd20]q 
[CE2]interface GE 1/0/2.2 mode l2 
[CE2-GE1/0/2.2]bridge-domain 20 
[CE2-GE1/0/2.2]encapsulation dot1q vid 20

CE3配置與之類似

配置完成後,測試pc1,PC2與leaf分佈式網關的連通性

使用BGP E***方式部署分佈式網關VXLAN

配置CE2,CE2的vxlan隧道自動發現

因爲使用的bgp e***作爲控制層面,所以不用再手動配置vxlan 隧道

CE2上的配置如下

[CE2]interface Nve 1
[CE2-Nve1]source 2.2.2.2
[CE2-Nve1]vni 10 head-end peer-list protocol bgp 
[CE2-Nve1]vni 20 head-end peer-list protocol bgp 

CE3配置類似

配置完成,再CE2檢查隧道配置
使用BGP E***方式部署分佈式網關VXLAN

至此CE2,和CE3之間的vxlan隧道動態建立成功

測試分佈式網關功能

同一個LEAF下不同子網

測試如下
流量走向

使用BGP E***方式部署分佈式網關VXLAN
PC1 ping PC3 通

使用BGP E***方式部署分佈式網關VXLAN

此時數據包沒有經過vxlan隧道,就像三層轉發一樣

不同LEAF下同一個子網

流量走向

使用BGP E***方式部署分佈式網關VXLAN

P1 ping PC2通
使用BGP E***方式部署分佈式網關VXLAN

數據包經過了VXLAN 隧道,在CE2的ge1/01接口抓包

使用BGP E***方式部署分佈式網關VXLAN

1.可以看到同一個子網,VXLAN VNI是一樣的,都是VNI 10
2.可以看到VTEP信息,2.2.2.2->3.3.3.3

不通LEAF下的不同子網

流量走向,經過vxlan,同時經過不同網關
使用BGP E***方式部署分佈式網關VXLAN

此時PC1 ping PC4

使用BGP E***方式部署分佈式網關VXLAN

在CE2上抓包分析

使用BGP E***方式部署分佈式網關VXLAN

可以看到,在跨子網通信時,經過三層VNI,vxlan的vni是99,並非二層VNI

irb 路由

在進行跨子網的通信時,E***鄰居之間必須發佈IRB路由,Type3路由——Inclusive Multicast路由。如果不配置或者發佈路由類型錯誤,都無法滿足
跨子網通信
使用BGP E***方式部署分佈式網關VXLAN

在手動觸發e***更新後,可以觀察到irb路由信息

<CE2>refresh bgp e*** all ex    
<CE2>refresh bgp e*** all export 
<CE2>refresh bgp e*** all im    
<CE2>refresh bgp e*** all import 

可以看到bgp鄰居更新信息

使用BGP E***方式部署分佈式網關VXLAN

查找irb路由更新
使用BGP E***方式部署分佈式網關VXLAN

使用BGP E***方式部署分佈式網關VXLAN

通過irb,將去往不同子網的主機路由注入到***實例的路由表中
使用BGP E***方式部署分佈式網關VXLAN

完了完成irb路由正常發佈和三層vni能夠正常傳遞,需要在***實例中配置三層vni的e***實例綁定
使用BGP E***方式部署分佈式網關VXLAN
這樣,在LEAF上能夠被注入主機路由,從而達到跨子網訪問
使用BGP E***方式部署分佈式網關VXLAN

好複雜額

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章