溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行OVS VxLAN Flow分析

發(fā)布時間:2021-11-19 14:16:43 來源:億速云 閱讀:152 作者:柒染 欄目:云計算

本篇文章為大家展示了如何進行OVS VxLAN Flow分析,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

OVS 的數(shù)據(jù)流向都是由 Flow 規(guī)則控制的,今天我們就來分析 VxLAN 的 Flow 規(guī)則。

下面分析控制節(jié)點上的 flow rule,計算節(jié)點類似。

br-int 的 flow rule

br-int 的 rule 看上去雖然多,其實邏輯很簡單,br-int 被當作一個二層交換機,其重要的 rule 是下面這條:

cookie=0xaaa0e760a7848ec3, duration=52798.625s, table=0, n_packets=143, n_bytes=14594, idle_age=9415, priority=0 actions=NORMAL

此規(guī)則的含義是:根據(jù) vlan 和 mac 進行轉發(fā)。

br-tun 的 flow rule

這些才是真正處理 VXLAN 數(shù)據(jù)包的 rule,

各方塊中的數(shù)字對應 rule 中 table 的序號,比如編號為0的方塊對應下面三條 rule。

table 0

cookie=0xaaa0e760a7848ec3, duration=76707.867s, table=0, n_packets=70, n_bytes=6600, idle_age=33324, hard_age=65534, priority=1,in_port=1 actions=resubmit(,2)
 

cookie=0xaaa0e760a7848ec3, duration=76543.287s, table=0, n_packets=56, n_bytes=4948, idle_age=33324, hard_age=65534, priority=1,in_port=2 actions=resubmit(,4)
 

cookie=0xaaa0e760a7848ec3, duration=76707.867s, table=0, n_packets=0, n_bytes=0, idle_age=65534, hard_age=65534, priority=0 actions=drop

table 0 flow rule 的含義為:

  1. 從 port 1(patch-int)進來的包,扔給 table 2 處理:actions=resubmit(,2)

  2. 從 port 2(vxlan-a642100b)進來的包,扔給 table 4 處理:actions=resubmit(,4)

即第一條 rule 處理來自內部 br-int(這上面掛載著所有的網(wǎng)絡服務,包括路由、DHCP 等)的數(shù)據(jù);第二條 rule 處理來自外部 VXLAN 隧道的數(shù)據(jù)。

table 4

cookie=0xaaa0e760a7848ec3, duration=76647.039s, table=4, n_packets=56, n_bytes=4948, idle_age=33324, hard_age=65534, priority=1,tun_id=0x64 actions=mod_vlan_vid:1,resubmit(,10)

table 4 flow rule 的含義為: 如果數(shù)據(jù)包的 VXLAN tunnel ID 為 100(tun_id=0x64),action 是添加內部 VLAN ID 1(tag=1),然后扔給 table 10 去學習。

table 10

cookie=0xaaa0e760a7848ec3, duration=76707.865s, table=10, n_packets=56, n_bytes=4948, idle_age=33324, hard_age=65534, priority=1 actions=learn(table=20,hard_timeout=300,priority=1,cookie=0xaaa0e760a7848ec3,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:0->NXM_OF_VLAN_TCI[],load:NXM_NX_TUN_ID[]->NXM_NX_TUN_ID[],output:NXM_OF_IN_PORT[]),output:1

table 10 flow rule 的含義為: 學習外部(從 tunnel)進來的包,往 table 20 中添加對返程包的正常轉發(fā)規(guī)則,然后從 port 1(patch-int)扔給 br-int。

rule 中下面的內容為學習規(guī)則,這里就不詳細討論了。

NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:0->NXM_OF_VLAN_TCI[],load:NXM_NX_TUN_ID[]->NXM_NX_TUN_ID[],output:NXM_OF_IN_PORT[]

table 2

cookie=0xaaa0e760a7848ec3, duration=76707.866s, table=2, n_packets=28, n_bytes=3180, idle_age=33324, hard_age=65534, priority=0,dl_dst=00:00:00:00:00:00/01:00:00:00:00:00 actions=resubmit(,20)
 

cookie=0xaaa0e760a7848ec3, duration=76707.866s, table=2, n_packets=42, n_bytes=3420, idle_age=33379, hard_age=65534, priority=0,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=resubmit(,22)

table 2 flow rule 的含義為:

  1. br-int 發(fā)過來數(shù)據(jù)如果是單播包,扔給 table 20 處理:resubmit(,20)

  2. br-int 發(fā)過來數(shù)據(jù)如果是多播或廣播包,扔 table 22 處理:resubmit(,22)

table 20

cookie=0xaaa0e760a7848ec3, duration=76543.287s, table=20, n_packets=28, n_bytes=3180, idle_age=33324, hard_age=65534, priority=2,dl_vlan=1,dl_dst=fa:16:3e:fd:8a:ed actions=strip_vlan,set_tunnel:0x64,output:2
 

cookie=0xaaa0e760a7848ec3, duration=76707.865s, table=20, n_packets=0, n_bytes=0, idle_age=65534, hard_age=65534, priority=0 actions=resubmit(,22)

table 20 flow rule 的含義為:

  1. 第一條規(guī)則就是 table 10 學習來的結果。內部 VLAN 號為 1(tag=1),目標 MAC 是 fa:16:3e:fd:8a:ed(virros-vm2)的數(shù)據(jù)包,即發(fā)送給 virros-vm2 的包,action 是去掉 VLAN 號,添加 VXLAN tunnel ID 100(十六進制 0x64),并從 port 2 (tunnel 端口 vxlan-a642100b) 發(fā)出。

  2. 對于沒學習到規(guī)則的數(shù)據(jù)包,則扔給 table 22 處理。

table 22

cookie=0xaaa0e760a7848ec3, duration=76543.282s, table=22, n_packets=2, n_bytes=84, idle_age=33379, hard_age=65534, dl_vlan=1 actions=strip_vlan,set_tunnel:0x64,output:2
 

cookie=0xaaa0e760a7848ec3, duration=76707.82s, table=22, n_packets=40, n_bytes=3336, idle_age=65534, hard_age=65534, priority=0 actions=drop

table 22 flow rule 的含義為: 如果數(shù)據(jù)包的內部 VLAN 號為 1(tag=1),action 是去掉 VLAN 號,添加 VXLAN tunnel ID 100(十六進制 0x64),并從 port 2 (tunnel 端口 vxlan-a642100b) 發(fā)出。

VXLAN 的路由和 floating IP 支持

對于多 VXLAN 之間的 routing 以及 floating IP,實現(xiàn)方式與 vlan 非常類似,這里不再贅述,請參看前面 vlan 相關章節(jié)。

重點討論 Neutron 的架構,并通過分析 Linux Bridge 和 Open vSwitch 兩個 mechnism driver 的技術細節(jié),實踐了 local,flat,vlan,vxlan 四種網(wǎng)絡類型,同時也討論了 routing 以及 floating IP 的實現(xiàn)細節(jié)。

Linux Bridge 和 Open vSwitch 都支持 Securet Group,F(xiàn)irewall as a Service ,Load Balancing as a Service 等高級功能,其實現(xiàn)方式也大致相同。

上述內容就是如何進行OVS VxLAN Flow分析,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI