admin管理员组文章数量:1794759
关于交换机端口的Trunk和Access模式的分析与验证
1、理论简析:
以太网交换机的通信是基于端口的通信,其端口类型分为Trunk port(干道端口)、Access port(接入端口)、Hybird port(混合端口)三种。Access port一般用于交换机和用户PC主机相连,连接用户主机和交换机的链路称为接入链路(Access Link);而Trunk port一般用于连接交换机,通过Trunk port相连的链路称为干道链路。Hybird port可以连接交换机和用户主机,也可以连接交换机和交换机(暂不考虑Hybird port)。
其中Access和Trunk是比较常用的端口模式。
①Access port只属于一个VLAN,Access链路上的数据帧是不带VLAN tag的帧(因为Access链路要么是PC->Access port,PC本身不会识别VLAN tag,所以PC->Access port是不会带VLAN tag的;要么是Access port->PC,由于出端口目标是明确的,不存在需要带VLAN Tag去区别VLAN,所以Access port->PC也是不需要带VLAN tag的) ②而Trunk port可以属于多个VLAN,Trunk上的帧也是带tag的帧,目的就是为了区分不同的VLAN,实现不同交换机的同一VLAN间以及跨VLAN的数据通信。 ③带VLAN tag的数据帧(802.1Q)格式如下所示(除去VLAN tag便是标准以太帧格式),其主要的字段是优先级和VLAN ID字段:
以下例(如图所示)来说明以太网数据帧在进入和离开Access、Trunl两种不同类型端口时,添加与剥离VLAN tag的步骤。
SW1和SW2各有三个端口,其端口类型与链路类型如图所示,SW1:port3和SW2:port3都是trunk port,SW1:port3属于一个VLAN,而SW2:port3属于两个VLAN。
入端口和出端口都是Access port: ①当A要给B发送消,则A发送一个不带tag的数据帧(源MAC:A,目标MAC:B)到达SW1:port1; ②SW1:port1接收到不带tag的数据帧,根据port1所在所在VLAN(VLAN 1),进入交换机之后便加上VLAN tag,标识了该数据帧属于VLAN 1; ③在经过查找FDB表,知道了要将数据帧送给B则必须从SW1:port 2转发出去,但是SW1:port 2并不在VLAN 1中,所以该报文是不能直接由交换功能转发到SW1:port 2的,即B是不能直接通过二层转发收到来自A的数据帧的; ④那么直接通过FDB转发不行,该报文就不能转发成功了吗?当然不是,假设交换机具备三层功能,并且存在VLAN1~VLAN2的路径,数据帧通过解析出目标IP,借助三层转发表匹配出接口MAC并找到出接口对应端口,或者路由表(初次)找到下一跳的出接口,从而从目标端口SW1:port2转发出去到达B【注:在讲Trunk、Access、Hybrid端口类型时,是忽略三层转发功能的,仅从二层来讲,A发送的报文确实不能到达B】。
入端口和出端口都有Access port与Trunk port: ①当A要给C发送消,同样A发送一个不带tag的数据帧(源MAC:A,目标MAC:C)到达SW1:port1; ②SW1:port1接收到不带tag的数据帧,根据port1所在所在VLAN(VLAN 1),进入交换机之后便加上VLAN tag,标识了该数据帧属于VLAN 1; ③经过查找FDB表,知道了要将数据帧送给C则必须从SW1:port 3转发出去,经过交换机内部交换芯片处理后到达SW1:port 3即将转发; ④由于SW1:port 3是Trunk端口,则先检查VLAN tag的VLAN ID是否等于PVID,检查不等于则直接发送【如果VID==PVID则剥离tag再转发】。 ⑤SW2:port3接收到从Trunk link上收到的带VLAN tag的数据帧,先解析是否带VLAN tag【如果不带则加上tag信,tag中的VLAN ID设为PVID】,如果带tag则判断,端口是否允许该tag所标识的VLAN数据进入,允许则进入交换机内部进行交换转发,不允许则丢弃; ⑥在交换机内部通过tag信的标识,查找FDB表数据到达SW2:port1,由于SW2:port1是一个Access port,所以在数据转发前先将tag剥离掉,在转发给C,则C收到一个不带tag的来自A的数据帧。
由上面分析可知: ①凡是和PC打交道的数据帧都是不带VLAN tag的(因为VLAN是二层交换机的概念,不牵扯PC); ②凡是和进入交换机的数据帧都需要加上VLAN tag,以实现能够在交换机内部交换转发是能够识别不同VLAN;
2、搭建实验环境:实验环境如下图所示:
两个接入层交换机Switch0和Switch1其FE0/1~FE0/24均设置为Access 口,且FE0/1~FE0/12均加入VLAN 1,而FE0/13~FE0/24均加入VLAN 2。因此各PC与Server所处VLAN就如图所示清晰明了:PC0、PC2、Server2处于VLAN1;PC1、PC3、Server3处于VLAN2;另外顶端的直接连接在Multilayer Switch0的FE0/1类型为Access port上的Server1属于VLAN3。
配置如下:
//Multilayer Switch0配置: //配置gigabitEthernet 0/1为trunk口 Switch>enable Switch#configure terminal Switch(config)#interface gigabitEthernet 0/1 Switch(config-if)#switchport trunk encapsulation dot1q Switch(config-if)#switchport mode trunk Switch(config-if)#exit //配置gigabitEthernet 0/2为trunk口 Switch(config)#interface gigabitEthernet 0/2 Switch(config-if)#switchport trunk encapsulation dot1q Switch(config-if)#switchport mode trunk Switch(config-if)#exit Switch(config)# //配置VLAN interface Switch(config)#interface vlan 1 Switch(config-if)#ip address 192.168.10.1 255.255.255.0 Switch(config-if)#no shutdown Switch(config)#interface vlan 2 Switch(config-if)#ip address 192.168.20.1 255.255.255.0 Switch(config-if)#no shutdown Switch(config)#interface vlan 3 Switch(config-if)#ip address 128.255.240.1 255.255.0.0 Switch(config-if)#no shutdown //开启VLAN间路由 Switch(config)#ip routing Switch(config)#exit Switch#copy running-config start-config //Switch0和Switch1配置一致: Switch>enable Switch#configure terminal Enter configuration commands, one per line. End with CNTL/Z. //新建VLAN Switch(config)#vlan 1 Switch(config-vlan)#exit Switch(config)#vlan 2 Switch(config-vlan)#exit //指定fastEthernet 0/1 - fastEthernet 0/12端口属于VLAN1,且均是Access port Switch(config)#interface range fastEthernet 0/1 - fastEthernet 0/12 Switch(config-if-range)#switchport mode access Switch(config-if-range)#switchport access vlan 1 Switch(config-if-range)#exit //指定fastEthernet 0/13 - fastEthernet 0/24端口属于VLAN2,且均是Access port Switch(config)#interface range fastEthernet 0/13 - fastEthernet 0/24 Switch(config-if-range)#switchport mode access Switch(config-if-range)#switchport access vlan 2 Switch(config-if-range)#exit //配置gigabitEthernet 0/1为trunk口 Switch(config)#interface gigabitEthernet 0/1 Switch(config-if)#switchport mode trunk Switch(config-if)#exit Switch(config)#exit Switch#copy running-config startup-config Switch#测试步骤如下: ①在三台服务器上搭建我们的三个Web网站; ②开启三层交换机的ip routing功能,则任何一个主机可以访问任何一台服务器(由于trunk链路的存在,才可以实现跨交换机实现同一VLAN间通信); ③但是当关闭三层交换机的ip routing功能,则主机只能访问本VLAN内Server,不同VLAN的主机不能跨VLAN访问服务器(由于Trunk链路与路由二者均存在,才可以实现不同交换机上不同VLAN间的任意通信)。 通过上例,我们就可以明确Trunk 链路的实际作用了。
版权声明:本文标题:关于交换机端口的Trunk和Access模式的分析与验证 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686957586a122097.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论