图中是路由器的拨号设置,从图中可以看到该路由器WAN口拨号的VID是2.

打开网易新闻 查看更多图片

路由器WAN口设置

路由器WAN口设置

路由器自带交换机的设置

首先,要从电信光猫中得到iptv业务的vid,对于我的宽带来说,iptv的vid是45.在这里,使用路由器的LAN2口连接iptv机顶盒,因此将LAN2的45号VID设置为untagged.具体设置如图所示.

打开网易新闻 查看更多图片

路由器自带交换机的设置

光猫的设置(这一步是关键)

这里需要用到光猫的root密码.从下图中可以看到iptv业务的vid是45,并且其余设置都按照我的图片来,LAN端口绑定一个都不选.

光猫的IPTV拨号的设置

接下来再设置光猫的VLAN绑定,具体设置如下图所示

光猫的VLAN绑定

值得注意的是,下图光猫中上网的VID是41,我在设置路由器网络连接的vid是2,这两个理论上应当设置为同一vid.这里我猜想是图中的LAN端口绑定起了作用.

打开网易新闻 查看更多图片

光猫上网的VID

VLAN原理

IEEE802.1Q标准规定了以太网的VLANTag,允许多个网桥在信息不被外泄的情况下公开的共享同一个实体网络。也即使用VLAN技术可以实现在用一个交换机上划分不同的局域网。一下分别介绍VLAN的几个相关概念:

VID:12bit,取值范围是0-4095。在划分时可用的值为1-4094,新建VLAN需要从2开始。

PVID:物理端口的默认VID,用来给Untagged的帧添加VID。

交换机端口的加标签和去标签功能选择(tagged和untagged):绝大部分的电脑网卡、IPTV盒子都是不能处理带有VLANtag的以太网帧的,因此连接这些设备的交换机端口应当设置为untagged端口。

Tagged和untagged详解

在介绍tagged与untagged前,先说明一下untagged、tagged、access以及trunk之间的区别:

1、access、trunk表示某个物理端口的状态;

2、tagged、untagged表示某个vlan在具体某个物理端口上的状态;

3、一个物理端口只能有一个状态,所以一个物理端口要么是access端口,要么是trunk端口;

4、一个vlan在具体某个物理端口上只能有一个状态,要么是untagged,要么是tagged;所以一个vlan可以存在于多个物理端口上,但在每个端口上只能有一个状态;

5、一个物理端口可以承载多个vlan数据,但一个物理端口只能有一个vlan状态是untagged;显然,access、trunk描述的主体是物理端口,而untagged、tagged描述的主体是vlan,这就是两者之间最大的区别,也是最容易混淆的地方;如果大家明白了这些区别,那么下面的内容就很容易理解了。

access、trunk端口

ACCESS端口,TRUNK端口是厂家对某一种端口的叫法,并非IEEE802.1Q协议的标准定义;

Acess端口

1、收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发;

2、报文含VLAN标签,与端口PVID相符,则将报文的VLAN信息剥离,直接发送出去,否则丢弃;

3、access端口就是某一个vlan的untagged端口;

Acess端口

trunk端口

1、收到一个报文,如果没有VLAN信息,则打上端口的PVID,并进行交换转发;

2、收到一个报文,如果有VLAN信息,比较VLAN信息与端口PVID是否相符,如果相符则去掉vlan信息(tag头),转发,如果不相符则对比vlan信息与端口允许通过VLAN信息是否相符,如果相符直接发送,如果不相符则丢弃;

3、trunk端口就是某一个vlan的untagged端口,其他所有vlan的tagged端口;

trunk端口对数据的处理

例:192.168.1.1发送一个数据包到192.168.1.2的大概过程:

一个栗子

VLAN中数据交换的过程比较复杂,为了解释本文中路由器自带交换机的设置原理,首先要了解IEEE802.1Q协议中几个概念

IEEE802.1Q协议的定义:

1、所谓的UntaggedPort和taggedPort不是描述物理端口的状态,而是描述物理端口所拥有的某一个VID的状态(如:端口1untaggedvlan10,taggedvlan20、taggedvlan30,表示vlan20、vlan30的数据帧通过此端口时必须有tagged头,也就是vlan信息,无论是收还是发),所以一个物理端口可以在某一个VID上是UntaggedPort,在多个VID上是taggedPort;

2、一个物理端口只能拥有一个PVID,当一个物理端口拥有了一个PVID的时候,在这个VID上,这个物理端口必定是UntaggedPort;

3、PVID的作用只是在交换机从外部接收到Untagged数据帧的时候给数据帧添加TAG标记用的,在交换机内部转发数据的时候PVID不起任何作用;

4、拥有和TAG标记一致的VID的物理端口,不论是否在这个VID上是UntaggedPort或者taggedPort,都可以接受来自交换机内部的标记了这个TAG标记的tagged数据帧;

5、拥有和TAG标记一致的VID的物理端口,只有在这个VID上是taggedPort,才可以接受来自交换机外部的标记了这个TAG标记的tagged数据帧;

在理解了以上的描述之后,我们再看一个例子:

一个数据包从PCA发出经过交换机后能够到达交换机B上的哪一台PC机;

打开网易新闻 查看更多图片

一个栗子

1、PCA发出的数据帧传送至交换机A端口1,端口1untaggedvlan30,所以数

据帧会被打上vlan30标签;

2、交换机A会把这个数据帧转发到所有含VID为30的端口;

3、端口8untaggedvlan30,所以端口8收到这个数据帧后,会剥离vlan30的tag头,转发出去;

4、交换机B1端口收到这个没有tag头数据帧后,会将这个数据帧打上vlan10的tag头,转发给所有含VID10的端口;

5、交换机B7端口会收到这个数据帧,剥离tag头后,转发给PCB;所以PCA只能和PCB通信,无法和PCC通信。