Open vSwitch ETHERNET相關字段詳解(eth_src/dl_src、eth_dst/dl_dst、eth_type/dl_type)

字段概覽

備註:由於歷史原因,某些字段會有多個名字,如下表,/後面表示該字段的其他名字

字段名 長度 格式 Masking 前置項 訪問權限 OpenFlow 1.0 OpenFlow 1.1 NXM/OXM Support 描述
eth_src/dl_src 48位 以太網地址 支持任意位掩碼 Ethernet 讀/寫 exact match only yes OF 1.2+ and OVS 1.1+ 以太網幀的源MAC地址
eth_dst/dl_dst 48位 以太網地址 支持任意位掩碼 Ethernet 讀/寫 exact match only yes OF 1.2+ and OVS 1.1+ 以太網幀的目的MAC地址
eth_type/dl_type 16位 十六進制 不支持 Ethernet 只讀 exact match only exact match only OF 1.2+ and OVS 1.1+ 表示裝在這個以太網幀裏的數據的類型

字段詳解

以太網是Open vSwitch唯一一個支持的2層網絡協議。eth_src/dl_src、eth_dst/dl_dst比較簡單,分別匹配數據包的源MAC地址和目的MAC地址,以下重點解釋eth_type/dl_type這個字段。

eth_type/dl_type

最常見的以太網幀的報文頭格式爲“Ethernet II”,如下:
在這裏插入圖片描述
在這種格式中,最後兩個字節表示以太網的類型,並且值大於等於0x600 (1536),用於表示裝在這個Frame裏面數據的類型,此時eth_type/dl_type的值就取自這兩個字節。
當最後兩個字節<0x600時,則表示該幀不是Ethernet II格式,此時在Ethernet頭後面一般會有一個802.2 LLC的頭,OpenFlow和Open vSwitch只支持IEEE 802.3 SNAP格式的LLC頭,即DSAP=0xaa、SSAP=0xaa、cntl=0x03,LLC後面會跟一個5個字節大小的SNAP,OpenFlow和OVS只支持org=0x000000的SNAP,在這個格式的以太網幀中,eth_type/dl_type的值取自SNAP的後兩個字節的值。
在這裏插入圖片描述
當一個802.1Q頭插入到Ethernet之後時,如下:
在這裏插入圖片描述
eth_type/dl_type取自Ethertype。
當在802.3 SNAP格式中插入802.1Q頭時,如下:
在這裏插入圖片描述
此時eth_type/dl_type也取自Ethertype。
當一個數據包的報文頭不滿足上述格式時,OVS和OpenFlow把eth_type/dl_type設爲0x5ff(OFP_DL_TYPE_NOT_ETH_TYPE)。

eth_type/dl_type各個取值的含義參考:EtherType

參考資料:

  1. IEEE 802.2 LLC協議
  2. 以太網幀格式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章