DTLSv1_listen не может принять второго клиента в контейнере Docker - PullRequest
1 голос
/ 25 сентября 2019

У меня проблема с сервером OpenSSL / DTLS.

Среда: док-контейнер на основе CentOs7

Версия OpenSSL: OpenSSL-1.1.1d

A DTLSсервер (неблокирующий), использующий DTLSv1_Listen, имеющий UDP-сокет с SO_REUSEADDR, не может принять второе клиентское соединение, когда оно уже принято клиентским соединением и обслуживает его.

Когда первый клиент завершил работу, второйклиентское соединение принято.

Я использовал dtls_udp_echo.c (взято из http://web.archive.org/web/20150617012520/http://sctp.fh-muenster.de/dtls-samples.html), чтобы выполнить тест и воспроизвести проблему.

Тестовое приложение было скомпилированои выполняется в контейнере Docker, имеющем CentOS7 в качестве базового образа, но поведение было замечено и с другими ОС базовых образов (например, Redhat, Ubuntu, Debian, SLES).То же приложение, работающее на голом железе, работает без каких-либо проблем.

Существует ли какая-либо известная проблема совместимости между Docker и OpenSSL / DTLS?

Есть ли какая-либо конкретная конфигурация, которую необходимо выполнить, чтобы преодолеть эту проблему?

С наилучшими пожеланиями

...