这个主要用在交换机上

一台交换机默认情况下连接一个广播域,因为默认情况下所有的接口都是属于同一个vlan的,默认vlan1,所以是在同一个广播域中。

结合交换机的工作原理,数据来了之后,如果交换机上面的所有接口全部连着主机或者其他设备,那么交换机就会从所有的接口广播出去,造成广播域有点大,导致广播流量过多,这样会产生网络拥塞。

为了解决上述情况,就需要在交换机上划分广播域,使得一个交换机上存在多个广播域,这就是虚拟局域网VLAN

一. 目的

1. 划分广播域

虚拟局域网VLAN的目的是为了划分广播域,不同广播域中的主机,是不能够进行通信的,如果想要通信,这时候需要借助路由

简单画个图看一下

这是一个交换机(黑色框),有8个接口(红色的),这些接口都属于一个广播域,默认VLAN1,并且都有设备连接。现在从左面设备传来了一个数据,通过交换机广播给了其余的7个接口所对应的设备。

我们设置虚拟VLAN后是这样的

这样就变成了两个广播域,从左面设备传来的数据只会在本广播域进行广播,控制了广播

2. 增强网络的安全性

还是刚才的那个网络

现在主机A沦陷了,于是向交换机发了一个ARP广播,那么这个广播只会在本广播域内进行破坏,不会对另一个广播域内的设备产生影响。控制破坏范围,减小损失。

3. 简化了网络的管理

由于我们划分了不同的广播域,网络的分区就特别的明显,使网络有条理。

比如说这个广播域给财务部用,这个广播域给销售部用,两个部门在两个广播域中,不会造成流量干扰。通信的话加一个路由就行

二. VLAN种类

VLAN分静态VLAN和动态VLAN

1. 静态VLAN

基于端口划分的静态路由,需要管理员去配置,创建VLAN并将接口加入到VLAN

就像刚才举例的那样,把这些端口分到这个广播域,其他端口分配到其他的广播域。

2. 动态VLAN

基于MAC地址自动将同一类型的MAC地址加入到同一VLAN

这种的比较少。我们举个例子

公司采购电脑通常是同一个厂商的电脑,比如说统一采购苹果的,这个是每个主机MAC地址的厂商编号是一样的。这个时候要去基于MAC地址进行配置动态VLAN的话就比较麻烦,还得去分电脑,很不方便

所以动态VLAN在实际使用场景中用的不是很多,不详细讲。

三. 静态VLAN

1. VLAN的范围

我们这个VLAN的范围分思科设备和华为设备,这两个会有不同,我们讲的是思科设备。

思科设备总计4096个VLAN:0~4095

0和4095是保留的,不用

默认VLAN是1

以太网VLAN是2~1001共1000个VLAN

扩展的以太网VLAN 1025~4094

2. 配置静态VLAN

(1) 思路

创建VLAN

将接口加入VLAN,这里需要指定接口的模式

(2) 实验

我们拿出一个交换机

这个交换机有24个快速以太网接口,两个千兆接口

这些接口默认在VLAN1中

我们现在想要将 f0/10接口加入到VLAN2,然后还要将20到24号接口加入到VLAN3

我们先要创建VLAN2和VLAN3,在全局模式下直接VLAN 2就行

1
2
3
4
5
vlan 2  // 创建vlan2
exit

vlan 3 // 创建vlan3
exit

这样就创建好了。

还有一种不常用的方法

1
2
3
vlan databas  // 进入VLAN的数据库

vlan 10 // 创建VLAN 10

这个有的版本可能不好使。

那么我们怎么查看我们创建的广播域呢?

1
show vlan brief

可以看见有一个默认的vlan以及vlan2和vlan3,接口都在默认vlan中

我们现在需要把f0/10扔到vlan2中,20到24接口扔到vlan3中

1、f0/10扔到vlan2中

我们先进到f0/10接口中

1
2
3
en
conf t
int f0/10

然后需要配置一下接口的模式

1
2
3
switchport mode access  // switchport是交换机 mode是模式 access代表接入接口

这种access模式的接口一般用于连接客户机

然后将接口加入到vlan2中

1
switchport access vlan 2

这样就可以了,我们再show一下

这样就把f0/10接口加到vlan2中了。

2、f0/20到f0/24扔到vlan3中

我们这里肯定不能一个一个加,这样能累死

1
int range f0/20-24   // 进入这个接口范围 

之后就和上面一样了。

1
2
switchport mode access
switchport access vlan 3

这样就行了,我们再show一下

这样就可以了

3、通信演示

现在还是那个交换机,加两个设备

PC0接在交换机的f0/2接口上,属于默认VLAN;PC1接在交换机的f0/20接口上,属于VLAN3。

我们给这两个设备设置IP

我们拿PC0 ping PC1,应该是ping不通的

我们可以看到,PC0去ping PC1的时候,在0秒的时候数据在PC0准备发送,在0.015秒的时候传到了PC1,然后在0.016的时候传到了PC1。

哎,我们看一下这个PC1

它告诉我们,这个设备没有接收到来自第二层的数据帧,因为广播地址不匹配。

在看看回应

可以看到ICMP协议,也就是ping,第二次出错了。

(3) 其他操作

我们上面讲了怎么创建,添加,查看VLAN,这里还有一些东西

比如查看特定的VLAN

我们查看vlan2

1
show vlan id 2

先创建一个vlan4,再把它删了

1
2
3
全局模式下创建vlan4

vlan 4

我们先看一下

有一个vlan4是吧

1
2
全局模式下
no vlan 4 // 删除vlan4

可以看见vlan4没了。

四. VLAN trunk

按照上述配置VLAN后有一个问题

这样的一个网络

![[临时图片/17.png]]

上面是VLAN 10,下面是VLAN 20

VLAN 10 有:PC0,PC1,交换机0的f0/1接口,交换机1的F0/2接口

VLAN 20 有:PC2,PC3,交换机0的f0/3接口,交换机1的F0/3接口

这两个交换机由一条线连着,那么有个问题

交换机0的f0/2接口和交换机1的f0/1接口是属于哪个VLAN

VLAN trunk可以实现同一个VLAN跨交换机进行通信,所以交换机中间的链路我们要配置成VLAN 10可以过去,VLAN 20也可以过去

1. 目的

实现相同VLAN跨交换机进行通信

就是上图中间那条线可以承载任何VLAN,这条链路叫做trunk链路

实现trunk链路需要去设置链路两段接口的模式

2. 交换机接口模式

(1) 试结果

我们拿出一个交换机

我们看一下它f0/1接口的信息

1
show int f0/1 switchport

得到一堆信息,这些信息我在这篇文章讲过

他里头有一个这个东西

1
Administrative Mode: dynamic auto  // 管理模式:动态自动

这就是交换机的接口模式,交换机的所有接口默认是动态自动

这里还有一个这个

1
Operational Mode: down  // 操作模式:down

这个显示down,有因为我们现在还没有接主机,我们接一个试试

连上就变成这样

1
Operational Mode: static access  // 操作模式:静态访问

说明现在是静态接入链路。

刚才是接入一个主机,那我们再接上一个交换机

交换机的默认管理模式是auto,连接设备的操作模式默认是静态访问

f0/2是动态自动,f0/1是动态自动,那么他们会协商出啥,理论上是动态自动

我们看一下交换机2的f0/2接口

可以发现,这个接着交换机的接口的模式和接着主机的接口模式一样,还是auto和access

我们可以得出一个结论

交换机连接主机:协商出的结果access

交换机连接交换机:动态自动———-动态自动,操作模式协商结果是access

那么有没有可能协商出别的东西

我们把交换机2的f0/2接口模式变成其他的

1
2
conf t
switchport mode ?

可以看见有三个模式,access(静态直通),dynamic(动态)和trunk(分布式)

我们设置成动态,然后看看动态后面还有没有

1
switchport mode dynamic ?

有动态自动和动态企望

我们设置为动态企望

1
switchport mode dynamic desirable

设置好后我们再show一下看看

可以看到,管理模式变成了动态企望,操作模式是trunk

所以我们可以再得出一个东西

交换机连接交换机:动态自动———-动态企望,操作模式协商结果是trunk

那么右面的呢的那台交换机3是啥样的

由于我们没设置,所以管理模式是动态自动,操作模式是协商出来的,所以交换机3的操作模式肯定是trunk

我们检查看一下

和我们想的一样.

我们再把交换机2的f0/2接口设置成access

1
2
3
4
int f0/2 
sw mo acc // 可以缩写
end
show int f0/2 sw //可以缩写

所以我们又得到了一个结果

交换机连接交换机:动态自动———-access,操作模式协商结果是access

其他的我就不演示了

(2) 简单粗暴的方法

如果你记不住上面那些东西,可以直接这样

这个链路你要是想设置成trunk,直接两端口设置成trunk;想要设置成access直接两个端口都设置成access,啥协商不协商的,直接不管,接口设置成一样的就行了。

3. 实验

现在一个网络

其中PC1和PC2属于VLAN 10;PC0和PC3属于VLAN 20

我们先分配一下VLAN

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
交换机0:
en
conf t
vlan 10
exit
vlan 20
end
show vlan brief // 这里看一下创没创建好
conf t
int f0/1
switchport access vlan 20 // 由于它默认就是access,所以我们可以不用格外的去设置接口模式
(exit) // 可加可不加
int f0/3 // 这里不用退出,可以直接进入f0/3接口,但是这样容易看错,不建议
switchport access vlan 10
end
show vlan brief

好了之后,同理去设置交换机1,下图是交换机1的

检查一下,现在VLAN 10有PC2和PC1;VLAN 20有PC0和PC3,分配成功

然后我们再针对那两个20号接口做一下设置

我们想要把中间两条链路变成trunk链路。

这里简单科普个东西:

我们中间的这个链路是可以让所有设备封装的数据帧通过。但是我们学交换机的时候,二层有两种数据帧封装方式,一个是E2,一个是802.3,而802.3是所有设备都可以用的,所以我们要让中间那条链路封装成802.3。

意思就是两个交换机不是同一个交换机,可能会发生这个交换机封装成E2,另一个却要用802.3的,所以要同一一下,如果是同一个交换机就不用管

我们再看一下接口信息。

1
show int f0/20 sw

我们刚才说的东西就是这个

1
Administrative Trunking Encapsulation: dot1q   // 管理中继封装:dot1q

由于我们现在是两个相同的交换机,所以不用管这个。

1
2
3
交换机0
int f0/20
switchport mode trunk

交换机0是trunk模式,交换机1是动态自动模式,根据那个表,协商出来的结果是trunk,所以交换机1根本不用管

然后我们分配一下IP,VLAN 10分配10网段,VLAN 20分配20网段

我们去ping一下

用PC0去ping PC3

可以发现能ping通

4. trunk封装

我们上面讲了一个东西,就是不同交换机的话需要同一配置成802.3的帧,所以这里又有标准

(1) 思科(ISL)

ISL是思科私有的帧格式

他就是在前面加了一个26字节的ISL头,在后面加了一个4字节的尾

(2) 标准帧(802.3)

比如我们上面的那个dot1q,就是802.1q,主要是不同厂商交换机使用的共有标准

本来从左面设备来的是正常的以太网帧,到达第一个交换机后,他会发现这个是从VLAN 20来的,它就会会加一个4字节的802.1q的标记来标记他是VLAN 20的,然后通过中继链路传过去后,下一台交换机就会知道这是VLAN 20的数据,把标签拆掉,从VLAN 20的接口转发