实现
实现原理
捣鼓过程
看了好多种方案,没有一个适合自己的,只能自己研究了。
下面是自己摸索的过程。
实现原理
重点有两个一个是交换机的设置,一个是路由器的设置。
路由器开启iptv vlan设置后,比如我设置的是2,路由器会接收带 vlanid 2的包转发给iptv,将iptv发送的包也携带vlanid 2 发送。那么路由器会如何判断是网络的包呢?答案是不带vlanid的包是属于网络包。起初我认为是除了iptv带vlan2的包以外全是网络包,显然是错误的,然而tp客服也不知道。
那么重点就变成了如何将网络包不带vlanid发给路由器,将iptv包带vlan2发给路由器。这种情况应该只用光猫就可以实现,我没试过,因为光猫只有一个千兆口,设备多的情况下只能用交换机。
交换机实现过程:交换机又有普通交换机和网管交换机两种,实现端口vlan必须使用网管交换机,我用的tp sg2008d,pdd115应该是能买到的最便宜的了。
交换机的vlan设置又牵扯到vlan与pvid,tagged与untagged,我看了很多文章,下面将详细介绍。
vlan
首先是vlan ,下面是一个简单的结构,8台设备连接到一个交换机上,假设123678口上的正在打cs,现在想让123与678分开,互相不能进入对方的房间,那么可以让 123端口属于vlan2,678端口属于vlan3,那么他们就各自组成了一个小型的局域网,1接口转发的数据23可以收到, 678不可以收到。6转发的数据78可以收到 123不可以收到。这就是vlan可以划分虚拟局域网
vlan标记
你可能会好奇入户只有一根光纤,光猫是何如区分网络数据与iptv数据的呢,并且把网络和iptv分到两个端口上。就像表格中的男女分类那样,一定有一种东西把光纤中的数据一分为二,那么这个东西是什么呢?
答案是通过vlan标记
这是进入光猫管理界面的信息,2_INTERNET_R_VID_200 是网络,vid是vlanid 这里是200,
3_OTHER_B_VID_400是iptv,这里vlanid是400。也就是说光猫知道从光纤中不同的vlanid是什么数据,从而将它们分派到不同的端口上
那么有没有办法通过光猫的千兆口即用作网络又用作iptv呢,也是可以的。拿到光猫的超级管理员账号后通过绑定vlan就能实现,网上教程很多就不再赘述了。
pvid,tagged与untagged
刚设置交换机时,看到这些我都懵了,这都是啥根啥呀,看不懂。熟悉之后就会非常明白了。
pvid是交换机一个端口上的id,一个端口只能有一个pvid,多个端口可以有相同的pvid。
接收数据
Untagged: 不管收到的数据包是否已经有VLAN标记,将数据包中的vlan标记修改为自己的pvid。
Tagged:收到的数据没有vlan标记时将数据包中的vlan标记修改为自己的pvid然后转发;如果收到的数据包上有vlan标记时不做修改。
发送数据
Tagged:
如果端口的pvid值和要发送数据包中的vlan标记相等,那么会将vlan标记从未发送的数据报上删除,然后发送
如果端口的pvid值和要发送数据包中的vlan标记不相等,则数据包将会带着vlan标记发送出去
Untagged:如果要发送数据的vlan标记和端口的pvid相同,那么将VLAN ID从数据包中删除,然后发送。如果不同则丢弃。
还是上面的问题,假设路由器设置了接收的iptv数据的vlanid为2,那么我们就要保证路由器收到的网络数据是不带vlan标记的才能上网,而收到的iptv数据是要带vlan标记为2的。
1、先看iptv,从物理线路上看数据经光猫iptv口发出,经过2端口接收,3端口发送,最后到达路由器。
所以我们添加vlan2,将2口设置为untagged,3口设置为tagged,将2口的pvid设置为2 ,3口的pvid设置为和2不同即可。这样2口接收iptv数据时会带上vlan标记为2,3口发送时由于端口的pvid与数据包中的vlan标记字段不同会带着vlan标记发出。
2、再看网络,从物理线路上看数据经光猫千兆口发出,经过1端口接收,3端口发送,最后到达路由器。设置如下