高階版:IPTV 終極組網方案

背景

現在很多文章都在說 iptv 單線組網的文章。總的來說就是建立 IPTV 機頂盒到局端的二層鏈路,最後都歸結到一點:iptv 機頂盒連通到光貓的 iptv vlan 上。從 iptv 機頂盒得到的 ip 你就能看出來,這種方法得到的 ip 一定是局端分配的 ip,比如:10.68.xx.xx,一看就能看出來。這種方式沒什麼不好,不過有幾個問題需要注意:

1、安全問題。因為是二層鏈路直接到了局端,當你拓撲設計完了,一定要模擬一下從局端訪問你家裡的內網,是否有隔離,否則,你辛苦的在 pppoe 上做了一堆的防火牆,卻在 iptv 端口上把整個家庭內網和局端連接起來了。看到過很多這種設計,比如下面這種設計:

高階版:IPTV 終極組網方案

或是這種設計,

高階版:IPTV 終極組網方案

以上設計都沒有做 vlan 隔離,直接把 iptv 端口連入 LAN 交換端口上,你從運營商的局端開始模擬一下就可以發現,局端可以直接進入你家裡的內網,訪問你的 NAS 共享,你的 airplay 音箱,你家裡的攝像頭,甚至操控你的智能門鎖;如果你的運營商 iptv 端口沒有做用戶隔離了(不要認為不可能,我就在我家的 iptv 端口抓包時抓到了鄰居家的包),你的鄰居就可以從 iptv 口,進入你家裡的內網,訪問你的 NAS 共享,你的 airplay 音箱,你家裡的攝像頭,甚至操控你的智能門鎖。可怕嗎?

另外還有兩個缺點:

1、只能一臺 iptv 機頂盒使用,其他房間如果有電視,是不能用 iptv 機頂盒的。如果電信限制了 iptv 機頂盒認證(電腦隨便插上網線就能獲得 ip 的是沒限制)。

2、用不了 udpxy,udpxy 是什麼呢,是讓電腦、平板、 android 盒子也能看iptv 的方案。因為 udpxy 也需要作為一個終端接入 iptv 專網,如果電信限制了 iptv 機頂盒認證。

接下來,我介紹的這種方案不常見,和上面的方案在原理上完全不一樣。


方案概述

先拿上網打個比方,我們以前上網時都是電腦 pppoe,電腦直接獲得一個202.111.xxx.xxx 的 ip,後來有了路由器,通過路由器 pppoe,路由器拿到的 ip 為 202.111.xxx.xxx,然後路由器後端分配給 pc 一個 192.168.xxx.xxx 的地址,pc 通過路由器上網,後來電信禁止路由撥號,綁定 mac,路由器後來又具備了克隆 mac 的功能,所謂道高一尺魔高一丈,總的來說,就是路由器模擬了一臺電腦接入了局端的網絡。

然而,這個場景到了 iptv 為什麼不能用呢?我們的路由同樣也可以模擬一臺 iptv 盒子接入局端 iptv 網絡。然後路由器把 iptv 數據分發給 iptv 機頂盒。電信局端看到的只是一臺機頂盒,其實是我們的路由器冒充的,我們的路由器獲得了局端分配的 ip,10.68.xx.xx 類似的地址,路由器背後有 n 個 iptv 設備,各分配到了一個 192.168.xx.xx 的地址,最後通過路由器連入 iptv 專絡。以上問題就解決了:

1、安全問題,路由器 WAN 以外是局端,LAN 以內是家庭端,路由器起到了防火牆隔離。

2、路由器後幾個 iptv 設備局端是不知道的,你想用幾個設備就用幾個設備,當然沒問題。

3、udpxy 作為一個 iptv 軟終端設備,當然也可以用了。

最後,還有一個附帶的優點:

4、iptv 的無線設計還會變得很簡單,就如同你手機平板接入無線,IPTV 機頂盒通過 AP+ 交換機最後接入路由器 LAN 口,當然需要調優無線組播的效率問題,否者 IPTV 直播會卡頓。


拓撲設計

高階版:IPTV 終極組網方案

設備需求

1、UBNT 路由

首先,這裡為什麼推薦 ubnt 路由呢。如果你看過我過去設計的一些方案,你會發現,有一些設計場景直接使用了 Linux Shell 腳本和 Linux 3rd packages 來實現一些功能,首先這就排除了像華為、H3C、思科類型的設備,雖然他們很牛,但由於系統的封閉性,家庭使用場景中一些特殊的功能沒辦法實現。所以,剩下可以挑選的設備就那麼幾種了:openwrt 系,vyos 系,破解後的 routeros 系(原生不能用 linux),其中我傾向於未破解的商業產品路由,最為穩定,另外,ubnt 帶的 OS 為 debian 也比較簡單:沒有一個 apt-get 搞不定的,如果有,那就用兩個 apt-get。

這裡主要用到的路由特性有:vlan 路由,nat,dhcp,組播代理(igmpproxy)或者組播路由(PIM等),如果你現有的路由能做這幾個事,也是可以替代的,本方案使用的 USG。

2、UniFi 交換機

這裡主要用到的交換特性有:vlan和igmp snooping,如果你現有的交換機能做這幾個事,也是可以替代的。本方案使用的Unifi交換機。

3、UBNT UAP

這裡主要用到的 ap 特性有:vlan_ssid,無線 igmp 增強(Mulitcast to Unicast);如果你現有的 ap 能做這幾個事,也是可以替代的。本方案使用的 UAP。


方案要點

1、iptv 機頂盒抓包與路由配置

首先需要對 IPTV 盒子抓包,分析 IPTV 盒子向局端發送了什麼信息。然後通過路由配置 dhcp 信息,克隆 IPTV 盒子的信息通過認證,接入運營商的 IPTV 專有網絡。

比如:我這的運營商對 IPTV 盒子採取的 DHCP 認證,也就是 IPOE 認證,根據抓包分析,運營商根據 IPTV 盒子的 MAC 地址、HostName、Vendor 來認證。如下:

高階版:IPTV 終極組網方案

然後局端對 IPTV 盒子下發的信息也需要分析,克隆運營商局端的 DHCP 信息,讓 USG 替代局端下發 IP。

高階版:IPTV 終極組網方案

這個方法是通用的,無論是上海還是北京,比如:上海的雙認證,只要 WAN 口上新建一個 VLAN85,然後向局端網關提交克隆的認證信息即可。

如果,你的 iptv 是 pppoe 上網,那更簡單,直接在路由上配置 pppoe 就可以了,不過內網裡的 iptv 盒子 ip 獲取方式改為 dhcp。

這些信息都是通過配置 WAN 接口的 DHCP Client 就可以了,最後路由能獲得一個 IPTV 專網的地址。

2、iptv lan的規劃

在內網裡專門建立一個 IPTV 網段,並把所有流量 NAT 到 WAN 口的 IPTV 接口。

高階版:IPTV 終極組網方案

然後,還需要做的一件事情,就是要建立內網 IPTV 和外網 IPTV 的組播通道,即組播代理,配置 igmpproxy。

最後,IPTV 盒子,如下圖,獲得的是一個內網 IP,而且,使用正常。

高階版:IPTV 終極組網方案

3、無線 iptv

針對上面的 vlan id 配置一個 iptv 的專用 ssid

高階版:IPTV 終極組網方案

因為 iptv 直播使用的組播數據流,無線組播默認的效率很低,因此還需要對無線組播進行調優,加強無線組播效率。

4、udpxy

udpxy 是一個把組播流變成 http 點播流的軟件,我們通過 udpxy,可以把我們iptv 的服務擴展到手機、平板上,甚至映射到公網上,在外面就可以直接訪問家裡的 iptv 電視節目。

udpxy 的用法很簡單,網上很多,這就不多說了,最後的效果如下:

高階版:IPTV 終極組網方案

5、多個 iptv 機頂盒同時使用

首先,為什麼要使用 iptv 機頂盒,通過 udpxy 可以把 iptv 通過小米盒子觀看,但iptv機頂盒還是有很多好處,比如,可以回看;適合老人孩子操作等;

一般來說運營商的 IPTV 機頂盒做了 mac 地址認證,這裡的認證指的不是 dhcp認證,而是業務認證。所謂業務認證,就是機頂盒會把 mac地址+機頂盒序列號+IPTV 業務賬號+密碼通過 WebService 向 IPTV 服務器認證。運營商一般在下發 iptv 機頂盒都做了信息綁定。如果你的運營商沒有做這個限制,恭喜你,前面的方案設計就夠了。

但是,如果你的運營商做了這個限制,那怎麼解決呢。

1、向運營商申請第二個 iptv 盒子,當然他們會額外收點錢,他們會給你一臺新的 iptv 盒子,然後新的信息進行綁定。

2、如果你的運營商沒有第二臺 iptv 盒子的業務(比如我這),那你還只能採取別的手段了。什麼步驟呢?

1、首先,你得買一個相同型號的機頂盒,這個首富家有賣。

2、然後你得把新的機頂盒克隆成原來的機頂盒的信息,比如:系統(各省份的系統不同)、mac 地址、序列號等,但是,無線 wifi 的 mac 地址配置成一個新的地址。最好買的時候就讓賣家幫您做了,否則自己動手,你的知識面需要擴展到 android系統了。

完成以上兩步,恭喜您,現在機頂盒已經可以使用了。而且通過無線 iptv 多個機頂盒可以同時觀看 iptv。

高階版:IPTV 終極組網方案

理論上你是可以增加數量很多的 IPTV 機頂盒的。但是,因為iptv組播數據是靠路由的 CPU 轉發,沒有 offload/hwnat,所以,像 usg 這種性能不高的 cpu,大概跑個 3-4 個機頂盒就差不多了,一路 IPTV 的帶寬大概在 20Mbps,usg 靠cpu,吞吐量在80-90Mbps(不影響上網的速度,上網的數據量還是走的offload)。

好了,最後弄完了,也調試通了,也清楚了為什麼要這麼設計,恭喜您,掌握了交換網絡和路由網絡很多的核心知識點了,再努力學點其他東西比如 ospf,bgp,考個證吧:)


分享到:


相關文章: