【杂记-浅谈VLAN技术】

一、什么是VLAN、VLAN优点

VLAN概述
VLAN,Virtual Bridged Local Area Networks,虚拟桥接局域网,简称虚拟局域网,是将一个物理的局域网在逻辑上划分成多个广播域的通信技术。每个VLAN是一个广播域,VLAN内的主机间可以直接通信,而VLAN间则不能直接互通,这样,广播报文就被限制在一个VLAN内。VLAN划分在OSI参考模型的第2层和第3层,如果只是在交换机划分VLAN,那么VLAN就是二层技术,如果想实现VLAN之间的通信,就要使用三层VLAN或者通过路由器来实现。
VLAN优点
1、限制广播域,广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。
2、增强局域网的安全性:不同VLAN内的报文在传输时相互隔离,即一个VLAN内的用户不能和其它VLAN内的用户直接通信。
3、提高了网络的健壮性:故障被限制在一个VLAN内,本VLAN内的故障不会影响其他VLAN的正常工作。
4、灵活构建虚拟工作组:用VLAN可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。

二、使用VLAN的原因、使用场景

原因
早期以太网基于CSMA/CD共享通讯介质的数据网络通讯技术,当主机数目较多时会导致冲突严重、广播泛滥、性能显著下降甚至造成网络不可用等问题,通过二层设备实现LAN互连虽然可以解决冲突严重的问题,但仍然不能隔离广播报文和提升网络质量。而VLAN技术技术可以把一个LAN划分成多个逻辑的VLAN,每个VLAN是一个广播域,VLAN内的主机间通信就和在一个LAN内一样,而VLAN间则不能直接互通,广播报文就被限制在一个VLAN内。
场景
1、VLAN间用户的二层隔离:
某商务楼内有多家公司,为了降低成本,多家公司共用网络资源,各公司分别连接到一台二层交换机的不同接口,并通过统一的出口访问Internet。为了保证各公司业务的独立和安全,可将每个公司所连接的接口划分到不同的VLAN,实现公司间业务数据的完全隔离。可以认为每个公司拥有独立的虚拟路由器,每个VLAN就是一个虚拟工作组。
再比如,某公司有两个部门,分别分配了固定的IP网段。为加强员工间的学习与交流,员工的位置有时会相互调动,但公司希望各部门员工访问的网络资源的权限不变。为了保证部门内员工的位置调整后,访问网络资源的权限不变,可在公司的交换机Switch_1上配置基于IP子网划分VLAN。这样,服务器的不同网段就划分到不同的VLAN,访问服务器不同应用服务的数据流就会隔离,提高了安全性。
2、VLAN间用户的三层互访:
某小型公司的两个部门分别通过二层交换机接入到一台三层交换机Switch_3,所属VLAN分别为VLAN2和VLAN3,部门1和部门2的用户互通时,需要经过三层交换机。可在Switch_1和Switch_2上划分VLAN并将VLAN透传到Switch_3上,然后在Switch_3上为每个VLAN配置一个VLANIF接口,实现VLAN2和VLAN3间的路由。

三、VLAN相关协议

802.1q/dot1q
IEEE 802.1q,即dot1q,其中dot译为点,802.1q定义了关于VLAN连接介质访问控制层和IEEE 802.1D生成树协议的具体概念模型,这个模型允许各个独立的VLAN与以太网交换机的数据链路层或路由器互相连接,802.1q规定了VLAN的实现标准。IEEE 802.1q协议规定在目的mac地址和源mac地址之后封装4个字节的VLAN tag,用以标识VLAN的相关信息。
LNP
LNP,Link-type Negotiation Protocol,即链路类型协商协议,用来动态协商以太网接口的链路类型为Access或者Trunk,以太网接口的链路类型协商为Access,缺省情况下加入VLAN1;以太网接口的链路类型协商为Trunk,缺省情况下加入VLAN1~4094。
QinQ
QinQ,802.1Q-in-802.1Q,出自IEEE 802.1ad标准协议,通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的功能,可以使私网VLAN透传公网。由于在骨干网中传递的报文有两层802.1Q Tag(一层公网Tag,一层私网Tag),即802.1Q-in-802.1Q,所以称之为QinQ协议。

四、VLAN和子网的区别

子网划分是通过将IP地址的网络部分进一步划分为若干个子网,可以解决IP地址空间利用率低和两级IP地址不够灵活的问题。子网与VLAN相似,也可以隔离主机间的通信,属于不同VLAN的主机之间不能直接通信,属于不同的子网的主机之间也不能直接通信,但二者没有必然的对应关系。
1、VLAN用于划分二层网络,并在配置VLANIF接口的基础上实现路由互通后,属于不同VLAN的用户才能互访,可划分4094个VLAN,VLAN内的设备数量不受限制,同一VLAN内,可以划分一或多个网段。
2、子网用于划分三层网络,只要通过路由实现网络互通,属于不同子网的用户就能互访,划分的网段数量会影响各个子网内的设备最大数,同一子网内,可以划分一或多个VLAN。

五、VLAN Tag和VLAN ID

VLAN Tag
要使交换机能够分辨不同VLAN的报文,需要在报文中添加标识VLAN信息的字段。IEEE 802.1Q协议规定,在以太网数据帧中加入4个字节的VLAN标签(又称VLAN Tag,简称Tag),用以标识VLAN信息。
在一个VLAN交换网络中,以太网帧主要有以下两种形式:
1、有标记帧(Tagged帧):加入了4字节VLAN标签的帧。
2、无标记帧(Untagged帧):原始的、未加入4字节VLAN标签的帧。
以太网链路包括接入链路(Access Link)和干道链路(Trunk Link)。接入链路用于连接交换机和用户终端(如用户主机、服务器、傻瓜交换机等),只可以承载1个VLAN的数据帧。干道链路用于交换机间互连或连接交换机与路由器,可以承载多个不同VLAN的数据帧。在接入链路上传输的帧都是Untagged帧,在干道链路上传输的数据帧都是Tagged帧。
交换机内部处理的数据帧一律都是Tagged帧。从用户终端接收无标记帧后,交换机会为无标记帧添加VLAN标签,重新计算帧校验序列(FCS),然后通过干道链路发送帧;向用户终端发送帧前,交换机会去除VLAN标签,并通过接入链路向终端发送无标记帧。
VLAN数据帧格式
数据帧中的VID字段标识了该数据帧所属的VLAN,数据帧只能在其所属VLAN内进行传输。VID字段代表VLAN ID,VLAN ID取值范围是0~4095,由于0和4095为协议保留取值,所以VLAN ID的有效取值范围是1~4094。
1、TPID,Tag Protocol Identifier,即标签协议标识符,长度2Byte,表示数据帧类型。取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。各设备厂商可以自定义该字段的值,当邻居设备将TPID值配置为非0x8100时, 为了能够识别这样的报文,实现互通,必须在本设备上修改TPID值,确保和邻居设备的TPID值配置一致。
2、PRI,Priority,即优先,长度3bit,取值范围为0~7,值越大优先级越高。当网络阻塞时,交换机优先发送优先级高的数据帧。
3、CFI,Canonical Format Indicator,即标准格式指示位,长度1bit,表示MAC地址在不同的传输介质中是否以标准格式进行封装,用于兼容以太网和令牌环网。CFI取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装。在以太网中,CFI的值为0。
4、VID,VLAN ID,表示该数据帧所属VLAN的编号,长度12bit。VLAN ID取值范围是0~4095。由于0和4095为协议保留取值,所以VLAN ID的有效取值范围是1~4094。

六、VLAN接口类型和标签处理机制

1、不同VLAN间的主机不能直接通信,需要通过路由器或三层交换机等网络层设备进行转发,设备提供VLAN接口实现对报文进行三层转发的功能。VLAN接口是一种三层模式下的虚拟接口,主要用于实现VLAN间的三层互通,它不作为物理实体存在于设备上。每个VLAN对应一个vlan接口,在为VLAN接口配置了IP地址后,该接口即可作为本VLAN内网络设备的网关,对需要跨网段的报文进行基于IP地址的三层转发。
2、Access,Trunk,Hybrid都是上层的概念,其实在底层只有tag,untag概念。现网中属于同一个VLAN的用户可能会被连接在不同的交换机上,且跨越交换机的VLAN可能不止一个,如果需要用户间的互通,就需要交换机间的接口能够同时识别和发送多个VLAN的数据帧。根据接口连接对象以及对收发数据帧处理的不同,当前有VLAN的多种接口类型,以适应不同的连接和组网。不同厂商对VLAN接口类型的定义可能不同,华为设备常见的VLAN接口类型有三种,包括:Access、Trunk和Hybrid。
Access接口
发报文时,去掉tag再发送;收报文时,untag报文,打上端口PVID,送到缺省VLAN。
即:Access接口,只属于一个VLAN,端口发送报时,去掉VLAN tag,一般用于和不能识别Tag的用户终端(如用户主机、服务器)相连,或者不需要区分不同VLAN成员时使用。
在一个VLAN交换网络中,以太网数据帧主要有以下两种形式:1.无标记帧(Untagged帧),原始的、未加入4字节VLAN标签的帧。2.有标记帧(Tagged帧):加入了4字节VLAN标签的帧。
Access接口大部分情况只能收发Untagged帧,且只能为Untagged帧添加唯一VLAN的Tag,交换机内部只处理Tagged帧,所以Access接口需要给收到的数据帧添加VLAN Tag,也就必须配置缺省VLAN,配置缺省VLAN后,该Access接口也就加入了该VLAN。
当Access接口收到带有Tag的帧,并且帧中VID与PVID相同时,Access接口也能接收并处理该帧,在发送带有Tag的帧前,Access接口会剥离Tag。
Trunk接口
1、发送报文时,当报文VID= 端口PVID时,去掉tag,再发送。否则,保持原有tag发送。收到报文时,untag报文,给报文打上端口PVID,送到缺省vlan。tag报文,送到tag标识的vlan。
即:Trunk端口可以属于多个VLAN,端口发送报文时,如果是缺省VLAN的报文,去掉VLAN tag, 如果是其他VLAN的报文,则必须带VLAN tag发送, 一般用于交换机直接互联。
2、Trunk接口一般用于连接交换机、路由器、AP以及可同时收发Tagged帧和Untagged帧的语音终端,它可以允许多个VLAN的帧带Tag通过,但只允许属于缺省VLAN的帧从该类接口上发出时不带Tag(即剥除Tag)。
3、Trunk接口上的缺省VLAN,有的厂商也将它定义为native VLAN,当Trunk接口收到Untagged帧时,会为Untagged帧打上Native VLAN对应的Tag。
4、一个Trunk可以通过多个VLAN的流量,Trunk链路之所以可以承载所有VLAN的流量,主要是因为来自于每个VLAN的数据帧,在经过Trunk的时候,都会在这个数据帧里插入一个VLAN ID字段,对端交换机收到这个数据时,检查找到这个VLAN ID所对应的VLAN,然后把这个数据转发到对应的VLAN中。
Hybrid接口
发送报文时,可以自由配置以还是untag的形式发送。收到报文时,和trunk端口一样处理。
即:Hybrid可以属于多个VLAN,但与Trunk口相比,他有一点更具灵活性,他可以自由决定发送报文时,是去掉tag,还是带上tag
1、Hybrid接口既可以用于连接不能识别Tag的用户终端(如用户主机、服务器)和网络设备(如Hub),也可以用于连接交换机、路由器以及可同时收发Tagged帧和Untagged帧的语音终端、AP。它可以允许多个VLAN的帧带Tag通过,且允许从该类接口发出的帧根据需要配置某些VLAN的帧带Tag(即不剥除Tag)、某些VLAN的帧不带Tag(即剥除Tag)。
2、Hybrid接口和Trunk接口在很多应用场景下可以通用,但在某些应用场景下,必须使用Hybrid接口。比如在灵活QinQ中,服务提供商网络的多个VLAN的报文在进入用户网络前,需要剥离外层VLAN Tag,此时Trunk接口不能实现该功能,因为Trunk接口只能使该接口缺省VLAN的报文不带VLAN Tag通过。
使用Hybrid给各自的端口打上PVID,然后允许对方的VLAN不带VLAN tag标记通过。

七、二层VLAN、三层VLAN

二层VLAN概述
二层VLAN就是通过对原始数据包进行打标来隔离不同的广播域,即对每个数据包加上VLAN tag的标记 ,一个交换机有划分多个VLAN就会产生多个VLAN tag,如果交换机从一个已经划分vlan的端口收到一个不带VLAN tag的数据包 ,那么他就回给个包打上VLAN tag然后根据VLAN tag进行转发 。
三层VLAN概述
二层交换机经过VLAN划分后,彼此可通过三层路由器作为各个VLAN的网关,经由三层路由器里的VLAN协议和ARP协议,处理各VLAN段发过来的包,并转发至正确的VLAN段。因为是从二层交换机发过来的帧,处理完后又发回给二层交换机,从而加入VLAN标签可使多个VLAN透过一个链接多路复用,即用一根网线连接路由器和交换机,两者联合处理二层vlan间的数据帧的数据交换。为了完成vlan间数据交换,用到三层设备路由器,实际上是路由器跑二层协议。
使用三层交换的原因
1、技术层面:交换机划分VLAN,不仅能有效隔离广播风暴,还能提高网络安全系数及网络带宽的利用效率,但划分VLAN之后,VLAN与VLAN之间是不能通信的,只能通过路由或三层交换来实现彼此的通讯。路由器实现路由功能通常是将数据报从一个接口进来然后另一个接口出去。路由器与交换机之间只通过一条主干线路,来实现通信或数据转发,因为实际上只是一条线路,只是用子接口的形式,在逻辑上分开,所以形象地叫单臂,也就是路由器仅用一个接口实现数据的进与出,因此称它为单臂路由,单臂路由是解决VLAN间通信的一种廉价而实用的解决方案。
2、经济层面:如果在企业内部网络中划分了不同VLAN,当不同VLAN之间有部分主机需要通信,但你的交换机又不支持三层交换功能,如果你有一台支持802.1Q的路由器,或者购买一台这样的路由器,我们用该路由器做三层交换(单臂路由)实现VLAN间的互通。我们只需要在该路由器的以太口上创建一系列与VLAN对应的子接口,并分配相应的IP地址作为各个VLAN的网关,同时启动802.1Q协议和ARP广播协议即可。

  • 32
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值