Колеги, може у кого є більш-менш готова відповідь :) У мене така задачка - мені вливається декілька десятків мегабайтів ERSPAN трафіка, але цікавлять тільки певні порти. Я хочу все що мені не треба, залишити не далі дверей, а те, що треба, розкидати по декільком прийомникам. Але коли я розгортаю erspan, то проблема в тому, що лінукс бачить цей пакет як не свій по купі ознак - чужа MAC-адреса, чужа dst ip... воно навіть до iptables не доходить, тому ідея полягає в тому, шоб на вході переписати mac (а в іделі - ip та порт) на свої, після чого можна вже хоч щось робити, типу port == N,M -> rewrite mac/ip, port+=20000 або port == N -> rewrite mac/ip/port port == M -> rewrite mac/ip/port Є якісь ідеї, як цього можна досягнути? Дякую. -- Volodymyr Litovka "Vision without Execution is Hallucination." -- Thomas Edison
Привет Как дела с promisc флагом на интерфейсе ? Хотя что-то мне сразу тут видится какое-то XDP-based решение.
Колеги, може у кого є більш-менш готова відповідь :)
У мене така задачка - мені вливається декілька десятків мегабайтів ERSPAN трафіка, але цікавлять тільки певні порти. Я хочу все що мені не треба, залишити не далі дверей, а те, що треба, розкидати по декільком прийомникам. Але коли я розгортаю erspan, то проблема в тому, що лінукс бачить цей пакет як не свій по купі ознак - чужа MAC-адреса, чужа dst ip... воно навіть до iptables не доходить, тому ідея полягає в тому, шоб на вході переписати mac (а в іделі - ip та порт) на свої, після чого можна вже хоч щось робити, типу
port == N,M -> rewrite mac/ip, port+=20000
або
port == N -> rewrite mac/ip/port port == M -> rewrite mac/ip/port
-- Sergey Smitienko
Привіт, я зараз вожусь з nftables netdev - rewrite навчився робити, але незалежно від promisc on/off та rp_filter на інтерфейсі, тестовий nc на переписаному dst port (nc -l -u -k -p 21235) не бачить трафіка. Aug 11 12:08:11 server kernel: [1780302.143304] allow sig IN=inspan OUT= MAC=8a:b1:34:1d:35:ea:a2:ee:e4:00:00:12:08:00 SRC=x.x.x.x DST=10.171.165.65 LEN=705 TOS=0x00 PREC=0x00 TTL=61 ID=59806 PROTO=UDP SPT=56057 DPT=21235 LEN=685 Граюсь далі... On 8/11/23 13:31, Sergey Smitienko wrote:
Привет
Как дела с promisc флагом на интерфейсе ?
Хотя что-то мне сразу тут видится какое-то XDP-based решение.
Колеги, може у кого є більш-менш готова відповідь :)
У мене така задачка - мені вливається декілька десятків мегабайтів ERSPAN трафіка, але цікавлять тільки певні порти. Я хочу все що мені не треба, залишити не далі дверей, а те, що треба, розкидати по декільком прийомникам. Але коли я розгортаю erspan, то проблема в тому, що лінукс бачить цей пакет як не свій по купі ознак - чужа MAC-адреса, чужа dst ip... воно навіть до iptables не доходить, тому ідея полягає в тому, шоб на вході переписати mac (а в іделі - ip та порт) на свої, після чого можна вже хоч щось робити, типу
port == N,M -> rewrite mac/ip, port+=20000
або
port == N -> rewrite mac/ip/port port == M -> rewrite mac/ip/port
-- Volodymyr Litovka "Vision without Execution is Hallucination." -- Thomas Edison
Ну якщо в подробицях, то ось тут - https://serverfault.com/questions/1141255/nftables-netdev-rewrite-what-im-do... On 8/11/23 14:11, Volodymyr Litovka wrote:
Привіт,
я зараз вожусь з nftables netdev - rewrite навчився робити, але незалежно від promisc on/off та rp_filter на інтерфейсі, тестовий nc на переписаному dst port (nc -l -u -k -p 21235) не бачить трафіка.
Aug 11 12:08:11 server kernel: [1780302.143304] allow sig IN=inspan OUT= MAC=8a:b1:34:1d:35:ea:a2:ee:e4:00:00:12:08:00 SRC=x.x.x.x DST=10.171.165.65 LEN=705 TOS=0x00 PREC=0x00 TTL=61 ID=59806 PROTO=UDP SPT=56057 DPT=21235 LEN=685
Граюсь далі...
On 8/11/23 13:31, Sergey Smitienko wrote:
Привет
Как дела с promisc флагом на интерфейсе ?
Хотя что-то мне сразу тут видится какое-то XDP-based решение.
Колеги, може у кого є більш-менш готова відповідь :)
У мене така задачка - мені вливається декілька десятків мегабайтів ERSPAN трафіка, але цікавлять тільки певні порти. Я хочу все що мені не треба, залишити не далі дверей, а те, що треба, розкидати по декільком прийомникам. Але коли я розгортаю erspan, то проблема в тому, що лінукс бачить цей пакет як не свій по купі ознак - чужа MAC-адреса, чужа dst ip... воно навіть до iptables не доходить, тому ідея полягає в тому, шоб на вході переписати mac (а в іделі - ip та порт) на свої, після чого можна вже хоч щось робити, типу
port == N,M -> rewrite mac/ip, port+=20000
або
port == N -> rewrite mac/ip/port port == M -> rewrite mac/ip/port
-- Volodymyr Litovka "Vision without Execution is Hallucination." -- Thomas Edison
participants (2)
-
Sergey Smitienko
-
Volodymyr Litovka