IPv6

OME v0.15.1 버전부터 IPv6가 지원됩니다.

IPv6를 사용하려면 Server.xml 파일의 설정을 다음과 같이 변경해야 합니다.

1. 리스닝 설정

IPv6를 지원하려면 /<Server>/<IP>를 사용할 수 있습니다. v0.15.0 이전 버전에서는 /<Server>/<IP> 설정을 하나만 지정할 수 있었지만, v0.15.1 이후 버전에서는 여러 개를 지정할 수 있습니다. 즉, 아래와 같이 기존 설정에 IPv6용 /<Server>/<IP> 요소를 추가하면 클라이언트로부터 IPv6 요청을 받을 수 있습니다:

<Server>
    ...
    <IP>*</IP>
    <!-- Listening the bind ports on IPv6 interfaces -->
    <IP>::</IP>
    ...
</Server>
circle-info

*는 IPv4에서 0.0.0.0(INADDR_ANY)을 의미하며, ::는 IPv6에서 ::0(in6addr_any)을 의미합니다.

물론 :: 대신 특정 인터페이스의 IP 주소를 지정할 수도 있습니다.

Example 1) IPv4 Only

<Server>
    <Name>OvenMediaEngine</Name>
    <Type>origin</Type>
    <IP>*</IP>

    <Bind>
        <Providers>
            <RTMP>
                <Port>1935</Port>
            </RTMP>
        </Providers>
    </Bind>
</Server>

OME는 다음과 같이 RTMP용 1935 포트를 리슨합니다:

Example 2) IPv6 Only

OME는 다음과 같이 RTMP용 1935 포트를 리슨합니다:

Example 3) IPv4 + IPv6

OME는 다음과 같이 RTMP용 1935 포트를 리슨합니다:

2. IceCandidates 설정 (WebRTC용)

IPv6 인터페이스를 /<Server>/<IP>에 지정하면 대부분의 Provider/Publisher는 IPv6로 동작하지만, WebRTC는 그렇지 않습니다. WebRTC 시그널링 서버로 사용되는 WebSocket 서버는 위 설정으로 정상 동작하지만, 실제 데이터 송수신을 담당하는 ICE Candidate에는 추가 설정이 필요합니다.

IPv6 ICE Candidate를 사용하려면 /<Server>/<Bind>/(<Providers>|<Publishers>)/<WebRTC>/<IceCandidates>에 IPv6 <IceCandidate>를 추가해야 합니다.

circle-info

URL 형식 설정에서 IPv6를 지원하려면 :: 대신 [::]를 사용해야 합니다.

circle-info

Provider와 Publisher의 <IceCandidate> 설정은 동일합니다.

위와 같이 설정하면 OME는 IPv4뿐만 아니라 IPv6에 대해서도 ICE Candidate를 사용할 준비가 됩니다. 생성된 ICE Candidate는 웹 브라우저의 시그널링 단계에서 확인할 수 있습니다.

3. <Origin> 설정

이제 IPv6 주소를 사용하는 origin을 참조하도록 OME edge를 설정할 수 있습니다. 이를 위해 /<Server>/<VirtualHosts>/<VirtualHost>/<Origins>/<Origin>/<Pass>/<Urls>/<Url>을 다음과 같이 설정할 수 있습니다.

이 설정은 IPv6 주소 1:2:3:4:5:6:7:8을 가진 origin의 1234 포트에서 제공되는 RTSP 소스를 참조하는 스트림을 생성합니다.

4. <AdmissionWebhooks> 설정

AdmissionWebhooks에서 사용하는 서버에도 IPv6 주소를 지정할 수 있습니다. 이를 위해 /<Server>/<VirtualHosts>/<VirtualHost>/<AdmissionWebhooks>/<ControlServerUrl> 값을 다음과 같이 설정합니다.

위 설정은 http://[1:2:3:4:5:6:7:8]:7000/a/b/c를 통해 클라이언트의 publish 또는 playback 권한을 확인하도록 요청합니다.

Last updated