IPTV共享之填坑篇+组播地址

【坑1】IGMP snooping和IGMP proxy

IGMP snooping和IGMP proxy区别网上一大堆介绍,引用度娘文档一段:
IGMP snooping 的实现机理是:交换机通过侦听主机向路由器的IGMP成员报告消息的方式,形成组成员和交换机接口的对应关系;交换机根据该对应关系将收到组播数据包只转给具有组成员的接口。
IGMP Proxy与IGMP Snooping实现功能相同但机理相异:IGMP Snooping只是通过侦听IGMP的消息来获取有关信息,而IGMP Proxy则拦截了终端用户的IGMP请求并进行相关处理后,再将它转发给上层路由器。
所以在IGMP snooping里面形成的table是组成员和交换机接口的对应关系,在IGMP Proxy里面形成的是组播路由表。
相当于IGMP snooping来说,实现了IGMP proxy的二层网络设备,对用户侧承担Server的角色,定期查询用户信息,对于网络路由侧又承担Client的角色,在需要时将当前的用户信息发送给网络.不仅能够达到抑制二层组播泛滥的目的更能有效地获取和控制用户信息,同时在减少网络侧协议消息以降低网络负荷方面起到一定作用。

---------------------
个人理解这段话:IGMP proxy包含了IGMP snooping所有功能,IGMP snooping和IGMP proxy开启其中之一就行,一起开增加设备负担,如果路由器有IGMP Proxy,则优先开启,没有再考虑IGMP snooping。
选IGMP snooping高恪根本就不能放组播,只能放单播,让你们少走点弯路

我的光猫是TEWA-500G,业务类型选“上网”连接模式选”路由“ ,

应用-->IGMP设置-->IGMP proxy才能勾选,业务类型选“其他”或者连接模式选”桥接“ ,IGMP proxy勾选保存,还是还原成不勾选,也就是说IGMP proxy必须是上网路由模式,那怎么办?IPTV就是“其他”业务,那就试试上网路由模式能不能IPTV拨号吧?事实如此是可以拨号的,但能不能看IPTV呢?也是可以的。个人理解IGMP proxy建立的组播路由表必须开启路由模式才能起作用,否则光猫IGMP proxy也不会被还原回不勾选了。
光猫的设置要机顶盒或电脑检测正常播放了在进行下一步操作。

 

【坑2】播放器
PotPlayer对格式形如
单播rtsp://180.141.207.xxx/PLTV/88888888/224/3221225549/10000100000000060000000000081878_0.smil?
udpxy组播http://192.168.2.1:4022/rtp/239.81.0.2:4056
支持比较好VLC播放格式形如:
udpxy组播http://192.168.2.1:4022/rtp/239.81.0.2:4056
纯组播rtp://239.81.0.13:4056
支持比较好
反正你抓包得的地址两个播放器都试一下,总有可以播的,播不了那就是没抓对地址或者路由光猫没设置好。

 

【坑3】路由器udpxy设置

winSCP登陆,路径/etc/config/udpxy

 

config udpxy
option respawn '1'
option verbose '0'
option status '1'
option bind 'br-lan'
option port '4022'
option source 'eth0.4'

Ctrl+T,输入ifconfig查看

option bind 'br-lan'是填路由器的内网地址,填'br-lan'比具体的IP如192.168.2.1要好,内网地址变也不用修改了
option source 'eth0.4'是填组播的地址,我拿高恪K2P来说,外网配置-->弹性接口,设置WAN1,WAN2其余作为LAN口,然后”接口概览“显示得到LAN WAN WAN2的MAC,ifconfig查看的结果中用WAN2的MAC查找相对应的名称就是 'eth0.4',如果是pppoe-wan2那你就填pppoe-wan2,我这光猫“桥接”用不了IGMP proxy,只能光猫拨号,路由器里的WAN2就是 'eth0.4'

配置好上传后(注意文件权限问题)用命令

/etc/init.d/udpxy stop

隔几秒

/etc/init.d/udpxy start

出现错误说明你没装udpxy或配置不对
浏览器访问http://192.168.2.1:4022/status验证一下是不是出现udpxy status的状态页面(需要注意的是固件不同,可能地址也不同,我家的openwrt用的是http://192.168.1.1:8888/status),没出现就是option bind或option source没填写正确。

 

【坑4】路由器igmpproxy设置
原理同【坑3】,不在啰嗦了

config igmpproxy
    option quickleave 1

config phyint
    option network eth0.4
    option direction upstream
    list altnet 0.0.0.0/0

config phyint
    option network br-lan
    option direction downstream

配置好上传后(注意文件权限问题)用命令

/etc/init.d/igmpproxy stop
/etc/init.d/igmpproxy start

检测,如出现错误或命令不可用则没配置好
有些组播是IGMPv2的则需要改变一下版本

net.ipv4.conf.all.force_igmp_version=2

添加到 /etc/sysctl.conf里面就可以了

 

 

【坑5】共享之后机顶盒用不了或卡在83%进不了平台
原因是鉴权服务器IP没加进策略路由规则中,验证的时候走WAN没走WAN2当然是进不了平台了,如果你不知道鉴权服务器IP,抓包出来的IP 全部添加进去就可以了,如图先用http筛选一下10.220.68.26是IPTV拨号的时候获得的IP,那右边Source列所有IP都添加进去,还有获得频道列表文件里面IP 也要添加

 

 

说一下自己对“IPTV共享”和“单线复用”的理解:
单线复用不一定IPTV能共享,但IPTV能共享就能单线复用,如划分VLAN法的单线复用也只在相同的VLAN的网口播IPTV,不同VLAN网口播不了,而IPTV共享之后哪个网口都可以插都可以播,机顶盒也正常播放。

 

【坑6】Firewall
/etc/config/firewall中添加

//允许IGMP协议
config rule
        option target 'ACCEPT'
        option src 'wan2'
        option name 'Allow-IGMP'
        option proto 'IGMP'


//允许udp数据入站
config rule
        option target 'ACCEPT'
        option src 'wan2'
        option proto 'udp'
        option name 'Allow-UDP-igmpproxy'
        option family 'ipv4'
        option dest 'lan'
        option dest_ip '224.0.0.0/4'


//允许udp协议
config rule
        option target 'ACCEPT'
        option src 'wan2'
        option proto 'udp'
        option name 'Allow-UDP-udpxy'
        option dest_ip '224.0.0.0/4'

224.0.0.0/4是表示224.0.0.0-239.255.255.255的组播地址,我见有些人改239.0.0.0/4不知道有没有影响?
以上参考了
https://openwrt.org/docs/guide-user/network/wan/udp_multicast
https://forum.openwrt.org/t/solved-iptv-igmpproxy-and-firewall-issues/12890/12
https://forum.openwrt.org/t/solved-multicast-packets-cannot-be-forwarded-to-lan-from-wan/12040/17

 

Snipaste_2019-07-23_13-11-49.png

 

原文地址:https://www.right.com.cn/forum/thread-830181-1-1.html

 

 

点赞

发表回复