下面我们来进行一个仿真实验,本仿真实验的目的在于验证 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