首页 > 其他分享 >《计算机网络微课堂》实验22 VLAN间通信的实现方法:单臂路由

《计算机网络微课堂》实验22 VLAN间通信的实现方法:单臂路由

时间:2024-06-04 10:46:58浏览次数:19  
标签:22 主机 Fa0 VLAN 接口 间通信 IP 路由器

下面‍‍我们来进行一个仿真实验,本仿真实验的目的在于验证 VLAN 间的通信,‍‍可以使用单臂路由来实现。

我已经在仿真软件中构建好了我们理论课中所使用的网络拓扑,‍‍并且在各主机和路由器的各接口旁边都标注好了所需配置的 IP 地址和地址掩码。

需要说明的是 CIDR 地址块/后面的数字 24,‍‍表明地址掩码为 255.255.255.0。‍‍为了简单起见,并没有标注出地址掩码的点分十进制形式,我们的应用需求是‍‍将主机 ABC 划分到 VLAN10,将主机 DEF 划分到 VLAN20,‍‍并且 VLAN10 中的主机可以和 VLAN20 中的主机相互通信,‍‍也就是我们所谓的实现 VLAN 间的通信,很显然‍‍这样的应用需求仅靠数据链路层提供的服务是无法实现的,我们需要使用网络层的互联设备,‍‍也就是路由器来实现。与使用多臂路由,实现 VLAN 间通信不同,使用单臂路由,‍‍不管有多少个 VLAN 互联,我们只需将交换机上的一个接口设置为 Trunk 类型,‍‍并将其连接到路由器的一个局域网接口即可。‍‍这样的物理连接比使用多臂路由简单的多。

‍‍我们需要在路由器的局域网接口下创建两个逻辑子接口,‍‍分别作为 VLAN10 和 VLAN20 的默认网关,‍‍这相当于我们使用路由器的一个局域网接口下的两个子接口,将 VLAN10 和 VLAN20‍‍这两个不同的网络进行了互联。另外‍‍应该将所创建的这两个逻辑子接口配置为可以识别和封装 802.1q 帧,‍‍802.1q 帧有时也简称为 dot1q。注意要用 2911 的路由器,用普通路由器会报错:Invalid interface type and number

我们还需要将 VLAN10 中,‍‍各主机所连接的交换机接口划分到 VLAN10,‍‍将 VLAN20 中各主机所连接的交换机接口划分到 VLAN20,‍‍接口类型采用默认的 access 类型
另外,‍‍我们还应给各 VLAN 中的各主机配置相应的 IP 地址和地址‍掩码。需要注意的是‍‍ vlan10 与 vlan20 是两个不同的网络,因此它们的网络地址不相同,‍‍vlan10 的网络地址为 192.168.1.0/24,‍‍vlan20 的网络地址为 192.168.2.0/24。
‍‍相应的‍‍ vlan10 中各主机的 IP 地址和路由器逻辑子接口的 IP 地址的网络号部分应该相同,‍‍也就是点分 10 进制的前三个 10 进制数为 192.168.1。‍‍而第 4 个 10 进制数应该互不相同,并且不能为 0 和 255。因为如果为 0,‍‍则是该网络的网络地址,如果为 255 则是该网络的广播地址。‍‍

同理,vlan20 中各主机的 IP 地址和路由器逻辑子接口的 IP 地址的网络号部分应该相同,‍‍也就是点分 10 进制的前三个 10 进制数为 192.168.2,‍‍而第 4 个 10 进制数应该互不相同,并且不能为 0 和 255。‍‍

我们还需要给各主机指定默认网关,该路由器既是 vlan10 的默认网关,‍‍也是 VLAN20 的默认网关。对于 VLAN10 中的主机 ABC,‍‍他们的默认网关应该指定为该路由器的逻辑子接口 0/0.1 的 IP 地址。‍‍对于 vlan20 中的主机 def 他们的默认网关‍‍应该指定为该路由器的逻辑子接口 0/0.2 的 IP 地址

​​

下面‍‍我们就要开始进行配置工作。‍‍第一步给各主机配置 IP 地址、地址掩码以及指定要默认网关。‍‍我们先给主机 A 配置,点击主机 A。输入主机 A 的 IP 地址,192.168.1.1,255.255.255.0。‍‍输入主机 A 的默认网关的 IP 地址,‍‍也就是路由器的逻辑子接口 0/0.1 的 IP 地址,192.168.1.254,‍‍然后按下回车键,关闭 IP 配置窗口,这样我们对主机 A 的配置工作就完成了,‍‍其他主机的配置工作请您自行完成。


第二步,‍‍给路由器的某个局域网接口创建两个逻辑子接口,并进行相应配置,点击路由器,‍‍在弹出窗口中选择命令行界面选项卡,这样我们就进入了该路由器的命令行界面,进入命令行提示符,输入 enable‍‍进入特权模式,输入 config t 进入全局配置模式。

输入 interface g0/0.1 这样就创建了 g0/0.1 逻辑子接口

输入 encapsulation‍‍ dot1q 10 这是要设置该逻辑子接口,可以接收 VLANID 为 10 的 802.1q 帧,‍‍并且可将 IP 数据报封装成 VLANID 为 10 的 802.1q 帧进行转发,‍‍

输入 IP address ‍‍192.168.1.254 255.255.255.0,‍‍这是设置该逻辑子接口的 IP 地址和地址掩码

Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#interface g0/0.1
Router(config-subif)#encapsulation dot1q 10
Router(config-subif)#ip addr 192.168.1.254 255.255.255.0

输入 interface g0‍‍/0.2 这样就创建了 g0/0.2 逻辑子接口。‍‍

输入输入 encapsulation‍‍ dot1q 20 ‍这是设置该逻辑子接口,可以接收 VLANID 为 20 的 802.1q 帧,‍‍并且可将 IP 数据报封装成 VLANID 为 20 的 802.1q 帧进行转发。

输入 IP address ‍‍192.168.2.254 255.255.255.0。‍‍这是设置该逻辑子接口的 IP 地址和地址掩码,

Router(config-subif)#interface g0/0.2
Router(config-subif)#encapsulation dot1q 20
Router(config-subif)#ip addr 192.168.2.254 255.255.255.0

‍‍输入 interface g0/0,进入 g0/0 接口配置模式,‍‍输入 no shutdown,开启 g0/0 接口,‍‍这相当于开启了它下面的两个逻辑子接口。

Router(config-subif)#interface g0/0
Router(config-if)#no shut
%LINK-5-CHANGED: Interface GigabitEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to up

%LINK-5-CHANGED: Interface GigabitEthernet0/0.1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0.1, changed state to up

%LINK-5-CHANGED: Interface GigabitEthernet0/0.2, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0.2, changed state to up

第三步给交换机添加 VLAN,点击交换机,‍‍在弹出窗口中选择命令行界面选项卡,‍‍进入命令行提示符,‍‍输入 en 进入特权模式,输入 conf t 进入全局配置模式,输入 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>
Switch>en
Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#vlan 10
Switch(config-vlan)#name VLAN10


Switch(config-vlan)#vlan 20
Switch(config-vlan)#name VLAN20


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  


第 4 步‍‍将交换机上的各接口划归到相应的 VLAN,‍‍我们接着之前的命令行来做。

输入 conf t, 进入全局配置模式

输入 interface range f0/1-3, 也就是我们要对 f0/1、f0/2、f0/3 这些接口进行批量设置

‍‍输入 switchport mode acess,‍‍设置接口类型为 excess 类型

输入 switchport ‍‍access VLAN 10,‍‍将接口划归到 VLAN10

输入 interface range ‍‍f0/4-6,‍‍也就是我们要对 f0/4、f0/5、f0/6 这些接口进行批量设置

‍‍输入 switchport mode access, 设置接口类型为 acess 类型

输入 switchport ‍‍access VLAN 20,‍‍将接口划归到 VLAN20

输入 end 退回到特权模式

‍‍输入 show VLAN brief

‍‍可以查看到我们已经将交换机上的各接口相应的划归到了 VLAN10 和 VLAN20。

Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#interface range f0/1-3
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 10

Switch(config)#interface range f0/4-6
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 20


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  


‍‍第 5 步,将交换机上连接路由器的接口设置为 Trunk 类型,我们接着之前的命令行来做。

‍‍输入 conf t,进入全局配置模式。

‍‍输入 interface f0/7 ‍‍进入 f/7 接口配置模式。

输入 switchport mode ‍‍Trunk,设置该接口的类型为 Trunk。‍‍到这里所有的配置工作就已经完成了。

Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#interface f0/7
Switch(config-if)#switchport mode trunk

Switch(config-if)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/7, changed state to down

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/7, changed state to up


‍‍接下来‍‍我们就来测试一下 VLAN10 中的主机是否可以与 VLAN20 中的主机相互通信。

请注意,‍‍首先必须确保交换机各接口与路由器各接口的指示灯是绿色的,如果有棕色的,‍‍请您反复切换仿真软件右下角的实时与仿真模式,直到指示灯全部变绿。‍‍如果有红色指示灯,则表明您之前对路由器接口配置时‍‍ no shutdown 命令输入不正确或忘记输入该命令了,‍‍导致路由器接口没有开启,请您仔细检查。‍‍您还需要确保我们现在是在实时模式下进行测试,

点击主机 A 然后点击桌面选项卡,‍‍再点击命令提示符,就可以进入主机 A 的命令行了,‍‍使用 ping 命令来测试 VLAN10 中的主机 A 是否可以与 VLAN20 中的主机 E 相互通信,‍‍也就是用主机 A 来 ping 一下主机 E 的 IP 地址,看是否能 ping 通.

可以看到第一次的请求超时了,‍‍后面三次都收到了来自 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=4ms 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 = 4ms, Average = 1ms

下面我们切换到仿真模式,‍‍来看看数据包在 VLAN 间是如何传递的,或者说是如何路由的。‍‍监听这 ICMP 协议即可。‍‍现在‍‍我们让主机 A 给主机 E 发送一个 ICMP 询问报文,‍‍如果主机 E 收到该询问报文,会给主机 A 发回相应的响应报文,‍‍点击右侧工具栏中的添加简单的 PDU 按钮,‍‍然后指定该 PDU 的发送方为主机 A,接收方为主机 E‍‍。

可以看到在主机 A 中出现了一个数据包,严格的说这应该是一个以太网帧,‍‍其中封装有 IP 数据报,在 IP 数据报中封装有 ICMP 询问报文,点击它‍‍在弹出窗口中可以查看网络体系结构各层的相应处理,例如这是网络层的处理,‍‍这是数据链路层的处理,点击出站 PDU 详情,还可以查看该数据包的封包细节。

点击右侧的捕获前进按钮,进行单步跟踪。可以看到数据包传递到了交换机,‍‍点击它在弹出窗口中可以查看交换机对该数据包的处理,这是接收处理,‍‍接收到的普通的以太网的帧,这是转发处理,转发出带有 VLAN 标签的 802.1q 帧,‍‍关闭该弹出窗口:

再次点击捕获前进按钮,‍‍可以看到数据包从交换机转发出来并到达路由器,‍‍点击已经到达路由器的该数据包,在弹出窗口中可以查看路由器对该数据包的处理,‍‍这是接收处理。‍‍由于该数据包是带有 VLANID 为 10 的 802.1q 帧,‍‍因此由子接口 0/0.1 处理,从中提取出 IP 数据报,‍‍根据 IP 数据报首部中的目的 IP 地址进行查表转发,这是转发处理。‍‍

根据查表转发的结果,该 IP 数据报需要通过子接口 0/0.2 直接交付给目的主机 e‍‍,于是子接口 0/0.2 将其封装为带有 VLANID 为 20 的 802.1q 帧进行转发,‍‍关闭该弹出窗口,再次点击捕获前进按钮。‍‍可以看到该数据包从路由器转发回了交换机。

点击该数据包,‍‍在弹出窗口中可以看到交换机收到的该数据包是一个 802.1q 帧,‍‍交换机根据其目的 MAC 地址和所携带的 VLANID 查找转发表,‍‍决定从接口 0/5 转发该数据包。‍‍由于接口 0/5 是 access 类型的接口,因此转发时会去掉 802.1q 帧的标签,‍‍使其成为普通的以太网帧,关闭弹出窗口。

再次点击捕获前进按钮,‍‍可以看到数据包从交换机的 0/5 号接口转发给了主机 e,点击已经到达主机 e 的该数据包,‍‍在弹出窗口中可以查看主机 e 对该数据包的处理,这是接收处理,‍‍这是主机 e 针对该数据包准备给主机 a 发回响应数据包,关闭该弹出窗口。

点击捕获前进按钮,可以看到响应数据包首先发送到了交换机。

再次点击前进按钮,可以看到交换机转发该数据包给路由器。

再次点击捕获前进按钮,可以看到路由器又把该数据包转发回交换机。

再次点击捕获前进按钮,可以看到交换机把该数据包转发给主机 A。

这样‍‍我们就要验证了使用单臂路由可以实现 VLAN 间的通信,‍‍相比于使用多臂路由,每增加一个 VLAN 就会多占用一个交换机接口和一个路由器接口,‍‍并且还会多一条布线而言,使用单臂路由无论有多少个 VLAN,‍‍都只需要额外占用交换机和路由器各一个接口,只需一条布线。

但是‍‍单臂路由仍然存在着这样的缺点:那就是随着 VLAN 间流量的不断增加,‍‍很可能导致路由器成为整个网络的瓶颈。‍‍

下节课我们会验证使用三层交换机实现 VLAN 间的路由,它比单臂路由具有更好的性能,‍‍最后请您在本实验的基础上进行一下扩充,‍‍也就是再添加一个 VLAN,并实现三个 VLAN 间的通信。

标签:22,主机,Fa0,VLAN,接口,间通信,IP,路由器
From: https://www.cnblogs.com/PeterJXL/p/18230313

相关文章

  • 《计算机网络微课堂》实验23 VLAN间通信的实现方法:使用三层交换机
    本仿真实验的目的在于验证VLAN间的通信可以使用三层交换机来实现。我已经在仿真软件中构建好了我们理论课中所使用的网络拓扑,并在各主机的旁边都标注好了所需配置的IP地址和地址掩码。​​‍博主注:在视频里使用到了三层交换机,但不知道是哪一种型号的,看到类似的有356024PS......
  • 《计算机网络微课堂》实验21 VLAN间通信的实现方法:多臂路由
    本仿真实验的目的在于验证微软件的通信可以使用多臂路由来实现。‍‍‍我已经在仿真软件中构建好了我们理论课中所使用的网络拓扑,‍‍并且在各主机和路由器的各接口旁边都标注好了所需配置的IP地址和地址掩码。‍‍​​‍需要说明的是三个地址块/后面的数字24,‍‍表明地址......
  • 进程间通信函数接口及应用模板小结
    进程间通信方式1.无名管道/有名管道2.信号3.共享队列(systemV-IPC)4.共享内存(systemV-IPC)5.信号量(systemV-IPC)6.套接字无名管道特征1.文件没有名字,无法使用open2.只能用于亲缘进程间3.半双工工作方式:读写端分开4.写入操作不具有原子性,会被打断,因此只能用于一对一的简......
  • [22] 虚幻引擎知识拓展 智能指针、JSON解析、插件
    Day1大纲虚幻智能指针  共享指针  共享引用JSON解析对象型、数组型、解析Json文件、书写Json、读取场景Actor保存到Json任务:封装高德地图天气系统插件给蓝图使用内容虚幻智能指针创建共享指针////创建共享指针//TSharedPtr<FMyClass>pMyClass=MakeShareab......
  • Error: Failure while executing; mpdecimal-2.5.1.catalina.bottle.tar.gz` exited w
    ==>Installingdependenciesfornode:mpdecimal,ca-certificates,[email protected],readline,sqlite,xz,[email protected],brotli,cmake,c-ares,icu4c,libnghttp2andlibuv==>Installingnodedependency:mpdecimalError:Failurewhileexecuting;`/usr/bin/......
  • 2024-6-3 石群电路-22
    2024-6-3,星期一,20:45,天气:晴,心情:阴转晴。今天没有发生了一些令人不开心事情,心情有些差,不过还是调整过来了,活好自己,就是对你讨厌的人最大的惩罚。因为准备毕业论文答辩的材料所以更新的晚了一点。今日观看了石群老师电路课程的第38个视频,开始了第九章的学习,主要学习内容为:阻抗的......
  • 【计算机毕业设计】ssm722花卉库存管理系统+vue
    如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统花卉库存信息管理难度大,容错率低,管理人员处理数据费工费时,所以专门为解决这个难题开发了一个花卉库存管理系统,可......
  • javaScript基础22
    一、概念一门客户端脚本语言运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎脚本语言:不需要编译,直接就可以被浏览器解析执行了二、功能可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。三、JavaScript发......
  • P8779 [蓝桥杯 2022 省 A] 推导部分和
    原题链接题解1.集合+搜索2.把数字看成间隔而不是点3.类似于差分约束,这里的建边意味着相对大小,根据传递性可知,如果ab建边,bc建边,那么ac之间的关系也能确定,可以用搜索维护所以unknown代表两个点没有之间或者间接的边相连,可以用集合维护code#include<bits/stdc++.h>#definel......
  • 16位简单ASM题的记录——[HGAME 2022 week1]easyasm
    第一次遇见16位,和纯看汇编的题目,记录一下DIE16位,IDA用32位或者64位都可以打开IDA主要汇编部分seg003:0000;===============SUBROUTINE=======================================seg003:0000seg003:0000;Attributes:noreturnseg003:0000seg003:0000......