一、網絡架構圖
二、基於網絡架構圖分析VXLAN
VXLAN的作用是什么,他有點像GRE隧道。GRE隧道的作用可以幫助京某公司內部與淘某公司之間內網不同網段的私有IP進行通信,其原理就是將源私有和目標私有IP封裝到出口網關IP的后面,如果中間跨域多個不同網段,其他設備查看數據包的時候只會查看網關IP的源目,而不會再往后面拆開看私有IP的源目錄,所以可以順利通過路由到達目的網關,目的網關接收到后就會拆開數據包頭部,查看網關IP源目和私有IP的源目,目的網關在根據私有源目將數據轉發到內部對應的主機。
GRE有一個缺點,那就是他不能將兩個不同網絡的內部同網段IP進行轉發,因為在同網段的情況下,交換機會認為還是在內部網絡,就會發送ARP報文。ARP只能在內網中傳輸,不能跨局域網,所以GRE就無法做到這一點,而我們VXLAN就可以做到。
特別注意一下,普通的三層交換無法實現VXLAN,得使用CE交換機
VXLAN原理及實現步驟:
VXLAN的原理可以結合架構圖分析VXLAN,假設京某公司的PC1想要ping淘某公司的PC5,這個時候PC1的ICMP包會到SW1交換機中,SW1交換的GE0/0/2口設置為了VLAN10,所以會將數據包封裝上tag10的幀。
SW1此時會查看自己的ARP表,發現並么有這個【192.168.1.1 源MAC 192.168.1.2 目MAC】這張對應表,所以就會發送未知的ARP【192.168.1.1 源MAC 192.168.1.2 FF-FF-FF-FF-FF-FF-FF-FF】,然后將ARP包擴散到其他同VLAN接入的主機包括CE1。
CE1收到ARP包后如果配置了VXLAN,CE1就會將源有的tag10給抹掉,打上vni,CE1就會查看頭端復制列表,這個列表中對應了轉發規則,如果查到了對應關系,他就會將ARP轉發給CE2,ARP封裝成【源IP 10.0.0.11 目IP 10.0.0.12 源CE1MAC 目CE2MAC UDP VXLANVNID 私源IP 192.168.1.1 私源PC1MAC 目源IP 192.168.1.2 FF-FF-FF-FF-FF-FF-FF-FF】轉發給CE2。
CE2收到CE1發過來的數據包后,會拆開數據包,會根據GE1/0/1的子接口上綁定的vni來判斷,如果vni標簽相同,則交給對應綁定的子接口來轉發,子接口在將vni標簽撕掉,然后轉發給SW2。
SW2收到的數據包結構就變成了【源IP 192.168.1.1 目IP192.168.1.2 源MACPC1 目MAC FF-FF-FF-FF-FF-FF-FF-FF tag 10】,SW2就會將這個數據包放在VLAN10的接口上進行泛紅,轉發給其他主機后就會將tag幀剝離。
最總PC5收到這個數據包,發現目IP是訪問它的,他就會發送APR相應包【源IP 192.168.1.2 目的IP 192.168.1.1 源MACPC2 目的MACPC1】發送給SW2,SW2在打上tag 10,然后后面的步驟就和前面一樣了。
VXLAN用於解決的問題:
有人可能會問題,既然VXLAN可以根據分析的原理來實現,那為什么不直接在vlan的基礎上去開發,而是重新整了一個vxlan呢?,原因是vlan的vid少,只有4096個,假設內網有超過4096個部門需要,那么vlan就不夠用了,而我們的vxlan將近有160多萬的vni。
特別是我們公有雲,公有雲在做分布式架構時,雲主機不可能都分配在一個服務器或者一個局域網內,需要將他們的分散到不同計算節點服務器上,那如果我們買了10個雲主機,我需要它們10個雲主機內網需要互通怎么辦?這時候vni就起作用了,直接通過封裝的形式搞定。
有了vxlan,就可以讓不同網絡的同網段內網像是連接在同一個叫交換機一樣的感覺。
VXLAN的數據包為什么還加了UDP協議
可以取觀察一下抓包分析,我們的源IP、目的IP、協議號,都是固定的不會變,假設流量除了外網,外網中出現負載均衡的情況,這個數據的這些全部都是固定的,那么基於什么來進行負載均衡呢?這樣就會導致所有數據往一邊走。如果我們加入了UDP,UDP源端口是通過head隨機生成的,目的端口是固定的,這個時候負載均衡就可以根據UDP源端口進行負載均衡。
三、VXLAN實驗
SW-1
stp disable
vlan batch 10 20 30 40
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan all
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 10
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 20
#
interface GigabitEthernet0/0/4
port link-type access
port default vlan 30
#
interface GigabitEthernet0/0/5
port link-type access
port default vlan 40
SW-2
stp disable
vlan batch 10 20 30 40
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan all
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 10
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 20
#
interface GigabitEthernet0/0/4
port link-type access
port default vlan 30
#
interface GigabitEthernet0/0/5
port link-type access
port default vlan 40
CE1
###################保存配置####################
system-view immediately
#它需要在用戶模式下敲,CE你配置了東西他不會立即生效,需要使用commit保存配置,而這條命令的作用就是一直保存配置
###################vxlan配置###################
bridge-domain 10
vxlan vni 10
#創建橋接域,一個橋接域等於一個局域網,橋接域可以和vni以及vid不一樣
#在橋接域中綁定vni 10,這個vni 10可以和橋接域的id以及vid不一樣
#
interface GE1/0/0
undo portswitch
#關閉交換功能,變成路由功能
undo shutdown
ip address 10.0.0.11 255.255.255.0
#
interface GE1/0/1
undo shutdown
#
interface GE1/0/1.10 mode l2
#配置子接口,子接口模式需要改成l2
encapsulation dot1q vid 10
#封裝dot1q協議,vid必須和vlan的id一樣
bridge-domain 10
#綁定橋接域10
#
interface Nve1
#創建nve接口,類似GRE隧道接口差不多的作用
source 10.0.0.11
#指定源地址《指公網IP》
vni 10 head-end peer-list 10.0.0.12
#指定目的地址《指公網IP》
###################vxlan狀態查看###################
[CE1]display vxlan tunnel
Number of vxlan tunnel : 1
Tunnel ID Source Destination State Type Uptime
--------------------------------------------------------------------------------
---
4026531842 10.0.0.11 10.0.0.12 up static 00:17:44
#可以看到State是up的就可以了
[CE1]display vxlan peer
Number of peers : 1
Vni ID Source Destination Type Out Vni ID
-------------------------------------------------------------------------------
10 10.0.0.11 10.0.0.12 static 10
#這個就是前面講的頭端復制列表,他會將未知也就是目的MAC不知道的幀根據這個列表進行轉發
CE2:
###################保存配置####################
#和CE1配置其實基本一致,只不過是nve接口的源目IP調換了一下
system-view immediately
#在用戶模式敲
###################vxlan配置###################
bridge-domain 10
vxlan vni 10
#
interface GE1/0/0
undo portswitch
undo shutdown
ip address 10.0.0.12 255.255.255.0
#
interface GE1/0/1
undo shutdown
#
interface GE1/0/1.10 mode l2
encapsulation dot1q vid 10
bridge-domain 10
#
interface Nve1
source 10.0.0.12
vni 10 head-end peer-list 10.0.0.11
四、VXLAN實驗結果測試
配置同IP,不需要配置網關,因為我們是一個VLAN一個局域網的形式來訪問的
能夠ping通實驗成功