TLS를 사용하는 Aws 네트워크 로드 밸런서에서 Stun/Turn 서버(COturn)를 작동하는 방법

TLS를 사용하는 Aws 네트워크 로드 밸런서에서 Stun/Turn 서버(COturn)를 작동하는 방법

방금 coturn 서버를 설정했는데 로드 밸런서 없이 ip 또는 teh 도메인을 사용할 때 완벽하게 작동합니다. 다음 온라인 도구를 사용하여 테스트했습니다.

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를 교체하여 서버를 더 크게 만들거나 자체 "로드 밸런서"를 구현할 수 있습니다.

로드 밸런서가 무엇인지, 특히 HTTPS를 통해 STUN/TURN이 작동하는 방식에 대한 기본 사항을 이해하지 못하는 것 같습니다. TURN은 HTTP/HTTPS를 사용하지 않고 포트 80과 443만 사용합니다. 이는 일반적으로 이러한 포트가 열려 있는 방화벽을 우회하기 위한 것입니다.

관련 정보