멀티 랜카드 와우자의 UDP 멀티캐스트 입력 소스 인터페이스 지정 방법

Last modified date

둘 이상의 멀티 랜카드 환경에서 와우자 스트리밍 엔진이 UDP 멀티캐스트 스트림을 입력 소스로 사용하기 위해서는, VHost를 수정해 주거나 스트림 파일을 통해 사용할 랜카드를 지정해 주어야 한다.

갈림길 앞에 서 있는 여성

일반적인 네트워크 환경의 경우, 하나의 호스트에 여러 네트워크 인터페이스(Network Interface Card, 이하 랜카드)가 설치 되어 있더라도 OS의 라우팅 테이블을 통해 통신에 사용할 적절한 랜카드가 자동으로 결정된다. 하지만 UDP 멀티캐스트 스트림의 경우, 여러가지 이유로 OS가 적절한 랜카드를 결정하지 못하는 경우가 자주 발생한다.

특히 와우자 스트리밍 엔진(Wowza Streaming Engine, 이하 와우자)이 MPEG TS UDP 멀티캐스트 스트림을 출력하는 인코더를 입력 소스로 사용할 경우, 멀티캐스트 네트워크와 출력 네트워크가 분리되어 있는 경우가 많다. 즉, 랜카드가 둘 이상 장착되어 있는 경우가 많으며, 소스 스트림을 수신하지 못하는 문제가 발생하는 경우가 있다는 의미이다.

이러한 문제를 해결하기 위해서는, 와우자에게 멀티캐스트 스트림을 수신할 랜카드를 명시적으로 지정해 주어야 한다. 사용자의 상황과 기호에 따라 다음과 같은 세 가지 방법중 하나를 선택해 랜카드를 지정해 줄 수 있다.

멀티캐스트 수신 랜카드 지정 방법

방법 1 : 웹 UI를 이용한 전역 설정

이 방법은 와우자가 수신하는 모든 멀티캐스트 스트림의 기본 랜카드를 설정하는 방법이다. 소스 입력을 위한 랜카드가 하나이고, 서비스 출력 랜카드와 나뉘어 있을 경우 사용하기에 적합한 방법이다.

Step1 – 와우자 웹 UI에 접속

Step2 – Virtual Host Setup 선택

상단 메뉴에서 Server탭을 선택하고, 좌측 메뉴에서 Virtual Host Setup을 선택한다.

와우자 웹 인터페이스에서 서버탭을 선택후 가상 호스트 설정을 선택한 화면
와우자 웹 UI의 가상 호스트 설정 화면

Step3 – Properties탭 선택

와우자 웹 인터페이스에서 가상 호스트 Properties 탭을 선택
와우자 가상 호스트의 Properties를 선택한 화면

Step4 – RTP Datagram 편집모드 진입

Properties 목록에서 Incoming RTP Datagram 항목으로 이동하여 Edit 버튼을 클릭해 편집 모드로 들어간다.

와우자 UI에서 Incoming RTP Datagram 설정 부분. Multicast 관련 설정이 off 되어 있다.
RTP 입력 설정

Step5 – 바인딩 설정

편집 화면의 multicastBindToAddress_in항목에서 True를 선택 해 주고, multicastInterfaceAddress_in항목에 멀티캐스트 입력에 사용할 랜카드의 IP주소를 입력해 준다.

MulticastBindToAddress_in 항목을 True 로 설정하고 MulticastInterfaceAddress_in를 192.168.100.100 으로 설정하다.
바인딩 활성화 및 사용 랜카드 주소 입력

Step6 – 저장 및 재시작

SAVE버튼을 클릭해 변경 사항을 저장한 후, 화면 상단에 표시된 Restart Now버튼을 눌러 와우자 서비스를 재시작한다.

와우자 스트리밍 엔진의 설정을 변경 저장하여 재시작이 필요하다는 메시지가 표출되고 있다.
재시작

방법 2 : VHost.xml 수정

위에서 소개한 방법 1의 과정은 와우자의 네트워크 관련 설정을 담당하는 VHost.xml파일에서, RTP섹션의 Incoming섹션을 변경하는 것이다. 위에서 설명한 웹 UI를 사용하는 것 대신, 텍스트 편집기를 통해 이 파일을 직접 수정하고 와우자 서비스를 재시작할 수도 있다. 아래의 내용을 참고하여 수정하면 된다.

<RTP>
  <IdleFrequency>75</IdleFrequency>
  <DatagramConfiguration>
    <Incoming>
      <ReuseAddress>true</ReuseAddress>
      <ReceiveBufferSize>2048000</ReceiveBufferSize>
      <SendBufferSize>65000</SendBufferSize>
      <MulticastBindToAddress>true</MulticastBindToAddress>
      <MulticastInterfaceAddress>192.168.100.100</MulticastInterfaceAddress>
      <!-- <TrafficClass>0</TrafficClass> -->
      <MulticastTimeout>50</MulticastTimeout>
      <DatagramMaximumPacketSize>4096</DatagramMaximumPacketSize>            
    </Incoming>

방법1과 방법2를 사용해 설정을 완료한 후에는 와우자에서 멀티캐스트 스트림을 입력받기 위해 소스 스트림 파일을 생성해 준다. 아래와 같은 형식으로 스트림 파일을 생성해 주면 된다.

MyMulticastStream.stream을 생성하며 멀티캐스트 주소를 udp://239.100.100.100:1234 로 설정
239.100.100.100:1234 멀티캐스트 스트림을 수신하는 스트림파일의 예

방법 3 : 스트림 파일에 랜카드 지정 (스트림별 설정)

만약 입력에 사용되는 랜카드가 둘 이상이거나, 왠지 와우자의 설정을 건드리기에 불안한 마음이 있다면, 각 입력 소스별로 사용할 랜카드를 설정하는 방법을 사용하는 것도 가능하다.

입력받을 소스의 경로를 지정하는 스트림 파일을 생성할 때, 다음과 같은 형식을 사용하여 수신할 멀티캐스트 주소와 해당 소스 수신에 사용할 특정 랜카드의 IP 주소를 적어준다.

udp://@[멀티캐스트 주소]:[포트 번호]?localAddress=[사용할 랜카드의 IP]

예를 들어, 239.100.100.100:1234 스트림을 192.168.1.100 랜카드를 통해 수신하도록 설정할 경우, 아래와 같이 스트림 파일을 작성해 주면 된다.

스트림파일에서 랜카드를 지정하기 위해 localaddress=192.168.1.100 의 주소를 입력했다.
스트림 파일에서 랜카드 주소를 지정하는 예

스트림파일을 이용한 랜카드의 지정은 위에서 설명한 VHost.xml를 수정하여 설정된 전역 설정보다 우선하여 적용된다. 다시말해, 해당 스트림은 Vhost의 설정 내용을 무시한다는 의미다. 그렇기 때문에 각 스트림별로 각기 다른 랜카드를 사용 하는것이 가능하다.

결론

와우자에서 여러 개의 랜카드를 사용해 라이브 인코더의 UDP 멀티캐스트 출력을 입력 소스로 사용하는 경우, 입력 소스를 수신할 랜카드를 명확하게 지정하는 것은 필수적인 과정이다. 본 필자는 VHost.xml 파일을 수정하여 적용하는 방법을 추천한다. 대부분 와우자는 소스 네트워크와 분배 네트워크 사이에 걸쳐져 있을 것이며, 소스 네트워크가 여러개일 경우는 드물 것이기 때문이다. 이 방법을 통해 한 번의 설정으로 모든 멀티캐스트 입력에 동일한 랜카드를 적용할 수 있어 관리의 귀찮음을 덜 수 있다.

Since 2005, He has generated new value by converging traditional broadcasting technology and ICT. From Headend and Frontend to the Last Mile device, He possesses a comprehensive understanding and experience of the entire broadcast system.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Post comment