# 一、实验名称
Vlan划分与Vlan间通信
# 二、实验目的
两台交换机连接六台 PC,使其可以相互 Ping 通
# 三、实验内容
(1)分别把交换机命名为SWA,SWB。
(2)划分虚拟局域网vlan,并静态地把端口划分到vlan中。
第一,使用两种方法划分vlan。
- 在全局模式下划分vlan:使用这种方法在SWA交换机上创建三个vlan,分别为:vlan2,vlan3和vlan4,vlan名称可任意定义。
- 进入vlandatabase划分vlan:使用这种方法在SWB交换机上创建三个vlan,分别为:vlan2,vlan3和vlan4,vlan名称可任意定义。
第二,按下面的要求把端口静态地划分到vlan中。
把SWA交换机上的F0/5端口划分到vlan2,F0/6端口划分到vlan3,F0/7端口划分到vlan4里面。
把SWB交换机上的F0/5端口划分到vlan2,F0/6端口划分到vlan3,F0/7端口划分到vlan4里面。
第三,删除vlan信息。
- 在SWA交换机上删除vlan2,vlan3信息。
- 在SWB交换机上删除vlan2,vlan3信息。
保留三个vlan, 使用单臂路由达成不同vlan之间的通信
# 四、实验仪器
Cisco Packet Tracer Version:8.2.2.0400
# 五、实验原理
# 六、实验过程及实验结果
### 1. 连接基本拓扑

| 名称 | 相连的接口 | IP地址 |
| --- | ----- | ---------- |
| PC0 | F0/5 | 172.1.1.2 |
| PC1 | F0/6 | 172.1.1.3 |
| PC2 | F0/7 | 172.1.1.4 |
| PC3 | F0/5 | 172.1.1.10 |
| PC4 | F0/6 | 172.1.1.11 |
| PC5 | F0/7 | 172.1.1.12 |
### 2. 交换机基本配置
进入Switch0的CLI, 配置如下
```bash
switch>en
switch#config t
switch(config)#hostname swA
swA(config)#end
swA#
```
同理对Switch1进行如下配置
```bash
switch>en
switch#config t
switch(config)#hostname swB
swB(config)#end
swB#
```
此时测试主机之间的通信情况

发现PC1,PC2,PC3,PC4,PC5,PC6都是互通的。
### 3. 划分vlan和静态地把端口划分到vlan中
1. 划分vlan
swA的配置如下:
```bash
swA#config t
SWA(config)#vlan 2
swA(config-vlan)#name vlan2
swA(config-vlan)#exit
swA(config)#vlan 3
SwA(config-vlan)#name vlan3
swA(config-vlan)#exit
swA(config)#vlan4
SwA(config-vlan)#name vlan4
swA(config-vlan)#exit
```
swB配置同上
2. 把端口静态地划分到vlan中
```bash
swA#config t
swA(congfig)#int F0/5
swA(congfig-if)#switchport mode access
swA(congfig-if)#switchport access vlan 2
swA(congfig-if)#exit
SwA(congfig)#int F0/6
swA(congfig-if)#switchport mode access
swA(congfig-if)#switchport access vlan 3
swA(congfig-if)#exit
swA(congfig)#int F0/7
swA(congfig-if)#switchport mode access
swA(congfig-if)#switchport access vlan 4
swA(congfig-if)#end
```
swB配置同上
### 4. 查看配置
使用 `show vlan` 查看配置

### 5. 测试vlan间是否互通
在PC0尝试使用ping命令联通PC1 PC3 PC5, 均失败
### 6. 三根线连接不同vlan
在两个交换机之间连接三条线路,用以连接不同的vlan。其中,两个交换机连接的接口情况为:F0/8—F0/8;F0/9一F0/9;F0/10一F0/10;

将双方的F0/8静态地划分到vlan2中,F0/9静态划分到vlan3,F0/10静态划分到vlan4
```bash
SWA>en
SWA#conf t
Enter configuration commands, one per line. End with CNTL/Z.
SWA(config)#int f0/8
SWA(config-if)#switchport mode access
SWA(config-if)#switchport access vlan 2
SWA(config-if)#exit
SWA(config)#int f0/9
SWA(config-if)#switchport mode access
SWA(config-if)#switchport access vlan 3
SWA(config-if)#exit
SWA(config)#int f0/10
SWA(config-if)#switchport mode access
SWA(config-if)#switchport access vlan 4
SWA(config-if)#
%CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on FastEthernet0/8 (2), with SWB FastEthernet0/8 (1).
%CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on FastEthernet0/9 (3), with SWB FastEthernet0/9 (1).
%CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on FastEthernet0/10 (4), with SWB FastEthernet0/10 (1).
SWA(config)#exit
SWA#
```
swB配置同上.
在PC0中对其他五台PC发送ping命令, 发现只有PC3能够ping通
经过尝试, PC0和PC3能相互ping通, PC1和PC4能够相互ping通, PC2和PC5能够相互ping通, 其余组合均无法ping通
### 7. 使用一根trunk线连接
在两个交换机之间建立一条trunk中继线线路代替上面的三条连线,双方都接F0/12。

swA中:
```bash
SWA>en
SWA#conf t
Enter configuration commands, one per line. End with CNTL/Z.
SWA(config)#int f0/12
SWA(config-if)#switch mode trunk
SWA(config-if)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/12, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/12, changed state to up
SWA(config)#exit
SWA#
```
swB配置同上
再次尝试使用ping命令测试各个主机间的连通性, 结论依旧和使用三条线联通交换机的一样
PC0和PC3能相互ping通, PC1和PC4能够相互ping通, PC2和PC5能够相互ping通, 其余组合均无法ping通
### 8. 删除vlan
在SWA交换机上删除vlan2,vlan3信息
```bash
SWA>en
SWA#config t
SWA(config)#no vlan 2
SWA(confiq)#no vlan 3
SA(config)#end
```
SWB配置同上
此时仅剩PC2和PC5之间能够相互ping通, 其余组合均无法ping通
### 9. 思考题
把vlan2,vlan3,vlan4都删除了,两个交换机只连一条线,也就是在上述基础上再增加一条指令 `SWA(confiq)#no vlan 4`
此时六台PC任意两台都不能相互访问, 还需把各个端口静态地划分到同一个vlan中
```bash
swA#config t
swA(congfig)#int F0/5
swA(congfig-if)#switchport access vlan 1
swA(congfig-if)#exit
SwA(congfig)#int F0/6
swA(congfig-if)#switchport access vlan 1
swA(congfig-if)#exit
swA(congfig)#int F0/7
swA(congfig-if)#switchport access vlan 1
swA(congfig-if)#end
```
swB配置同上
经过测试, 此时任意两台PC相互之间都能ping通, 也就是说任意两台PC之间都能相互访问
### 10. 单臂路由实现不同vlan间通信
基于第三部分中划分vlan和静态地把端口划分到vlan中的拓扑图, 再用一个路由器2811接在swA上, 电缆连接Router0的Fa0/0端口, 和swA的Fa0/1端口

在swA中配置如下
```bash
SWA>en
SWA#conf t
Enter configuration commands, one per line. End with CNTL/Z.
SWA(config)#int f0/1
SWA(config-if)#switch mode trunk
```
在Router0中配置如下:
```bash
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#int f0/0.2
Router(config-subif)#encapsulation dot1q 2
Router(config-subif)#ip address 192.168.2.254 255.255.255.0
Router(config-subif)#int f0/0.3
Router(config-subif)#encap dot1q 3
Router(config-subif)#ip address 192.168.3.254 255.255.255.0
Router(config-subif)#int f0/0.4
Router(config-subif)#encap dot1q 4
Router(config-subif)#ip address 192.168.4.254 255.255.255.0
Router(config-subif)#int f0/0
Router(config-if)#no shutdown
Router(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
%LINK-5-CHANGED: Interface FastEthernet0/0.2, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0.2, changed state to up
%LINK-5-CHANGED: Interface FastEthernet0/0.3, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0.3, changed state to up
%LINK-5-CHANGED: Interface FastEthernet0/0.4, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0.4, changed state to up
Router(config-if)#exit
Router(config)#
```
| 名称 | 相连的接口 | IP地址 | **网关** | 子网掩码 |
| --- | ----- | ----------- | ------------- | ------------- |
| PC0 | F0/5 | 192.168.2.1 | 192.168.2.254 | 255.255.255.0 |
| PC1 | F0/6 | 192.168.3.1 | 192.168.3.254 | 255.255.255.0 |
| PC2 | F0/7 | 192.168.4.1 | 192.168.4.254 | 255.255.255.0 |
| PC3 | F0/5 | 192.168.2.2 | 192.168.2.254 | 255.255.255.0 |
| PC4 | F0/6 | 192.168.3.2 | 192.168.3.254 | 255.255.255.0 |
| PC5 | F0/7 | 192.168.4.2 | 192.168.4.254 | 255.255.255.0 |
再次尝试使用ping命令测试各个主机间的连通性, 发现任意两台PC相互之间都能ping通, 但是有一个额外的发现:
*不同vlan间ping总会在第一个包发生 `Request timed out`, 而相同vlan间不会*
# 七、讨论与结论
### 实验现象分析
通过本次实验,我们成功地在两个交换机上划分了VLAN,并尝试了不同方式的配置以实现VLAN间的通信。最初的测试表明,在未进行任何VLAN划分时,所有PC之间都是互通的。但是,当根据VLAN进行端口分配后,仅属于相同VLAN的PC能够互相ping通,而不同VLAN之间的通信则被阻断,这符合VLAN的基本工作原理——隔离广播域。
在采用单臂路由方案进行不同VLAN间通信时,观察到首次从一个VLAN内的主机ping另一个VLAN的主机会出现 `Request timed out`,而后续的ping请求则正常, 并且第二次ping请求仍然正常。这种现象可能是由于ARP表初始化或路由表和子接口初始化过程中的延迟所引起的。一旦路由器学习到了必要的MAC地址信息,后续的通信就会变得顺畅。这一发现提示我们在设计网络时需要考虑到这些初始化延迟,并可能需要优化相关的网络配置以减少此类影响。
### 实验故障及处理方法
**VLAN间通信问题**:在实验过程中,我们遇到了VLAN间无法直接通信的问题。这是因为VLAN本质上是用于分隔广播域的技术,默认情况下,不同VLAN间的设备不能直接通信。为了解决这个问题,我们采用了单臂路由(Router on a Stick)的方法,通过路由器的一个物理接口连接到交换机,并创建多个子接口来对应不同的VLAN,从而实现了跨VLAN的通信。
### 心得体会
这次实验加深了我们对VLAN概念的理解及其在实际网络中的应用。特别是如何利用单臂路由技术解决VLAN间的通信问题,让我们认识到灵活运用网络设备可以有效提高网络性能和安全性。同时,也意识到在网络设计初期做好充分规划的重要性,包括合理的IP地址规划、选择合适的网络拓扑结构等,这些都是构建高效、稳定网络的关键因素。对于首次跨VLAN通信时出现的“Request timed out”现象的理解,进一步增强了我们对网络初始化过程的认识