Yönlendirmenin ne olduğunu kısaca tanımlarsak; kendinizi router cihaz olarak düşünün. Size gelen paketler 2 çeşittir. Ya gelen paketi kendiniz işlersiniz (input) ya da gelen paketi yerel ağa yönlendirirsiniz (forward). Örnek vermek gerekirse; Router cihazda ssh sunucusu varsa ve bu paketi routerın kendi ele alacaksa input olur, ama gelen ssh bağlantısını kendiniz işlemeden yerel ağdaki bir cihaza iletecekseniz forward olur. Output ise sizden çıkan pakettir. Aynı şekilde yerel ağdan bir paket aldınız ve bu paketi kendiniz işlemeden internete bırakırsanız forward olur. Yönlendirme için router cihazda en az 2 adet ethernet portu gerekir. Bir ethernet portu varsa sadece input/output gerçekleşir, ama paketi bir porttan (wan) diğer porta (lan1) aktarırsanız forward olur. IGMP Proxy paketi ile IPTV ağından alınan 224.0.0.0/4 UDP multicast paketleriyle router'ın kendisi ilgilenmeyip yerel ağa ilgilenen cihaza iletmektedir (forward).
Bu bölümde yönlendirme ayarlarını yapacağız. Öncelikle IPTV ağına paketlerin doğru bir şekilde yönlendirilmesi için statik rotaları ekleyeceğiz, sonrasında IGMP protokolünü uygulayan ve IGMP isteklerini lan'dan iptv ağına yönlendiren IGMP Proxy paketini kuracağız.
Statik rotaları eklemeden önce IPTV için gateway IP bulmamız gerekiyor. Bu gateway IP her bölge için farklıdır, yani sabit değildir. Bu IP'yi bulmak için iki yöntemimiz var:
STATUS - ROUTING - IPv4 Neighbours (ARP) Tablosunda, Interface (iptv) satırında 100.X.X.1 şeklinde bir IP adresi olacak. Görünmüyorsa router'a SSH ile bağlanıp komut satırına aşağıdaki satırı yazın.
# ifstatus iptv | grep nexthop
Inactive->route->nexthop 'ta yazan IP adresidir. Bu IP adresini kopyalayın. Statik rotaları eklerken Gateway bölümüne yapıştıracağız. Aşağıda hem 21.02 hem de 22.03 sürüm ve sonrası için eklenmesi gereken rotalar verilmiştir. Dikkat edilmesi gereken nokta, 21.02 sürümünde mask ayrı yazılıyor, 22.03 ve sonrasında bitişik yazılıyor.
NETWORK -> ROUTING -> STATIC IPV4 ROUTES
IFACE TARGET MASK (21.02) TARGET/MASK(22.03+) GATEWAY
iptv 172.31.128.0 255.255.224.0 172.31.128.0/19 100.X.X.1
iptv 10.31.0.0 255.255.0.0 10.31.0.0/16 100.X.X.1
iptv 10.63.0.0 255.255.240.0 10.63.0.0/20 100.X.X.1
iptv 85.153.240.0 255.255.240.0 85.153.240.0/20 100.X.X.1
iptv 176.43.0.0 255.255.255.0 176.43.0.0/24 100.X.X.1
iptv 176.235.0.0 255.255.240.0 176.235.0.0/20 100.X.X.1
Bu rotaları doğru eklediğinizden emin olmak için aşağıdaki kontrolleri yapınız:
Doğru eklendiyse STATUS-ROUTING-Active IPv4 Routes sekmesinde IPTV tarafında aktif görünecektir.
Komut satırına "ip route get 172.31.128.1" yazın. Arayüz olarak br-all.103 (iptv) çıktısı vermesi gerek.
Windows ortamında komut satırına "tracert 10.31.44.18" yazın. 2. satırda 100.X.X.2 yazması gerek.
SYSTEM -> SOFTWARE -> Update Lists -> Install igmpproxy
Yukarıdaki ayarlarla kanal değiştirdiğinizde yayın 10-15 saniye unicast olarak gelecek, sonrasında multicast yayına geçecek ve yayın kesilecektir. Yayını durdurup 3-5 sn geri almanız durumunda tekrar unicast yayına geçecektir. Canlı yayın multicast olarak gelmekte ve bunun için igmpproxy paketinin kurulması gerekmektedir.
# opkg update && opkg install igmpproxy
#vim /etc/config/igmpproxy
config igmpproxy
option quickleave 1
config phyint
option network iptv
option zone iptv
option direction upstream
list altnet 0.0.0.0/0
config phyint
option network lan
option zone lan
option direction downstream
quickleave ayarı, kullandığınız tv cihazı tek cihaz ise 1 olarak kalabilir, ancak router cihazınız bir otelin birden fazla odasına hizmet sağlayacaksa 0 olması gerekmektedir. Çünkü aynı anda bir kanalı 2 kişi izliyorsa, diğeri kanal değiştirdiğinde bir kaç saniyelik kesinti olabilmektedir.
iptv interface, iptv bölgesine tanımlı ve upstream (gönderici) olarak ayarlı. list altnet 0.0.0.0/0 ayarı ile, iptv den gelen bütün multicast kaynaklarına izin veriyoruz. lan interface ise lan bölgesine tanımlı ve downstream (alıcı) olarak ayarladık. Bunu uydu (upstream) ve çanak anten (downstream) örneğine benzetebiliriz.
IGMP Proxy paketi kurulduğunda bu servis tarafından gerekli firewall kuralları eklenmektedir. Aşağıdaki kurallara baktığımızda, sırasıyla lan ve iptv bölgesinden gelen igmp protokolü kabul edilmektedir. IPTV bölgesinden LAN bölgesine yönlendirilen 239.255.255.250 UDP paketleri reddedilmekte, 224.0.0.0/4 Multicast UDP paketleri ise kabul edilmektedir.
chain input_lan {
meta nfproto ipv4 meta l4proto igmp counter accept comment "!fw4: ubus:igmpproxy[instance1] rule 3
}
chain input_iptv {
meta nfproto ipv4 meta l4proto igmp counter accept comment "!fw4: ubus:igmpproxy[instance1] rule 0"
}
chain forward_iptv {
meta l4proto udp ip daddr 239.255.255.250 counter jump drop_to_lan comment "!fw4: ubus:igmpproxy[instance1] rule 1"
meta l4proto udp ip daddr 224.0.0.0/4 counter jump accept_to_lan comment "!fw4: ubus:igmpproxy[instance1] rule 2"
}
NTP AYARLARI
SYSTEM - Time Sync - NTP server candidates bölümünden diğer tüm zaman sunucularını silip, bunu ekleyin:
cpentp.superonline.net
Zaman dilimi: Istanbul
Router ve tv cihazı yeniden başlatın. TV cihazınız yeni nesil bir cihazsa (youtube uygulaması varsa) normalde yukarıdaki ayarlarla hem tv yayınını kesintisiz alması hem de youtube uygulamasının internete bağlanması gerekir. Çalışmıyorsa cihazınız bayağı eskidir. Bir sonraki bölümde sorunlar ve çözümlerinden bahsedeceğiz.