iT邦幫忙

0

Cisco port mirror 與 hyper-v 的虛擬網路卡 流量監測問題

匿名 2014-10-31 16:34:127415 瀏覽
  1. 各位先進們好,我在測試cisco 將mirror port導入到hyper-v 的某台Centos vm上的虛擬網卡時,發現使用傳統網路介面卡時,可以偵測得到流量,但是是UDP的流量,於是我在HYPER-V中嘗試更換成標準的網路介面卡後,更詭異是完全沒有流量,但是在centos上設ip後確定是可以通的,所以我嘗試在hyper-v的host主機上裝wireshark,然後去monitor 虛擬網路卡的流量,的確只有UDP,再試著去monitor 那張虛擬網卡對應的實體網卡,結果tcp的流量都有,最終發現要去抓實體層的部份才抓得到流量資料。

想請問有前輩們在這部份有研究的嗎? 實體層的流量在虛擬層卻看不到,是為什麼呢? 有沒有解決方法,因為在虛擬主機上能用的網卡也只能指定由實體網卡產生的虛擬網卡,能否直接使用實體網卡呢?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

6
Ray
iT邦大神 1 級 ‧ 2014-10-31 17:22:11
最佳解答

Hyper-V 對 promiscous mode 的支援沒有 VMware 來得直覺...

  1. Hyper-v 2.0 似乎不支援 promiscous mode 的封包監聽
  2. Hyper-v 3.0 開始有限度的支援, 不過設定上比較複雜:

如果你是想要 VM 可以聽到外面送進來的封包, 必須把網卡的 Port Mirror Mode 設定成 Destination:

如果你是想要 VM 送出來的封包, 可以被其他 VM 聽到的話, 必須把網卡的 Port Mirror Mode 設定成 Source:

但是, 如果你是 VM 想要聽到外面實體網路的封包的話呢? 這邊就有限制了:

  1. 假設外面的封包是指定送給跑 Sniifer 這台 VM 的話, 將該 VM 網卡設定成 Destination Mode 可以聽到;
  2. 但若外面的封包, 是送給實體網路上的另外一台電腦, 或者是送給另一台 VM (不是跑 Sniffer 這台) 的話, 此時, 跑 Sniffer 這台 VM 就會聽不到.

要解決這個問題, 可能要加裝 Cisco 的 NEXUS 1000V 虛擬交換器...
相關資訊請參考:
Hyper-V Port Mirroring and Network Capture
Exploring Hyper-V Virtual Switch Port Mirroring
What's New in Hyper-V Virtual Switch
KB2885541 – Packet Sniffing Tools Misses Packets Via Hyper-V Port Mirroring

R大的回答都有好深的硬底子功夫
謝謝您每次精闢的回覆
讓後進們可以大大的進步

2
cmwang
iT邦大師 1 級 ‧ 2014-10-31 16:54:04

Guest要透過Virtual Switch才能touch到Physical NIC,而Virtual Switch既然是virtual出來的,原理上應該是靠Hypervisor判斷須要往哪個Guest forward,才往那個Guest forward,如果Hypervisor認為不須要forward給Guest(i.e. Mirror port送過來,destination MAC address既不是Ethernet broadcast也非Guest的MAC address的traffic),就算Guest跑promiscous mode也看不到吧疑惑疑惑....

匿名 檢舉

請問前輩,有沒有方式能直接讓VM 使用 實體網卡 嗎? 或者能讓Virtual switch 能直接透通呢?

我要發表回答

立即登入回答