Если Ваше ядро является достаточно недавним, Вы могли бы использовать iptables - мишень для передачи кадров с eth0 на машину получения.
В моем многоадресном TX установки трафик был отмечен iptables, но маршрутизация политики с помощью новых таблиц маршрутизации никогда не работала. Хотя это работало на одноадресную передачу пакеты TX (перенаправляющий инициирующие пакеты от eth0 до eth5). Используя tc я мог получить трафик eth0 mcast к eth5, src Mac и src IP-адрес изменяются t тот из eth5 так будет не создавать проблемы с изучением переключателя. Вся поддержка ядра пакета ядра, планируя CONFIG_NET_SCHED должна быть включена
Ниже РАБОТ для перенаправления одноадресного и многоадресного трафика от eth0 до eth5
Netfilter, может использоваться для взаимодействия непосредственно со структурой, представляющей пакет в ядре. Эта структура, sk_buff, содержит поле, названное “ __ u32 nfmark”, который мы собираемся изменить. TC затем считает то значение для выбора целевого класса пакета.
IP_ADDR_ETH0 = ifconfig eth0 | grep 'inet addr'| cut -d ':' -f 2 | cut -d ' ' -f 1 | tr -d '\n'
iptables-t искажают-s $ {IP_ADDR_ETH0}-p udp ВЫВОДА-A - многопортовое соответствие - dports 329,330-o eth0-j МАРК - метка набора 2
Попытка создать дерево, которое представляет нашу политику планирования, и это использует PRIO qdisc (планировщик пакетов) (может попробовать другие доступные). qdiscs, присоединяющий в корне устройства
, tc qdisc добавляют, что корень dev eth0 обрабатывает 15: prio
Теперь имеет на одной стороне политику формирования трафика и с другой стороны пакетную маркировку. Для соединения этих двух нам нужен фильтр.
направляют человека tc-mirred (8): испачканное действие позволяет пакетное зеркальное отражение (копирование) или перенаправление (кражи) пакет, который это получает. Зеркальное отражение - то, что иногда упоминается как Порт коммутатора Анализатор (ПРОМЕЖУТОК) и является наиболее часто используемым, чтобы проанализировать и/или отладить потоки.
направляют человека tc-fw (8): fw - fwmark фильтр управления трафиком фильтр fw позволяет классифицировать пакеты на основе ранее набор fwmark iptables. Если это идентично 'дескриптору' фильтра, соответствиям фильтра. iptables позволяет отмечать единственные пакеты с целью МАРКА или целые соединения с помощью CONNMARK.
MAC_ADDR_ETH1 = cat /sys/class/net/eth1/address
IP_ADDR_ETH1 = ifconfig eth1 | grep 'inet addr'| cut -d ':' -f 2 | cut -d ' ' -f 1 | tr -d '\n'
фильтр tc добавляет родителя dev eth0 15:0 действие 0x2 fw дескриптора протокола ip prio 1 pedit исключая munge eth src $ набора {MAC_ADDR_ETH1} канал \действие pedit исключая munge IP src $ набора {IP_ADDR_ETH1} канал \, действие испачкало выходное шоу dev eth1
перенаправления выше установленных правил: tc qdisc выставочный выставочный dev eth0
фильтра dev eth0 tc удаляют/сбрасывают выше установленных правил: корень tc qdisc del dev eth0
Что-то как rinetd могло бы работать (редиректор/сервер для TCP, только я верю, таким образом, никакой ARP, Уровень 2, и т.д.), но во всей честности, получая некоторые управляемые коммутаторы, которые имеют возможности зеркального отражения порта или если то поле только используется для wireshark, Вы могли бы добавить другой NIC к нему, соединить два интерфейса мостом, поместить его перед машиной A eth0 и иметь выделенную машину сниффинга.
Устройство, которое копирует кадры Ethernet от одного интерфейса до другого, является мостом. Можно настроить систему Linux для действия как мост. Некоторая документация может быть найдена здесь:
Можно применить правила фильтрации к соединенному мостом трафику с помощью ebtables, который является аналогом iptables
для трафика уровня 2.
Искать в сети tcpbridge, что и выполняет задание. Его также можно использовать для общения с виртуальными машинами.
Вы можете использовать действие tc mirred. Например: Для входящего трафика:
tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: \
protocol all prio 2 u32 \
match u32 0 0 flowid 1:1 \
action mirred egress mirror dev eth1
Для исходящего трафика:
tc qdisc replace dev eth0 parent root handle 10: prio
tc filter add dev eth0 parent 10: \
protocol all prio 2 u32 \
match u32 0 0 flowid 10:1 \
action mirred egress mirror dev eth1