У меня есть маршрутизатор Linksys E2500 под управлением Tomato v1.28 (ядро Linux 2.6.22.19, без возможности USB-накопителя), который работает в режиме моста для подключения трех интерфейсов:

root@TomatoE2500Host:/# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.586d8fb74454       no              eth1
                                                        eth2
                                                        vlan1
  • eth1 - это 2,4 ГГц беспроводная сеть (режим точки доступа - Xbox - только беспроводной хост)
  • eth2 - беспроводная сеть с частотой 5,0 ГГц (режим клиента для маршрутизатора основного шлюза / других устройств)
  • vlan1 - это 4 локальных порта локальной сети (рабочий стол Windows 10 - только проводной хост)

Мост работает нормально для «обычных» целей, но я пытаюсь использовать рабочий стол Windows, на котором запущен Wireshark, для перехвата пакетов, отправляемых между Xbox и основным шлюзом.

root@TomatoE2500Host:/# brctl showmacs br0
port no mac addr                is local?       ageing timer
  3     00:01:36:1f:e4:5c       yes                0.00
  2     4c:0b:be:3e:5b:2d       no                36.09
  1     58:6d:8f:b7:44:54       yes                0.00
  2     58:6d:8f:b7:44:56       yes                0.00
  3     68:37:e9:50:ce:f7       no               100.34
  3     6c:56:97:04:1e:3f       no               100.63
  3     a0:cc:2b:ad:46:d1       no               224.45
  3     b0:39:56:69:aa:eb       no                 1.02
  1     f4:6d:04:4f:9f:6a       no                 0.01

Понятно, что кадры / пакеты из Xbox (4c:0b:be:3e:5b:2d) на eth1 (порт 2) выталкиваются только на шлюз (b0:39:56:69:aa:eb) на eth2 ( порт 3), пока проводной рабочий стол (f4:6d:04:4f:9f:6a) на vlan1 (порт 1) остается в темноте.

Как принудительно транслировать кадры с интерфейса eth1 на интерфейс vlan1 , в дополнение к стандартному / необходимому eth2?

Как будто мне нужна атака MAC Flooding для себя, чтобы заставить мост транслировать пакеты на несколько интерфейсов, вместо того чтобы полагаться на свою базу данных пересылки (FDB), показанную выше. Но должен быть лучший способ сделать это, верно?

1 ответ1

1

База данных пересылки поддерживает только сопоставление адресов одноадресной рассылки одному порту (что подходит для одноадресной рассылки, имеющей один пункт назначения). Есть и другие методы:

  • Вы можете использовать цель TEE iptables, как в этом SF-потоке. Чтобы это работало, вам нужно сначала включить мостовую фильтрацию iptables:

    ip link set dev br0 type bridge nf_call_iptables 1
    
  • Кроме того , вы можете , вероятно , использовать dup действие в nftables таблице моста:

    iifname "br0" dup to "eth0"
    
  • Как и в этой статье , вы можете использовать tc с "action mirred" и некоторыми другими непонятными параметрами.

  • Вы можете использовать программу пространства пользователя для захвата пакетов на мосту и пересылки их через другой интерфейс, либо необработанный, либо инкапсулированный (например, внутри туннеля TZSP или ERSPAN). Одним из примеров является RSniffer. На принимающей стороне Wireshark автоматически распознает инкапсулированные пакеты.

  • Вы можете запустить tcpdump через SSH и передать его вывод в локальный интерфейс Wireshark:

    ssh router tcpdump -n -i eth2 -s 65535 -w - -U | wireshark -k -i -
    

    (Да, веб говорит, что вам нужен USB-накопитель для "полного" 2 МБ tcpdump, но наверняка где-то есть облегченная версия (что-то вроде dumpcap)? Например, вам не нужен код анализа пакетов. Похоже, что такого рода вещи не должны быть двоичные файлы размером более 10 кБ ...)

  • В качестве последнего средства вы можете купить другой коммутатор или маршрутизатор, который имеет встроенную поддержку зеркалирования портов. (Например, управляемые коммутаторы, как правило, имеют "зеркальный порт" или "порт SPAN", а устройства на основе RouterOS имеют встроенную поддержку захвата, подобного tcpdump, через туннель TZSP.)

Тем не менее, обратите внимание, что ваш Linksys, скорее всего, имеет два стекированных моста - устройство "vlan1" (ваши 4 порта LAN) часто представляет аппаратный коммутатор, который имеет собственную независимую FDB, поэтому трафик между этими портами не достигает программного моста Linux. совсем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .