OVS的學習理解(部分修改,部分轉載引用)
Q: 什麼是 OpenvSwitch(即常說簡稱:OVS)?
A: OpenvSwitch 是一個生產環境質量級的、開源的虛擬交換機軟體。在虛擬化環境中,單個物理機的上的不同虛擬機器、多個物理機上的不同虛擬機器之間通過它進行網路通訊。OpenvSwitch 被設計為可以與當下流行的交換機晶片相容,這意味著它可以與物理交換機協同工作,並提供自由、靈活的管理手段。
Q: OpenvSwtich 支援哪些虛擬化平臺?
A: OpenvSwitch 支援執行在 Linux上 的下列虛擬化平臺: KVM, VirtualBox, Xen, Xen Cloud Platform, XenServer.
Q: 怎樣獲取 OpenvSwitch?
A: 可以在 Linux 下編譯原始碼;Debian, Ubuntu, Fedora的軟體倉庫中已有軟體包,可以直接安裝使用;下載最新的 XenServer 或 Xen Cloud Platform 的 ISO 映象,它們已經整合了 OpenvSwitch。
Q: 為何要用 OpenvSwitch 替換 Linux Bridge?
A: 相比於簡單的 Linux Bridge,OpenvSwitch 可以實現網路隔離、QoS 配置、流量監控、資料包分析等物理交換網路所具有的功能。
Q: OpenvSwitch 與 VMware vNetwork distributed switch or the Cisco Nexus 1000V 這樣的分散式虛擬交換應用有何不同?
A: 分散式虛擬交換應用提供一個集中管理、監控遠端主機上的網路的功能。而 OpenvSwitch 本身不具備分散式架構,OpenvSwitch 單獨執行在每個物理主機上,而由上層管理軟體來提供分散式特性。
Q: 為何 OpenvSwitch 不是分散式架構?
A: OpenvSwitch 意圖成為一個被用來自由構建網路的實用元件。分散式網路系統需要平衡簡單性、可擴充套件性、硬體相容性、收斂時間等。相比於實現一套有特定優劣的系統,OpenvSwitch 選擇成為一個基本元件。
Q: 我把 OpenvSwitch 認作是一個虛擬乙太網交換機,但是為何文件中不斷的提到 bridge,什麼是 bridge?
A: 在計算機網路中,術語 bridge 與 switch 是同義詞。OpenvSwitch 實現一個乙太網交換機(Ethernet switch),與實現一個乙太網橋(Ethernet Bridge)是幾個意思,奧不對,是一個意思。
Q: 如何將一個埠配置為 ACCESS 埠?
A: 將 tag=VLAN,新增至你的 ovs-vsctl add-port 命令中。
例如,下列命令將 eth0 配置為 br0 的 trunk 埠。tap0 配置為 br0 的 access 埠,屬於 VLAN9。
ovs-vsctl add-br br0
ovs-vsctl add-port br0 eth0
ovs-vsctl add-port br0 tap0 tag=9
如果想將一個已經添加了的埠設定為 access 埠,可以使用 ovs-vsctl set 命令,例如:
ovs-vsctl set port tap0 tag=9
Q: 我建立了一個 bridge,然後把我的物理網絡卡與其綁定了,就像這樣:
ovs-vsctl add-br br0
ovs-vsctl add-port br0 eth0
然後,然後我的 eth0 網絡卡就宕了!救命!(=_=)
A: 一塊物理乙太網卡如果作為 OpenvSwitch bridge 的一部分,則它不能擁有 IP 地址,如果有,也會完全不起作用。如果發生了上述情況,你可以將 IP 地址繫結至某 OpenvSwitch “internal” 裝置來恢復網路訪問功能。
例如,假設你的 eth0 IP 地址為 192.168.128.5,在執行上文問題中的命令後,你可以使用如下方法來將 IP 地址繫結至br0 上:
ifconfig eth0 0.0.0.0
ifconfig br0 192.168.128.5
Q: 我建立了一個 bridge,然後我把兩塊物理網絡卡繫結到了上面,就像這樣:
ovs-vsctl add-br br0
ovs-vsctl add-port br0 eth0
ovs-vsctl add-port br0 eth1
然後,我的網路訪問就完全混亂了!CPU 利用率也非常高!(=_=)
A: 基本上,你把你的網路打成一個環了。
在上面的設定下,OpenvSwitch 在 eth0 上收到一個廣播包後會將其發給 eth1,然後 eth1 上的物理交換機又將這個廣播包發還給 eth0,如此往復。當有多個 switch 時,還會產生更復雜的情況。
解決方案1:
如果你想將 eth0 與 eth1 都繫結至同一個 bridge 從而獲得更大的頻寬、更高的可靠性,可以像下面這樣做:
ovs-vsctl add-br br0
ovs-vsctl add-bond br0 bond0 eth0 eth1
解決方案2:
如果你不想把他們放到一塊,你可以弄兩個 bridge 嘛:
ovs-vsctl add-br br0
ovs-vsctl add-port br0 eth0
ovs-vsctl add-br br1
ovs-vsctl add-port br1 eth1
解決方案3:
如果你已經擁有了一個複雜或冗餘的網路拓撲結構,但你想預防結環,你就需要開啟生成樹協議(spanning tree protocol, STP).
按照下面的命令序列,依序建立 br0, 開啟 STP, 然後將 eth0 與 eth1 繫結至 br0.
ovs-vsctl add-br br0
ovs-vsctl set bridge br0 stp_enable=true
ovs-vsctl add-port br0 eth0
ovs-vsctl add-port br0 eth1
Q: 我好像不能在無線網路中使用 OpenvSwitch?
A: 不可以,Linux Bridge 也不可以。
Q: 有關於 OpenvSwitch 資料庫的表結構的文件麼?
A: 有的,ovs-vswitchd.conf.db(5) 有詳細解釋。
Q: 我執行 ovs-dpctl 的時候看不到已建立的 bridge,而只看到一個名叫 ovs-system 的datapath。我怎樣能看到特定 bridge 的 datapath?
A: 在 OpenvSwitch 1.9.0 版中,所有 switch 都共享單個 datapath。命令 ovs-appctl dpif/* 提供與 ovs-dpctl 類似的 datapath 資訊,但是按照不同的 bridge 區分。
Q: 什麼是VLAN?
A: 最簡單的來說,VLAN(Virtual LAN 的縮寫)技術就是把一個交換機劃分為多個交換機的技術。舉個例子,你有兩組機器 A 與 B,你想讓 A 與 B 中的機器只能組內訪問,兩個交換機當然可以,但是如果你只有一個交換機,你就可以使用 VLAN技術來做同樣的事。通過設定 A 中機器為 VLAN1 的access port,B 中的機器為 VLAN2 的 access port,使交換機僅僅會在同一 VLAN 的埠之間轉發資料包。這樣你就把一個交換機劃分為兩個獨立的交換機來使用了。
相關推薦
OVS的學習理解(部分修改,部分轉載引用)
Q: 什麼是 OpenvSwitch(即常說簡稱:OVS)? A: OpenvSwitch 是一個生產環境質量級的、開源的虛擬交換機軟體。在虛擬化環境中,單個物理機的上的不同虛擬機器、多個物理機上的不同虛擬機器之間通過它進行網路通訊。OpenvSwitch 被
Ipv6_Only 簡單的理解(已驗證,專案已經上線)
網上好多關於ipv6的資料,說半天ipv6是什麼,怎麼建立測試環境,,,可是沒有看到具體的操作和解決的方案,這裡,為大家提供一種方案,希望給大家帶來幫助吧。 總的來說有三個方面需要進行檢查和修改: 1、專案裡面涉及和網路有關的網路請求是否支援ipv6。 2、專案裡面涉及和網路有關的sdk是否支援ipv6。
樹狀陣列(區間修改,單點查詢)
這裡介紹樹狀陣列+差分思想,算是對下面大神的補充吧。 何為差分現在我們有一個從小到大的數列a[] a{1,3,6,8,9}; 然後還有一個差分陣列b[] b{1,2,3,2,1} 相信某些小夥伴已經看
二維樹狀陣列(區間修改,單點查詢)
好像不管是幾維都和一維原理差不多,多了一個維度也就多了一層迴圈而已(QAQ) #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath&g
我的LTE學習筆記(總篇,CSDN下載連結)
本人自己總結的LTE學習文件,有時間會繼續更新 http://download.csdn.net/download/a34140974/10269899 文件內繪圖基本為本人繪製,敬請使用,但請標明
MongoDB 學習筆記之 TTL索引,部分索引和文本索引
強制 類型 支持 行存儲 pan 事件 搜索 篩選 ext TTL索引: TTL集合支持mongodb對存儲的數據進行失效時間設置,經過指定的時間段後、或在指定的時間點過期,集合自動被mongod清除。這一特性有利於對一些只需要保存一定時間的數據信息進行存儲,比如機器產生
總結篇-Javascript部分(絕對乾貨,未完待續...)
0-0.常用的四種設計模式 1.工廠模式:解決多個相似的問題; 2.單例模式:只能被例項化一次; 3.沙箱模式:自執行函式,使用閉包把內部方法暴露出來,例: var fn=(function(){ function aFn(){}; return {
總結篇-CSS部分(絕對乾貨,未完待續...)
1.自定義溢位顯示...(省略號) //情景一:單行顯示省略號 div{ width:100px; //多寬就要顯示省略號 overflow:hidden; //溢位隱藏 text-overflow:ellipsis; //文字溢位模式 whit
Swift學習總結(個人總結,以方便理解為主)
swift總結 一、註冊cell 1.用nib, 向 tableview 註冊 cell 全域性變數 let cellIdentifier = "myCell" myTableView!.registerNib(UINib(nibName: "MyCell", bundle
XRecyclerView實現RecyclerView下拉重新整理上來載入 自己做了部分修改,使程式碼更簡潔易用
首先感謝 開源作者 /** * Created by jianghejie on 15/11/26. */ 的無私奉獻 我是在他的基礎上做的修改 以前一直是用的XListView 可是 測試發現有一個奇奇怪怪的BUG,我們還無法解決。最嚴重的是 XListV
Jquery學習理解 (課堂)
n) out checked 返回值 數組 sub 綁定 addclass index Jquary概述 3 1.Jquary簡介 3 1.1什麽是jquery 3 2.使用jquary 4 2.1瀏覽器如何解析HTML文件 4 2.2利用選擇器定位節點 4 2.3調用方法
solr學習三(測試類,含普通與ExtractingRequestHandler測試)
list clas map ber -h div comment test bst solr客戶端基本是配置出來的,服務端可以對其進行測試,我使用的是solrj服務端。 如果初學solr,先使用普通的測試類: Java代碼 import java.io.IO
python 學習筆記(循環,print的幾種寫法,操作符)
alt 例如 並且 col str .com 判斷 標準 一起 一、循環( for, while) while循環是指在給定的條件成立時(true),執行循環體,否則退出循環。for循環是指重復執行語句。 break 在需要時終止for /while循環 continue
Mysql——實現按字段部分升序,部分降序的方法
font none cor 知識庫 family sta 字段 select lec mysql order排序時可以通過asc參數實現升序,desc參數實現降序。 例如: 升序排序:select * from 表名 order by 字段 asc
大資料分析學習筆記(Z檢驗,分類器以及Association Rule)
大資料分析學習筆記(Z檢驗,分類器以及Association Rule) Task 1 – Hypothesis Testing To improve student learning performance, a teacher developed two new learning app
python學習日記(格式化輸出,初始編碼,運算子)
格式化輸出:顧名思義,按照個人意願定製想輸出的格式。 name = input('請輸入姓名:') age = int(input('請輸入年齡:')) job = input('請輸入工作:') hobbie = input('您的愛好:') msg='''********information o
python學習日記(格式化輸出,初始編碼,運算符)
() 邏輯運算 格式化 學習日記 解決 單位 升級版 特殊 愛好 格式化輸出:顧名思義,按照個人意願定制想輸出的格式。 name = input(‘請輸入姓名:‘) age = int(input(‘請輸入年齡:‘)) job = input(‘請輸入工作:‘) hobb
PADS學習1(基礎入門,認識PADS)
編寫時間:2018.8 版本:PADS9.5 網路資源較為豐富,學習下載都很方便。 教材1:PADS9.5實戰攻略與高速PCB設計 林超文 編著 教材2:我要自學網 PADS9.5視訊教程 講師 王龍 http://www.51zxw.net/list.aspx?cid=628 教材3:逆天
【迅為iTop4412學習筆記】2. make menuconfig即Kconfig的仿寫(簡單說說,但是很重要)
在寫第5篇的註冊驅動的時候,發現還是要寫一下這裡,這裡其實就圍繞了Kconfig展開 make menuconfig 是圖形化配置介面,Kconfig是真正背後修改的檔案。 看一下linux的結構會發現,目錄裡有個Kconfig,而它包含了子目錄下的Kconfig,子目錄的Kco
使用SpringMVC的crud操作時,進行資料修改,但是修改成功後,頁面無法顯示lastName屬性值(被修改的那條記錄)
我這個錯誤的原因在於,把map的鍵寫錯了,它必須和類名第一個字母小寫相同 @ModelAttribute public void getEmployee(@RequestParam(value="id",required=false) Integer id, Map&l