Я хочу захватывать весь трафик на моем сервере Iperf, который я прослушиваю беспорядочно, даже если мой IP-адрес не является предполагаемым.
Я знаю, что это можно сделать с помощью адресов Multicast, но я не хочу идти этим путем: многоадресная рассылка по Wi-Fi приводит к потере пропускной способности.
У меня текущая настройка: 3 хоста, каждый со своим собственным сетевым адаптером wifi в режиме promiscoous. Я хочу узнать, сколько пакетов UDP можно получить, просто прослушивая promiscoously.
Например:
На хосте 1 запущен клиент iperf: iperf -c 192.168.4.197 -B 192.168.4.142 -b 100M -u
На хосте 2 запущен сервер iperf: iperf -s -u -B 192.168.4.197
На хосте 3 также запущен сервер iperf:iperf -s -u -B 0.0.0.0
Адреса привязки — это локальные адреса интерфейса wlan0.
Я понимаю, почему iperf на хосте 3 не считывает беспорядочно прослушиваемые пакеты как свои пакеты: IP в пакете не является адресом локального интерфейса wlan0.
Однако, есть ли способ iperf на хосте 3 получить эти пакеты? Либо с помощью iptables/ebtables, либо, может быть, переписать tcpdump?
Если iptables может перенаправить беспорядочно прослушиваемые пакеты на любой локальный IP-адрес, я могу перехватить их с помощью iperf.
Я знаю, что могу получать пакеты на хосте 3 — если я выполню tcpdump, то смогу увидеть пакеты между хостом 1 и хостом 2.
Я знаю, что пакеты видны только в открытой (незашифрованной) сети Wi-Fi. Я настроил ее таким образом. Эта сеть только для тестирования, поэтому ее безопасность пока не имеет значения.
Есть идеи? Дайте мне знать, если вам нужна дополнительная информация.
EDIT: изменил адрес привязки Хоста 3 на 0.0.0.0. Однако это не решило мою проблему.
решение1
Вы привязываете свой iperf
Host3 к IP 192.168.4.121
, так что он будет получать только пакеты, которые отправляются на этот IP. Вы можете попробовать привязать его к IP 0.0.0.0
, перевести сетевой интерфейс в режим promiscuous и проверить.