如何实现跨交换机的vlan

祁聪莹 15310116063

转载自:http://www.elecfans.com/news/wangluo/20171205594232_a.html,有删节

【嵌牛导读】:VLAN是在一个物理网络上划分出来的逻辑网络。这个网络对应与OSI模型的第二层网络。VLAN的划分不受网络端口的实际物理位置的限制;VLAN有着和普通物理网络同样的属性;

【嵌牛鼻子】:VLAN 交换机

【嵌牛提问】:如何实现跨交换机?原理是什么?

【嵌牛正文】:

第二层的单播、广播和多播帧在一个VLAN内转发、扩散,而不会直接进入其他的VLAN之中。

交换机收到广播帧后,只转发到属于统一vlan的其他端口

由于实现了广播域分隔,VLAN可以将广播风暴控制在一个VLAN内部,划分VLAN后,随着广播域的缩小,网络中广播包消耗的带宽所占的比例大大降低,网络性能得到显著的提高;

不同的VLAN间的数据传输是通过第三层(网络层)的路由来实现的,因此使用VLAN技术,结合数据链路层和网络层的交换设备可搭建安全可靠的网络;

同时,由于VLAN是逻辑的而不是物理的,因此在规划网络时可以避免地理位置的限制。

VLAN的划分方法

基于端口的VLAN ( Port-Based )

基于协议的VLAN ( Protocol-Based )

基于MAC层分组的VLAN ( MAC-Layer Grouping )

基于网络层分组的VLAN ( Network-Layer Grouping )

基于IP组播分组的VLAN ( IP MulTIcast Grouping )

基于策略的VLAN ( Policy-Based )

基于端口的静态VLAN

基于端口的静态VLAN是划分虚拟局域网最简单也是最有效的方法,它实际上是某些交换机端口的集合,网络管理员只需要管理和配置交换机的端口,而不管交换机端口连接什么设备。这种划分VLAN的方法是根据以太网交换机的端口来划分的,是目前业界定义VLAN最广泛的方法。IEEE802.1Q规定了这种划分VLAN的国际标准。

基于端口的VLAN在实现上包括两个步骤:

1. 首先启用VLAN(用VLAN ID标识);

2. 而后将交换机端口指定到相应VLAN下;

隔离的广播域

基于端口的VLAN(Port VLAN)将交换机按端口的VLAN ID 指定实现了逻辑划分,广播域被限定在相同VLAN的端口集合中,不同VLAN间不能直接通信。当使用多台交换机分别配置VLAN后,可以使用Trunk(干道)方式实现跨交换机的VLAN内部连通,交换机的Trunk端口不隶属于某个VLAN, 而是可以承载所有VLAN的帧。

这种实现跨交换机的VLAN技术在早期使用帧过滤,而目前的国际标准规定采用帧标记。网络管理的逻辑结构可以完全不受实际物理连接的限制,极大地提高了组网的灵活性。

何谓Trunk

所谓的Trunk是用来在不同的交换机之间进行连接,以保证在跨越多个交换机上建立的同一个VLAN的成员能够相互通讯,其中交换机之间互联用的端口就称为Trunk端口。Trunk这个词是干线或者树干的意思,不过一般不翻译,直接用原文。

注意:与一般的交换机级联不同,Trunk是基于OSI第二层的。

在交换机之间或交换机与路由器之间,互相连接的端口上配置中继模式(Trunk口是中继口,同一端口传输不同VLAN信息的时候需要设置Trunk),使得属于不同VLAN的数据帧都可以通过这条中继链路进行传输。

帧的格式分为两种:

ISL: Inter-Switch Link, 是Cisco交换机独有的协议;

IEEE 802.1Q:是国际标准协议,被几乎所有的网络设备生产商所共同支持;

默认条件下,Trunk上会转发交换机上存在的所有VLAN的数据。

IEEE 802.1Q标准

IEEE 802.1Q使用4Byte的标记头来定义Tag(标记),Tag头中包括2Byte的VPID(VLAN Protocol IdenTIfier)和2Byte的VCI(VLAN Control InformaTIon)。

基于802.1Q Tag VLAN 用VID来划分不同VLAN,当数据帧通过交换机的时候,交换机根据数据帧中的Tag的VID信息来识别它们所在的VLAN(若帧中无Tag头,则应用帧所通过端口的默认VID来识别它们所在的VLAN)。这使得所有属于该VLAN的数据帧,不管是单播帧、组播帧还是广播帧,都将被限制在该逻辑VLAN中传输。当使用多台交换机分别配置VLAN后,可以使用Trunk方式实现跨交换机的VLAN内部连通,交换机的Trunk端口不隶属于某个VLAN,而是可以承载所有VLAN的帧;

在VLAN配置中,我们可以使用switchport mode命令来指定一个二层接口(switch port)的模式,可以指定该接口为access port或者为trunk port(缺省为access)。

如果一个switch port的模式是access,则该接口只能为一个VLAN的成员,这种接口又称为Port VLAN。

如果一个switch port的模式是trunk,则该接口可以是多个VLAN的成员,这种配置被称为Tag VLAN。

Trunk接口默认可以传输本交换机支持的所有VLAN(1~4094),但是也可以通过设置接口的许可VLAN列表来限制某些VLAN的流量不能通过这个Trunk口。

跨交换机的VLAN划分实例

假设某企业的网络中,计算机PC1和PC3属于营销部门,PC2和PC4属于技术部门,PC1和PC2连接在S2126-1上,PC3和PC4连接在S2126-2上,而两个部门要求互相隔离,本实验的目的是实现跨两台交换机将不同端口划归不同的VLAN。

步骤:

1. 在交换机S2126G-1上创建Vlan10,并将F0/1端口划分到VLAN10中;

2. 在交换机S2126G-1上创建Vlan20,并将F0/2端口划分到VLAN20中;

3. 在交换机S2126G-2上创建Vlan10,并将F0/1端口划分到VLAN10中;

4. 在交换机S2126G-2上创建Vlan20,并将F0/1端口划分到VLAN20中;

5. 把S2126G-1和S2126-2相连的端口F0/6定义为tag vlan模式;

6. 验证PC1和PC3能相互通信,PC2和PC4能相互通信,但PC2和PC3不能相互通信;

关于端口的tag和untag:

1. 若一个端口下将有多个VLAN通过,那这个端口就要以tag方式加到各个VLAN里;

2. 若一个端口下只有一个VLAN通过,那这个端口就可以使用untag方式加到这个VLAN里;

跨交换机实现不同vlan间的通信

操作步骤:

1在二层交换机上的操作

Switch》en

Switch#conf t

Switch1(config)#vlan 100创建vlan 100

Switch1(config-vlan)#exit

Switch1(config)#interface fastethernet 0/1

Switch1(config-if)#switchport access vlan 100 将端口f0/1划分到vlan100中

Switch1(config-if)#exit

Switch1(config)#vlan 200 创建vlan 200

Switch1(config-vlan)#exit

Switch1(config)#interface fatethernet 0/6

Switch1(config-if)#switchport access vlan 200 将端口f0/6划分到vlan200中

Switch1(config-if)#exitSwitch1(config)#vlan 300 创建vlan 300

Switch1(config-vlan)#exit

Switch1(config)#interface fatethernet 0/13

Switch1(config-if)#switchport access vlan 300 将端口f0/13划分到vlan300中把三层交换机与二层交换机相连的端口(0/24)定义为tag vlan模式

Switch1(config)#interface fatethernet 0/24

Switch1(config-if)#switchport mode trunk! 把端口0/24定义为tag vlan模式。

Switch1#show interface fastethernet 0/24 switchport

2在三层交换机上的操作

Switch》en

Switch#conf t

Switch1(config)#vlan 100创建vlan 100

Switch1(config-vlan)#exit

Switch1(config)#interface fastethernet 0/1

Switch1(config-if)#switchport access vlan 100 将端口f0/1划分到vlan100中

Switch1(config-if)#exit

Switch1(config)#vlan 200 创建vlan 200

Switch1(config-vlan)#exit

Switch1(config)#interface fatethernet 0/6

Switch1(config-if)#switchport access vlan 200 将端口f0/6划分到vlan200中

Switch1(config-if)#exit

Switch1(config)#vlan 300 创建vlan 300

Switch1(config-vlan)#exit

Switch1(config)#interface fatethernet 0/13

Switch1(config-if)#switchport access vlan 300 将端口f0/13划分到vlan300中把二层交换机与三层交换机相连的端口(0/24)定义为tag vlan模式

Switch2(config)#int fa 0/24Switch2(config-if)#switchport mode trunk! 把端口0/24定义为tag vlan模式。

Switch2#show interface fastethernet 0/24 switchport在三层交换机实现vlan间的通信。

Switch1(config)#interface vlan 100 !创建虚拟接口vlan 100。

Switch1(config-if)#ip address 192.168.1.254 255.255.255.0! 设置虚拟接口的ip。

Switch1(config-if)#no shutdown !开启端口。Switch1(config-if)#exit

Switch1(config)#interface vlan 200 !创建虚拟接口vlan 200。

Switch1(config-if)#ip address 192.168.2.254 255.255.255.0! 设置虚拟接口的ip。

Switch1(config-if)#no shutdown !开启端口。

Switch1(config-if)#exit

Switch1(config)#interface vlan 300 !创建虚拟接口vlan 300。

Switch1(config-if)#ip address 192.168.3.254 255.255.255.0! 设置虚拟接口的ip。

Switch1(config-if)#no shutdown !开启端口。

Switch1#show ip interface ! 查看ip接口的状态。

3在PC机上的操作

PC6:ip:192.168.1.1

默认网关:192.168.1.254

PC5:ip:192.168.2.1

默认网关:192.168.2.254

PC6:ip:192.168.3.1

默认网关:192.168.3.254

4 ping实现不同vlan间的通信

推荐阅读更多精彩内容