메인 항목으로

Apple TV (BTV) 설정

1. VLAN 생성


1) "Network > 설정 > 네트워크"에서 "새로운 가상 네트워크"를 누릅니다. 네트워크 이름을 지정하고 사용할 IP 대역 정보를 넣어줍니다. 밑부분 IGMP Snooping, 멀티테스크 DNS는 체크해 줍니다. (SKB위한 VLAN 대역대는 반드시 192.168.33.1 대역대로 설정해야 합니다.)

IPTV1.jpg

 
2. 멀티캐스트 DNS 및 IGMP Snooping 설정

 

VLAN ID (5)에 IPTV가 생성 됐음을 확인하고, 아래와 같이 설정을 합니다.

IPTV2.jpg


3. 방화벽 규칙 설정 #1

 

"네트워크 > 보안 > 방화벽 규칙"으로 이동하여 항목 만들기를 눌러줍니다.

1) 유형 : 인너넷 인
2) 이름 : Allow IPTV Mulicast
3) 작업 : 수락
4) 프로토콜 : 모두
5) 소스 : 아무것도 건들지 않음
6) 목적지 : "주소그룹" 옆 신규를 누른 후  프로필 이름을 "IGMP"로 넣고 IPv4 주소.서브넷에 "224.0.0.0/4"를 넣고 만들기를 눌러줍니다. "주소그룹"에서 IGMP를 선택 합니다.
7) 고급 : 일치상태는 전부 체크하고, IPSec은 "일치하지 않음"을 선택 후 "규칙 추가"를 눌러 줍니다.

IPTV3.jpg

4. 방화벽 규칙 설정 #2

 

다시 "네트워크 > 보안 > 방화벽 규칙"으로 이동하여 항목 만들기를 눌러줍니다.

1) 유형 : 인터넷 로컬
2) 이름 : Allow IGMP Traffic
3) 작업 : 수락
4) 프로토콜 : "사전 정의 이전" 체크를 풀고, IGMP를 선택해 줍니다.
5) 소스 : 아무것도 건들지 않음
6) 목적지 : 아무것도 건들지 않음
7) 고급 : 일치상태는 전부 체크하고, IPSec은 "일치하지 않음"을 선택 후 "규칙 추가"를 눌러 줍니다.


5. igmpproxy 설치
:

 

DM Pro에 ssh 접속을 해야 합니다. ssh 접속은 UniFi OS의 "Console Settings"에서 Advanced에 있는 SSH를 체크 후 비밀번호를 생성해 주면 접속할 수 있습니다.

1) 터미널 프로그램에서 호스트 192.168.1.1 (포트는 기본 22), id는 root, password는 위에서 입력한 값을 넣어 ssh 접속을 합니다.
2) igmpproxy를 설치해 줍니다.

cd /mnt
mkdir data
mkdir data/igmpproxy
cd /mnt/data/igmpproxy
curl -Lo igmpproxy https://raw.githubusercontent.com/peacey/udm-telus/main/igmpproxy
curl -Lo igmpproxy.conf https://raw.githubusercontent.com/peacey/udm-telus/main/igmpproxy.conf
chmod +x igmpproxy

3) 먼저 각 포트별 값 확인을 위해 아래 명령을 실행 합니다.

ifconfig

(1) 여기서 brXX가 VLAN 식별자이고, ethXX는 LAN돠 WAN 포트 번호 입니다.

(2) upstream과 downstream 포트를 찾아야 하는데 합니다.

(3) upstream의 경우 RJ45 WAN이면 eh8이고 SFP WAN이면 eh9 입니다.

(4) downstream의 경우 brXX 쪽에서 부여하신 IP 범위 값으로 해당 포트 값을 찾아 줍니다. 제 경우 192.168.33.1 이므로 br5가 해당 포트임을 확인 할 수 있습니다.

IPTV5.jpg

4) igmpproxy.conf를 수정해 줍니다. (손쉬운 수정을 위해 nano를 sudo apt install nano 명령어로 설치해 줍니다.)


(1) upstream 부분을 eh8로 수정 합니다.

(2) downstream 부분을 br5로 수정합니다.

(3) disable항목에 ifconfig에서 확인한 포트 중 eh8, br5를 제외한 모든 포트를 넣어줍니다. 작성 후 ctrl + x를 눌러 빠져나와 y를 눌러 저장해 줍니다.

quickleave

# upstream = modem interface
phyint eth8 upstream ratelimit 0 threshold 1
        altnet 0.0.0.0/0;

# lan interface of iptv device
phyint br5 downstream ratelimit 0 threshold 1
        # altnet 0.0.0.0/0;

# disable all unused interfaces
phyint br0 disabled
phyint br2 disabled
phyint br3 disabled
phyint br4 disabled
phyint eth0 disabled
phyint eth1 disabled
phyint eth2 disabled
phyint eth3 disabled
phyint eth4 disabled
phyint eth5 disabled
phyint eth6 disabled
phyint eth7lo disabled
phyint eth9 disabled
phyint eth10 disabled
phyint eth10.2 disabled
phyint eth10.3 disabled
phyint eth10.4 disabled
phyint eth10.5 disabled
phyint eth9.2 disabled
phyint eth9.3 disabled
phyint eth9.4 disabled
phyint eth9.5 disabled
phyint lo disabled
phyint switch0 disabled
phyint switch0.1 disabled
phyint switch0.2 disabled
phyint switch0.3 disabled
phyint switch0.4 disabled
phyint switch0.5 disabled
phyint tlprt0 disabled


(4) 작성한 문장이 잘 동작되는지 확인 합니다.

./igmpproxy -ndv ./igmpproxy.conf

 

6. igmpproxy 데몬 실행 

 

./igmpproxy ./igmpproxy.conf

 


7. Apple TV 네트워크 VLAN 설정

 

1) "Network > 포트"에서 Apple TV를 찾아 들어갑니다.

IPTV6.jpg

8.2) 기본 VLAN/네트워크를 IPTV로 변경해 줍니다.

IPTV7.jpg

9.3) Apple TV를 재기동하면 IPTV VLAN에서 DHCP IP를 받아 옵니다.

10. 

8. 자동 시작 스크립트

 

UDM Pro를 재부팅 시 igmproxy 자동 시작 스트립트는 아래와 같습니다.

cd /mnt/data
mkdir on_boot.d
cd /mnt/data/on_boot.d
curl -Lo 99-run-igmpproxy.sh https://raw.githubusercontent.com/peacey/udm-telus/main/run-igmpproxy.sh
chmod +x 99-run-igmpproxy.sh