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
提案されているように設定しても効果はありません。設定もしません。有効にすると、syslog に出力が生成されません。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
ですか?