目录
- LAN 局域网
- VLAN(Virtual Local Area Network)虚拟局域网
- 为什么要分割VLAN?
- VLAN的原理
- VLAN的划分方式
- 静态VLAN(基于端口的VLAN)
- 动态VLAN
- 多台交换机之间的连接方式 : 汇聚链接(Trunk Link )
- VLAN间的通信
- 同一VLAN间的通信原理
- 不同VLAN间的通信
LAN 局域网
以太网是一种局域网
现在大部分局域网都是以太网
常常默认以太网是局域网
VLAN(Virtual Local Area Network)虚拟局域网
VLAN(Virtual LAN),翻译成中文是“虚拟局域网”
VLAN所指的LAN特指使用路由器分割的网络——也就是广播域。
为什么要分割VLAN?
计算机A需要与计算机B通信:
计算机A必须先广播“ARP请求(ARP Request)信息”,来尝试获取计算机B的MAC地址。
交换机1收到广播帧(ARP请求)后,会将它转发给除接收端口外的其他所有端口,造成泛滥了。
接着,交换机2收到广播帧后也会泛滥。交换机3、4、5也还会泛滥。最终ARP请求会被转发到同一网络中的所有客户机上,这也就是网络风暴
数据帧却传遍整个网络,导致与目的地无关的所有计算机都收到了它。可能隐患:
1.广播信息消耗了网络整体的带宽
2.收到广播信息的计算机还要消耗一部分CPU时间来对它进行处理。造成了网络带宽和CPU运算能力的大量无谓消耗,可能会造成网络瘫痪。
VLAN的原理
交换机使用VLAN分割广播域的。
在一台未设置任何VLAN的二层交换机上,任何广播帧都会被转发给除接收端口外的所有其他端口上泛滥。
例如,计算机A发送广播信息后,会被转发给端口2、3、4。
这时,如果在交换机上生成红、蓝两个VLAN;
- 同时设置端口1、2属于红色VLAN
- 端口3、4属于蓝色VLAN。
再从A发出广播帧的话,交换机就只会把它转发给同属于一个VLAN的其他端口——也就是同属于红色VLAN的端口2,不会再转发给属于蓝色VLAN的端口。
同样,C发送广播信息时,只会被转发给其他属于蓝色VLAN的端口,不会被转发给属于红色VLAN的端口。
VLAN通过限制广播帧转发的范围 分割了广播域
上图中为了便于说明,以红、蓝两色识别不同的VLAN,在实际使用中则是用“VLAN的ID”来区分的。
VLAN的划分方式
其中基于子网的VLAN和基于用户的VLAN有可能是网络设备厂商使用独有的协议实现的,不同厂商的设备之间互联有可能出现兼容性问题;因此在选择交换机时,一定要注意事先确认。
静态VLAN(基于端口的VLAN)
静态VLAN也叫做基于端口的VLAN :
明确指定交换机各端口属于哪个VLAN的设定方法
缺点:
由于需要一个个端口地指定,因此当网络中的计算机数目超过一定数字(比如数百台)后,设定操作就会变得烦杂无比。并且,计算机每次变更所连端口,都必须同时更改该端口所属VLAN的设定——这显然静态VLAN不适合那些需要频繁改变拓补结构的网络和大型网络。
动态VLAN
动态VLAN则是根据每个端口所连的计算机,随时改变端口所属的VLAN。这就可以避免上述的更改设定之类的操作。动态VLAN可以大致分为3类:
● 基于MAC地址的VLAN(MAC Based VLAN)
● 基于子网的VLAN(Subnet Based VLAN)
● 基于用户的VLAN(User Based VLAN)
① 基于MAC地址的VLAN,就是通过查询并记录端口所连计算机上网卡的MAC地址来决定端口的所属。
假定有一个计算机的MAC地址为“A”被交换机设定为属于VLAN“10”,那么不论MAC地址为“A”这台计算机连在交换机哪个端口,该端口都会被划分到VLAN10中去。
例如:计算机连在端口1时,端口1属于VLAN10;而计算机连在端口2时,则是端口2属于VLAN10。
总结: 索引是MAC地址,通过MAC地址寻找所属VLAN
②基于子网的VLAN,则是通过所连计算机的IP地址,来决定端口所属VLAN的。只要它的IP地址不变,就仍可以加入原先设定的VLAN。
③基于用户的VLAN,则是根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属于哪个VLAN。
这里的用户识别信息,一般是计算机操作系统登录的用户,比如可以是Windows域中使用的用户名。这些用户名信息,属于OSI第四层以上的信息。
多台交换机之间的连接方式 : 汇聚链接(Trunk Link )
汇聚链接(Trunk Link)指的是能够转发多个不同VLAN的通信的端口。
汇聚链路上流通的数据帧,都被附加了特殊信息 用于识别属于哪个VLAN。
关键字 : 附加信息,识别VLAN
A发送的数据帧从交换机1经过汇聚链路到达交换机2时,在数据帧上附加了表示属于红色VLAN的标记。
交换机2收到数据帧后,经过检查VLAN标识发现这个数据帧是属于红色VLAN的,因此去除标记后,根据需要将复原的数据帧只转发给其他属于红色VLAN的端口。
这时的转送,是指经过确认目标MAC地址并与MAC地址列表,比对后,只转发给目标MAC地址所连的端口。
只有当数据帧是一个广播帧、多播帧或是目标不明的帧时,它才会被转发到所有属于红色VLAN的端口。
VLAN间的通信
VLAN是广播域。而通常两个广播域之间由路由器连接,VLAN间的通信也需要路由器提供中继服务,这被称作“VLAN间路由”。
VLAN间路由,可以使用普通的路由器,也可以使用三层交换机。
同一VLAN间的通信原理
问题: 使用汇聚链路连接交换机与路由器时,VLAN间路由是如何进行的?
红色VLAN(VLANID=1)的网络地址为192.168.1.0/24
蓝色VLAN(VLANID=2)的网络地址为192.168.2.0/24
各计算机的MAC地址分别为A/B/C/D
路由器汇聚链接端口的MAC地址为R。
交换机通过对各端口所连计算机MAC地址的学习,生成如下的MAC地址列表。
首先考虑计算机A与同一VLAN内的计算机B之间通信时的情形。
计算机A发出ARP请求信息,请求解析B的MAC地址。
交换机收到数据帧后,检索MAC地址列表 中与收信端口同属一个VLAN的表项**。如果没有搜索到,那么交换机把这个ARP在整个WLAN中广播**,更新MAC地址列表结果 发现计算机B连接在端口2上
于是交换机将数据帧转发给端口2
最终计算机B收到该帧。
收发信双方同属一个VLAN之内的通信,一切处理均在交换机内完成。
不同VLAN间的通信
让我们来考虑一下计算机A与计算机C之间通信时的情况。
- 过程1、计算机A从通信目标的IP地址(192.168.2.1)得出C与本机不属于同一个网段。
在发送数据帧之前,需要先用ARP获取路由器的MAC地址。
∵ 判断C与本机不在同一个网段
∴向设定的默认网关(Default Gateway,GW)转发数据帧。
- 过程2、得到路由器的MAC地址R后,便是具体的通信过程
- 接下来就是按图中所示的步骤发送往C去的数据帧。
①的数据帧中,目标MAC地址是路由器的地址R、
但内含的目标IP地址仍是最终要通信的对象C的地址。
- 过程3、交换机在端口1上收到①的数据帧后,检索MAC地址列表中与端口1同属一个VLAN的表项。
由于汇聚链路会被看作属于所有的VLAN,因此这时交换机的端口6也属于被参照对象。这样交换机就知道往MAC地址R发送数据帧,需要经过端口6转发。
- 过程4、从端口6发送数据帧时,由于它是汇聚链接,因此会被附加上VLAN识别信息。
由于原先是来自红色VLAN的数据帧,因此如图中②所示,会被加上红色VLAN的识别信息后进入汇聚链路。路由器收到②的数据帧后,确认其VLAN识别信息,由于它是属于红色VLAN的数据帧,因此交由负责红色VLAN的子接口接收。
- 过程5、接着,根据路由器内部的路由表,判断该向哪里中继。
由于目标网络192.168.2.0/24是蓝色VLAN,且该网络通过子接口与路由器直连,因此只要从负责蓝色VLAN的子接口转发就可以了。
这时,数据帧的目标MAC地址被改写成计算机C的目标地址;并且由于需要经过汇聚链路转发,因此被附加了属于蓝色VLAN的识别信息。这就是图中③的数据帧。
- 过程6、交换机收到③的数据帧后,根据VLAN标识信息从 MAC地址列表加粗样式**中检索属于蓝色VLAN的表项。
由于通信目标——计算机C连接在端口3上、且端口3为普通的访问链接,因此交换机会将数据帧除去VLAN识别信息后(数据帧④)转发给端口3,最终计算机C才能成功地收到这个数据帧。