AWS ネットワーク ロード バランサーで TLS を使用して Stun/Turn Server (COturn) を操作する方法

AWS ネットワーク ロード バランサーで TLS を使用して Stun/Turn Server (COturn) を操作する方法

私は Coturn サーバーをセットアップしました。IP またはドメインをロードバランサーなしで使用しても問題なく動作します。次のオンライン ツールを使用してテストしました:

https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

問題は、ネットワーク ロードバランサーを使用すると、tcp_udp の再ルーティングはポート 80 で機能しますが、ポート 443 で tls を使用しようとすると機能しないことです。

ポート 443 の TLS トラフィックをポート 443 のターゲット グループにルーティングするようにネットワーク ロード バランサーを構成しました。ネットワーク ロード バランサーでは、letsencrypt の domain.com と *.domain.com の letsencrypt 証明書を使用しています。同じ証明書が、構成ファイル turnserver.conf に追加されています。

これが私の設定です:

external-ip=1.2.3.4
listening-port=80
min-port=10000
max-port=20000
log-file=/var/log/turnserver.log
verbose
tls-listening-port=443
lt-cred-mech
server-name=domain.com realm=domain.com
user=tester:12345678
total-quota=100
stale-nonce=600
cert=/opt/coturn/fullchain.pem
pkey=/opt/coturn/privkey.pem
cipher-list="ECDH+AESGCM:ECDH+CHACHA20:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS"

log-file=/var/log/coturn.log


# Specify the process user and group
proc-user=turnserver
proc-group=turnserver

そして、ログから取得した内容は次のとおりです。

3170: IPv4. tcp or tls connected to: 9.8.7.6:34274
3170: session 001000000000003730: TCP socket closed remotely 9.8.7.6:34274
3170: session 001000000000003730: closed (2nd stage), user <> realm <domain.com> origin <>, local 0.0.0.0:443, remote 9.8.7.6:34274, reason: TCP connection closed by client (callback)

ちなみに、オンライン ツールからは常に 701 エラーが発生します。

ありがとう、

答え1

STUN/TURN サーバーではロード バランサーを使用しないでください。サーバーを大きくしたり、クライアント アプリケーションでサーバー IP をローテーションして独自の「ロード バランサー」を実装したりすることができます。

あなたは、ロード バランサとは何か、そして STUN/TURN が特に HTTPS 経由でどのように機能するかという基礎を理解していないようです。TURN は HTTP/HTTPS を使用しておらず、ポート 80 と 443 のみを使用しています。これは、通常これらのポートが開いているファイアウォールをバイパスするためです。

関連情報