虚拟局域网(VLAN)

概述

虚拟局域网(VLAN, Virtual Local Area Network)其技术标准是在1999年6月发布的IEEE 802.1q标准,而最早的VLAN技术是在1996年就由Cisco提出了。VLAN在企业网络中应用非常广泛,它属于数据链路层的技术,同一VLAN内部是通过数据链路层进行通信的

早期的以太网并没有VLAN技术,与之对应的以太网帧自然也没有VLAN信息的字段。VLAN的主要用途就是把大型的交换网络划分成多个小的交换网络,一来可以隔离不同子网络的通信,二来也是最主要的一点是缩小广播域,减少广播流量对整个交换网络的影响。

因为交换机在缓存ARP表里如果找不到帧里对应的目的MAC地址,就会在整个网络里进行广播。由于交换机本身缓存较少,而且ARP表有有效时间,所以大型交换网络中,广播是时长要发生的。由于广播通信属于数据链路层通信,无法通过路由器或上层设备进行跨网段广播。所以才使用VLAN来减少广播域,以此减少网络中不必要的负荷。

VLAN的工作原理

VLAN在应用中一般按照功能、项目组、部门、IP子网、网络协议或应用策略对用户进行分组,而不考虑用户实际的物理位置。同时它具有与物理交换网络相同的属性,但是它还可以聚合不在同一个物理网段的终端。

单一物理交换机中的VLAN

每一个VLAN实际上就是一个虚拟的交换机,在同一台物理交换机中,不同的VLAN之间逻辑上可以认为它们是没有物理连接的,因此不同的VLAN之间自然也不可以互相访问。

要注意的是,VLAN也可以像物理交换机一样,将不同网段的终端连接到同一个VLAN中,但通常并不这么做。

多个物理交换机中的VLAN

VLAN中的端口成员不是按照物理地址划分的,所以一个VLAN也可以跨越多台物理交换机,这就是VLAN**中继(Trunk)功能,在不同的交换机上可以有相同的VLAN,而且不同交换机上相同的VLAN是可以相互通信的,可以把相同的VLAN在不同物理交换机在逻辑上看作存在物理连接**,因此自然可以相互通信。

要注意的是,要区分VLAN中继和中继端口这两个概念,VLAN中继是指在一台交换机上的VLAN配置可以经由VTP协议传播到其他交换机上。而中继(Trunk)端口是指在一个交换机端口允许一个或者多个VLAN通信到达网络中相连的另一台交换机上相同的VLAN中。这是两个完全不一样的概念。

VLAN间互相访问

VLAN的虚拟属性使得在尽管多个VLAN在同一个交换机中,但逻辑上它们之间不存在物理连接,彼此互相独立。在这种不可能进行数据链路层互相访问的情况下,只能通过第三层网络层来使多个VLAN之间可以互相访问。

独立的交换网络之间进行三层连接有两种方式,其一是使用网关,其二是使用路由。在不同的VLAN间的逻辑连接也是使用这两种方式,其中每个VLAN的交换机虚拟接口(SVI)就是对应VLAN的网关。为每个SVI配置好IP地址,这个IP地址就是VLAN的网关地址。

而通过路由方式也是类似的,可以认为在SVI之间有一个路由设备。


IEEE 802.1q

与其他帧一样,VLAN也需要一些信息才能使用,其格式是由IEEE 802.1q规定的,VLAN帧是在以太网帧的Data字段前加入一共4字节的信息组成,这4个字节格式如下:

大小(bit) 16 3 1 12
字段 TPID Priority CFI VLAN ID

其中后三个统称为标签控制信息(TCI, Tag Control Information),各字段的说明如下:

  • 标签协议标识符(TPID, Tag Protocol IDentifier):用于表明这是一个添加了VLAN标记的帧,占2个字节(16位),其值固定为0x8100(IEEE 802.1q VLAN协议的类型ID)

  • 用户优先级(Priority)表示0-7共8个级别的优先级(数值越大优先级越高),共占1位。该位主要用于交换机出现阻塞时决定哪些帧先行发送,也就是QoS的应用,它在IEEE 802.1p规范有详细定义。

  • 标准格式指示符(CFI, Canonical Format Idicator):用于兼容以太网和令牌环网,共占1位。用来标识MAC地址在传输介质中是否以标准格式封装,0则为标准封装,默认为0,并且在以太网中该值总为0。

    标准MAC地址和非标准地址的区别在于,在以太网(IEEE 802.3)令牌总线网(IEEE 802.4)中,MAC地址是从低到高位发送的。而令牌环网(IEEE 802.5)IEEE 802.6中MAC地址是正好相反的,即从高到低位发送。一般都把IEEE 802.3&802.4的顺序称为标准格式(Canonical form),反之称为非标准格式(Non-Canonical form)

  • VLAN标识(VLAN IDentified);用以表明VLAN的ID号,占12位。一共可以表示4096个VLAN,每个支持802.1q协议的交换机发送的帧都包含这个域,用于表示自己属于哪一个VLAN。

因为信息多了,所以并不是所有的设备都能支持VLAN协议,不认识VLAN协议的交换机就无法识别这4个字节的信息。VLAN信息是在二层交换机接收到主机发来的帧后加入进去的,并不是由主机填写的

猜你喜欢

转载自blog.csdn.net/GarfieldGCat/article/details/81586121