Рейтинг:1

'socat' не отображает входящие UDP-пакеты, а Wireshark показывает

флаг gu
QF0

Ссылка представляет собой изображение Дамп Wireshark входящего 60-байтового кадра Ethernet, содержащего UDP-пакет. Полезная нагрузка пакета — это одно слово «привет» (извините, у меня недостаточно представителей, чтобы напрямую вставить изображение).

Проблема: я не могу получить сокат или же нк для чтения и отображения этого пакета (это не совсем так, см. #1 ниже).

Я запускаю читалку как:

$ сокат UDP: 192.168.50.129: 5000 -

Я пробовал различные форматы адресов, связанные с UDP, а также этот. Писатель работает как:

$ socat READLINE UDP:192.168.50.132:5000

Вопрос: как мне отобразить этот входящий пакет, желательно как одно словоПривет?

К сожалению, есть некоторые сложности:

#1

Если я запускаю читалку как # socat ИНТЕРФЕЙС:ens4f0 - затем я делать получить отображение входящего кадра (по какой-то причине он отображается дважды). Есть какой-то двоичный вывод, а затем слово Привет. Однако я не могу этого сделать, так как в конечном итоге другие процессы будут использовать этот интерфейс, поэтому мне нужно понять, что происходит.

#2

Входящий кадр фактически имеет dst IP-адрес 192.168.50.132; брандмауэр настроен на преобразование этого в 192.168.50.129, который является адресом, который слушает читатель:

  # iptables -t nat -A PREROUTING -i ens4f0 -j DNAT --to 192.168.50.129

Выходные данные Wireshark показывают входящий пакет до этого преобразования, поэтому IP-адрес dst отображается как 192.168.50.132. Я действительно не знаю, работает ли это - могу ли я получить сокат для создания шестнадцатеричного дампа того, что он на самом деле видит на ens4f0?

#3

Это сложно, но я надеюсь, что это не связано. На самом деле это петлевой тест: выходит один кадр. ens4f0, закольцовывается внешним оборудованием и возвращается без изменений в ens4f0. Сетевая карта имеет IP-адрес 192.168.50.129. у меня есть ip ржет добавить команда, которая направляет доступ к 192.168.50.132 из ens4f0 к внешнему оборудованию; пакет возвращается без изменений, поэтому мне нужно iptables команда для преобразования IP-адреса dst обратно в ens4f0 адрес.

QF0 avatar
флаг gu
QF0
Привет @A.B: для XY реальная проблема в основном № 3: выполнить петлевой тест с использованием одной сетевой карты. Петля проходит через внешний тестовый комплект, но может считаться простым петлевым кабелем Ethernet. Я заставляю трафик идти извне, определяя фиктивный IP-адрес (132) и `ip neigh add`. Я знаю, что это работает, и внешний трафик возвращается к ens4f0. Проблема заключается в том, чтобы прочитать пакет. Я надеюсь сделать это с помощью NAT, изменив фиктивный адрес (132) на реальный IP-адрес карты (129). Однако я не думаю, что NAT работает.
A.B avatar
флаг cl
A.B
Я удалил свой комментарий, потому что я думаю, что у каждого из 3 пунктов есть проблемы. использование socat, использование stateful nat с stateless nat перед ним, использование закольцованного обратного трафика с теми же адресами, все это в контексте nat. описание не соответствует команде. например: "брандмауэр настроен на преобразование этого адреса в 192.168.50.129" не соответствует "--to 192.168.50.132" . А для цели я спрашивал: для какого применения это будет полезно, не как это делается, а зачем это делается.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.