一、LAN 本地局域网
LAN 表示 Local Area Network,本地局域网。
一个 LAN 表示一个广播域,含义是:LAN 中的所有成员都会收到任意一个成员发出的广播包。
最基本的LAN布局
上图为最基本的LAN布局。如果设备间想要通讯,必须要获取到对方的MAC地址。
举例:A 发信息给 C,A 并不知道 C 的 MAC 地址。此时通过 ARP 协议(Address Resolution Protocol;地址解析协议;)获取 C 的 MAC 地址,A 先要广播一个包含目标 IP 地址的 ARP 请求到链接在集线器上的所有设备上,C 接受到广播后返回 MAC 地址给 A,其他设备则丢弃信息。至此已经建立设备间通信的准备条件。
- 链接在集线器中的设备都在同一个冲突域和广播域中。此时的冲突域就是广播域。简单理解就是在这种布局中,一次只能一台设备发送信号且其他设备都能接受该信号。
- 集线器是物理层(OSI第一层)设备,主要作用是将信号进行接受-恢复放大-发送,双绞线、光纤在传输信号的时候,随着距离的增大,信号会减弱造成失真,借助集线器可以让信号传播更远的距离;同时集线器上有很多接口,能够扩展终端数量扩大 LAN 的规模。
- 同一集线器上的所有设备共享带宽,如果设备数量过多的话,会造成链路拥堵,严重的会产生广播风暴。
- 使用交换机可以把一个大的冲突域划分成多个小的冲突域,这样可以缩减冲突域的范围,降低数据拥堵。
- 下图添加一个交换机连接几个冲突域,交换机的一个端口对应一个单独的冲突域。这样一来一个大的广播域就分成了多个小的冲突域。但注意的是,这整个网络仍是一个广播域。
冲突域的相互隔离
- 上面已经把冲突域进行了隔离,当设备越来越多的时候每个设备都发送一个广播,交换机需要把每个广播复制下发到所有设备,这个开销就很可怕了。
- 下图我们使用路由器对广播域进行隔离。
广播域的隔离
- 当路由器收到广播时,会把它自动丢弃,不会转发到路由器的其他端口,实现了广播域的分割
- 这也是路由器存在的意义,如果将全网都集中在一个广播域中则容易引发广播,进而导致全网瘫痪
二、VLAN 虚拟局域网
VLAN 表示 Virtual Local Area Network,虚拟本地局域网。
- 虚拟局域网(VLAN)是在局域网(LAN)的逻辑上划分成多个广播域,每一个广播域就是一个 VLAN。
- 下图为交换机划分虚拟局域网。交换机把一个广播域划分成了3个广播域,物理上这些设备在一个交换机上,但是逻辑上已经分别划分到三个交换机上,所以会有三个局域网(虚拟局域网),三个广播域。
交换机划分虚拟局域网
交换机划分 VLAN 说明,VLAN1 这个虚拟局域网编号,一般工作于管理组,所以普通 VLAN 都是从 2 开始编号,默认情况下,所有虚拟局域网都隶属于 VALN1。
- 在上图中不同的 VLAN 相互间是不能通讯的。为了解决这个问题,引进了**三层交换机(或路由器)**等 OSI 的三层设备实现跨网段通信。
三、VLAN 实现原理
1. 静态 VLAN
- 静态 VLAN 又被称为基于端口的 VLAN(PortBased VLAN)。是为了明确指定哪个 Port 属于哪个 VLAN ID。
- 在 VLAN 管理员最初配置交换机 Port 和 VLAN ID 的对应关系时,就已经固定了这种对应关系,即一个 Port 只能对应一个 VLAN ID,之后无法进行更改,除非管理员再重新配置。
- 当一台设备接到这个 Port 上的时候,怎么判断该主机的 VLAN ID 与 Port 对应呢,这里是根据 IP 配置决定的,我们知道每个 VLAN 都有一个子网号,并对应着哪些 Port,如果设备要求的 IP 地址和该 Port 对应的 VLAN 的子网号不匹配,则连接失败,该设备将无法正常通信。所以除了连接到正确的 Port 外,也必须给设备分配属于该 VLAN 网络段的 IP 地址,这样才能加入到该 VLAN 中。
- 由于需要一个个端口地指定,因此当网络中的计算机数目超过一定数字(比如数百台)后,设定操作就会变得烦杂无比。并且,客户机每次变更所连端口,都必须同时更改该端口所属 VLAN 的设定——这显然不适合那些需要频繁改变拓补结构的网络。
2. 动态 VLAN
- 动态 VLAN 则是根据每个端口所连的计算机,随时改变端口所属的 VLAN。这就可以避免上述的更改设定之类的操作。动态 VLAN 可以大致分为 3 类:
- (1)基于 MAC 的 VLAN
基于 MAC 地址的 VLAN ,就是通过查询并记录端口所连的计算机网卡的 MAC 地址来决定端口的所属。假定有一个 MAC 地址 “A” 被交换机设定为属于 VLAN 10,那么不论 MAC 地址为 “A” 的这台计算机连在交换机哪个端口,该端口都会被划分到 VLAN 10 中去。计算机连在端口 1 时,端口 1 属于 VLAN 10 ;而计算机连在端口 2 时,则是端口 2 属于 VLAN 10。
基于 MAC 地址的 VLAN ,在设定时必须调查所连接的所有计算机的 MAC 地址并加以登录。而且如果计算机交换了网卡,还是需要更改设定。
- (2)基于 IP 的 VLAN
**基于子网的 VLAN,则是通过所连计算机的 IP 地址,来决定端口所属 VLAN 的。**不像基于 MAC 地址的 VLAN,即使计算机因为交换了网卡或是其他原因导致 MAC 地址改变,只要它的 IP 地址不变,就仍可以加入原先设定的 VLAN。
因此,与基于 MAC 地址的 VLAN 相比,能够更为简便地改变网络结构。IP 地址是 OSI 参照模型中第三层的信息,所以我们可以理解为基于子网的 VLAN 是一种在 OSI 的第三层设定访问链接的方法。
- (3)基于用户的 VLAN
基于用户的 VLAN,则是根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属于哪个 VLAN。这里的用户识别信息,一般是计算机操作系统登录的用户,比如可以是 Windows 域中使用的用户名。这些用户名信息,属于 OSI 第四层以上的信息。