1. 程式人生 > >OVN Base flow L2/L3 forwarding

OVN Base flow L2/L3 forwarding

ada input open 傳統 計劃 支持 關系 develop network

OVN 支持分布式邏輯路由器,每個計算節點都有邏輯路由器的實例,模型和 neutron 的 DVR 類似。OVN 目前只實現了一些基本的路由功能,比如路由查找,路由報文的轉發還有動態 ARP,路由類型只支持直連路由,靜態路由,動態路由沒有計劃支持。

OVN 為每個 router interface 創建一對 OVS patch port,一個 patch port 連 logical switch,另一個連 logical router,和傳統網絡的拓撲一致。如下圖所示,logical router 有兩個 interface 分別連 network1 和 network2,OVN 為每個 router interface 創建一對 OVS patch port,一個接 logical router,另外一個接 network 對應的 logical switch。

技術分享

OVN 路由實驗邏輯網絡拓撲,如下圖:

技術分享

下面通過分析 br-int 裏面的這些 flow 來描述 OVN 的路由功能,分析 flow 之前需要先了解 OVN 裏面用到的一些特殊的 Openflow 字段:

  • Metadata:這個字段保存的是 logical datapath identifier,每個 switch 和 router 都對應唯一的一個 logical datapath identifer,它保存在 Southbound DB 裏面的表 Datapath_Binding 的列 tunnel_key 裏,由 ovn-northd 統一分配。進入相同 switch 或者 router 裏的報文的 metadata 的值相同。
  • Nicira extensive register 14(reg14):這個字段裏面保存的是 logical input port identifier,每個 neutron port 對應一個 logical input port identifier,它保存在 Southbound DB 裏面的表 Port_Binding 的列 tunnel_key 裏,由 ovn-northd 統一分配,在每個 logical datapath 裏唯一。從相同端口進入 br-int 裏的報文的 reg14 的值相同。

  • Nicira extensive register15(reg15): reg14 在 Openflow ingress pipeline 被賦值和使用, reg15 是在 Openflow egress pipeline 被賦值和使用。

執行pipeline期間Regxx代表的意義如下(openvswitch 2.6.0):

技術分享

Flow table與功能對應關系,如下表:

技術分享

OVN Working Pipeline 如下:

技術分享

參考文檔:

http://www.ibm.com/developerworks/cn/cloud/library/1605-ovn-introduction/index.html

http://blog.spinhirne.com/2016/09/an-introduction-to-ovn-routing.html

http://openvswitch.org/support/dist-docs/ovn-nbctl.8.html

http://openvswitch.org/support/dist-docs/ovs-ofctl.8.txt

OVN Base flow L2/L3 forwarding