电信运营商面向个人用户的业务主要有互联网接入、IPTV、固定电话。随着网路技术的不断发展,在家庭接入层面主要采用了FTTH(Fiber To The Home,光纤到户)、Cable Modem这两类有线接入方式。各类业务不断IP化,Everything Over IP,传统的电视业务,电话业务也都实现了IP化。互联网、IPTV、固定电话到用户侧其实都是IP方式实现的,尤其是ONU接入的方式。
FTTx基本结构
FTTx有FTTB(Fiber To The Building)、FTTH(Fiber To The Home)、FTTR(Fiber To The Room),基本结构类似,都是采用的PON(Passive Optical Network)技术,只是ONU所处的位置不同。FTTx网络基本结构如下:

主要促成部分有:
- OLT(Optical Line Terminal,光线路终端):PON系统的核心设备,一般放置在中心机房,用于统一管理ONU,并将接入业务汇聚和传递到IP网。
- POS(Passive Optical Splitter,无源分光器):用来向ONU分发OLT的下行数据,并向OLT汇聚各ONU的上行数据。
- ODN(Optical Distribution Network,光分配网络):由光纤和一到多个POS等无源光器件组成,在OLT和ONU间提供光信号传输通道。
- ONU(Optical Network Unit,光网络单元):PON系统的用户端设备,用于连接用户PC、机顶盒、交换机等,通常放置在用户家中、楼道或道路两侧,负责响应OLT发出的管理命令,并将用户数据转发到OLT。
PON数据传输模式
- PON下行数据采用广播方式,OLT将下行数据加密后广播给各个ONU,各ONU根据下行数据的LLID接收属于自己的数据,丢弃其他用户的数据。每个LLID有独立的密钥,各ONU只能解密自己的数据。

- PON上行数据采用TDMA,各ONU把从用户侧收到的数据帧缓存起来,等待OLT为自身分配的发送时隙到来时,以全线速发送所有缓存的数据帧。

PON和VLAN
互联网/IPTV/固定电话业务在PON上的区分是通过VLAN实现。

互联网/IPTV/固定电话/ITMS均使用单独的VLAN,通常IPTV/固定电话/ITMS在一个城市里都是一样的,互联网VLAN不同区域不一样。实际的网络中还是使用了QinQ,双层VLAN标签,以达到每用户每业务VLAN。
ONU的配置
ONU上主要完成ISP的各个业务VLAN ID替换成内网的VLAN ID

这里内网的VLAN ID(用户侧VLAN)可以和ISP的VLAN ID(WAN侧VLAN)一样,也可以不一样。主要目的是实现ISP的各个业务带着VLAN标签进入家里的无线路由器,以便于无线路由来解VLAN标签分离业务。
无线路由器的配置
无线路由器完成这几个事:
- 业务VLAN标签的解除,内网和ISP的互联网、IPTV网、固定电话网打通;
- 组播转单播;
- 提供DLNA;
新建device

其实就是新建各个VLAN端口对应的设备,注意IPTV的mac地址必须使用机顶盒的mac,因为IPTV网使用的是DHCP,通过等级的mac及DHCP option 60来认证和获取地址。

新建Interface


- IPTV的Interface中Client ID格式为:01机顶盒mac
- Vender ID各个地方不同,可在网上搜索到
- User default gateway不勾选,以避免影响互联网业务

firewall可以单独新增一个zone,也可以就用lan。推荐新增一个zone,例如: IPTV,便于后期进行相关的控制。
设置防火墙规则

如果设置了新的zone,则需要放通lan到新zone的转发。
编辑 /etc/config/firewall 防火墙配置中新增允许igmp,组播。或者直接web方式新增。
config rule
option target 'ACCEPT'
option src 'IPTV'
option name 'Allow-IGMP-Input'
option family 'ipv4'
option proto 'igmp'
config rule
option target 'ACCEPT'
option src 'IPTV'
option name 'Allow-Multicast-Input'
option family 'ipv4'
option proto 'udp'
option dest_ip '224.0.0.0/4'
config rule
option target 'ACCEPT'
option src 'IPTV'
option name 'Allow-Multicast-to-lan'
option family 'ipv4'
option proto 'udp'
option dest 'lan'
option dest_ip '224.0.0.0/4'
配置直播环境
安装igmpproxy。igmpproxy没有luci界面,直接修改/etc/config/igmpproxy文件。
config igmpproxy
option quickleave 1
# option verbose [0-2]
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
打开lan口的igmp_snooping,web界面或者直接修改/etc/config/network都可以。
保存好配置后重启igmpproxy及防火墙,此时通过有线应该能使用STB及potplayer播放直播电视了。
组播转单播
组播在wifi环境下会造成无线网络劣化,通过udpxy将组播转为单播在内网传输。udpxy有luci界面,可直接在web下配置。主要是Bind IP和Source IP。

设置好后重启服务,访问http://192.168.1.1:4022/status 如果能够出现页面,并且Multicast address有地址则没有问题,可以继续下一步。
此时如果要通过udpxy来播放直播,需要将组播播放地址rtp://239.x.x.x:5140做个转换,转换成http://192.168.1.1:4022/rtp/239.x.x.x:5140 然后就可以在手机上用VLC播放了。
具体的组播播放地址各个地方不同,可以通过网络自行搜索。
DLNA
通过url来看IPTV很不方便,可以安装xupnpd在网内提供DLNA服务,为盒子及VLC提供播放列表,免得手工输入。安装好后通过web界面4044端口可以访问。没有什么特别的,只是注意上传m3u文件的时候,文件扩展名必须小写,不然会上传失败。
m3u文件里各个频道的播放地址就如前面udpxy访问的格式。
至此IPTV已经融合进内网了。
固定电话
现在电话都是通过SIP协议了,具体的参数可以在ONU上直接查找。

SIP密码也可以使用超密在后台或者SSH到ONU后获取。
只要支持SIP的软电话(例如Zoiper)、语音网关(例如Linksys SPA3000),配置参数后都可以使用。
延申
内网已经实现了可以看IPTV,可以使用固定电话,如果再配置相关的VPN后就可以从任何地方观看IPTV和拨打电话。