2017年4月22日 星期六

ESXI 虛擬交換器和實體交換器的差別


ESXI上有虛擬交換器是給虛擬機用的,那虛擬交換器和實體交換器傳輸行為上有什麼區別呢?


實體交換器交換Frame使用的是mac address-table,所以交換器需要維護一個mac address-table表,才能知道MAC往哪個Port送。



但是虛擬機交換器中,虛擬交換器當然知道所有虛擬機的MAC,所以就不需要維護mac address-table了,多此一舉,所以他的決定會變成。

1.虛擬交換器收到一個Frame。
2.傳送給已知MAC的虛擬機。
3a.如果從外部收到一個傳送給未知道MAC的Frame,那就丟掉這個Frame。
3b.如果從內部收到一個傳送給未知道MAC的Frame,那就往Uplink送。

這個就跟實體交換器有非常大的差別的,實體交換器收到一個未知的MAC就會做FLOODING,往所有PORT丟。



因此如果我們虛擬機上有一個以上的MAC呢?比方說在虛擬在虛擬的環境下,虛擬機(MAC:CD)帶了一個虛擬機(MAC:AB)的Frame出去,由於是從內部收到一個傳送給未知道MAC的Frame,那就往Uplink送,但是從外部收到一個傳送給未知道MAC的Frame,那就丟掉這個Frame,所以出的去但是回不來。


一般我們的解決方式就是把Promiscuous Mode打開,預設是關閉的,這個模式很像實體交換器mac address-table被塞爆,所有行為都變成FLOODING,等同HUB,每個虛擬機都會收到所有unicast的封包,因此效能和安全性都不好,這個模式一般是給IDS(入侵偵測系統)使用,他可以收到所有網路上傳送的封包。


我們在一台虛擬機裡面再裝VMware Workstation,模擬虛擬在虛擬,在打開Promiscuous Mode之後果然虛擬機就可以上網了。


我這台是192.168.4.99,但可以看到192.168.4.97 unicast的封包,這是因為虛擬機上網的流量也被FLOODING給其他虛擬機,有心人可以藉此窺取資料。

沒有留言:

張貼留言