|
楼主 |
发表于 2020-3-16 13:30
|
显示全部楼层
本帖最后由 rainmusic1 于 2020-3-16 13:38 编辑
那帖子写的很明确了,我说说我的理解,但我也是小白可能不正确、不准确。
switch vlan set 3 0001010 0 0 ---u-t-
上面这条命令和(外部网络wan->端口隔离Vlan过滤 界面设置)(内部网络LAN->IPTV 界面设置)是一个整体,用于内部直播的,例如组播地址:igmp://239.254.200.x:8001,用播放器打开 http://192.168.x.1(路由器地址)/udp/239.254.200.x:8001 就能播放了,作用是把组播转HTTP单播。这个不需要验证,通过以上界面设置和一行命令设置,就能正常看了。
然后是回看,河北电信的回看是有验证的,所以我必须模仿机顶盒拨号,获取iptv相应的回看权限。
本地区iptv是ipoe拨号模式(好像也是dhcp的一种),需要的三个东西就是 :1、电信盒子的mac。2、电信盒子的stbid(好像是dhcp option125传输的信息)。3、dhcp option60传输的信息(河北电信是HEITV)
ifconfig eth3.3 hw ether 54:93:59:xx:xx:xx #电信盒子的mac
上面这句的意思是 设置eth3.3(iptv Vlan也就是路由器LAN1口)的mac为电信盒子的mac。
udhcpc -i eth3.3 \ #iptv Vlan接口
-s /tmp/udhcpc_viptv.script \
-p /var/run/udhcpc_viptv.pid \
-V HEITV \ #option60
-C \
-x hostname:00100399006068901613549359xxxxxx \ #电信盒子的STBID
-O subnet -O router -O hostname -O nisdomain \
-S -d
上面这一段的意思是 eth3.3进行ipoe拨号,提交的信息是HEITV和机顶盒的STBID,用于自动获取iptv内网下发的ip地址,网关、DNS。如果你不是ipoe拨号模式,是pppoe拨号模式,那么这段命令你就需要改成pppoe播号相应的命令,里面肯定需要包含iptv用户名、密码之类的信息。具体代码可以百度,或者问@footlog。刚看了下默认的pppoe拨号命令是:pppd /tmp/ppp/option.wan0(里面存放着拨号的用户名和密码),可以试试scp连接路由后,参照option.wan0写一个eth3.3的拨号配置文件,然后pppd /tmp/ppp/option.eth3.3试试,没弄过不确定是否可行。
#由于河北电信iptv的内网给分配的ip是不固定的,有时候iptv给的ip是10.160.xx.xx,网关10.160.0.1,有时候是10.112.xx.xx,网关10.112.0.1,或许还有其他的,所以编写脚本使之能自动获取iptv网关地址后设置静态路由和iptables。如果你的ip地址就在一个固定网段内,下面这段代码就没用,直接设置静态路由和iptables就行。
sleep 10
logger -t "[iptv static routing table set]" "Starting..."
iptv_connected=0
until [ $iptv_connected == 1 ]
do
iptv_gw=`ip route | awk '$0~"metric 10" {print $3}'` #从路由表读取iptv网关地址
if [ -z "$iptv_gw" ]; then #未获取到IPTV网关地址,等待60秒后继续监测
logger -t "[iptv static routing table set]" "Fail. Wait For 60s"
sleep 60
else
logger -t "[iptv static routing table set]" "Successful. iptv_gw:$iptv_gw" #获取到IPTV网关地址后,设置标志位跳出循环。
iptv_connected=1
fi
done
下面是设置静态路由表和iptables
本地中央1台回看地址:
rtsp://192.168.28.9/PLTV/8888891 ... 000000000658_0.smil
ip route add 192.168.28.0/24 via $iptv_gw #设置静态路由,设置目的地址为192.168.28.x的ip的网关是上面代码获取的iptv网关地址
如果你的iptv网关是固定的例如:10.160.0.1,你不需要上面那段代码来获取iptv网关的地址,直接输入下面的命令就行
ip route add 192.168.28.0/24 via 10.160.0.1
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.28.0/24 -o eth3.3 -j MASQUERADE
-s 源地址 -d 目的地址
上面这条命令是意思是,你路由器内网网段的ip,访问192.168.28.x网段的iptv回看服务器时,全部走eth3.3这个接口。
各地iptv情况不一样,光猫设置也不一样,所以还是自己多想,多试,多折腾。 |
|