目录
局域网LAN
虚拟局域网
VLAN实现原理
一、局域网LAN
上图表示的是最基本的LAN布局,如果两个设备间要进行通信,必须先知道双方的名字,这里MAC就是他们各自的名字。假如Bob向Sally发送消息,但是一开始Bob并不知道Sally的MAC是什么,所以要先获取Sally的MAC地址,中间有个ARP协议就是解决这个问题(Bob先广播发送一个询问信息,询问Sally在哪,这个询问信息凡是连接这个Hub的设备都会接受,Sally接受这个询问消息后将自己的MAC发送给Bob,其他的设备则会丢弃这个询问信息),至此已经建立设备间通信的准备条件。
使用Hub连接的一群设备,都属于同一个冲突域和广播域,这里冲突域就是广播域,简单理解就是在这种布局中,一次只能一台设备发送信号且其他设备都能接受该信号。
集线器是中继系统中的物理层(第一层)设备,主要作用是将信号进行接受-恢复放大-发送,双绞线、光纤在传输信号的时候,随着距离的增大,信号会减弱造成失真,借助集线器可以让信号传播更远的距离;同时Hub上有很多接口,能够扩展终端数量扩大LAN的规模。
但是同一Hub上的所有设备共享带宽,如果设备数量过多的话,会造成链路拥堵,严重的会产生广播风暴。
解决的上面布局的缺陷是将一个大的区域划分成众多小的区域,这样可以缩减冲突域的范围,降低数据拥堵,中间使用的设备是交换机。如上图是把主集线器换成交换机,交换机的一个端口对应一个单独的冲突域,这样一来一个大的广播域就分成了多个小的冲突域,图中的集线器只是扩展交换机端口的冲突域。但注意的是,这整个网络仍是一个广播域。
上面的布局还是不够好,无法对广播域进行隔离,我们想象一下如果只有一个广播域,当主机数量越来越多时,发送一个广播则所有设备都要进行处理,那将是一笔很大的开销,为此我们引进路由器来划分广播域。注意,路由器可以划分冲突域和广播域。
当路由器收到广播时,会自动把它自动丢弃,不会转发到路由器的其他端口,实现了广播域的分割。而且路由器还要一个串行接口0用来连接广域网。
图中LAN布局所示,有6个冲突域(串行接口那个除外),3个广播域。
二、虚拟局域网
什么是VLAN(虚拟局域网),我们发现凡是带V的,都和虚拟挂钩,既然是虚拟的,也就是不存在物理实体的,所以在理解的时候,我们要有一定的逻辑思维。VLAN技术就是将一个物理的LAN在逻辑上划分成多个广播域,每一个广播域就是一个VLAN。
为什么要使用VLAN呢,我们知道,交换机构成的LAN可以隔离冲突域,使得同一局域网内的所有主机可以同时发送消息,这确实相比集线器是一个很大的进步,但是,当一台设备发送一个广播,随着LAN内的主机数量越来越多,交换机要复制该广播的数量就会增多(因为要转发到每一天设备嘛),那么每台设备发送广播呢,可想而知交换机将不堪重负。因此想到了划分广播域,
默认情况下,广播会发给LAN下所有的主机如上图,但是划分了VLAN之后,广播只会发给同一VLAN内的所有主机,而不会发给其他VLAN内的主机。
上图所示,虽然这些主机在同一个交换机上,但是通过对交换机做一些特殊的处理(什么处理后边详解),本来一个广播域被划分成了3个广播域,物理上这些主机在一个交换机上,但是逻辑上已经分别划分到三个交换机上,所以会有三个局域网(只不过是虚拟的),会有三个广播域,这就是为什么叫做虚拟局域网的原因。
这里特别说明一点,VLAN1这个虚拟局域网编号,一般工作于管理组,所以普通VLAN都是从2开始编号,默认情况下,所有虚拟局域网都隶属于VALN1,因为是管理员组嘛。
将来如果想添加一个PC到VLAN3里边,只需要将其PC接到物理交换机的VLAN3接口上边即可,而不需要像普通LAN一样(新加的PC机要跑到指定的局域网里边),这样就实现了随地增加用户,不用关心他的物理位置的限制。
为了便于管理,同时一个VLAN就是一个广播域,所以通常会分配一个单独的子网号给一个VLAN,现在我们想到一个问题,同一个VLAN内的主机能够互相通信,但是不同VLAN的主机能通信吗,答案是不能,为了解决这个问题,引进了三层交换机(或路由器)等OSI的三层设备实现跨网段通信。
三、VLAN实现原理
静态VLAN
在VLAN管理员最初配置交换机Port和VLAN ID的对应关系时,就已经固定了这种对应关系,即这个Port只能对应这个VLAN ID,之后无法进行更改,除非管理员再重新配置。
当一台设备接到这个Port上的时候,怎么判断该主机的VLAN ID与Port对应呢,这里是根据IP配置决定的,我们知道每个VLAN都有一个子网号,并对应着哪些Port,如果设备要求的IP地址和该Port对应的VLAN的子网号不匹配,则连接失败,该设备将无法正常通信。所以除了连接到正确的Port外,也必须给设备分配属于该VLAN网络段的IP地址,这样才能加入到该VLAN中。
动态VLAN
交换机自动配置Port为主机所属的VLAN。这里有三种分类:基于MAC,基于IP,基于用户
基于MAC的VLAN(例如二层交换机)
将所有主机的硬件地址都加入到VALN的管理数据库中,例如,一主机随便连接到交换机的一个动态VLAN的Port时,管理数据库将根据主机的MAC地址查询到该主机要加入VLAN 2中,然后自动设置该Port为VLAN 2。缺点是当主机更换了网卡之后,管理数据库需要重新设定。
基于IP的VLAN(例如三层交换机)
与基于MAC不同,这种方法会记录子网ID与VLAN ID的映射,而不论主机的网卡怎么变换,只要他的IP不变,交换机就可以根据主机的子网ID自动设置对应的VLAN ID。
基于用户的VLAN
根据操作系统的登录用户决定VLAN。
Access接口和Trunk接口
交换机中,有两种类型的接口:接入端口(Access)和中继端口(Trunk),Access接口只能用来连接用户主机,只能属于一个VLAN,因此该接口只传输本VLAN的数据。
以上我介绍的都是基于一台交换机划分VLAN的情况,当要实现跨两台甚至更多交换机呢,基于Access接口已经无法实现了,我们需要加入Trunk接口连接交换机。
如下图,VLAN 1的A跨不同交换机发送数据给B时,都必须经过交换机的Trunk接口,并在数据帧头加入该VLAN 1特有的标记字段,然后通过Trunk链路发送给另一台交换机,另一台交换机Trunk接口识别标记之后,去除标记,然后转发给B。
LAN和VLAN技术原理
原文地址:http://blog.51cto.com/13570193/2084140