😔本来想做基于udpxy的iptv单播,但是在实践的过程中发现,目前上海移动的iptv使用的dhcp认证上送的vendor字段,每次都会变化,导致我没办法正常拿到ip地址从而去掉盒子

😊当然也发现一些好的产品可用于iptv,比如这次购入的 **TL-XDR3050易展版- AX3000双频千兆Wi-Fi 6 无线路由器** 就是一个可以通过mesh透传iptv的vlan报文的路由器设备

先说一下我家目前的网线布局:

家庭网络结构.jpg

我家的特点是:光猫在门外且单线入户,因此iptv一直没办法使用。我的目标呢?**用最少的改造成本来接入iptv。**当然简单一点的想法是在小米路由器前面前置一个交换机,在交换机上接入iptv盒子。我为什么不这么做呢:

  1. 还要再从交换机走一根线到我的电脑显示器
  2. 我手头唯一的一个闲置资源是一台树莓派2B,我们的前提最少成本
  3. 事后发现的好处,接电脑可以随时用wireshark抓包探测问题,方便很多

可以看到,我需要做的事情就是将移动光猫跨过小米路由器打通我的电脑。这时候,我自然想到了VPN产品。但是选择上有一点需要注意,必须支持layer 2的VPN产品,因为iptv需要vlan和dhcp支持。从我众多使用过的产品上来说,可能 **Documentation - Tinc VPN** 是最合适的产品。所以我们的目的拓扑变成了这样:

家庭网络结构-使用tinc桥接iptv.jpg

树莓派操作:

树莓派直接接在室外光猫上,我选择了OpenWrt系统,在上面安装tinc软件。tinc 1.1版本其实使用已经简单很多:

tinc -n OneHome init pi  //创建基础配置文件
tinc -n OneHome add Address = 192.168.1.x //服务地址
tinc -n OneHome add Mode = switch //创建二层虚拟网
tinc -n OneHome add Interface = OneHome //让接口名称统一一些
vi /etc/tinc/OneHome/tinc-up //加入ip link set $INTERFACE up 让接口启动
vi /etc/config/tinc //让服务能够自动启动
/etc/inti.d/tinc start //启动服务

正常启动后,会出现一个新的OneHome接口

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP qlen 1000
    link/ether b8:27:eb:9c:5f:bd brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.6/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::ba27:ebff:fe9c:5fbd/64 scope link
       valid_lft forever preferred_lft forever
3: OneHome: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN qlen 1000
    link/ether 4e:7b:34:fd:f3:b2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.1/24 brd 192.168.11.255 scope global OneHome
       valid_lft forever preferred_lft forever
    inet6 fe80::4c7b:34ff:fefd:f3b2/64 scope link
       valid_lft forever preferred_lft forever

在OpenWrt界面创建桥接接口,将eth0和OneHome桥接在一起,ip使用固定,赋值tinc中的服务地址。

Untitled