《Cisco交换机Access、Trunk端口及数据帧收发规则》由会员分享,可在线阅读,更多相关《Cisco交换机Access、Trunk端口及数据帧收发规则(6页珍藏版)》请在金锄头文库上搜索。
1、Cisco 交换机 Access 、Trunk 端口及数据帧收发规则TrunkAccess发送发送接收接收发送接收Access发送接收没有 VLAN标记,打上该Access 端口的 PVID后继续转发(Access 端口通常从PC端接收数据帧)有 VLAN标记,则直接丢弃(这个数据帧肯定来自其他非 Access 端口和终端PC ,因为 Access 端口和终端PC 网卡不会发送带VLAN标记的数据帧)将数据帧中的VLAN标记信息去掉后再直接发送(因为 Access 端口发送数据帧一般是到终端PC ,PC中的网卡是不能识别VLAN标记的。还有一种情况是发送到另一个相同VLAN中的 Access
2、端口,因为Access 端口也不接收带有VLAN标记的数据帧。所以Access 端口发送出去的数据帧都是不带VLAN标记的。如果与 PVID 相同,则去掉后再发送;如果与 PVID 不相同,则直接发送(将交换机级联端口都设为Trunk, 并允许所有vlan通过后后, 默认情况下除vlan1 外的所有来自其他vlan 的数据帧将直接发送, 而作为 Trunk 端口默认vlan 的 vlan1 的数据帧, 则需要去掉vlan 信息后再发送。 即 vlan1 通过 Trunk 链路时是一个普通数据帧,并不带任何vlan 信息。)没有 VLAN标记, 打上该 Trunk 端口的 PVID, 再转发到该
3、PVID 所对应的 VLAN接口上( 思科默认是Native vlan , 即 vlan1 ) ;有 vlan 标记 ,判断该 Trunk 端口是否允许该vlan 的数据帧进入 ,不允许则直接丢弃;允许则判断该VLAN ID 与该 Trunk端口端口的 PVID 是否相同,相同则去掉vlan 标记后转发,不相同则直接转发。相同点: Trunk 端口不管是接收还是发送,只要该数据帧的vlan 标记与其PVID 不相同, 都是直接转发。Hua9817 2012 年 02 月 26 日Access 端口发送一个数据帧时(数据流出交换机)Trunk 端口发送数据帧时,将要发送数据帧的VLAN标记与自己
4、的PVID 进行比较 (数据流出交换机)Trunk 端口接收到数据帧时,首先判断是否有VLAN信息(数据进入交换机)Access 端口接收到数据帧时,判断(数据进入交换机)举例说明表 4-1 是根据上面介绍的Access 端口接收或发送报文规则而例举的示例(表中的VLAN 2、VLAN 3 只是其中的两个VLAN例,实际上可为其他任意已激活的VLAN ) 。表 4-2 是根据上面介绍的Trunk 端口接收或发送报文规则而例举的示例(表中的 VLAN 2、VLAN 3 只是其中的两个VLAN例,实际上可为其他任意已激活的VLAN ) 。下面通过一个因PVID设置不当造成的网络故障的排除方法来加深
5、对Access 和 Trunk端口数据收发规则的理解。图 4-1 中, SW1 与 R1之间,SW1 和 SW2之间的连接链路都是Trunk链路,允许网络中所有VLAN的数据通过。并设置SW1 的 f0/2 Trunk接口的 PVID=1,SW2的 f0/1 Trunk接口的 PVID=2,PC25各自属于自己的VLAN ,为 Access 端口。现只有PC2无法上网。图 4-1 Access和 Trunk 端口收发规则解析示例这时我们首先分析一下PC2在上网时发送的数据帧流程:首先 PC2是向所连接的Access端口发送不带VLAN标记的帧,所连的Access 端口接收到这个帧后打开它所属的
6、VLAN 2的标记转发到达SW2的 f0/1 Trunk端口,经过比较发现所收到的数据帧的VLAN标记( 2)与SW2 的 f0/1 Trunk端口的 PVID(2)一样,所以此时SW2 的 f0/1 Trunk端口会为把这个数据帧去掉VLAN标记转发到SW1 的 f0/2 Trunk端口。此时因为SW1 的 f0/2 Trunk端口收到的数据包没有VLAN标记,则直接把它打上与SW1 的 f0/2 Trunk 端口 PVID(1)对应的 VLAN 1 标记,然后错误地把它转发到VLAN 1 所对应的VLAN接口上,所以造成PC2不能上网。现在再来看一下其他几台机为什么能正常上网,以PC3为例
7、。PC3连接的也是SW2上的一个Access 端口,发送的帧也是不带标记的,所连的Access端口接收到这个帧后打开它所属的VLAN 3 的标记转发到达SW2 的 f0/1 Trunk 端口,经过比较发现所收到的数据帧的VLAN标记( 3)与 SW2 的 f0/1 Trunk 端口的 PVID 不一样,所以此时 SW2的 f0/1 Trunk 端口会为直接转发这个数据帧到SW1的 f0/2 Trunk 端口。 SW1的 f0/2 Trunk 端口再比较自己的PVID(1)与所收到的数据帧VLAN 标记( 3) ,发现不一样,直接转发,所以PC3是能上网。其他的PC4 、PC5与 PC3的数据发
8、送流程是一样。从以上分析可以看出, 造成 PC2不能上网的根本原因就在于从访问端口发送的数据帧的VLAN标记与 SW2 的 f0/1 Trunk 端口的 PVID(2)一样,所以造成转发后的数据帧是不带VLAN标记的,最后被SW1的 f0/2 Trunk端口错误地把这些数据帧直接转发到了它所属的VLAN中,而不是正确地发到对应的VLAN中。这时如果把SW2的 f0/1 Trunk端口的 PVID设置成其他PC机在 VLAN的 VLAN ID,则对应的VLAN中的 PC机就不能上网了。所以在这种情况下,只有把 SW2的 f0/1 Trunk端口的 PVID设置不包括网络中PC机所在 VLAN的
9、VLAN ID(本示例中如设置为1)就可以确保各VLAN中的 PC都可以上网。这样就可以得出这样一条经验:要确保网络中所有VLAN用户都能上网,则需要把Trunk 端口的 PVID设置成非上网用户所在VLAN的 VLAN ID。理解了以上的内容后,再看这个帖子就明白为什么了?网络拓扑:以下是网友跟贴:通就对了。好好的考虑一下VLAN的标记是在什么地方打,是在什么地方去掉。然后这个结果就很好理解了。掌握了 VLAN各种不同的接口模式如何打标记,以及如何去掉标记。VLAN就算是精通了。哦。这样啊!1、对于中间链路是Trunk 的情况,为什么不通,这个很好理解,并且资料也很多,不通就对了。这是实现V
10、LAN的本意。2、对于中间链路是access 的情况:首先如果端口是access 模式,那么该端口对帧的处理是这样的,对于入口的帧,根据端口所属于的VLAN打上 VLAN标记;对于出口的帧则去掉VLAN的标记。那么对于上面的情况分析如下:pc1 发出的帧通过sw1的 f0/1 端口进入,此时打上了VLAN 10 的标记,交换机把该帧转发(具体的转发分MAC 地址表有无记录2 种情况, 但不影响此列) 到端口 f0/0 ,由 f0/0出站,此时因为f0/0端口是 access端口,因此会去掉vlan 10的标记变成了普通帧出站,此帧被 sw2 的 f0/0端口收到,因为是个普通帧,sw2的 f0
11、/0端口又是Access 模式,因此打上了 vlan 20的标记,该帧又被交换机转发出sw2的 f0/1端口去掉了vlan 20标记,当PC2收到该帧后的回应帧走的是相反但原理相同的路线,因此pc1 pc2 可以通讯。untag 就是普通的ethernet报文,普通PC机的网卡是可以识别这样的报文进行通讯;tag 报文结构的变化是在源mac地址和目的mac地址之后,加上了4bytes 的 vlan 信息,也就是 vlan tag头;一般来说这样的报文普通PC机的网卡是不能识别的带 802.1Q 的帧是在标准以太网帧上插入了4 个字节的标识。其中包含:2 个字节的协议标识符(TPID),当前置0
12、x8100 的固定值,表明该帧带有802.1Q 的标记信息。2 个字节的标记控制信息(TCI) ,包含了三个域。Priority域,占 3bits ,表示报文的优先级,取值0 到 7,7 为最高优先级,0 为最低优先级。该域被802.1p 采用。规范格式指示符(CFI) 域,占 1bit ,0 表示规范格式,应用于以太网;1 表示非规范格式,应用于 Token Ring 。VLAN ID 域,占 12bit ,用于标示VLAN的归属。Access 类型的端口只能属于1 个 VLAN ,一般用于连接计算机的端口;Trunk 类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,
13、Trunk 端口只允许缺省VLAN的报文发送时不打标签, 一般用于交换机之间连接的端口理解端口的缺省VLAN这个概念Access 端口只属于1 个 VLAN ,所以它的缺省VLAN就是它所在的VLAN ,不用设置;端口属于多个VLAN ,所以需要设置缺省VLAN ID。缺省情况下,Trunk 端口的缺省VLAN为VLAN 1 如果设置了端口的缺省VLAN ID,当端口接收到不带VLAN Tag的报文后,则将报文转发到属于缺省VLAN的端口;当端口发送带有VLAN Tag 的报文时,如果该报文的VLAN ID 与端口缺省的 VLAN ID 相同,则系统将去掉报文的VLAN Tag,然后再发送该报
14、文对于华为交换机缺省VLAN被称为“Pvid Vlan ” , 对于思科交换机缺省VLAN被称为“Native Vlan ”交换机接口出入数据处理过程:Acess 端口收报文 : 收到一个报文 , 判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省)Acess 端口发报文:将报文的VLAN信息剥离,直接发送出去trunk端口收报文:收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有判断该trunk端口是否允许该 VLAN的数据进入:如果可以则转发,否则丢弃trunk端口发报文:比较端口的PVID 和将要发送报文的VLAN信息,如果两者相等则剥离VLAN信息,再发送,如果不相等则直接发送