介紹前,首先講一下網絡中underlay和overlay的概念。underlay指的是物理網絡層,overlay是指在物理網絡層之上的邏輯網絡或者又稱爲虛擬網絡。overlay是創建在underlay的基礎上,須要物理網絡中的設備兩兩互聯,overlay的出現突破了underlay的物理侷限性,使得網絡的架構更爲靈活。以vlan爲例,在underlay環境下不一樣網絡的設備須要鏈接至不一樣的交換機下,若是要改變設備所屬的網絡,則要調整設備的連線。引入vlan後,調整設備所屬網絡只須要將設備加入目標vlan下,避免了設備的連線調整。api
# bridge-domain 10 //建立一個編號爲10的bd vxlan vni 5000 //設置bd10對應的vni爲5000 #
vtep會根據以上配置生成bd與vni的映射關係表,該映射表能夠經過命令行查看,以下所示:
有了映射表後,進入vtep的報文就能夠根據本身所屬的bd來肯定報文封裝時該添加哪一個vni。問題就剩下報文根據什麼來肯定本身屬於哪一個bd。
它能夠經過二層子接口接入vxlan隧道和vlan接入vxlan隧道來實現。二層子接口主要作兩件事:一是根據配置來檢查哪些報文須要進入vxlan隧道;二是判斷對檢查經過的報文作怎樣的處理。
如上圖所示,基於二層物理接口10GE 1/0/1,分別建立二層子接口10GE 1/0/1.1和10GE 1/0/1.2,且分別配置其流封裝類型爲dot1q和untag。配置以下: 服務器
# interface 10GE1/0/1.1 mode l2 //建立二層子接口10GE1/0/1.1 encapsulation dot1q vid 10 //只容許攜帶VLAN Tag 10的報文進入VXLAN隧道 bridge-domain 10 //報文進入的是BD 10 # interface 10GE1/0/1.2 mode l2 //建立二層子接口10GE1/0/1.2 encapsulation untag //只容許不攜帶VLAN Tag的報文進入VXLAN隧道 bridge-domain 20 //報文進入的是BD 20 #
基於二層物理接口10GE 1/0/2,建立二層子接口10GE 1/0/2.1,且流封裝類型爲default。配置以下: 網絡
# interface 10GE1/0/2.1 mode l2 //建立二層子接口 10GE1/0/2.1 encapsulation default //容許全部報文進入VXLAN隧道 bridge-domain 30 //報文進入的是BD 30 #
至此,全部條件都已具有,就能夠經過協議自動創建vxlan隧道隧道,或者手動指定vxlan隧道的源和目的ip地址在本端vtep和對端vtep之間創建靜態vxlan隧道。對於華爲CE系列交換機,以上配置是在nve(network virtualization Edge)接口下完成的。配置過程以下: 架構
# interface Nve1 //建立邏輯接口 NVE 1 source 1.1.1.1 //配置源VTEP的IP地址(推薦使用Loopback接口的IP地址) vni 5000 head-end peer-list 2.2.2.2 vni 5000 head-end peer-list 2.2.2.3 #
其中,vni 5000的對端vtep有兩個,ip地址分別爲2.2.2.2和2.2.2.3,至此,vxlan隧道創建完成。
VXLAN隧道兩端二層子接口的配置並不必定是徹底對等的。正由於這樣,纔可能實現屬於同一網段可是不一樣VLAN的兩個VM經過VXLAN隧道進行通訊。
總結一下,vxlan目前支持三種封裝類型,以下表所示:
這種方法當有衆多個vni的時候,須要爲每個vni建立一個子接口,會變得很是麻煩。
此時就應該採用vlan接入vxlan隧道的方法。vlan接入vxlan隧道只須要在物理接口下容許攜帶這些vlan的報文經過,而後再將vlan與bd綁定,創建bd與vni對應的bd信息,最後建立vxlan隧道便可。
vlan與bd綁定的配置以下: dom
# bridge-domain 10 //建立一個編號爲10的bd l2 binding vlan 10 //將bd10與vlan10綁定 vxlan vni 5000 //設置bd10對應的vni爲5000 #