VLAN内的报文转发

来源:互联网 发布:mysql int字段累加 编辑:程序博客网 时间:2024/06/06 13:10

VLAN内的报文转发

Access端口:

Access口,通常用以连接PC用户的端口,Access口只能属于一个VLAN,需要用户手动指定Access口所在的VLAN。

•   VLAN成员表:用户指定,但是只能在一个VLAN中

•   PVID:无需指定,PVID和端口所在的VLAN一样

•   VLAN输出tag表:输出始终为untagged。(从该端口出去的报文都不带tag)

Trunk端口:

Trunk口:trunk通常用以设备之间的互联,在Trunk口中可以传递多个VLAN的数据流。缺省情况下Trunk口在设备所创建的所有VLAN中,但用户可以手工添加或者删除所在的VLAN。

•   配置成trunk类型的端口可以同时属于多个vlan

•   配置的native vlan id即该端口的pvid。默认情况下,native vlan为vlan 1

•   输出报文是否带tag的判断依据如下

□      不带tag:报文分配到的vid和该端口的native vlan id一样。这种情况下原先有带tag的报文要剥除tag再输出

□      tag:报文分配到的vid和该端口的native vlan id不一样。这种情况下输出报文所携带的tag里vid为报文进入交换机时分配到的vid在没有其它策略改变vid的情况下)

PVID

PVID是基于每个端口配置的VID,也就是说,所在VLAN的vid就是该端口的pvid,每个端口都有pvid。

输入规则检查

在输入方向上,交换机的根本任务就是决定该报文是否允许进入该端口,根据入报文的tag/untag的属性及端口属性,细分为以下情况:

•   报文为untag:允许报文进入该端口,并打上PVID的VLAN tag,与端口属性无关;

•   报文为tag:在这种情况下,需要交换机来判断是否允许该报文输入端口:

    •  Access端口:PVID和报文中tag标明的VLAN一致,接收并处理报文;否则丢弃。

   •Trunk端口:如果端口允许tag中标明的VLAN通过,则接收并处理报文;否则丢弃报文。

输出规则检查

在输出方向上,交换机已经完成对报文的转发,其根本任务就是在转发出端口时,是否携带tag转发出去,根据端口属性,细分为如下情况:

  Access端口:将标签剥掉,不带tag转发;

  Trunk端口:报文所在VLAN和PVID相同,则报文不带tag;否则带tag。

实例

实例-1


实例-2