虚拟局域网VLAN相关知识

这个主要用在交换机上
一台交换机默认情况下连接一个广播域,因为默认情况下所有的接口都是属于同一个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 | vlan 2 // 创建vlan2 |
这样就创建好了。
还有一种不常用的方法
1 | vlan databas // 进入VLAN的数据库 |
这个有的版本可能不好使。
那么我们怎么查看我们创建的广播域呢?
1 | show vlan brief |
可以看见有一个默认的vlan以及vlan2和vlan3,接口都在默认vlan中
我们现在需要把f0/10扔到vlan2中,20到24接口扔到vlan3中
1、f0/10扔到vlan2中
我们先进到f0/10接口中
1 | en |
然后需要配置一下接口的模式
1 | switchport mode access // switchport是交换机 mode是模式 access代表接入接口 |
然后将接口加入到vlan2中
1 | switchport access vlan 2 |
这样就可以了,我们再show一下
这样就把f0/10接口加到vlan2中了。
2、f0/20到f0/24扔到vlan3中
我们这里肯定不能一个一个加,这样能累死
1 | int range f0/20-24 // 进入这个接口范围 |
之后就和上面一样了。
1 | switchport mode access |
这样就行了,我们再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 | 全局模式下创建vlan4 |
我们先看一下
有一个vlan4是吧
1 | 全局模式下 |
可以看见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 | conf t |
可以看见有三个模式,access(静态直通),dynamic(动态)和trunk(分布式)
我们设置成动态,然后看看动态后面还有没有
1 | switchport mode dynamic ? |
有动态自动和动态企望
我们设置为动态企望
1 | switchport mode dynamic desirable |
设置好后我们再show一下看看
可以看到,管理模式变成了动态企望,操作模式是trunk
所以我们可以再得出一个东西
交换机连接交换机:动态自动———-动态企望,操作模式协商结果是trunk
那么右面的呢的那台交换机3是啥样的
由于我们没设置,所以管理模式是动态自动,操作模式是协商出来的,所以交换机3的操作模式肯定是trunk
我们检查看一下
和我们想的一样.
我们再把交换机2的f0/2接口设置成access
1 | int f0/2 |
所以我们又得到了一个结果
交换机连接交换机:动态自动———-access,操作模式协商结果是access
其他的我就不演示了
(2) 简单粗暴的方法
如果你记不住上面那些东西,可以直接这样
这个链路你要是想设置成trunk,直接两端口设置成trunk;想要设置成access直接两个端口都设置成access,啥协商不协商的,直接不管,接口设置成一样的就行了。
3. 实验
现在一个网络
其中PC1和PC2属于VLAN 10;PC0和PC3属于VLAN 20
我们先分配一下VLAN
1 | 交换机0: |
好了之后,同理去设置交换机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 | 交换机0 |
交换机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的接口转发