Linux 在监视器接口上接收到数据包,但不是主接口
我正在从头开始构建UDP数据包(包括802.11 MAC、LLC、IP和UDP报头),并使用LORCON将它们注入无线网络。接收主机有一个接口Linux 在监视器接口上接收到数据包,但不是主接口,linux,sockets,udp,wifi,tcpdump,Linux,Sockets,Udp,Wifi,Tcpdump,我正在从头开始构建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
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
值得一提的是,按照建议设置net.ipv4.conf.all.rp_filter=0
没有任何效果。设置net.ipv4.ip_forward=1也不起作用。启用net.ipv4.conf.all.log\u martians
不会在系统日志中产生任何输出
任何关于为什么这可能是最受欢迎的提示
FWIW,这台机器运行的是Ubuntu 12.04.3,但内核是3.5.7
编辑:我刚刚发现了一些有趣的东西:
tcpdump-I any
也不打印任何东西。只有在显式运行tcpdump-imon0
时,我才能看到传入的数据包。为什么有些东西会被排除在-i any
之外?经过许多徒劳的实验后,我决定简单地将主界面置于监视器模式,并使用
iw dev wlan0 set type monitor
ip link set wlan0 promisc on
然后使用pcap提取问题中的数据包。增加了对pcap的依赖,但也比试图找出Linux内核中的数据包要容易得多。可以找到pcap的良好介绍
iw dev wlan0 set type monitor
ip link set wlan0 promisc on