10、網絡簡介及混雜模式
和磁盤設備類似,Linux 用戶想要使用網絡功能,不能通過直接操作硬件完成,而需要直接或間接的操作一個 Linux 為我們抽象出來的設備,既通用的 Linux 網絡設備來完成。一個常見的情況是,系統裏裝有一個硬件網卡,Linux 會在系統裏為其生成一個網絡設備實例,如 eth0,用戶需要對 eth0 發出命令以配置或使用它了。更多的硬件會帶來更多的設備實例,虛擬的硬件也會帶來更多的設備實例。隨著網絡技術,虛擬化技術的發展,更多的高級網絡設備被加入了到了 Linux 中,使得情況變得更加復雜。在以下章節中,將一一分析在虛擬化技術中經常使用的幾種 Linux 網絡設備抽象類型:Bridge、802.1.q VLAN device、VETH、TAP,詳細解釋如何用它們配合 Linux 中的 Route table、IP table 簡單的創建出本地虛擬網絡。
二、混雜模式
混雜模式(Promiscuous Mode)是指一臺機器能夠接收所有經過它的數據流,而不論其目的地址是否是它。是相對於通常模式(又稱“非混雜模式”)而言的。
這被網絡管理員使用來診斷網絡問題,但是也被無認證的想偷聽網絡通信(其可能包括密碼和其它敏感的信息)的人利用。
混雜模式就是接收所有經過網卡的數據包,包括不是發給本機的包。默認情況下網卡只把發給本機的包(包括廣播包)傳遞給上層程序,其它的包一律丟棄。簡單的講,混雜模式就是指網卡能接受所有通過它的數據流,不管是什麽格式,什麽地址的。
事實上,計算機收到數據包後,由網絡層進行判斷,確定是遞交上層(傳輸層),還是丟棄,還是遞交下層(數據鏈路層、MAC子層)轉發。
對於廣播式集線器(Hub)來說,假如PC1、PC2、PC3接在同一個Hub上,當PC1給PC3發送包時,Hub將廣播這個包,所以PC2實際上也可以看到這個包,但一般情況下它會將這個發給PC3的包丟棄,但如果處於混雜模式,PC2的網卡驅動程序就不會丟棄這個包,而是把這個包送給上層的驅動程序,應用程序。
10、網絡簡介及混雜模式