# computer-network-experiment-iii
**Repository Path**: joise_vip/computer-network-experiment-iii
## Basic Information
- **Project Name**: computer-network-experiment-iii
- **Description**: 计算机网络-CiscoPacketTracer实验
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-12-11
- **Last Updated**: 2021-12-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Cisco Packet Tracer 实验
## 直接连接两台 PC 构建 LAN
将两台 PC 直接连接构成一个网络。注意:直接连接需使用交叉线。
进行两台 PC 的基本网络配置,只需要配置 IP 地址即可,然后相互 `ping` 通即成功。



## 用交换机构建 LAN
构建如下拓扑结构的局域网:

各PC的基本网络配置如下表:

1.PC0 能否 `ping` 通 PC1、PC2、PC3 ?

2.PC3 能否 `ping` 通 PC0、PC1、PC2 ?为什么?

**原因**:PC3与PC0和PC1不在同一个一个子网下所以无法ping通。
3.将 4 台 PC 的掩码都改为 `255.255.0.0` ,它们相互能 `ping` 通吗?为什么?

**答:**可以相互ping通,**原因:**他们处于同一子网下,4台pc子网掩码改为255.255.0.0后,ip与子网掩码相与后,都处于192.168.0.0这个子网下。
4.使用二层交换机连接的网络需要配置网关吗?为什么?
**答:**不需要配置网关,4台pc相互通信,没有从子网中出去,不通过网关。
✎ 试一试
集线器 Hub 是工作在物理层的多接口设备,它与交换机的区别是什么?请在 CPT 软件中用 Hub 构建网络进行实际验证。
**答:**HUB工作在物理层,收到数据后,会向其他端口转发,只是起到“中转站的作用”;
而交换机工作在数据链路层,收到数据后,会根据目的地址的IP向对应的端口转发数据。

## 交换机接口地址列表
放大镜点击某交换机如左边的 Switch3,选择 `MAC Table`

PC0 访问(`ping`)PC1 后,再查看该交换机的 MAC 表


**MAC表:**
查找端口地址-地址列表,同端口丢弃,其他端口转发,如果地址列表没有,则广播该子网中是否有地址主机,空则写入。
## 生成树协议(Spanning Tree Protocol)
交换机在目的地址未知或接收到广播帧时是要进行广播的。如果交换机之间存在回路/环路,那么就会产生广播循环风暴,从而严重影响网络性能。
而交换机中运行的 **STP 协议**能避免交换机之间发生广播循环风暴。
**桔色处于Blocking状态**


使用 CPT 的 `Simulation` 即模拟方式可非常清楚看到这个过程!

## 路由器配置初步
重庆交通大学
分配网络号 `192.168.1.0/24`
网关,分配 IP 为 `192.168.1.1`

PC配置

路由器配置
重庆交通大学采用手动配置以太网口:

我们选用的路由器默认没有广域网模块(名称为 `WIC-1T` 等),需要关闭路由器后添加,然后再开机启动。

在模拟的广域网连接中需注意 DCE 和 DTE 端(连线时线路上有提示,带一个时钟标志的是 DCE 端。有关 DCE 和 DTE 的概念请查阅相关资料。),在 DCE 端需配置时钟频率 `64000`

记本的串口与路由器的 console 接口连接并进行初次的配置,才能通过网络远程进行配置

交通大学和重庆大学的连接是远程的,一般不会通过双绞线连接?
**答:**双绞线有有100米传输距离上限
重庆大学
分配网络号 `192.168.3.0/24`
分配 IP 为 `192.168.3.1`

pc配置

路由器配置
重庆大学采用命令行配置以太网口

模拟重庆交通大学和重庆大学

✎ **问题**
现在交通大学内的各 PC 及网关相互能 `ping` 通,重庆大学也类似。但不能从交大的 PC `ping` 通重大的 PC,反之亦然,也即不能跨子网。为什么?
路由表中没有对方的路径

## 静态路由
交通大学路由器静态路由配置:
```
Router>en // 从普通模式进入特权模式
Router#conf t // 进入全局配置模式
Router(config)#ip route 192.168.3.0 255.255.255.0 192.168.2.2 // 告诉交通大学路由器到 192.168.3.0 这个网络的下一跳是 192.168.2.2
Router(config)#exit //退到特权模式
Router#show ip route //查看路由表
```

查看路由表你可看到标记为 `S` 的一条路由,`S` 表示 Static 。

重庆大学路由器静态路由配置:
```
Router>en // 从普通模式进入特权模式
Router#conf t // 进入全局配置模式
Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.2.1 // 告诉重庆大学路由器到 192.168.1.0 这个网络的下一跳是 192.168.2.1
Router(config)#exit //退到特权模式
Router#show ip route //查看路由表
```
查看路由表你可看到标记为 `S` 的一条路由,`S` 表示 Static 。



**实验过程中遇到的问题:没有设置网关!!!**
## 动态路由 RIP
动态路由协议采用自适应路由算法,能够根据网络拓扑的变化而重新计算机最佳路由。
清除静态路由配置:
1. 直接关闭路由器电源。相当于没有保存任何配置,然后各接口再按照前面基本配置所述重新配置 IP 等参数(推荐此方法,可以再熟悉一下接口的配置命令);
2. 使用 `no` 命令清除静态路由。在全局配置模式下,交通大学路由器使用:`no ip route 192.168.3.0 255.255.255.0 192.168.2.2`,重庆大学路由器使用:`no ip route 192.168.1.0 255.255.255.0 192.168.2.1` 。相当于使用 `no` 命令把刚才配置的静态路由命令给取消。
交通大学路由器 RIP 路由配置:
```
Router>en // 从普通模式进入特权模式
Router#conf t // 进入全局配置模式
Router(config)#router rip // 启用 RIP 路由协议,注意是 router 命令
Router(config-router)#network 192.168.1.0 // 网络 192.168.1.0 与我直连
Router(config-router)#network 192.168.2.0 // 网络 192.168.2.0 与我直连
Router(config-router)#^z //直接退到特权模式
Router#show ip route //查看路由表
```

重庆大学路由器 RIP 路由配置:
```
Router>en // 从普通模式进入特权模式
Router#conf t // 进入全局配置模式
Router(config)#router rip // 启用RIP路由协议,注意是 router 命令
Router(config-router)#network 192.168.3.0 // 网络 192.168.3.0 与我直连
Router(config-router)#network 192.168.2.0 // 网络 192.168.2.0 与我直连
Router(config-router)#^z //直接退到特权模式
Router#show ip route //查看路由表
```


## 动态路由 OSPF
OSPF(Open Shortest Path First 开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称 IGP), 用于在单一自治系统(Autonomous System,AS)内决策路由。OSPF 性能优于 RIP,是当前域内路由广泛使用的路由协议。
**清除 RIP 路由配置:**
1. 直接关闭路由器电源。相当于没有保存任何配置,然后各接口再按照前面基本配置所述重新配置 IP 等参数
2. 使用 `no` 命令清除 RIP 路由。在全局配置模式下,各路由器都使用:`no router rip` 命令进行清除

**交通大学路由器 OSPF 路由配置:**
```
Router>en // 从普通模式进入特权模式
Router#conf t // 进入全局配置模式
Router(config)#router ospf 1 // 启用 OSPF 路由协议,进程号为1(可暂不理会进程号概念)
Router(config-router)#network 192.168.1.0 0.0.0.255 area 0 // 自治域0中的属于 192.168.1.0/24 网络的所有主机(反向掩码)参与 OSPF
Router(config-router)#network 192.168.2.0 0.0.0.255 area 0 // 自治域0中的属于 192.168.2.0/24 网络的所有主机(反向掩码)参与 OSPF
Router(config-router)#^z //直接退到特权模式
Router#show ip route //查看路由表
```
**重庆大学路由器 OSPF 路由配置:**
```
Router>en // 从普通模式进入特权模式
Router#conf t // 进入全局配置模式
Router(config)#router ospf 1 // 启用 OSPF 路由协议,进程号为1
Router(config-router)#network 192.168.3.0 0.0.0.255 area 0 // 自治域0中的属于 192.168.3.0/24 网络的所有主机(反向掩码)参与 OSPF
Router(config-router)#network 192.168.2.0 0.0.0.255 area 0 // 自治域0中的属于 192.168.2.0/24 网络的所有主机(反向掩码)参与 OSPF
Router(config-router)#^z //直接退到特权模式
Router#show ip route //查看路由表
```
查看路由表你可看到标记为 O 的一条路由,O 表示 OSPF 。


这些 PC 能全部相互 `ping` 通!

✎ **试一试**
可构造稍微复杂的拓扑(有更多的路由器即更多的路径),查看其路由表的生成,并且故意 down 下某接口以模拟路由器接口出现问题,或者剪掉路由器之间的连线以模拟网络连线出现故障等,从而更直观的看看路由自动的动态改变。
## 基于端口的网络地址翻译 PAT
网络地址转换(NAT,Network Address Translation)被各个 Internet 服务商即 ISP 广泛应用于它们的网络中,也包括 WiFi 网络。 原因很简单,NAT 不仅完美地解决了 lP 地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
拓扑图中各 PC 配置数据如下:

拓扑图中路由器各接口配置数据如下:

重庆交通大学广域网口:

重庆交通大学以太网口:路由器初步配置实验已配置
重庆大学和重庆交通大学配置类似!
OSPF路由配置:


重庆大学路由器丢包的配置:
```
Router>en // 从普通模式进入特权模式
Router#conf t // 进入全局配置模式
Router(config)#access-list 1 deny 192.168.1.0 0.0.0.255 // 创建 ACL 1,丢弃/不转发来自 192.168.1.0/24 网络的所有包
Router(config)#access-list 1 permit any // 添加 ACL 1 的规则,转发其它所有网络的包
Router(config)#int s0/0 // 配置广域网口
Router(config-if)#ip access-group 1 in // 在广域网口上对进来的包实施 ACL 1 中的规则,实际就
```

`ping` 的同时,在 CPT 软件中使用模拟(`Simulation`)方式会看得非常清楚:重庆大学路由器的广域网口将来自交通大学的包丢弃了!

**交通大学路由器 PAT 配置:**
```
Router>en // 从普通模式进入特权模式
Router#conf t // 进入全局配置模式
Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255 // 创建 ACL 1,允许来自 192.168.1.0/24 网络的所有包
Router(config)#ip nat inside source list 1 interface s0/0 overload // 来自于 ACL 中的 IP 将在广域网口实施 PAT
Router(config)#int f0/0 // 配置以太网口
Router(config-if)#ip nat inside // 配置以太网口为 PAT 的内部
Router(config)#int s0/0 // 配置广域网口
Router(config-if)#ip nat outside // 配置广域网口为 PAT 的外部
```

再次使用交通大学内部的 PC0(`192.168.1.2`)来 `ping` 重庆大学的PC2(`8.8.8.2`)则OK。

## 虚拟局域网 VLAN
VLAN(Virtual Local Area Network)即虚拟局域网。通过划分 VLAN,我们可以把一个物理网络划分为多个逻辑网段即多个子网。
划分 VLAN 后可以杜绝网络广播风暴,增强网络的安全性,便于进行统一管理等。
交换机 VLAN 配置:
```
Switch>en
Switch#conf t
Switch(config)#vlan 10 // 创建 id 为 10 的 VLAN(缺省的,交换机所有接口都属于VLAN 1,不能使用)
Switch(config-vlan)#name computer // 设置 VLAN 的别名
Switch(config-vlan)#exit
Switch(config)#int vlan 10 // 该 VLAN 为一个子网,设置其 IP,作为该子网网关
Switch(config-if)#ip address 192.168.0.1 255.255.255.0
Switch(config-if)#exit
Switch(config)#vlan 20 // 创建 id 为 20 的 VLAN
Switch(config-vlan)#name communication //设置别名
Switch(config-vlan)#exit
Switch(config)#int vlan 20
Switch(config-if)#ip addr 192.168.1.1 255.255.255.0
Switch(config-if)#exit
Switch(config)#vlan 30 // 创建 id 为 20 的 VLAN
Switch(config-vlan)#name electronic // 设置别名
Switch(config-vlan)#exit
Switch(config)#int vlan 30
Switch(config-if)#ip add 192.168.2.1 255.255.255.0
Switch(config-if)#exit
Switch(config)#int range f0/1-8 // 成组配置接口(1-8)
Switch(config-if-range)#switchport mode access // 设置为存取模式
Switch(config-if-range)#switchport access vlan 10 // 划归到 VLAN 10 中
Switch(config-if-range)#exit
Switch(config)#int range f0/9-16
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 20
Switch(config-if-range)#exit
Switch(config)#int range f0/17-24
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 30
Switch(config-if-range)#^Z
Switch#show vlan // 查看 VLAN 的划分情况
```

各 VLAN 下 PC 的网络配置及连接的交换机接口如下表:


此时可以使用 `ping` 命令进行测试,你会发现只有在同一 VLAN 中的 PC 才能通信,且广播也局限于该 VLAN。

✎ **思考**
分析一下当前为何不同 VLAN 中的 PC 不能通信?网关在此起什么作用?我们的网关又在何处?如何发起广播测试?
**答:**vlan划分多个子网,同一个vlan中的端口可以不通过路由器直接通信,而不同vlan之间则需要路由器进行路由。作为每个vlan之间通信的进出口,网关应该在路由器的位置。广播测试是在每一个vlan之中进行的。vlan作用就是隔离广播,避免发生广播风暴。
## 虚拟局域网管理 VTP
VTP(VLAN Trunk Protocol)即 VLAN 中继协议。VTP 通过 ISL 帧或 Cisco 私有 DTP 帧(可查阅相关资料了解)保持 VLAN 配置统一性,也被称为虚拟局域网干道协议,它是思科私有协议。 VTP 统一管理、增加、删除、调整VLAN,自动地将信息向网络中其它的交换机广播。

目前该网络都属于 `VLAN 1`,也即这些 PC 是可以相互通信的。前面说过,无论对于性能、管理还是安全等而言,现实中我们必须进行 VLAN 划分。
现在我们的要求是:新建两个 VLAN,然后让 PC0 和 PC1 属于 `VLAN 2`,PC1 和 PC3 属于 `VLAN 3`。
我们将在核心交换机 3560上进行如下工作:
1. 设置为 `server` 模式,VTP 域为 `cqjtu`
2. 新建 `VLAN 2`,网络号 `192.168.1.0/24`,网关 `192.168.1.1`
3. 新建 `VLAN 3`,网络号 `192.168.2.0/24`,网关 `192.168.2.1`

我们将在左边交换机 2960A 上进行如下工作:
1. 加入名为 `cqjtu` 的 VTP 域
2. 配置与核心交换机 3560 连接的千兆接口 `g0/1` 为 `trunk` 模式
3. 将接口 `f0/1` 划分到 `VLAN 2` 中
4. 将接口 `f0/2` 划分到 `VLAN 3` 中

我们将在右边交换机 2960B 上进行同样的工作:
1. 加入名为 `cqjtu` VTP 域
2. 配置与核心交换机 3560 连接的千兆接口 `g0/1` 为 `trunk` 模式
3. 将接口 `f0/1` 划分到 `VLAN 2` 中
4. 将接口 `f0/2` 划分到 `VLAN 3` 中

秘籍
此时在 3 个交换机的特权模式下,都可使用`show vtp status`命令查看 VTP 状态,使用`show vlan`命令查看 VLAN 状态


各 PC 连接的交换机和接口以及网络配置如下:

配置过程忽略!
✎ **试一试**
使用 PC0(`192.168.1.2`) `ping` PC1(`192.168.2.2`) 的结果如何?使用 PC0 `ping` PC2 的结果如何?想想为什么?

PC0与PC1是不同的子网,PC0与PC2是同一子网!
## VLAN 间的通信
VTP 只是给我们划分和管理 VLAN 提供了方便,由上面的测试得知,目前我们仍然不能在 VLAN 间通信。
因为默认的,VLAN 间是不允许进行通信,此时我们需要所谓的独臂路由器在 VLAN 间为其进行转发!
我们使用的核心交换机 3560 是个 **3 层交换机**,可工作在网络层,也称**路由交换机**,即具有路由功能,能进行这种转发操作。
3560 交换机配置:



## DHCP、DNS及Web服务器简单配置

该拓扑中,服务器及客户机都连在同一交换机上。为简单起见,服务器 Server-PT 同时作为 DHCP、DNS 以及 Web 服务器,各客户机无需配置,将自动获取网络配置。
点击 CPT 拓扑图中的 Server 图标,设置其静态 IP 地址为 `19.89.6.4/24`,然后选择 `Service` 进行如下相关配置:

设置服务器的ip、mask、gateway

设置HTTP服务

设置DNS服务

设置DHCP服务

测试设置是否正确和生效



## WLAN初步配置
WLAN 即 WiFi 当前也是广泛的应用在各种场景。
我们通过构建如下拓扑的一个家庭 WLAN 来练习一下其相关的配置:


无线路由器的基本网络配置(IP、掩码、网关、DNS 等,现实中多为自动获取)

