文章目录
关于VLAN
为什么需要虚拟局域网VLAN
使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一个广播域;随着交换式以太网规模的扩大,广播域相应扩大。巨大的广播域会带来很多弊端:
- 广播风暴(浪费网络资源和各主机的CPU资源)
- 难以管理和维护
- 潜在的安全问题
网络中会频繁出现广播信息,比如TCP/IP协议栈中的很多协议会用到广播:
- 地址解析协议ARP(已知IP地址,找出其相应的MAC地址)
- 路由信息协议RIP(一种小型的内部路由协议)
- 动态主机配置协议DHCP(用于自动配置IP地址)
为了分割广播域,虚拟局域网VLAN技术应运而生。利用以太网交换机可以很方便地实现VLAN,将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。
IEEE 802.1Q 对虚拟局域网 VLAN 的定义: 虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个 VLAN。同一个VLAN内部可以广播通信,不同VLAN不可以广播通信
VLAN划分机制
vlan的划分方式分为静态vlan划分和动态vlan划分两种。其中,动态vlan划分方法又包括基于MAC地址、基于互联网协议、基于IP组播、基于策略等多种方法。本文主要介绍最常用的基于端口的静态vlan划分,然后补充讲解其它的VLAN划分方式。
VLAN的优点
提高安全性:没有划分VLAN前,交换机端口连接下的所有主机都处于一个LAN中,即一个广播域中,实现ARP中间人攻击非常简单。划分了VLAN之后,缩小了ARP攻击的范围。
提高性能:不划分VLAN,整个交换机都处于一个广播域,随便一台PC发送的广播报文都能传送整个广域播,占用了很多带宽(引起广播风暴)。划分了VLAN,缩小的广播域的大小,缩小了广播报文能够到达的范围。
网络管理简单、直观 。对于采用VLAN技术的网络来说,一个VLAN可以根据部门职能、对象组或者应用将不同地理位置的网络用户划分为一个逻辑网段。在不改动网络物理连接的情况下可以任意地将工作站在工作组或子网之间移动。
基于端口的静态VLAN划分
虚拟局域网VLAN技术是在交换机上实现的,需要交换机能够实现以下功能:
- 能够处理带有VLAN标记的帧——IEEE 802.1 Q帧(对于用户主机是不可见的)
- 交换机的各端口可以支持不同的端口类型,不同端口类型的端口对帧的处理方式有所不同。
交换机的端口类型有以下三种: Access、Trunk、Hybird。交换机各端口的缺省VLAN ID:在思科交换机上称为Native VLAN;在华为交换机上称为Port VLAN ID,即端口VLAN ID,简记为PVID。
Access端口
用于交换机与用户计算机的互联,Access端口只能属于一个VLAN。Access端口的PVID值与端口所属VLAN的ID相同(默认为1)。
接收处理方法:一般只接受“未打标签"的普通以太网MAC帧。根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相同。
发送处理方法:若帧中的VID与端口的PVID相同,则“去标签”并转发该帧,否则不转发。
Trunk端口
一般用于交换机之间或交换机与路由器之间的互连。Trunk端口可以属于多个VLAN,用户可以设置Trunk端口的PVID值,默认情况下,Trunk端口的PVID值为1。
发送处理方法:对VID等于PVID的帧,“去标签”再转发;对VID不等于PVID的帧,直接发出。
接收处理方法:接收“未打标签”的帧,根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等。对于有VID标签的包,若VID在允许之列,进入;否则丢弃。
PS:互连的Trunki端口的PVID值不等,可能会造成转发错误!
华为交换机私有的Hybrid端口类型
Hybird是华为交换机接口上默认的接口类型,既可用于交换机之间或交换机与路由器之间的互连,也可用于交换机与用户计算机之间的互连。Hybird端口可以属于多个VLAN,用户可以设置Hybird端口的PVID值,默认情况下为1。
发送处理方法:查看帧的VID是否在端口的“去标签”列表中,若存在则为去标签再转发;若不存在则直接转发(主机无法处理IEEE 802.1 Q帧,会丢弃)。
接收处理方法:接收“未打标签”的帧,根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等。接收“已打标签的帧”。
基于端口划分的VLAN缺点是灵活性不好。例如当一个网络站点从一个端口移动到另外一个新的端口时,如果新端口与旧端口不属于同一个虚拟局域网,则用户必须对该站点重新进行网络地址配置,否则,该站点将无法进行网络通信。
其余VLAN划分方式
基于MAC地址划分VLAN
实现:网络管理员预先配置MAC地址和VLAN ID映射关系表,当交换机收到的是Untagged帧时,就依据该表给数据帧添加指定VLAN的Tag。然后数据帧将在指定VLAN中传输。
优点:不管计算机连接到交换机的哪个接口,如果交换机从一个位置移动到另一个位置,连接的端口从一个换到另一个,只要计算机的MAC地址不变(计算机使用的网卡不变),它将仍属于原VLAN的成员,不需网络管理员对交换机软件进行重新配置。
缺点:如果网络规模比较大,则网络管理员初始的配置工作量相当大,并且用户更换网卡后,网络管理员也需要对VLAN的配置进行相应的改变。
适用于位置经常移动但网卡不经常更换的小型网络,如移动PC。
基于子网划分VLAN
实现:根据数据帧中的源IP地址和子网掩码来划分VLAN。网络管理员预先配置IP地址和VLAN ID映射关系表,当交换机收到的是Untagged帧,就依据该表给数据帧添加指定VLAN的Tag。然后数据帧将在指定VLAN中传输。IP划分vlan只能在hybrid端口上划分。
优点:当用户的物理位置发生改变,不需要重新配置VLAN。可以减少网络通信量,可使广播域跨越多个交换机。
缺点:网络中的用户分布需要有规律,且多个用户在同一个网段。
适用于对安全需求不高、对移动性和简易管理需求较高的场景中。比如,一台PC配置多个IP地址分别访问不同网段的服务器,以及PC切换IP地址后要求VLAN自动切换等场景。
基于协议划分VLAN
实现:根据数据帧所属的协议(族)类型及封装格式来划分VLAN。网络管理员预先配置以太网帧中的协议域和VLAN ID的映射关系表,如果收到的是Untagged帧,就依据该表给数据帧添加指定VLAN的Tag。然后数据帧将在指定VLAN中传输。
优点:将网络中提供的服务类型与VLAN相绑定,方便管理和维护。
缺点:需要对网络中所有的协议类型和VLAN ID的映射关系表进行初始配置。需要分析各种协议的格式并进行相应的转换,消耗交换机较多的资源,速度上稍具劣势。
适用于需要同时运行多协议的网络。
基于策略(MAC地址、IP地址、接口)划分VLAN
实现:根据配置的策略划分VLAN,能实现多种组合的划分方式,包括接口、MAC地址、IP地址等。网络管理员预先配置策略,如果收到的是Untagged帧,且匹配配置的策略时,给数据帧添加指定VLAN的Tag。然后数据帧将在指定VLAN中传输。
优点:安全性高,VLAN划分后,用户不能改变IP地址或MAC地址。网络管理人员可根据自己的管理模式或需求选择划分方式。
缺点:针对每一条策略都需要手工配置。
适用于需求比较复杂的环境。
三层交换技术
根据目前为止学习的知识,我们已经知道两台计算机即使连接在同一台交换机上,只要所属的VLAN不同就无法直接通信。接下来我们将要学习的就是如何在不同的VLAN间进行路由,使分属不同VLAN的主机能够互相通信。
三层交换机和二层交换机
二层交换机工作于OSI模型的二层(数据链路层),可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。
三层交换机位于三层(网络层),是具有部分路由器功能的交换机。目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。此外,三层交换机可以执行静态路由和动态路由。这意味着三层交换机同时具有MAC地址表和IP路由表,并且还处理VLAN内通信以及不同VLAN之间的数据包路由。仅添加静态路由的交换机称为弱三层交换机。除路由数据包外,三层交换机还包括一些功能,这些功能需要能够理解进入交换机的数据的IP地址信息,例如基于IP地址标记VLAN流量,而不是手动配置端口。三层交换机的功率和安全性得到了提高。
二层和三层交换机之间的主要区别在于是否拥有路由功能。选择二层或者三层交换机取决于网络需求,对于纯二层网络,二层交换机足以满足需求;如果需要交换机聚合来访问多个交换机并进行VLAN间路由,则需要三层交换机。这在网络拓扑中称为分布层。
三层交换技术
三层交换技术可以利用路由原理实现不同VLAN间的PC互相通信(一次路由,多次交换),在内部生成“VLAN接口”(VLAN Interface),用于各VLAN收发数据的接口。
为什么不同VLAN间不通过路由就无法通信?
在LAN内的通信,必须在数据帧头中指定通信目标的MAC地址。而为了获取MAC地址,TCP/IP协议下使用的是ARP。ARP解析MAC地址的方法,则是通过广播。计算机分属不同的VLAN,也就意味着分属不同的广播域,如果广播报文无法到达,那么就无从解析MAC地址,亦即无法直接通信。
三层交换机路由转发数据的过程
计算机A与计算机C间通信,针对目标IP地址,计算机A可以判断出通信对象不属于同一个网络,因此向默认网关发送数据(Frame 1)。
交换机通过检索MAC地址列表后,经由内部汇聚链接,将数据帧转发给路由模块。在通过内部汇聚链路时,数据帧被附加了属于红色VLAN的VLAN识别信息(Frame 2)。
路由模块在收到数据帧时,先由数据帧附加的VLAN识别信息分辨出它属于红色VLAN,据此判断由红色VLAN接口负责接收并进行路由处理。因为目标网络192.168.2.0/24是直连路由器的网络、且对应蓝色VLAN;因此,接下来就会从蓝色VLAN接口经由内部汇聚链路转发回交换模块。在通过汇聚链路时,这次数据帧被附加上属于蓝色VLAN的识别信息(Frame 3)。
交换机收到这个帧后,检索蓝色VLAN的MAC地址列表,确认需要将它转发给端口3。由于端口3是通常的访问链接,因此转发前会先将VLAN识别信息去除(Frame 4)。最终,计算机C成功地收到交换机转发来的数据帧。