实验 23:VLAN 间通信的实现方法:使用三层交换机
# 230.实验 23:VLAN 间通信的实现方法:使用三层交换机
本仿真实验的目的在于验证 VLAN 间的通信可以使用三层交换机来实现。我已经在仿真软件中构建好了我们理论课中所使用的网络拓扑,并在各主机的旁边都标注好了所需配置的 IP 地址和地址掩码。
博主注:在视频里使用到了三层交换机,但不知道是哪一种型号的,看到类似的有 356024PS 和 365024PS。同时遇到了进入命令行失败的情况,一进入就提示“设备必须开机”,百度也搜不到类似的情况,后来重新拖一个就好了。
需要说明的是 CIDR 地址块斜线后面的数字 24,表明地址掩码为 255.255.255.0,为了简单起见,图中并没有标注出地址掩码的点分 10 进制形式。
另外在三层交换机的上面,也标注出了该交换机内部所要创建的 VLAN 接口和相应的 IP 地址以及地址掩码。我们的应用需求是将主机 ABC 划分到 VLAN10,将主机 DEF 划分到 VLAN20,并且 VLAN10 中的主机可以和 VLAN20 中的主机相互通信,也就是我们所谓的实现 VLAN 间的通信,很显然这样的应用需求仅靠数据链路层提供的服务,也就是普通的二层交换机所能提供的服务是无法实现的。我们需要使用网络层的互联设备,也就是路由器来实现。
在前两次课中,我们分别验证了使用多臂路由和单臂路由都可以实现 VLAN 间的通信,但是使用多比路由随着 VLAN 数量的增多,所需交换机接口数量和路由器局域网接口数量远随之增加,布线数量也随之增加,因此并不受欢迎。单臂路由在这一点上比多臂路由具有优势,不管 VLAN 数量增大到多少,都只需要交换机上的一个接口与路由器上的一个局域网接口连接即可。单臂路由和多臂路由,都是在使用路由器进行 VLAN 间的路由,随着 VLAN 间通信流量的不断增加,很可能导致路由器成为整个网络的瓶颈。
为了解决上述问题,三层交换机应运而生,之所以称为三层交换机,是因为它比普通的二层交换机多出了路由功能,而路由功能属于网络体系结构中的第三层,也就是网络层。因此带有路由功能的交换机常称为三层交换机,在一台三层交换机内部分别具有交换模块和路由模块,他们都使用专用集成芯片技术处理交换和路由,因此与传统的路由器相比,可以实现高速路由。
另外通用模块与交换模块采用内部汇聚连接,可以具有相当大的带宽。
为了实现本例所示的 VLAN 间通信,我们需要在三层交换机内部创建所需的 VLAN 接口,一个是 VLAN10,另一个是 VLAN20,并给他们配置相应的 IP 地址和地址掩码。选择型号后开机。
可以将 VLAN10 接口看作是 VLAN10 中各主机的默认网关,VLAN20 接口看作是 VLAN20 中各主机的默认网关。需要注意的是 VLAN 接口是虚拟接口,而不是物理接口。我们还需要将 VLAN10 中各主机所连接的三层交换机的接口划归到 VLAN10,将 VLAN20 中各主机所连接的三层交换机的接口划归到 VLAN20,接口类型采用默认的 ACCESS 类型。
另外我们还应该给各 VLAN 中的各主机配置相应的 IP 地址和地址掩码。
需要注意的是 VLAN10 与 VLAN20 是两个不同的网络,因此他们的网络地址不相同,VLAN10 的网络地址为 192.168.1.0/24,VLAN20 的网络地址为 192.168.2.0/24。相应的 VLAN10 中各主机的 IP 地址和三层交换机内部所创建的 VLAN10 接口的 IP 地址的网络号部分应该相同,也就是点分 10 进制的前三个 10 进制数为 192.168.1。而第 4 个 10 进制数应该互不相同,并且不能为 0 和 255,因为为 0 则是该网络的网络地址为 255 则是该网络的广播地址。
同理 VLAN20 中各主机的 IP 地址和三层交换机内部所创建的 VLAN20 接口的 IP 地址的网络号部分应该相同,也就是点分十进制的前三个 10 进制数为 192.168.2,而第 4 个 10 进制数应该互不相同,并且不能为 0 和 255。
我们还需要给各主机指定默认网关,对于 VLAN10 中的主机 ABC,他们的默认网关应该指定为三层交换机内部所创建的 VLAN10 接口的 IP 地址。对于 VLAN20 中的主机 DEF 他们的默认网关应该指定为三层交换机内部所创建的 VLAN20 接口的 IP 地址,需要特别注意的是不要忘记使能三层交换机的路由功能。
下面我们就要开始进行配置工作第一步给各主机配置 IP 地址、地址掩码以及指定默认网关。
我们先给主机 A 配置,点击主机 A 在弹出窗口中选择桌面选项卡,然后选择 IP 配置。请注意,这里请确保选择的是静态,也就是我们要手工配置 IP 地址,而不是使用 DHCP 让主机自动获取 IP 地址,输入主机 A 的 IP 地址,192.168.1.1,然后按下回车键,仿真软件根据我们所输入 IP 地址的类别,自动帮我们填入了相应的默认子网掩码,255255.255.0,这也是我们需要的,因此不用修改。输入主机 A 的默认网关的 IP 地址,也就是三层交换机内部所创建的 VLAN,10 接口的 IP 地址,192.168.1.254,然后按下回车键,关闭 IP 配置窗口,这样我们对主机 A 的配置工作就要完成了,其他主机的配置工作请您自行完成,这里就要不再演示了。
第二步,给三层交换机创建 VLAN10 接口和 VLAN20 接口,并为他们配置相应的 IP 地址和地址掩码。点击三层交换机在弹出窗口中选择命令行界面选项卡,这样我们就要进入了该交换机的命令行界面,按键进入命令行提示符
- 输入 en 进入特权模式,输入 CONF T 进入全局配置模式
- 输入 INTERFACE VLAN 10 创建 VLAN10 接口
- 输入 IP ADDRESS 192.168.1.254 255.255.255.0,这是给 VLAN10 接口设置 IP 地址和地址掩码
- 输入 NO SHUT 开启 VLAN10 接口
- 输入 INTERFACE VLAN 20 创建 VLAN20 接口
- 输入 IP ADDRESS 192.168.2.254 255.255.255.0,这是给 VLAN20 接口设置 IP 地址和地址掩码
- 输入 NAU SHUTDOWN 开启 VLAN20 接口
- 输入 EXIT 退出到全局配置模式
Switch>en
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#interface vlan 10
Switch(config-if)#ip addr 192.168.1.254 255.255.255.0
Switch(config-if)#no shut
Switch(config-if)#interface vlan 20
Switch(config-if)#ip addr 192.168.2.254 255.255.255.0
Switch(config-if)#no shut
Switch(config-if)#exit
2
3
4
5
6
7
8
9
10
第三步,给三层交换机添加 VLAN10 和 VLAN20,我们接着之前的命令行来做:
- 输入 VLAN 10 这样我们就要创建了 VLANID,为 10 的 VLAN
- 输入 NAME VLAN10,将新创建的 10 号 VLAN 命名为 VLAN10
- 输入 VLAN 20 这样我们就要创建了 VLANID 为 20 的 VLAN
- 输入 NAME VLAN20,将新创建的 20 号 VLAN 命名为 VLAN20,输入 END,退回到特权模式
- 输入 SHOW VLAN BRIEF 可以查看到我们新创建的 VLAN10 和 VLAN20
Switch(config)#vlan 10
%LINK-5-CHANGED: Interface Vlan10, changed state to up
Switch(config-vlan)#name VLAN10
Switch(config-vlan)#vlan 20
%LINK-5-CHANGED: Interface Vlan20, changed state to up
Switch(config-vlan)#name VLAN20
Switch(config-vlan)#end
Switch#
%SYS-5-CONFIG_I: Configured from console by console
Switch#show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4
Fa0/5, Fa0/6, Fa0/7, Fa0/8
Fa0/9, Fa0/10, Fa0/11, Fa0/12
Fa0/13, Fa0/14, Fa0/15, Fa0/16
Fa0/17, Fa0/18, Fa0/19, Fa0/20
Fa0/21, Fa0/22, Fa0/23, Fa0/24
Gig0/1, Gig0/2
10 VLAN10 active
20 VLAN20 active
1002 fddi-default active
1003 token-ring-default active
1004 fddinet-default active
1005 trnet-default active
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
第 4 步,将三层交换机上的各接口划归到相应的 VLAN,我们接着之前的命令行来做,输入 CON T 进入全局配置模式,输入 INTERFACE RENT F0/1-3,也就是我们要对 F0-1、F0-2、F0-3 这些接口进行批量设置:
- 输入 SWITCH POT MODE ACESS 设置接口类型为 ACCESS 类型
- 输入 SWITCH ACCESS vlan 10,将接口划归到 VLAN10
- 输入 INTERFACE RANGE F0/4-6 也就是我们要对 F0-4、F0-5、F0-6 这些接口进行批量设置
- 输入 SWITCHPORT MODE EXCESS 设置接口类型为 ACCESS 类型
- 输入 SWITCHPORTE ACCESS ,将接口划归到 VLAN20
- 输入 END,退回到特权模式
- 输入 SHOW VLAN BRIEF。可以查看到我们已经将交换机上的各接口相应的划归到了 VLAN10 和 VLAN20
Switch#
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#int range f0/1-3
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 10
%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan10, changed state to up
Switch(config-if-range)#int range f0/4-6
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 20
%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan20, changed state to up
Switch(config-if-range)#end
Switch#
%SYS-5-CONFIG_I: Configured from console by console
Switch#show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa0/7, Fa0/8, Fa0/9, Fa0/10
Fa0/11, Fa0/12, Fa0/13, Fa0/14
Fa0/15, Fa0/16, Fa0/17, Fa0/18
Fa0/19, Fa0/20, Fa0/21, Fa0/22
Fa0/23, Fa0/24, Gig0/1, Gig0/2
10 VLAN10 active Fa0/1, Fa0/2, Fa0/3
20 VLAN20 active Fa0/4, Fa0/5, Fa0/6
1002 fddi-default active
1003 token-ring-default active
1004 fddinet-default active
1005 trnet-default active
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
第 5 步,使能三层交换机的路由功能,我们接着之前的命令行来做,输入 CONF T,进入全局配置模式。
输入 IP ROUTINE 使能路由功能,到这里所有的配置工作就已经完成了。
接下来我们就来测试一下 VLAN10 中的主机是否可以与 VLAN20 中的主机相互通信:
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#ip routing
2
3
请注意,首先必须确保三层交换机各接口的指示灯是绿色的,如果有橙色的,请你反复切换软件右下角的实时与仿真模式,直到指示灯全部变为绿色,您还需要确保我们在实时模式下进行测试,
点击主机 A 然后点击桌面选项卡,来 ping 一下主机 E 的 IP 地址,ping 192.168.2.2,可以看到第一次的请求超时了,后面三次都收到了来自 192.168.2.2,也就是主机 E 的响应,这表明 VLAN 间现在可以通信了:
C:\>ping 192.168.2.2
Pinging 192.168.2.2 with 32 bytes of data:
Request timed out.
Reply from 192.168.2.2: bytes=32 time<1ms TTL=127
Reply from 192.168.2.2: bytes=32 time<1ms TTL=127
Reply from 192.168.2.2: bytes=32 time<1ms TTL=127
Ping statistics for 192.168.2.2:
Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
2
3
4
5
6
7
8
9
10
11
12
13
我们切换到仿真模式,来看看数据包在 VLAN 间的传递过程。为了简单起见,监听 ICMP 协议即可。现在我们让主机 A 给主机 E 发送一个 ICMP 询问报文,如果主机 E 收到该询问报文,会给主机 A 发回相应的响应报文。
点击右侧工具栏中的添加简单的 PDU 按钮,然后指定该 PDU 的发送方为主机 A 接收方为主机 E。
可以看到在主机 A 中出现了一个数据包,严格的说应该是一个以太网帧,其中封装有 IP 数据报,在 IP 数据报装封装有 ICMPP 询问报文,点击它在弹出窗口中可以查看网络体系结构各层的相应处理,例如这是网络层的处理,这是数据链路层的处理,点击出站 P DU 详情,还可以查看该数据包的封包细节:
关闭该弹出窗口,点击右侧的捕获前进按钮,进行单步跟踪。可以看到数据包传递到了三层交换机,点击它在弹出窗口中可以查看三层交换机对该数据包的处理,这是接收处理,这是转发处理。我们在理论课中已经详细分析过三层交换机对数据包的处理过程,此处就不再赘述了:
关闭该弹出窗口,再次点击捕获前进按钮。可以看到数据包从三层交换机转发出来并到达主机 E 点击已经到达主机 E 的该数据包,在弹出窗口中可以查看主机 E 对该数据包的处理,这是接收处理。这是主机 E 针对该数据包准备给主机 A 发回响应数据包:
关闭该弹出窗口,点击捕获前进按钮,可以看到响应数据包首先发送到了三层交换机,再次点击捕获前期按钮,可以看到三层交换机转发该数据包给主机 A。
我们再来看看主机 A 发送广播的情况,我们先把之前的实验场景删除,现在我们让主机 A 发送一个广播包,点击右侧工具栏中的添加复杂的 PDU 按钮,点击主机 A 在弹出窗口中填写 IP 地址为广播地址 255.255.255.255,源地址为主机 A 的 IP 地址 192.168.1.1,填写一个序号,我们填写 1 即可,这里的单次仿真时间填一即可,点击创建 PDU 按钮,点击捕获前进按钮,可以看到广播包从主机 A 发送给了三层交换机:
再次点击前进,可以看到广播包从三层交换机转发给了主机 A 所在 VLAN10 中的各主机,而不会转发给 VLAN20 中的各主机,这正是我们需要的应用需求,也就是划分 VLAN 来隔离广播域,但还能实现 VLAN 间的单播通信,这样我们就要验证了使用三层交换机可以实现 VLAN 件的通信:
至此我们通过三次课分别介绍了实现 VLAN 间通信的三种方法,它们是多臂路由,单臂路由,使用三层交换机,其中多臂路由没有实用性,单臂路由具有实用性,但随着 VLAN 间通信流量的增大,路由器可能会成为网络的瓶颈,而使用三层交换机可以比使用单臂路由具有更好的网络性能。
最后请您在本实验的基础上进行一下扩充,也就是再添加一个 VLAN,并实现三个 VLAN 之间的通信。