У меня есть приложение Node.JS, получающее UDP-пакеты, которые я недавно переместил в контейнер Docker для упрощения развертывания. Приложение полагается на различение нескольких потоков UDP на основе IP-адреса источника (с использованием rinfo.address в событии "сообщение").
Для некоторых из этих потоков исходный IP-адрес указывается как 172.17.0.1, который является просто IP-адресом «снаружи», как видно изнутри контейнера Docker.
Как я могу надежно получить фактический IP-адрес источника UDP-пакетов внутри контейнера Docker?
Я нашел решение, но мое понимание его ограничено.
Бег sudo conntrack -D -p udp
в хосте, очевидно, что-то сбрасывает и позволяет сообщать реальные IP-адреса источника.
Очевидно, это нужно сделать после любого перезапуска контейнера.
Кредиты: https://github.com/moby/moby/issues/8795#issuecomment-64946289