В моей домашней сети (192.168.1.0/24) я пытаюсь использовать iptables
для бесшумного клонирования всего трафика Wi-Fi TCP/UDP с / из моего Xbox One на мой рабочий стол Windows 10 для перехвата пакетов через Wireshark.
Из-за локальных ограничений, ограничивающих соединения Ethernet, я пытаюсь сделать это через две беспроводные точки доступа, которые совместно используют одну сеть, причем их порты LAN являются единственным соединением Ethernet в настройке:
|<--[Ethernet To Cable Modem]
| \ \ \
| \ \ \
| \ \ \
| _________________________ \ \ \
└--| NETGEAR R6260 | | | |
| SSID: TheNewNetwork(5G) | | | |
| stock firmware, gateway | | | |
┌--|_192.168.1.1_____________| | | |
| ________________________ / / /
| ╙|_ PRINTER 192.168.1.14__|/ / /
| ________________________/ / /
| ╙|_ AMAZON 192.168.1.15__/| / /
| ______________________/_ / /
| ╙|_ AMAZON 192.168.1.16___| /
| _____________________________
| ╙|_ DESKTOPWIN10 192.168.1.10__|
| __________________________
| ╙|_ Nexus-5X 192.168.1.13___|
| ___________________________
| ╙|_ GALAXY-S8 192.168.1.17___|
|
|
| \ \ \
| \ \ \
| _______________________ \ \ \
└--| LINKSYS E2500 | | | |
| SSID: TheOtherNetwork | | | |
| Tomato w/ iptables | | | |
|_192.168.1.2___________| | | |
________________________/ / /
╙|_ XBOXONE 192.168.1.12_/_|/ /
/ / /
Linksys E2500 был прошит с Tomato V1.28 (сборка 140) и работает на платформе iptables
. DHCP и NAT выключены. Xbox подключен к своей незащищенной точке беспроводного доступа (SSID: TheOtherNetwork).
Все остальное на WPA2-защищенной беспроводной сети Netgear (SSID: TheNewNetwork), как обычно. IP-адрес Linksys (192.168.1.2) является статическим, а IP-адреса Windows (192.168.1.10) и Xbox (192.168.1.12) назначаются резервированием DHCP на Netgear, который также назначает незарезервированные адреса DHCP всем остальным (принтер, Amazon Fire TV вставляет [x2], смартфоны) и обрабатывает NAT для трафика, связанного с глобальной сетью. Такое сетевое расположение, кажется, работает безупречно для всех "нормальных" вариантов использования.
Первоначально я думал, что мог бы просто добавить некоторые правила клонирования пакетов в iptables
на Linksys, которые соответствуют IP- адресу Xbox, например:
iptables -A PREROUTING -t mangle -s 192.168.1.12 -j ROUTE --gw 192.168.1.10 --tee
iptables -A PREROUTING -t mangle -d 192.168.1.12 -j ROUTE --gw 192.168.1.10 --tee
... но, обнаружив очень мало пакетов Xbox в моем фиде Wireshark, я решил покопаться в них, если бы правила (которые были предназначенный для перехвата всего трафика Xbox) даже запускался / совпал (так как это должно произойти до того, как цель ROUTE
вступит в игру, чтобы получить пакеты для Windows / Wireshark).
Итак, чтобы получить полный снимок запуска-отладки пакетов, я настраиваю одинаково запускаемые правила для каждого IP-адреса в сети с простой целью -j ACCEPT
и правилом "перехватить все" в конце цепочки, должен сработать несмотря ни на что. Затем я запустил Xbox и примерно минуту играл в онлайн-шутер от первого лица (который, насколько я могу судить по Xbox, работал нормально).
Через минуту это то, что я получил из сводки списка правил iptables
:
root@E2500-Host:/# iptables -t mangle -vnL PREROUTING
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
1 68 ACCEPT all -- * * 192.168.1.12 0.0.0.0/0
0 0 ACCEPT all -- * * 0.0.0.0/0 192.168.1.12
408 60499 ACCEPT all -- * * 192.168.1.10 0.0.0.0/0
0 0 ACCEPT all -- * * 0.0.0.0/0 192.168.1.10
0 0 ACCEPT all -- * * 192.168.1.1 0.0.0.0/0
0 0 ACCEPT all -- * * 0.0.0.0/0 192.168.1.1
0 0 ACCEPT all -- * * 192.168.1.13 0.0.0.0/0
0 0 ACCEPT all -- * * 0.0.0.0/0 192.168.1.13
1 351 ACCEPT all -- * * 192.168.1.14 0.0.0.0/0
0 0 ACCEPT all -- * * 0.0.0.0/0 192.168.1.14
0 0 ACCEPT all -- * * 192.168.1.15 0.0.0.0/0
0 0 ACCEPT all -- * * 0.0.0.0/0 192.168.1.15
0 0 ACCEPT all -- * * 192.168.1.16 0.0.0.0/0
0 0 ACCEPT all -- * * 0.0.0.0/0 192.168.1.16
1 344 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0
КАКИЕ?!? Один жалкий пакет от Xbox? Я играл в онлайн-шутер от первого лица целую минуту, с десятками реальных позиций противника, обновляемых с сервера много раз в секунду. (Я прочитал достаточно об этой конкретной игре, чтобы ожидать UDP для этого обмена.) Должно быть больше трафика, чем между 192.168.1.12 и внешним миром, и он ДОЛЖЕН обрабатываться маршрутизатором Linksys, на котором работает iptables
, поскольку Xbox подключается к Интернету только через незащищенную точку доступа Linksys, TheOtherNetwork.
В качестве возможного сопутствующего примечания: Другие странности включают 0 запущенных пакетов для любого входящего трафика на любой локальный IP-адрес (хотя, возможно, это не является неожиданным для устройств не-Xbox в другой точке доступа) и тот факт, что он перехватил так много исходящих пакетов с рабочего стола Windows, 192.168.1.10 (который, опять же, отсутствует в SSID Linksys, поэтому я не ожидал, что Linksys увидит их).
Как это возможно, что iptables
не хватает пакетов Xbox, которые позволили функционировать быстро развивающейся онлайн-игре?