????之前寫過一篇K2p的IPTV融合教程,有需要的可以參考《K2P padavan固件下寬帶與IPTV融合》,這個K2p是放在父母家的,房子面積不大,一個K2p足夠覆蓋,父母上網要求不高,所以就搗鼓了這個方案。
????現狀自住的房子面積稍微大了點,一個K2p不夠用了,正好弱電箱的空間挺大,就開始折騰軟路由,最后確定的方案是主路由ROS和旁路由OpenWRT。這個方案是滿足一些特殊需要的,但是ROS不支持udpxy,就不能把組播轉為HTTP串流,作為旁路由的OpenWRT,一般只負責特殊需求,所以把IPTV服務搬上去,也挺合適。
一、?網絡拓撲和相關教程
1.?我的網絡拓撲圖
?這里說明一下,我是六口的工控機,如果你的網口數量或者網口標注名稱跟我的不一樣,不要緊,思路都是一樣的。
2.?有關教程
如果看官剛看到這里,對軟路由的一些安裝還不太清楚可以按順序參考我以下幾篇文章
1)?玩轉軟路由?篇二:軟路由中Esxi 7.0?安裝教程和避坑指南
2)?玩轉軟路由?篇三:虛擬機ESXI中Mikrotik RouterOS(ROS)的安裝設置教程
3)?玩轉軟路由?篇四:軟路由中OpenWRT作為旁路由的安裝設置教程
這些文章詳細介紹了,主路由ROS和旁路由OpenWRT的安裝配置過程,下面的內容,就假定看官都把上述步驟掌握清楚了,特別是Esxi下虛擬機的安裝。因為下面的內容,是在Esxi中新增一個虛擬機OpenWRT,安裝步驟是和篇四中旁路由OpenWRT的安裝是一樣的,只是設置有區別。
3.?光貓
我的網絡環境是江蘇南部小城電信100兆寬帶,寬帶撥號,iTV自動分配(DHCP),后來我讓客服或者安裝師傅,把iTV改成了撥號,其實DHCP模式下,本教程同樣適用。之所以改成撥號,是為了測試《K2P padavan固件下寬帶與IPTV融合》,如果你沒這樣的需求,光貓一般不需要進行任何設置。本教程也是不需要對光貓進行VLAN設置的,比較方便。
二、?Esxi的IPTV網絡設置
1.?查看物理網卡
?這里顯示的兩個物理網卡,是沒有直通的網口,分別代表ETH0和ETH1,如果你是按照我的網絡拓撲圖設置,那么這里應該是一樣的。vmnic0是ETH0網口,作為管理網口。vmnic1是ETH1網口,作為IPTV的網口。
2.?新建虛擬交換機
?在Esxi導航器中點擊【網絡】,再點擊【虛擬交換機】標簽頁,點擊“添加標準虛擬交換機”按鈕。在彈出的對話框中,填寫虛擬交換機的名稱,【安全】種的“混雜模式”選擇接受。其他保持默認即可,關聯好沒有直通的網卡“vmnic1”。設置好之后如下圖所示:
3.?新增端口組
在Esxi導航器中點擊【網絡】,再點擊【端口組】標簽頁。
然后點擊“添加端口組”按鈕。在彈出的對話框中,填寫端口組的名稱,【VLAN ID】可自定義填寫,不重要。【虛擬交換機】選擇上面剛剛創建的虛擬交換機“vSwitch_IPTV”。其他保持默認即可。設置好之后如下圖所示:
三、OpenWRT的安裝
????雖然之前的文章:玩轉軟路由?篇四:軟路由中OpenWRT作為旁路由的安裝設置教程,這里交代過OpenWRT的安裝步驟,但是這里的OpenWRT是為了提供IPTV服務,配置過程有一些地方需要非常注意,所以這里再把詳細的安裝步驟說明一下。這里把新增的這一個OpenWRT虛擬機命名為“IPLV”,專門提供IPTV服務。
1.?創建虛擬機
?第一步:點擊ESXI左側導航欄中的【虛擬機】,然后在視圖窗口點擊【創建/注冊虛擬機】,在彈出的窗口中點擊【創建新虛擬機】。
?第二步:選擇名稱和客戶機操作系統。
?“名稱”自定義填寫;“客戶機操作系統系列”選擇“Linux”;“客戶機操作系統版本”選擇“其他4.x或更高版本的Linux(64)位”。
?第三步:選擇存儲空間。
?如果只有一塊硬盤,那就默認就可以,如果多個硬盤,請選擇要安裝的硬盤位置。
?第四步:刪除虛擬機默認硬件配置
?這里只需要刪除“CD/DVD驅動器”和“硬盤1”即可。如下圖所示,記得刪除這兩個。
?第五步:也是非常重要的一步,這里的網絡適配器要選擇默認的網絡適配器,不要選擇剛剛創建好的IPTV網絡適配器。如下圖所示:
?第六步:根據個人硬件情況修改CPU和內存。
?如第五步上圖所示,根據個人情況修改CPU和內存,一般作為僅僅提供IPTV服務的OpenWRT,1G內存就夠用了。配置完成后確認。
2.?配置OpenWRT虛擬機
?第一步:點擊ESXI左側導航欄中的【存儲】,然后在視圖窗口點擊【數據存儲瀏覽器】,在彈出的窗口中選擇剛剛創建的OpenWRT虛擬機目錄,這個目錄名字跟你OpenWRT虛擬機的名稱一樣,我這里是“IPTV”。選中虛擬機目錄后,點擊窗口左上方的【上載】,把你轉換的或者下載的“vmdk”文件,上傳到虛擬機目錄下。請注意,鏡像文件有兩個“vmdk”文件,需要全部上傳。但是上傳完成后,Esxi窗口中只顯示一個,不要擔心。
?第二步:點擊ESXI左側導航欄中的【虛擬機】,然后點擊下面,然后在右側視圖窗口點擊剛剛創建的虛擬機【IPTV】,然后點擊【編輯】。
?第三步:添加硬盤。在第二步點擊【編輯】后,彈出對話框中,選擇【添加硬盤】->【現有硬盤】,在彈出的對話框中,選擇剛剛第一步中上傳的鏡像文件。
?第四步:很重要的一步。添加剛剛創建的IPTV網絡適配器。這里重點說下,創建虛擬機的時候只需要一個默認網絡適配器,到現在這一步,需要再加入IPTV的網絡適配器。順序很重要。如下圖:
第五步:修改引導選項,還是在上圖中的窗口,進入【虛擬機選項】,往下找到【引導選項】,選擇“BIOS”來引導虛擬機的固件。然后點擊保存即可。
3.?修改OpenWRT虛擬機的IP
?第一步:點擊ESXI左側導航欄中的【虛擬機】,然后在視圖窗口點擊剛剛創建并編輯好的虛擬機【OpenWRT】,然后點擊左邊的那個三角形播放按鈕。
?第二步:進入OpenWRT的命令行模式,等待OpenWRT加載完畢后按下回車,輸入“vi /etc/config/netowork”這條命令進行IP地址的修改。
?第三步:鍵入“i”進入編輯模式,然后找到“ipaddr”,把里面的IP修改為規劃好的IP地址,我這里測試用的,暫時為“10.0.0.15”,需要跟你的主路由和Esxi在同一網段。編輯好之后,鍵下“Esc”鍵,退出編輯模式,然后鍵入“:wq”進行保存,注意“wq”前面有一個英文的冒號。
?第四步:把本地連接(比如筆記本)的IP地址,跟上面設置的IP放到同一網段,然后在瀏覽器中輸入OpenWRT設置的IP地址,就可以通過Web訪問OpenWRT了。Lean大神的OpenWRT,默認賬號“root”,默認密碼是“password”。
4.?OpenWRT固件選擇
沒有最好的固件,只有最適合自己的固件,每個人的上網需求不一樣。現在很多固件都是基于Lean大神的源碼進行二次編譯的,我個人不喜歡koolshare,因為東西太多,我喜歡比較純凈的。OpenWRT官方的固件東西又太少,需要的插件需要自己找,很麻煩。所以我自己就基于Lean大神的固件按需求編譯了一個版本,并且在IPTV融合這塊測試了很多,保證能用。
四、?OpenWRT的IPTV設置
1.?接口設置
第一步:登陸剛剛創建好的OpenWRT,刪除多余接口,只需保留一個LAN和一個WAN,即可。
?第二步:修改WAN口,我這里iTV是撥號,填入賬號密碼,其他默認即可。如果你是DHCP模式也不要緊,先看下去。
?第三步:修改LAN口,LAN口的【協議】選為“靜態地址”;【IPv4地址】系統自動填入OpenWRT的IP,不用改;【IPv4網關】和【使用自定義的?DNS?服務器】默認留空即可。然后在下面關閉DHCP服務器以及禁用IPv6.
2.?修改WAN為靜態IP地址
有同學問了,上一步中WAN不是設置為撥號了么,為什么現在又設置為靜態IP地址呢,為何多此一舉?這里很重要,看仔細了。
首先:通過上面一步的WAN口設置撥號,如果撥號成功,在接口界面會顯示IP地址,把這個IP地址記下來。
第二:在我測試過程中,如果WAN口設置撥號,每次插拔網線,IP地址都會變化,而udpxy不容易跟得上這個IP的變化,所以插拔以此網線,IPTV就看不了了,需要把旁路由、IPTV路由挨個重啟一遍才行,很麻煩。
第三:WAN口根據撥號下發的IP地址,設置成靜態IP,就是插拔網線也不會IP變化了。
首先看下接口信息,撥號成功后WAN口會有下發的IP,請記下來。
第二:修改WAN口為靜態地址,地址就是剛剛記錄下來的下發的IP,其他默認。
五、?IGMPProxy和udpxy配置
Lean大神源碼中只有udpxy,沒有IGMPProxy。我網上找了一個IGMPProxy插件,沒有圖形界面,只能修改配置文件。
1.?IGMPProxy安裝
第一步:用WinSCP登陸OpenWRT。左側導航找到IGMPProxy存放本地的目錄,右側導航進入OpenWRT的tmp文件夾,然后拖入。我這里用來提供IPTV服務的OpenWRT地址是“10.0.0.5”。前面圖片中的“10.0.0.15”僅僅是為了截圖臨時用的IP地址,看官要保持統一。
?第二步:用putty登陸OpenWRT,安裝IGMPProxy。
?如上圖所示,輸入兩條命令:
?cd /tmp?(進入OpenWRT的tmp目錄)
?opkg install igmpproxy_0.2.1-4_x86_64.ipk?(安裝IGMPProxy,記得回車)
2.?IGMPProxy配置
第一步:用WinSCP進入OpenWRT的etc/config目錄下。
?第二步:雙擊“igmpproxy”文件,把eth1也就是WAN口設置為“upstream”,把br-lan也就是LAN口設置為“downstream”,里面的接口名稱要和網絡接口中紅框處的名稱一致。如下圖所示:
?然后保存即可。
3.?防火墻配置
第一步:用WinSCP進入OpenWRT的etc/config目錄下。
?第二步:雙擊“firewall”文件,加入以下內容:
?上圖紅框位置的參數,要修改為你自己的接口參數。里面的IP地址不用修改。
4.?udpxy配置
第一步:安裝,如果你的固件中沒有udpxy,那么可以參考IGMPProxy的安裝,就是把ipk文件先上傳到OpenWRT的tmp目錄,然后用putty鍵入命令進行安裝。
第二步:安裝完成后,刷新瀏覽器,在OpenWRT的菜單欄【服務】下可以找到。
?第三步:進入設置界面,【Bind IP/Interface】中填入OpenWRT的地址;【端口】填入自定義端口,不與其他端口沖突即可;【Source IP/Interface】中填入WAN口的名稱。如下圖:
?第四步:在瀏覽器中輸入http://10.0.0.5:8688/status/(這個地址種的IP和端口換成你自己的),如果可以看到udpxy服務頁面,說明udpxy配置成功。如下圖所示:
六、?IPTV測試
1.?組播轉串流
第一步:把你抓取到的IPTV播放地址換成串流格式(適合小白的使用Wireshark抓包IPTV的教程),加入你的IPTV頻道地址為“igmp://229.89.0.3:8000”這種格式,那么把這個地址修改為http://10.0.0.5:8688/udp/229.89.0.3:8000。
第二步:打開PotPalyer,把上面的地址加入播放器。
?正常的話,PotPlayer就可以播放電視直播了。
2.?可能的問題
????因為每個人的網絡環境、電信運營商都不一樣,這篇文章不可能適合所有人。
????如果按照上面的步驟沒有播放成功,請嘗試先把旁路由關掉電源,再把IPTV路由關掉電源;然后打開旁路由電源,再打開IPTV路由電源,如此反復。我再測試過程中,也遇到了配置好了卻無法播放的問題,不停的重啟,查找原因,才寫出這篇文章。
????沒有成功,不要緊,多試試。生命不止折騰不休。