2013-10-17 31 views
0

我正在從零開始構建UDP數據包(包括802.11 MAC,LLC,IP和UDP標頭),並使用LORCON將它們注入無線網絡。接收主機具有接口wlan0在規則的,管理模式(但沒有連接到任何AP),並且我添加了一個子接口mon0在監控模式下運行這樣:在監視器接口上接收到的數據包,但不是主接口

iw dev wlan0 interface add mon0 type monitor 

觀看監控接口顯示該分組被正確地接收:

$ sudo tcpdump -vei mon0 udp 
tcpdump: WARNING: mon0: no IPv4 address assigned 
tcpdump: listening on mon0, link-type IEEE802_11_RADIO (802.11 plus radiotap header), capture size 65535 bytes 
<time> <signal info> DA:Broadcast BSSID:... SA:... LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Ethernet (0x000000), ethertype IPv4 (0x0800): (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 53) 
    10.0.0.1.1234 > 255.255.255.255.1234: UDP, length 17 

然而,如果用完sudo tcpdump -vei wlan0,沒有分組被打印,即使兩個MAC和IP目的地址被設置爲廣播地址。源地址設置爲一個虛構的地址,但我不認爲這應該阻止tcpdump看到該數據包?

$ ip link 
... 
7: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc mq state DOWN qlen 1000 
    link/ether 00:21:6a:c5:3e:7a brd ff:ff:ff:ff:ff:ff 
8: mon0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN qlen 1000 
    link/ieee802.11/radiotap 00:21:6a:c5:3e:7a brd ff:ff:ff:ff:ff:ff 

對於它的價值,設定net.ipv4.conf.all.rp_filter=0的建議here沒有效果。設置net.ipv4.ip_forward=1也沒有。啓用net.ipv4.conf.all.log_martians不會在系統日誌中產生輸出。

任何指針,爲什麼這可能是最受歡迎的!

FWIW,該機器運行Ubuntu 12.04.3,但使用3.5.7內核。

編輯:這裏有一些有趣的,我剛剛發現:tcpdump -i any也不打印任何東西。只有當我明確運行tcpdump -i mon0時,才能看到傳入數據包。爲什麼會被排除在-i any之外?

回答

1

許多徒勞的實驗後,我決定索性把監控模式的主界面與

iw dev wlan0 set type monitor 
ip link set wlan0 promisc on 

然後用PCAP的問題來提取數據包。添加對pcap的依賴關係,但也比試圖找出Linux內核中的數據包要容易得多。一個很好的介紹pcap可以找到here

相關問題