1. 程式人生 > >Linux網絡卡混雜模式(轉自cnblogs)

Linux網絡卡混雜模式(轉自cnblogs)

混雜模式就是接收所有經過網絡卡的資料包,包括不是發給本機的包,即不驗證MAC地址。普通模式下網絡卡只接收發給本機的包(包括廣播包)傳遞給上層程式,其它的包一律丟棄。
一般來說,混雜模式不會影響網絡卡的正常工作,多在網路監聽工具上使用。
網絡卡具有如下的幾種工作模式:
1) 廣播模式(Broad Cast Model):它的實體地址(MAC)地址是 0Xffffff 的幀為廣播幀,工作在廣播模式的網絡卡接收廣播幀。
2)多播傳送(MultiCast Model):多播傳送地址作為目的實體地址的幀可以被組內的其它主機同時接收,而組外主機卻接收不到。但是,如果將網絡卡設定為多播傳送模式,它可以接收所有的多播傳送幀,而不論它是不是組內成員。
3)直接模式(Direct Model):工作在直接模式下的網絡卡只接收目地址是自己 Mac地址的幀。
4)混雜模式(Promiscuous Model):工作在混雜模式下的網絡卡接收所有的流過網絡卡的幀,信包捕獲程式就是在這種模式下執行的。

網絡卡的預設工作模式包含廣播模式和直接模式,即它只接收廣播幀和發給自己的幀。如果採用混雜模式,一個站點的網絡卡將接受同一網路內所有站點所傳送的資料包這樣就可以到達對於網路資訊監視捕獲的目的。
 

1,未設定支援promisc
[[email protected] libpcap-1.3.0]# ifconfig eth0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.18  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe90:90e9  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:90:90:e9  txqueuelen 1000  (Ethernet)
        RX packets 1529593  bytes 116632252 (111.2 MiB)
        RX errors 0  dropped 13  overruns 0  frame 0
        TX packets 260  bytes 57720 (56.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2,設定支援promisc
[[email protected] libpcap-1.3.0]# ifconfig eth0 promisc 

3,已設定支援promisc
[[email protected] libpcap-1.3.0]# ifconfig eth0

eth0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        inet 192.168.1.18  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe90:90e9  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:90:90:e9  txqueuelen 1000  (Ethernet)
        RX packets 1534849  bytes 117018556 (111.5 MiB)
        RX errors 0  dropped 14  overruns 0  frame 0
        TX packets 262  bytes 58237 (56.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

4,設定不支援promisc
[[email protected] libpcap-1.3.0]# ifconfig eth0 -promisc