计算机网络实验——VLAN划分
计算机网络实验——VLAN划分
VLAN(Virtual Local Area Network,虚拟局域网)是一种将局域网内的设备逻辑地而不是物理地划分成一个个网段的技术。通过VLAN配置,可以实现不同网段之间的隔离和通信,提高网络的安全性和管理效率。本文将通过一系列实验,详细介绍VLAN的配置方法,包括单交换机VLAN配置、跨交换机VLAN配置以及通过路由器实现不同VLAN通信的实验步骤。
一、实验一:交换机VLAN配置及测试
1.1 交换机VLAN配置(目标及要求)
1.1.1 目标
创建 VLAN,配置 VLAN,查看 VLAN 端口信息,不同 VLAN 下终端是否互通等;
1.1.2 要求
单交换机配置 VLAN;要求配置为 2-3 个 VLAN,每个 VLAN 下包含 2-3 个端口,可实现同 VLAN 正常通讯(利用 ping 指令检查),不同 VLAN 不能通讯。
跨交换机配置 VLAN;要求每个交换机配置 2-3 个 VLAN,每个 VLAN 下包含 1- 2 个端口,可实现同交换机、跨交换机同 VLAN 正常通讯(利用 ping 指令检查),同交换机、跨交换机不同 VLAN 不能通讯。
1.2 交换机VLAN配置(实践)
CISCO交换机的四种模式
第一种为用户模式,用‘’>’'表示;
第二种为特权模式,用‘’#‘’表示;
第三种为配置模式,用‘’(config)#‘’表示;
第四种为接口模式,用‘’(config-if)#’'表示。
交换机使用命令
en——进入配置
exit——退出配置
1.2.1 单交换机配置 VLAN
①、交互界面配置方式(不推荐)
通过交互界面添加VLAN
通过交互界面将接口加入到预设定的VLAN中
②、命令行配置方式(推荐)
我们使用基于端口的VLAN配置,即在设置用户终端IP时,可将各IP设置为“位于同一子网”。
网络拓扑如下
配置VLAN前可查看默认VLAN分配情况
用户模式下(即命令行开头为">"),使用
show vlan
命令查看当前VLAN配置情况,由图可见,当前所有接口均位于VLAN 1下。
config terminal
:进入配置模式
vlan 1
或
vlan 2
或
vlan 3
:新建VLAN并显示结果
可以看到,通过该命令,我们新建了VLAN 2和VLAN 3。
int fa0/1
:进入接口配置模式(注:切换到同级的另一模式时需先使用exit退出当前模式)
该命令表示进入接口fa0/1进行配置,其余接口类似。
switchport access vlan 1
:将当前接口设置为access类型并加入VLAN 1,其余接口类似配置
经过配置,我们可以重新显示VLAN信息,如上图所示。
ping测试
1.2.2 跨交换机配置 VLAN
由理论知识可知,同一VLAN内,不同交换机间用户终端实现通信的方式为:使用汇聚链接(VLAN Trunking:VLAN干线连接)
网络拓扑如下
配置access接口所属VLAN方式同单交换机实验。
配置交换机之间相连的trunk接口
switchport mode trunk
:设置为trunk接口
使用该命令时,强制定义接口类型为trunk,并且主动诱导与该接口连接的另一端接口成为trunk类型。
switchport trunk allowed vlan all
:允许所有VLAN通过
trunk接口的默认PVID为VLAN 1。
Trunk接口可以允许多种VLAN的帧携带VLAN Tag通过,但只允许携带唯一的某类VLAN Tag的数据帧(即与PVID相同的VLAN Tag)从该接口上发出时剥除VLAN Tag。
查看两个交换机的fa0/5,发现该接口已配置成trunk类型
这里给大家展示不同类型接口添加或剥除VLAN Tag的行为表格
ping测试
同交换机内相同/不同VLAN通信测试
不同交换机间相同/不同VLAN通信测试
二、实验二:不同VLAN通信路由
2.1 路由器+交换机
2.1.1 目标
通过路由器实现单交换机内不同VLAN通讯
静态路由实验,要求如下图所示
2.2 路由器+交换机(实践)
需要注意,在命令行界面,用户输入的命令及端口号都可以是简写形式的;
如退出命令
exit
可写成
e
、
ex
、
exi
;
如指定端口
FastEthernet0/0
可写成
fa0/0
,活学活用。
2.2.1 通过路由器实现单交换机内不同VLAN通讯
注意:互联网中的单交换机内不同VLAN通讯通常使用单臂路由配置,单臂路由(router-on-a-stick)具体是指在路由器的一个接口上通过配置子接口(或“逻辑接口”,并不真实存在)的方式,实现原来相互隔离的不同VLAN(虚拟局域网)之间的互联互通。单臂路由的具体配置方式可见图中简略显示或下文讲解。
由理论知识知,同交换机内不同VLAN通信需借助路由设备。
采用基于子网的VLAN(Subnet Based VLAN)划分:不能使用基于端口的VLAN划分原因请读者先尝试自行分析。
如果是基于端口的VLAN划分,那么意味着主机的IP地址可设置为同一子网。
同一子网下,考虑一台属于VLAN 1 的主机想向属于VLAN 2 的主机发送消息。
当其使用自身子网掩码和目的IP地址与运算后,发现目的IP地址和自己属于同一子网,因此该数据包将由交换机负责转发,不经过路由器。
我们知道,由于已划分两个VLAN,因此VLAN 1 的数据包是无法通过交换机到达VLAN 2 的。
因此,当使用基于端口的VLAN划分后,VLAN 1 和VLAN 2 即使在有路由器的情况下也无法通信。
①、我们使用路由器的两个独立接口,而非一个接口的两个子接口实现单交换机内不同VLAN通讯
网络拓扑如下
将交换机与路由器相连的接口分别配置为access模式,且两个接口分属VLAN 1和VLAN 2:为什么在此拓扑中不设置为trunk模式的原因请读者先自行分析。
思科模拟器中,如果将交换机与路由器相连的接口配置为trunk模式,则该trunk接口的PVID默认为1。
考虑当PC0想向PC2发送消息,由于不处于同一子网,因此PC0将数据包交付给交换机,由交换机转发给路由器。
交换机通过access接口收到来自PC0的数据包后,由于该数据包未包含VLAN tag,因此access将数据包打上VID=1的tag。
交换机查询MAC地址,准备通过与路由器相连的trunk接口将数据包转发给路由器。
该数据包的VLAN tag和该trunk接口的PVID相同,由于trunk接口发送帧时具有对应的剥除VLAN Tag运行规则,因此通过该trunk接口发送给路由器的帧是一个Untagged帧。
路由器接收到数据包后,将数据包转发至目的IP地址所属端口。
由于路由器转发的数据包是一个Untagged帧,且由于路由器和交换机的连接端口为trunk类型,因此该Untagged帧被打上trunk的default PVID,即VLAN 1。
可想而知,一个带有VLAN 1 tag的帧到达VLAN 2网络,交换机自然不会将该帧转发出去。
因此,如果将交换机与路由器相连的接口分别配置为trunk模式,则PC0想向PC2发送消息的过程将无法实现。
而如果我们将交换机与路由器相连的接口分别配置为access模式且两个接口分属VLAN 1和VLAN 2,那么到达路由器的帧均为Untagged帧。
进入另一个VLAN时,该Untagged帧均被与路由器相连的且被分配VLAN的access接口打上VID=对应VLAN的tag,因此该数据帧可顺利到达属于VLAN 2的PC2。
理论讲了许多,但大家要自己动手亲自尝试,将交换机的(fa0/5和fa0/6)端口同时分别设置为access和trunk类型,ping测试及模拟一番。
路由器接口仅需配置好接口的IP地址、子网掩码,同时注意配置好用户终端的网关。
ping测试:同交换机内不同VLAN通信测试
不配置路由的情况
配置路由的情况
②、我们使用路由器的一个接口的两个子接口,而非路由器的两个独立接口实现单交换机内不同VLAN通讯(单臂路由)
网络拓扑如下
首先进行路由器配置【注意命令的先后顺序,必须先封装后才能指定子端口IP地址】
interface fa0/0
:进入路由器的0/0端口
no shutdown
:启用路由器的0/0端口(路由器的0/0端口默认是关闭状态)
int fa0/0.1
,
int fa0/0.2
分别进入fa0/0的两个子端口
encapsulation dot1q 1
:设置子端口的封装协议及所属VLAN
encapsulation dot1q 1
的格式为
encapsulation dot1q 【VLAN-ID】
若想进一步了解
encapsulation dot1q 1
命令的缘由,可见“4.1 IEEE 802.1Q中继”章节。
ip address 192.168.x.x 255.255.255.0
可分别设置两个子接口的IP地址及子网掩码(在给路由器的子接口配置IP地址之前,一定要先封装dot1q协议)
若想看见自己配置好的子端口信息,可通过两种方式查看
方式一(推荐):在特权模式"#"下使用命令
show running
,使用回车键输出more信息,可查看到子端口配置信息。
方式二:在packet tracer中,将鼠标光标长时间停放在路由器图标上后,可显示配置的子端口信息。
接下来进行交换机与主机配置
交换机与用户主机的连接端口设置不再赘述,如有困惑,可从实验一中寻找解答,但重点需要注意,用户主机一定需要配置好网关及IP地址信息!
配置交换机内与路由器连接的端口属性。
switchport mode trunk
:设置接口类型为trunk类型
使用该命令时,强制定义接口类型为trunk,并且主动诱导与该接口连接的另一端接口成为trunk类型。
switchport trunk allowed vlan all
:允许所有VLAN通过
有的同学可能会在第二大步“交换机与主机配置”中产生疑惑:“你刚才在第一种“使用两个独立路由器接口配置”中不是说交换机和路由器连接的接口类型不能设置为trunk吗?怎么这里又变成可以了呢?”
答:建议出现同样问题的同学们先自己按照上文分析的方式分析一遍采用本拓扑的配置方式,假设PC4想向PC5发送信息,数据帧会经历一个怎样的过程。
需要注意的是,我们使用了路由器一个接口的两个子接口,同时对这两个子接口所属的VLAN进行了封装配置,又由于与这两个路由器子接口连接的交换机接口为trunk类型,这便可以诱导两个路由器子接口类型也为trunk类型,那么两个路由器子接口类型为trunk类型,同时其PVID分别设置为了VLAN 1和VLAN 2,即不再是默认的VLAN 1。而交换机内和路由器相连的trunk接口由于未指定其VLAN所属,因此其PVID默认为1。
(这里有些问题,待更新)交换机和路由器相连的接口设置成trunk后,如果其PVID为1,那是ping不通的,但是现在却能运行。
无法理清这个问题的根本原因在于对IEEE 802.1Q中继的了解不够,因此仍需完善4.1 IEEE 802.1Q 中继(待更新)。
ping测试
2.2.2 静态路由实验(交互界面配置路由)
网络拓扑如下
packet tracer中路由表表项含义
网络:指将发送的数据包所属的网络
掩码:指将发送的数据包所属的网络的掩码
下一跳:指该路由器发送端口所连的另一端路由器接口IP地址。
配置路由表显示如下
ping测试
2.2.3 命令行配置路由
三、疑惑及问题汇总
静态路由实验中,两个路由器互联的端口IP地址为什么要在同一子网呢?
如何配置trunk接口的PVID?
四、拓展知识点
4.1 IEEE 802.1Q 中继(待更新)
五、参考资料
CSDN:1_划分VLAN和做Trunk
Packet Tracer - VLAN的配置
Cisco Packet Tracer---VLAN配置详解
Cisco Packet Tracer模拟器之交换机的VLAN配置
51博客:第8章,Cisco Packet Tracer系列之--路由器单臂路由配置
Official Packet Tracer Tutorials