前言
在一个局域网中,如果上网的人越来越多,就会开始有人抱怨网速怎么这么慢,干什么都慢的不行了
因为电脑要访问别人,会发送ARP广播报文,你想想看,在我们这个教室里面,坐30个人和,和坐300人会怎么样
人越多,噪音越大
如果把这300个人分成10个班,去10个不同的教室,噪音问题就基本解决了
在网络世界中也是这样,随着网络规模的不断扩大,接入的主机和设备越来越多,网络中的广播流量也随之加大
广播域中电脑数量越多,广播报文也就越多,一方面广播报文会占用大量带宽,电脑也会消耗大量资源去处理很多无用的广播报文
怎么才能把一个广播域控制在一个合理的范围呢?
接下来要讲的VLAN(Virtual Local Area Network,虚拟局域网)技术,可以从逻辑上将一个大的网络分成若干小的虚拟局域网
一、VLAN概述
1、VLAN的概念及优势
在传统的交换式以太网中,所有的用户都在同一个广播域中,当网络规模较大时,广播包的数量会急剧增加当广播包的数量占到总量的30%时,网络的传输效率将会明显下降
特别是当某个网络设备出现故障,不停的向网络发送广播,从而导致广播风暴,使网络通信陷于瘫痪
那么应该怎样解决这个问题呢?
我们可以使用分隔广播域的方法来解决,分隔广播域有两种办法:
- 物理分隔:将网络从物理上划分为若干个小网络,然后使用能隔离广播的路由设备将不同的网络连接起来实现通信
- 逻辑分隔:将网络从逻辑上划分为若干个小的虚拟网络,即VLAN,VLAN工作在OSI参考模型的数据链路层,一个VLAN就是一个交换网络,其中所有的用户都在同一个广播域中,各VLAN通过路由设备的连接实现通信
物理分隔有很多缺点,它会使局域网的设计缺乏灵活性
例如,连接在同一台交换机上的用户只能划分在同一个网络中,而不能划分在多个不同的网络中
VLAN的产生给局域网的设计增加了灵活性,使得网络管理员在划分工作组时,不再受限于用户所处的物理位置
VLAN可以在一个交换机上实现,也可以跨交换机实现,可以根据网络用户的位置、作用或部门等进行划分
VLAN具有灵活性和可扩展性等特点,使用VLAN技术有以下好处:
- 控制广播
每个VLAN都是一个独立的广播域,这样就减少了广播对网络带宽的占用,提高了网络传输效率,并且一个VLAN出现网络风暴不会影响到其他的VLAN
- 增强网络安全性
由于只能在同一VLAN内的端口之间交换数据,不同VLAN的端口之间不能直接访问,因此通过划分VLAN可以限制个别主机访问服务器等资源,提高网络的安全性
- 简化网络管理
对于交换式以太网,如果对某些用户重新进行网段分配,需要网络管理员对网络系统的物理结构进行调整,甚至需要追加网络设备,这样会增大网络管理的工作量。而对采用VLAN技术的网络来说,一个VLAN可以根据部门职能、对象组或者应用将不同地理位置的用户划分为一个逻辑网段,在不改动网络物理连接的情况下可以任意地将工作站在工作组或者子网之间移动。利用VLAN技术,大大减轻了网络管理和维护工作的负担,降低了网络维护的费用
2、VLAN的种类
-
动态VLAN
优点:它适用于当前的无线局域网技术,其次,当用户有需要时对工作基点进行移动时完全不用担心在静态虚拟局域网与基于端口的虚拟局域网出现的一些问题在动态的虚拟局域网中出现,因为动态的虚拟局域网在建立初期已经由网络管理员将整个网络中的所有MAC地址全部输入到了路由器之中,同时如何由路由器通过MAC地址来自动区分每一台电脑属于那一个虚拟局域网,之后将这台电脑连接到对应的虚拟局域网之中
缺点:是在VLAN建立初期,网络管理人员需将所有机器的MAC进行登记之后划分出MAC所对应的机器的不同权限(虚拟局域网)
-
静态局域网
是目前最常见的VLAN实现方式
静态VLAN即明确指定交换机的端口属于哪个VLAN,这需要管理员手动配置
当用户主机连接到交换机端口上时,就被分配到了对应VLAN中
这种端口和VLAN的映射只在本地有效,而交换机之间不能共享这一信息
二、VLAN Trunk
通过前面的学习,大家已经能够在交换机上划分VLAN了
但是当网络中有很多台交换机时,位于不同交换机上的相同VLAN的主机之间是如何通信的呢,这就是接下来要进行讲解的,即跨交换机的VLAN通信
1、Trunk的作用
如图所示,在两台交换机上分别创建了VLAN10、20和30,那么如何才能让连接在不同交换机上的相同VLAN的主机通信呢
如果为每个VLAN都连接一条物理链路,那么两台交换机之间有几个VLAN通信,就需要连接几条物理链路
这种连接方式的扩展性有很大的问题,即随着VLAN数量的增加,就需要在两台交换机之间连接多条物理链路,从而会占用很多个交换机端口,这显然不可取
类似现实生活中运送货物的例子,为了使货物在到达目的地后能被正确的分开,通常是做货物上贴上不同的标签
那么在VLAN中,由于不同VLAN的VLAN号不同,实际上可以只使用一条中继链路,将属于不同VLAN的数据帧打上不同的 标识即可
在交换网络中,有两种类型链路:
- 接入链路:通常属于一个VLAN(主机与交换机之间)
- 中继链路:可以承载多个VLAN(交换机连接交换机或者交换机连接到路由器上)
Trunk(干道、中继)的作用就是使同一个VLAN能够跨交换机通信
那么在VLAN跨交换机通信的过程中,数据帧有什么变化呢?
- VLAN30的主机(左)发送数据帧给主机(右),这时主机(左)发送的数据帧为普通数据帧,交换机接收到数据帧,知道是来自VLAN30且要转发下一台交换机,就会在数据帧上打上VLAN30的标识,然后发给下一台交换机
- 下一台交换机收到后根据目标MAC地址得知数据帧时发送给主机(右)的,于是删除VLAN标识还原为普通数据帧,然后转发给主机(右)
2、VLAN的标识
802.1q 规定了公有的标记方法,其他厂商的产品也支持这种标记方法
链路双方的设备要使用相同的标记方法
例如,如果Cisco交换机与其他厂商的交换机互联,就要使用标准的802.1q协议
下面重点介绍IEEE 802.1q的工作原理和帧格式。
802.1q使用了一种内部标记机制。中继设备将四字节的标记插入到数据帧内,并重新计算FCS (Frame Check Sequencl,帧校验序列)
如下图所示,采用802.1q的帧标识在标准以太网帧内插入了四字节
这个四字节的标记头包含以下内容
- 2字节标记协议标识符(TPID) 包含一个0x8100的固定值,这个特定的TPID值指明了该帧带有802.1q的标记信息。
(2) 2字节标记控制信息(TCI) 包含了下面的元素
- 3位的用户优先级(Priority) : 802.1q 不使用该字段
- 1位的规范格式标识符(CFI) : CFI 常用于以太网和令牌环网。在以太网中,CFI的值通常设置为0
- 12位VLAN标识符(VLANID) :该字段唯一标识了帧所属的VLAN。VLAN ID可以唯一地标识4096个VLAN,但 VLAN0 和 VLAN4095 是被保留的
三、VLAN配置命令(eNSP)
system-view
[Huawei] sysname SW1
显示当VLAN信息
[SW1] dis vlan
添加单个VLAN
[SW1] vlan 10
[SW1-vlan10] quit
批量添加VLAN
[SW1] vlan batch 20 30 40
删除VLAN
[SW1] undo vlan 10
将端口加入VLAN, Access口只能属于1个VLAN,一般用于连接计算机端口
[Huawei] int e0/0/0 (进入接口模式)
[Huawei-Ethernet0/0/0] port link-type access (定义二层端口模式)
[Huawei-Ethernet0/0/0] port default vlan 10 (将端口加入到VLAN中)
[Huawei-Ethernet0/0/0] undo shutdown
将端口从VLAN删除
[Huawei-Ethernet0/0/0] undo port default vlan
[Huawei-Ethernet0/0/0] port link-type hybrid (将端口类型恢复成默认的hybrid)
[Huawei-Ethernet0/0/0] dis this 查看当前端口模式、状态
同时将多个端口加入VLAN
[Huawei] port-group 1 (新增组1)
[Huawei-port-group-1] group-member Ethernet 0/0/1 to Ethernet 0/0/20 (组1的成员是e0/0/1到e0/0/20)
[Huawei-port-group-1] port link-type access
[Huawei-port-group-1] port default vlan 30
端口恢复默认配置,注意,执行完命令后,接口会被shut down
[Huawei] clear configuration interface e0/0/1
查看指定VLAN信息
[Huawei] dis vlan 10
####Trunk 类型端口:可以允许多个VLAN通过,可以接收和发送多个VLAN报文,一般用于交换机与交换机相关的接口
[Huawei] int e0/0/0
[Huawei-Etherent0/0/0] port link-type trunk (定义二层端口模式)
[Huawei-Etherent0/0/0] port trunk allow-pass vlan 10 20 30 (配置Trunk 端口允许通过的vlan)
[Huawei-Etherent0/0/0] undo shutdown
禁止Trunk传送某个VLAN的数据,删除这个VLAN
[Huawei-Etherent0/0/0] undo port trunk allow -pass vlan 10
华为hybrid vlan 混合端口(人为控制经过端口时是否脱去vlan标签)
Hybrid 接口是华为设备的特殊的二层接口模式,Hybrid 接口和Trunk接口的相同之处是都可以允许多个VLAN的流量通过并打标签,不同之处在于Hybrid 接口可以允许多个VLAN的报文发送时不打标签
Hybrid 接口作为华为交换机的特有属性接口,主要特点有:
华为交换机接口默认为Hybrid 模式
既可以实现Access接口的功能,也可以实现Trunk 接口的功能;
不借助三层设备即可实现跨VLAN 通信和访问控制;
相对于Access 接口和Trunk 接口具有更高的灵活性与可控性。
Hybrid可以根据需要以tagged 或者 untagged 方式加入某个VLAN或者多个VLAN
心法口诀:
数据帧出口检查:查untag 表,有标时,脱标;无标时,查tag表,有则放通,无则丢掉
数据帧进口检查:先查有无标签,有标时,查tag表,有则放通,无标则丢弃;
无标时,打上PVID后,放通
[Huawei] int e0/0/0 ###可理解成access 口
[Huawei-Etherent0/0/0] port link-type hybrid
[Huawei-Etherent0/0/0] port hybrid pvid vlan 10
###把Pvid 当成vlanid , 从PC到交换机进口的数据帧是没有标签的,所以要给数据帧打上标签再送进交换机
[Huawei-Etherent0/0/0] port hybrid pvid vlan 10
###在untag 表里添加vlanid, 如果数据帧要从此接口出时就要先查untag 表,若发现有对应的vlanid 的标签就会脱掉此标签再发送出去
[Huawei-Etherent0/0/0] undo shutdown
[Huawei] int e0/0/1 ###可理解成trunk 口
[Huawei-Etherent0/0/0] port link-type hybrid
[Huawei-Etherent0/0/1] port hybrid tagged vlan 10 20 30
###在tag 表里添加vlanid , 如果数据帧要从此接口出时就要先查 untag 表,如没有会再查tag 表,若发现有对应的vlanid 的标签就会放通,否则丢掉
[Huawei-Etherent0/0/1] undo shutdown
[Huawei] int e0/0/2 ####上层接路由器配法
[Huawei-Etherent0/0/2] port link-type hybrid
[Huawei-Etherent0/0/2] port hybrid untagged vlan 10 30 ###经过端口时脱去vlan10 30 标签
[Huawei-Etherent0/0/2 ] undo shutdown
[Huawei] int e0/0/0
[Huawei-Etherent0/0/0] undo port default vlan ####初始化还原
[Huawei-Etherent0/0/0] port link-type hybrid ####将这个口变为hybrid 模式,华为交换机默认 hybrid口
Hybrid发送和接收流程图