日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenStack网络模块核心OpenvSwitch的全面解读

發布時間:2024/2/28 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenStack网络模块核心OpenvSwitch的全面解读 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

一、OpenStack網絡

1.1?什么是SDN軟件定義網絡

軟件定義網絡(Software Defined Network)就是在虛擬化的背景下,為了滿足虛擬化環境下虛擬機對網絡的需求,逐步發展起來的技術。網絡虛擬化通常被稱為SDN(software defined network)軟件定義網絡。

如下圖,在某臺物理服務器中,運行著4臺虛擬機,為了將這4臺虛擬機在邏輯上組成我們需要的網絡架構,于是就虛擬成了2臺交換機,組成圖中的網絡架構。

?

1.2?虛擬網絡的挑戰

1.2.1 跟蹤設備移動狀態。

網絡端節點實體(比如虛擬機)的網絡狀態需要簡單確定,不同主機之間可相互遷移節點狀體。這些狀態包括傳統“軟狀態”,比如數據鏈路層學習表、三層路由轉發狀態、路由策略狀態、訪問控制列表、服務質量策略、配置監控及結構化自動化系統等。簡單來講,就是每個虛擬機移動時,其所帶虛擬接口策略如何主動隨之漂移。

1.2.2 維護虛擬化邏輯標記。

分布式虛擬交換機通常通過增加或管理虛擬機網絡數據,來維護虛擬網絡或邏輯區域上下文,這是容易理解的簡單方式,問題是正確和高效管理這些虛擬化標記非常困難。增加網絡標記,就增加新一層網絡信息,從另一方面間又增加了網絡復雜度。為簡化管理和提高效率,常常需要優化虛擬機標記存儲方式,包括保存虛擬化地址或重新映射、配置、修改和遷移標志。

1.2.3 集成操作系統和硬件。

把虛擬數據轉發路徑設計成“卸載”模式,數據包處理由硬件芯片完成,以獨立軟件或硬件芯片方式實現靈活控制,增加虛擬化網絡性能。獨立軟件開發商還可以使用接口增強虛擬邊界網絡功能,減少硬件交付到應用交付的負面影響,從而簡化、加速和減輕可擴展云的網絡管理。

?

二、Open vSwitch項目

2.1什么是Open vSwitch

OpenvSwitch簡稱OVS,正如其官網(http://openvswitch.org/)所述,OVS是一個高質量、多層的虛擬交換軟件。它的目的是通過編程擴展支持大規模網絡自動化,同時還支持標準的管理接口和協議。

隨著虛擬化應用普及,需要部署更多虛擬化軟交換交換機,而費用昂貴的閉源虛擬交換機讓用戶不堪重負,多層虛擬化軟件交換機Open vSwitch由Nicira Networks開發,主要實現代碼為可移植的C代碼。它遵循Apache 2.0開源代碼版權協議,可用于生產環境,支持跨物理服務器分布式管理、擴展編程、大規模網絡自動化和標準化接口,實現了和大多數商業閉源交換機功能類似的軟件交換機。

OVS官方的定位是要做一個產品級質量的多層虛擬交換機,通過支持可編程擴展來實現大規模的網絡自動化。設計目標是方便管理和配置虛擬機網絡,檢測多物理主機在動態虛擬環境中的流量情況。針對這一目標,OVS具備很強的靈活性。可以在管理程序中作為軟件switch運行,也可以直接部署到硬件設備上作為控制層。

?

?

2.2 Open vSwitch相關組件

ovs-vswitchd: 功能:實現switch的daemon功能,包括一個支持流交換的Linux內核模塊,實現了交換功能。ovsdb-vswtich: 功能:openvswitch的數據庫,給ovs-vswitchd提供運行配置信息,即保存了ovs-vswitchd的配置信息,例如vlan、port等信息。ovs-brcompatd: 功能:讓ovs-swtich替換Linux bridge,包括獲取bridge ioctls的內核模塊。ovs-dpctl: 功能:用來配置switch的內核模塊。ovs-vsctl: 功能:查詢和更新ovs-vswitchd的配置,即用于修改或查詢ovsdb-vswitch的信息。ovs-appctl: 功能:發送命令消息,運行相關daemon。ovs-pki: 功能:OpenFlow公鑰管理框架。ovs-bugtool: 功能:管理openvswitch的bug信息。

?

2.3 術語和邏輯概念

在Openvswitch的使用中,為了能全面地理解Openvswitch的內部原理,我們需要對其中的術語和概念有所了解。

Bridge:即網橋,在Openvswitch中每個虛擬交換機(vswitch)都可以認為是一個網橋,因為Openvswitch在底層的通信是借助了網橋模塊來實現的,同時我們通過brctl也能查看到ovs所創建的網橋設備。

?

Datapath:即數據通路,在Openvswitch中每個Bridge我們都可以理解為Datapath,也就是說Datapath就是虛擬交換機。

?

如上圖,每個Datapath項中我們都能看到存在幾個Port項,它們其實就是虛擬交換機(datapath)上的端口。如上br-tun項中,port2就與遠端的端口建立了gre隧道。

Flowtable:即數據流表,根據之前對OpenFlow的介紹,我們已經了解了Openvswitch中利用openflow協議在實現虛擬交換機,而數據流表就是提供給Bridge/Datapath做數據操作的指令。

Port:即端口,這里的端口是指虛擬交換機邏輯上的接口,我們可以通過ovs-vsctl命令查看各個網橋(即虛擬交換機)上的接入的端口。

Patch:即連線,我們可以理解為傳統交換機的Trunk,在這里就是網絡節點和運算節點間ovs虛擬交換的聯結。

下圖為網絡節點的br-int(用于VM的虛擬交換)。

?

下圖為運算節點上的br-int,我們可以看到其中一個端口(vport)是和網絡節點的br-int交換進行聯結的。它們的類型為“type:patch”,這樣的聯結就是Patch。

?

Tun/Tap:它們是Linux/Unix系統中的虛擬網絡設備,TAP等同于以太網設備,操作L2層數據鏈路層的數據幀;TUN則是模擬L3網絡層的設備,操作網絡層的IP數據包。

在OVS中,其GRE隧道模式在底層的實現是由TUN支持的,而TAP設備則是用來分隔openvswitch中不同的subnet。

如下圖,網絡節點上兩個TAP設備接入在br-int虛擬交換機中。

?

我們可以看到兩個TAP設備的IP地址是在Openvswitch中創建的2個subnet網絡的網關地址。

Vnet:即虛擬機的虛擬網卡,在運算節點上可以看到OVS對于vnet的管理和傳統的網橋模式不同,根據對設備物理地址的判斷,應該是OVS采用了相應的tunneling技術,具體不詳。

?

?

2.4 OVS內部結構分析

下面開始分析Openvswitch的內部結構,在Openvswitch的邏輯層面上存在一個Controller控制器,它是負責管理所有虛擬交換機的中心,而虛擬交換機在OVS也叫datapath(數據通路),它會將收集到的數據或事件傳送給控制器,例如一些端口的接入等。

Datapath實現路由轉發等高級特性是通過Flow Table(數據流表)來實現的。在OVS中,數據流標是根據OpenFlow的協議標準來實現的,由控制中心統一運算生成各個虛擬交換設備的Flow Table,并分發到各個Datapath中。

下圖是系統層面的邏輯圖。

其中datapath是處于系統的核心層(kernel space),我們可以將datapath理解為一個網橋(linux bridge)。處于用戶態(user space)的主要是openvswitch client、openflow client、ofproto library、netdev等等。

如上圖中,ofproto即openflow protocol的縮寫,它是一個openflow的庫,OVS的客戶端(如ovs-vswitchd、ovs-openflowd)就是通過調用這個庫來操作OVS的控制中心。

netdev則是設備抽象的API,它是由linux內核提供的,通過netdev這個API,可以直接與內核層的網絡設備通信,同時Flow table也處在內核層中,這樣當datapath依照flow table的規則處理數據流時就可以直接將操作傳送給內核層的網絡設備進行操作,這樣的傳輸性能是十分強悍的。

?

2.5 OVS內部通信

下面我們分析一下Openvswitch在工作中的通信過程。

傳統的交換機(包括linux bridge網橋)中轉發二層的數據包時,都是通過查找CAM表(二層交換機地址表)找到目的MAC對應的端口再進行轉發。

在openvswitch的實現中,由于其采用了openflow的規范標準,所以會先查找數據包是否有對應的流記錄,如果有則根據該條流記錄的action部分,對數據包進行操作,例如轉發到某端口。

?

如下圖中,一個虛擬交換機在openvswitch中就是一個datapath,當數據包通過物理路徑進入到OVS網絡節點,OVS會分析包的關鍵信息并和各個datapath的數據流表進行匹配,若有對應的條目則根據action來處理數據包;但是若沒有已存在的條目,則說明這個

?

2.6 ovs-vsctl使用指南

vos-vsctl命令格式: usage: ovs-vsctl [OPTIONS] COMMAND [ARG...]常見的OPTIONS有以下組成: --db=DATABASE :指定連接的數據庫,默認是unix:/var/run/openvswitch/db.sock --no-wait: 在使用時不等待ovs-vswitchd的重新配置 --retry:不斷嘗試連接遠端服務器 --t,-timeout=SECS: 等待ovs-vswitchd的超時時間 --dry-run: 嘗試運行修修改的配置但是不提交到ovsdb-vswitch數據庫 --oneline:將打印出的命令一行一行的顯示 -h,--help: 顯示幫助信息 -V,--version:顯示版本信息

常用的COMMAND有以下幾類:

OpenvSwitch的維護命令:init:初始化ovsdb-vswitch數據庫show:查看數據信息emer-reset: 重新設置openvswitch的狀態OpenvSwitch對橋設備操作相關的命令:add-br BRIDGE :添加一個橋設備add-br BRIDGE PARENT VLAN:在PARENT中創建一個橋,并做vlan標記del-br BRIDGE: 刪除一個橋設備list-br: 查看創建的橋設備br-exists BRIDGE: 判斷新創建的橋是否已經存在br-to-vlan BRIDGE: 列出橋設備的所有的valnbr-to-parent BRIDGE: 列出當前橋的上一個橋設備br-set-external-id BRIDGE KEY VALUE: 給橋添加額外的屬性,方式為 key vllue格式br-set-external-id BRIDGE KEY:撤銷橋設備額外的信息br-get-external-id BRIDGE KEY:列出橋設備額外的信息br-get-external-id BRIDGE :以key-value格式列出橋設備的額外信息OpenvSwitch對端口的操作命令:list-ports BRIDGE: 列出指定橋設備上的端口add-ports BRIDGE PORT :添加一個端口到橋設備,此端口可以事先不存在add-bond BRIDGE PORT IFACE...: 對橋設備做多端口綁定del-port [BRIDGE] PORT: 刪除一個端口或者刪除一個指定橋設備上的端口port-to-br PORT:列出端口所在的橋設備OpenvSwitch對接口操作的命令: list-ifaces BRIDGE: 列出橋設備上的所有接口iface-to-br IFACE: 列出接口所在的橋設備OpenvSwitch的控制命令:get-contorller BRIDGE: 獲取橋設備的控制器del-contorller BRIDGE: 刪除橋設備的控制器set-contorller BRIDGE TARGET...:給橋設備設置一個控制器get-fail-mode BRIDGE: 顯示橋設備錯誤的模式del-fail-mode BRIDGE: 刪除橋設備錯誤的模式set-fail-mode BRIDGE MODE: 設置橋設備失敗的模式為MODEOpenvSwitch管理相關的命令:get-manager: 列出openvswitch的管理者del-manager:刪除openvswitch的管理者set-manager TARGET....:設置管理者列表為TARGETOpenvSwitch安全相關的命令:get-ssl:獲取ssl的配置信息del-ssl: 刪除ssl的配置信息set-ssl PRIV-KEY CERT CA-CERT: 配置sslOpenvSwitch交換相關的命令:emer-rest: 重新設置未知交換機的狀態OpenvSwitch數據庫操作相關命令:listTBL [REC]: 列出TBL的資源記錄信息(ovs-vsctl list port )findTBL CONDITION....:查找相關的資源記錄信息getTBL REC COL[:KEY]:獲取TBL的信息setTBL REC COL[:KEY]=VALUE:設定TBL的額外屬性(ovs-vsctl set Port br1 tag=2)addTBL REC COL [KEY=]VALUE:添加一個[key=]value到TBLremove TBL REC COL [KEY=]VALUE:刪除TBL中的一個key值(ovs-vsctlremove Port br1 tag 2)clearTBL REC COL: 清除指定TBL的資源記錄信息create TBL COL [:KEY]=VALUE:在TBL中創建一個資源記錄信息destroy TBL REC:銷毀一個TBL的RECwait-until TBL REC [COL[:KEY]=VALUE]:等待TBL資源記錄配置完成常用的ARG參數:連接主數據庫的方法:tcp:IP:PORT: 指定連接遠端數據庫使用tcp協議,以及遠端主數據庫的ip地址跟端口ssl:IP:PORT: 指定連接遠端數據庫使用ssl協議,以及遠端主數據庫的ip地址跟端口unix:FILE:使用socket套接字連接主數據庫備用數據庫的連接方法:ptcp:IP:PORT: 指定連接遠端數據庫使用tcp協議,以及遠端備用數據庫的ip地址跟端口pssl:IP:PORT: 指定連接遠端數據庫使用ssl協議,以及遠端備用數據庫的ip地址跟端口punix:FILE:使用socket套接字連接備用數據庫PKI配置:-p,--private-key=FILE: 指定私有秘鑰的位置-c,--certificate=FILE:指定證書的位置-C,ca-cert=FILE:指定對端證書的

總結

以上是生活随笔為你收集整理的OpenStack网络模块核心OpenvSwitch的全面解读的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久精品国产99精品国产亚洲性色 | 日韩中文免费 | 美女视频黄a视频全免费观看 | 密臀av在线| 精品人妻伦一区二区三区久久 | 丝袜视频在线观看 | 中文字幕在线免费观看视频 | 亚洲喷潮 | 福利视频在线导航 | 国产无遮挡免费视频 | 国产调教在线 | 成人福利社 | 亚洲国产精品久久AV | 丝袜黄色片 | 日韩在线观看精品 | 亚洲国产精品女人久久久 | 极品美女销魂一区二区三区 | 久久大奶 | 老司机午夜av | 在线视频久久 | 情侣自拍av| 亚洲a成人 | 男人的天堂免费av | hs网站在线观看 | 成人夜色视频 | 欧美无遮挡 | 中文字幕天堂 | 天堂网在线播放 | 日韩中文av在线 | 亚洲成人av一区二区 | 日韩一级在线 | 91快射| 69超碰| 日韩成人一级片 | 99热精品免费 | www夜夜 | 九九热九九爱 | 台湾chinesehdxxxx少妇 | 免费成人深夜小野草 | 国产剧情久久久 | 涩涩视频在线免费看 | 有奶水的迷人少妇 | 日韩黄色一区二区 | 92久久| 美女黄色录像 | 一区二区三区四区日韩 | 久久久蜜桃一区二区人 | 亚洲爆爽 | 国产91久久精品一区二区 | 麻豆乱码国产一区二区三区 | 精品人妻无码在线 | 伊人精品视频在线观看 | 中文字幕一区二区三区手机版 | 国内黄色一级片 | 成人免费视频a | 亚洲精品国产一区二 | 伊人久久大香线蕉 | www99re| 美国av片 | 中文字幕不卡av | 精品一性一色一乱农村 | 亚洲成人91 | 国产拍拍拍 | 2017日日夜夜 | 精品国产乱码久久久久久婷婷 | 国产五十路| 男人插女人的网站 | 69精品视频 | 91 色| 蜜臀久久久久久999 大陆熟妇丰满多毛xxxⅹ | av图片在线观看 | 亚洲香蕉中文网 | 欧美激情日韩 | 99精品在线免费观看 | 不卡在线 | 久久精品亚洲精品 | 日韩另类| 久久93 | 久久不卡av | 欧美xxxx69| 亚洲AV无码成人精品一区 | 国产一区二区高清视频 | 日本国产在线观看 | 国产群p视频 | 蜜桃视频久久 | 超碰综合在线 | 视频国产在线 | 99久久人妻无码中文字幕系列 | 久久青青视频 | 麻豆一级片 | 自拍第一区 | 欧美a在线观看 | 亚洲特黄特色 | 日韩精品一区二区三区视频在线观看 | 成年人视频网站 | 国产91国语对白在线 | 亚洲色图小说 | 在线免费看av的网站 | 亚洲毛片在线免费观看 |