Если external-ip of coturn используется только для aws? - PullRequest
0 голосов
/ 16 мая 2019

https://github.com/coturn/coturn/blob/c4477bfddd2cd51de1ad37032ca88330f3c44ed6/docker/coturn/turnserver.conf#L100

В turnserver.conf я вижу мир "Для пользователей Amazon EC2", если external-ip используется только для aws?Я позволил серверу stun работать в кластере k8s, а затем выставить его в общедоступной сети с помощью службы nodeport, но srflx, возвращаемый stun, является адресом шлюза, а не внешним ip, который я установил.Мой кластер k8s работает на Alibaba Cloud.Я надеюсь, что кто-то может помочь мне решить эту проблему, спасибо 100

1 Ответ

0 голосов
/ 18 мая 2019

Экземпляры AWS EC2, по большей части, работают за NAT.Даже если вы назначили общедоступный IP-адрес (например, 1.2.3.4) через консоль AWS, экземпляр знает только о частной сети, в которой он включен, и не знает о назначенном ему общедоступном IP-адресе.То есть экземпляр думает, что его IP-адрес 172.31.5.6, потому что это то, что операционная система обнаружила во время загрузки.Переадресация портов позволяет переадресовывать определенные порты TCP и UDP с общедоступного IP-адреса на частный IP-адрес, на котором работает экземпляр EC2.

Обычно это не проблема для большинства служб, работающих на AWS EC2пример.Когда STUN работает в режиме «2 IP-адреса и 2 порта», сервер должен объявить свой альтернативный IP-адрес обратно клиенту, если клиент захочет провести тестирование поведения NAT и фильтрации.Но было бы неверно, чтобы сервер STUN отправлял обратно 172.31.5.7 в качестве своего альтернативного IP-адреса - у клиента нет возможности достичь этого IP-адреса, поскольку он является частным.

Аналогично для TURN, когда происходит распределение портов, сервернеобходимо отправить общедоступный IP-адрес isntance EC2 клиенту, который его выделил.Было бы плохо, если бы клиент запросил порт TURN для совместного использования с другим узлом - только для сервера TURN для отправки обратно 172.31.5.6.

Следовательно, для сервера STUN или TURN, размещенного за NAT,набор параметров командной строки или параметров конфигурации необходим, чтобы сообщить серверу, каковы его «реальные» IP-адреса.Программное обеспечение STUN / TURN будет использовать эти IP-адреса для отправки ответов клиентам.

...