CentOS下KVM網卡設置成網橋時獲取鏡像端口的流量


首先,網橋配置好之后就能實現一個簡單的交換機,而交換機的特點就是MAC地址學習,那么KVM的網卡設置成網橋之后,也就是相當於連接到了交換機上。

此時如果要實現在二層交換機或三層交換機做端口鏡像,並把這個鏡像的流量轉到這個虛擬機的網卡上,那么會出現無法實現的問題,下面我來分析一下原因:

1、配置好網橋就成了一個交換機,注意,不是集線器。

2、那么鏡像端口的流量只會到達物理網卡上,而物理網卡組成的交換機認得也就是物理網卡的MAC地址,那么此時KVM的網卡不會受到任何流量。因為KVM也是有MAC地址,並且這個MAC地址只會認為是交換機中的一台電腦而已。

3、那么如果此時要將物理網卡流量轉到KVM的網卡上,實現思路估計也是在虛擬交換機上做端口鏡像,而這種實現幾乎是不可能的。

4、那換一種思路,將這個網橋做成的交換機做成集線器,集線器沒有MAC地址學習,當有流量時會立刻分發到各個端口的主機,也就是實現端口鏡像。

通過以上分析,那么只需要這幾個命令即可:

# 關閉br1的mac地址學習功能和降低轉發延遲
brctl setageing br1 0 brctl setfd br1 0

注意:這幾個命令寫在開機啟動項/etc/rc.local上使其開機生效。研究過了,沒別的辦法可以實現。

以下內容為轉載:

Bridge(橋)是 Linux 上用來做 TCP/IP 二層協議交換的設備,與現實世界中的交換機功能相似。Bridge 設備實例可以和 Linux 上其他網絡設備實例連接,既 attach 一個從設備,類似於在現實世界中的交換機和一個用戶終端之間連接一根網線。每當這個從物理網卡設備收到數據時都會把數據轉發到 bridge 上,當 bridge 接收到此數據時,bridge進行一個和現實世界中的交換機類似的處理過程:判斷包的類別(廣播/單點),查找內部 MAC 端口映射表,定位目標端口號,將數據轉發到目標端口或丟棄,自動更新內部 MAC 端口映射表以自我學習。而我們關閉br1的mac地址學習功能,把br1作為一個hub來使用,使其直接把流量轉發到連接到br1的虛擬網卡vnet1。如果不關閉mac地址學習功能,由於br1收到的鏡像流量中數據包的目的mac地址不是虛擬機的mac地址,故會直接把收到的流量丟棄,不再進行轉發。

 

參考:

http://blog.51cto.com/leejia/2147300(以上內容部分轉自此篇文章)

http://www.just4coding.com/blog/2017/12/02/ovs-mirror/

https://docs.vmware.com/cn/VMware-NSX-T/1.1/com.vmware.nsxt.admin.doc/GUID-3D403B24-51F6-4A16-8266-0827BFE9FAA9.html

https://www.ibm.com/developerworks/cn/linux/1310_xiawc_networkdevice/index.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM