计算机网络实验报告

一、验证性实验

1.ipconfig

实作一

使用 ipconfig/all 查看自己计算机的网络配置,尽可能明白每行的意思,特别注意 IP 地址、子网掩码 Subnet Mask、网关
Gateway。

在这里插入图片描述
网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。

2.ping

实作一

要测试到某计算机如 重庆交通大学 Web 服务器的连通性,可以使用 ping www.cqjtu.edu.cn 命令,也可直接使用 IP
地址。

在这里插入图片描述
TTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。

实作二

使用 ping/? 命令了解该命令的各种选项并实际使用。

在这里插入图片描述
以下是使用 ping -a 指令的结果
在这里插入图片描述

3.tracert

实作一

要了解到某计算机如 www.baidu.com 中间经过了哪些节点(路由器)及其它状态,可使用 tracert www.baidu.com
命令,查看反馈的信息,了解节点的个数。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
通过查询节点的位置可知本机到百度服务器之间的路径大致为重庆到广州

实作二

ping.pe 这个网站可以探测从全球主要的 ISP 到某站点如 https://qige.io
的线路状态,当然也包括各线路到该主机的路由情况。请使用浏览器访问 http://ping.pe/qige.io 进行了解

在这里插入图片描述
✎问题一:tracert 能告诉我们路径上的节点以及大致的延迟等信息,那么它背后的原理是什么?

答:通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert诊断程序确定到目标所采取的路由。

✎问题二:在以上两个实作中,如果你留意路径中的节点,你会发现无论是访问百度还是棋歌教学网,路径中的第一跳都是相同的,甚至你应该发现似乎前几个节点都是相同的,你的解释是什么?

答:因为都是先到达交换机,从内部服务器转到外部服务器所以前几个节点是相同的。

✎ 问题三:在追踪过程中,你可能会看到路径中某些节点显示为 * 号,这是发生了什么?
答:某些路由器不会为其 TTL 值已过期的数据包返回“已超时”消息,而且这些路由器对于 tracert 命令不可见。在这种情况下,将为该跃点显示*。

4.ARP

实作一

运行 arp -a 命令查看当前的 arp 缓存, 请留意缓存了些什么

在这里插入图片描述

实作二

请使用 arp /? 命令了解该命令的各种选项。

在这里插入图片描述

实作三

一般而言,arp 缓存里常常会有网关的缓存,并且是动态类型的。

假设当前网关的 IP 地址是 192.168.0.1,MAC 地址是 5c-d9-98-f1-89-64,请使用 arp -s 192.168.0.1 5c-d9-98-f1-89-64 命令设置其为静态类型的。

此时显示操作失败

在这里插入图片描述
以管理员身份打开控制台后重新执行该命令
在这里插入图片描述
此时192.168.0.102被设为静态
在这里插入图片描述
✎ 问题

1.在实作三中,为何缓存中常常有网关的信息?

答: 因为要通过网关访问,缓存网关信息便于使用

2.我们将网关或其它计算机的 arp 信息设置为静态有什么优缺点?

答: 设置为静态优点优点在于管理方便且可以有效防止局域网中的ARP欺骗,缺点为合法用户分配的地址可能被非法盗用

5.DHCP

实作一

一般地,我们自动获取的网络配置信息包括:IP 地址、子网掩码、网关 IP 以及 DNS 服务器 IP 等。使用
ipconfig/release 命令释放自动获取的网络配置,并用 ipconfig/renew 命令重新获取,了解 DHCP
工作过程和原理。

在这里插入图片描述
使用该命令后网络断开连接,使用ipconfig/renew命令后重新连接网络

DHCP的工作过程大概可分为四步:

1.客户端发广播寻找DHCP服务器

2.DHCP服务器单播回复客户端Offer

3.客户端广播请求这个ip,发广播一方面是为了请求这个地址,另一个方面也是告诉其他的dhcp服务器自己有地址用了

4.服务器发送ACK包

6.netstat

实作一

Windows 系统将一些常用的端口与服务记录在 C:\WINDOWS\system32\drivers\etc\services
文件中,请查看该文件了解常用的端口号分配。

在这里插入图片描述

实作二

使用 netstat -an 命令,查看计算机当前的网络连接状况。

在这里插入图片描述

7.DNS

实作一

Windows 系统将一些固定的/静态的 DNS 信息记录在 C:\WINDOWS\system32\drivers\etc\hosts
文件中,如我们常用的 localhost 就对应 127.0.0.1 。请查看该文件看看有什么记录在该文件中。

在这里插入图片描述

实作二

解析过的 DNS 记录将会被缓存,以利于加快解析速度。请使用 ipconfig /displaydns 命令查看。我们也可以使用
ipconfig /flushdns 命令来清除所有的 DNS 缓存。

在这里插入图片描述
在这里插入图片描述

实作三

使用 nslookup qige.io 命令,将使用默认的 DNS 服务器查询该域名。

在这里插入图片描述
🗣 TroubleShooting
上面秘籍中我们提到了使用插件或自己修改 hosts 文件来屏蔽广告,思考一下这种方式为何能过滤广告?如果某些广告拦截失效,那么是什么原因?你应该怎样进行分析从而能够成功屏蔽它?

hosts文件优先级是高于DNS服务器,这样浏览器解析该广告链接时,优先hosts文件,这样我们就相当于更改了该链接本来的ip地址,从而使该链接失效。如果这样的方式无法屏蔽广告,一种可能是广告内容是嵌入到网页中的

8.cache

实作一

打开 Chrome 或 Firefox 浏览器,访问 https://qige.io ,接下来敲 F12 键 或 Ctrl + Shift

  • I 组合键打开开发者工具,选择 Network 面板后刷新页面,你会在开发者工具底部看到加载该页面花费的时间。请进一步查看哪些文件被 cache了,哪些没有。

在这里插入图片描述

实作二

接下来仍在 Network 面板,选择 Disable cache 选项框,表明当前不使用 cache,页面数据全部来自于
Internet,刷新页面,再次在开发者工具底部查看加载该页面花费的时间。你可比对与有 cache 时的加载速度差异。

在这里插入图片描述
可以发现禁用缓冲后加载速度明显变慢

二、Wireshark 实验

1. 数据链路层

实作一 熟悉 Ethernet 帧结构

使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等。
在这里插入图片描述

✎ 问题

你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。
答:在物理层上网卡要先去掉前导同步码和帧开始定界符,然后对帧进行CRC检验,如果帧校验和错,就丢弃此帧。如果校验和正确,就判断帧的目 的硬件地址是否符合自己的接收条件(目的地址是自己的物理硬件地址、广播地址、可接收的多播硬件地址等),如果符合,就将帧交“设备驱动程序”做进一步处 理。这时我们的抓包软件才能抓到数据,因此,抓包软件抓到的是去掉前导同步码、帧开始分界符、FCS之外的数据。

实作二 了解子网内/外通信时的 MAC 地址

1.ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可使用 icmp 关键字进行过滤以利于分析),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?
发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是b0:68:e6:04:6d:53,这个MAC地址是旁边主机的MAC地址

2.然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?
在这里插入图片描述
目的 MAC 地址:8c:f2:28:c8:b6:aa
返回帧的源 MAC 地址:34:cf:f6:5d:4a:c1
这个MAC地址是本机的网关MAC地址

3.再次 ping www.cqjtu.edu.cn (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址又是多少?这个 MAC 地址又是谁的?
在这里插入图片描述
发出帧的目的 MAC 地址:8c:f2:28:c8:b6:aa
返回帧的源 MAC 地址:34:cf:f6:5d:4a:c1
这个MAC地址是本机的网关MAC地址

✎ 问题

通过以上的实验,你会发现:

访问本子网的计算机时,目的 MAC 就是该主机的 访问非本子网的计算机时,目的 MAC 是网关的 请问原因是什么?
答:当计算机要访问本子网中的另一台计算机时,它会发送一个数据帧到目标计算机。这个数据帧包含了目的 MAC 地址,即目标计算机的 MAC 地址。这样,目标计算机就能够收到数据帧并进行相应的处理。

如果计算机要访问非本子网的其他计算机,则需要使用网关来转发数据。在这种情况下,计算机会发送一个数据帧到网关,数据帧的目的 MAC地址就是网关的 MAC 地址。网关会收到这个数据帧,并根据目标计算机的 IP 地址将其转发到目标计算机所在的子网。

因此,访问本子网的计算机时,目的 MAC 就是该主机的;访问非本子网的计算机时,目的 MAC
是网关的,因为在这种情况下,数据需要经过网关才能到达目标计算机

实作三 掌握 ARP 解析过程

1.为防止干扰,先使用 arp -d * 命令清空 arp 缓存
在这里插入图片描述
2.ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可 arp 过滤),查看 ARP 请求的格式以及请求的内容,注意观察该请求的目的 MAC 地址是什么。再查看一下该请求的回应,注意观察该回应的源 MAC 和目的 MAC 地址是什么。
3.再次使用 arp -d * 命令清空 arp 缓存
4.然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 arp 过滤)。查看这次 ARP 请求的是什么,注意观察该请求是谁在回应。
在这里插入图片描述
在这里插入图片描述
ARP请求为Who has 192.168.0.102? Tell 192.168.0.1

回复的为本机的MAC地址

✎ 问题

通过以上的实验,你应该会发现,

ARP 请求都是使用广播方式发送的 如果访问的是本子网的 IP,那么 ARP 解析将直接得到该 IP 对应的 MAC;如果访问的非本子网的
IP, 那么 ARP 解析将得到网关的 MAC。 请问为什么?

答:为了获取目标计算机的 MAC 地址,计算机会发送一个 ARP 请求。这个请求会被广播到整个局域网,所有在线的计算机都会收到这个请求。其中包含了目标计算机的 IP 地址,计算机会查找自己的 IP 地址与目标计算机的 IP 地址是否匹配。如果匹配,则计算机会回复一个 ARP 响应,包含自己的 MAC 地址。访问本子网的计算机时,ARP 解析将直接得到该 IP 对应的 MAC,因为计算机会收到 ARP 响应并获取目标计算机的 MAC 地址。

如果访问的是非本子网的 IP,则计算机会发送 ARP 请求到网关,因为网关是访问其他子网的唯一途径。网关收到 ARP 请求后,会根据目标计算机的 IP 地址查找对应的 MAC 地址。如果能找到目标计算机的 MAC 地址,则网关会发送一个 ARP 响应到访问计算机,包含目标计算机的 MAC 地址。如果网关无法找到目标计算机的 MAC 地址,则会进行路由,将 ARP 请求转发到下一个路由器或网关。

因此,当访问的是本子网的 IP 时,ARP 解析将直接得到该 IP 对应的 MAC;当访问的是非本子网的 IP 时,ARP 解析将得到网关的 MAC,因为网关是访问其他子网的唯一途径。

2. 网络层

实作一 熟悉 IP 包结构

使用 Wireshark 任意进行抓包(可用 ip 过滤),熟悉 IP 包的结构,如:版本、头部长度、总长度、TTL、协议类型等字段。
在这里插入图片描述
版本:IPV4
头部长度:20 bytes
总体长度:40
存活时间TTL:128
协议:TCP

✎ 问题

为提高效率,我们应该让 IP 的头部尽可能的精简。但在如此珍贵的 IP 头部你会发现既有头部长度字段,也有总长度字段。请问为什么?
答:IP 头部的字段设计是为了提高数据包传输的效率和可靠性,使得数据包能够顺利地到达目的地。
例如,标识字段用于标识一组数据包,这样计算机就可以将这些数据包重新组装成一个整体。片偏移字段用于指示数据包在一个数据流中的位置,这样计算机就可以根据数据包的位置来进行重新组装。

实作二 IP 包的分段与重组

根据规定,一个 IP 包最大可以有 64K 字节。但由于 Ethernet 帧的限制,当 IP 包的数据超过 1500 字节时就会被发送方的数据链路层分段,然后在接收方的网络层重组。

缺省的,ping 命令只会向对方发送 32 个字节的数据。我们可以使用 ping 202.202.240.16 -l 2000 命令指定要发送的数据长度。此时使用 Wireshark 抓包(用 ip.addr == 202.202.240.16 进行过滤),了解 IP 包如何进行分段,如:分段标志、偏移量以及每个包的大小等
在这里插入图片描述
在这里插入图片描述
IP包长度为:1500
偏移量:0
在这里插入图片描述
IP包长度为:548
偏移量:1480

可以看到ip包被分成了两份,第一份长度(Total Length)为1500,偏移量为(Fragment offset)为0。第二份长度为548,偏移量为1480.两个IP包以第1480字节作为分隔的节点。

✎ 问题

分段与重组是一个耗费资源的操作,特别是当分段由传送路径上的节点即路由器来完成的时候,所以 IPv6 已经不允许分段了。那么 IPv6 中,如果路由器遇到了一个大数据包该怎么办?
答: 如果路由器在 IPv6 中遇到了一个大数据包,它会直接将该数据包丢弃,而不会进行分段和重组。这种情况下,发送端应该收到一个 “数据包过大” 的错误信息,并重新发送较小的数据包。

实作三 考察 TTL 事件

请使用 tracert www.baidu.com 命令进行追踪,此时使用 Wireshark 抓包(用 icmp 过滤),分析每个发送包的 TTL 是如何进行改变的,从而理解路由追踪原理。
在这里插入图片描述
在这里插入图片描述
第一跳TTL为1,请求显示on response found。此时我们通过该数据包的源地址可知第一站路由器的地址为198.168.0.1。之后只需要不停增加TTL的值就能得到每一跳的地址了

✎ 问题

在 IPv4 中,TTL 虽然定义为生命期即 Time To Live,但现实中我们都以跳数/节点数进行设置。如果你收到一个包,其 TTL的值为 50,那么可以推断这个包从源点到你之间有多少跳?

答: 如果你收到的数据包的 TTL 值为 50,则可以推断该数据包在从源点到你的路径上经过了至少 50 个节点,即跳数至少为 50。然而,TTL 值并不能准确地告诉你数据包在网络中的跳数,因为每个路由器在转发数据包时可能会使用不同的 TTL 值。

3.传输层

实作一 熟悉 TCP 和 UDP 段结构

1.用 Wireshark 任意抓包(可用 tcp 过滤),熟悉 TCP 段的结构,如:源端口、目的端口、序列号、确认号、各种标志位等字段。
在这里插入图片描述
源端口号:443
目的端口号:56273
序列号:78
确认号:1

2.用 Wireshark 任意抓包(可用 udp 过滤),熟悉 UDP 段的结构,如:源端口、目的端口、长度等。
在这里插入图片描述
源端口:8000
目的端口:4004
长度:143

✎ 问题

由上大家可以看到 UDP 的头部比 TCP 简单得多,但两者都有源和目的端口号。请问源和目的端口号用来干什么?
答: 在 TCP 和 UDP 协议中,源端口号用于标识发送数据的主机的端口,目的端口号用于标识接收数据的主机的端口。端口号有助于将数据包发送到正确的应用程序。

实作二 分析 TCP 建立和释放连接

1.打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用 tcp 过滤后再使用加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间使得能够捕获释放连接的包。
2.请在你捕获的包中找到三次握手建立连接的包,并说明为何它们是用于建立连接的,有什么特征。
3.请在你捕获的包中找到四次挥手释放连接的包,并说明为何它们是用于释放连接的,有什么特征。

第一次握手:客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。
在这里插入图片描述
第二次握手:
服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 如下图
在这里插入图片描述
第三次握手:
客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1, 如下图
在这里插入图片描述

✎ 问题一

去掉 Follow TCP Stream,即不跟踪一个 TCP 流,你可能会看到访问 qige.io
时我们建立的连接有多个。请思考为什么会有多个连接?作用是什么?
答:建立多个连接是因为这些连接被用来传输不同的数据。这些连接的作用是用来传输网页所需的各种资源,包括 HTML 代码、图像、样式表和脚本。这些资源在加载完成后会被浏览器渲染出来,从而使我们能够看到完整的网页

✎ 问题二

我们上面提到了释放连接需要四次挥手,有时你可能会抓到只有三次挥手。原因是什么?
答:这是因为在第二次挥手之后,客户端并没有发送 ACK 包。这意味着客户端没有收到服务器的 FIN 包,因此服务器发送的 FIN 包被丢弃了。这种情况下,服务器会尝试再次发送 FIN 包,直到客户端收到并发送 ACK 包为止。如果在这个过程中 FIN 包仍然被丢弃,则连接可能永远无法关闭。

4.应用层

实作一 了解 DNS 解析

先使用 ipconfig /flushdns 命令清除缓存,
在这里插入图片描述
再使用 nslookup qige.io 命令进行解析
在这里插入图片描述
同时用 Wireshark 任意抓包(可用 dns 过滤)
在这里插入图片描述
2.你应该可以看到当前计算机使用 UDP,向默认的 DNS 服务器的 53 号端口发出了查询请求,而 DNS 服务器的 53 号端口返回了结果。
在这里插入图片描述

✎ 问题

你可能会发现对同一个站点,我们发出的 DNS 解析请求不止一个,思考一下是什么原因?
答:浏览器可能会缓存 DNS 解析结果,但这些结果的生存期是有限的。当缓存的 DNS 解析结果过期时,浏览器会重新发出 DNS 解析请求。此外,浏览器还可能会自动进行预解析,也就是在用户浏览网页时预先发出 DNS 解析请求,以便加速后续访问

实作二 了解 HTTP 的请求和应答

1.打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用http 过滤再加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间以将释放连接的包捕获。
2.请在你捕获的包中找到 HTTP 请求包,查看请求使用的什么命令,如:GET, POST。并仔细了解请求的头部有哪些字段及其意义。
3.请在你捕获的包中找到 HTTP 应答包,查看应答的代码是什么,如:200, 304, 404 等。并仔细了解应答的头部有哪些字段及其意义。
在这里插入图片描述

请求头(Request): Accept:text/html application/xml 告诉服务器客户端浏览器这边可以出里什么数据;
Accept-Encodeing:gzip 告诉服务器我能支持什么样的压缩格式 accept-language:告诉服务器浏览器支持的语言
Cache-control:告诉服务器是否缓存 Connection:keep-alive 告诉服务器当前保持活跃(与服务器处于链接状态)
Host:远程服务器的域名 User-agent:客户端的一些信息,浏览器信息 版本
referer:当前页面上一个页面地址。一般用于服务器判断是否为同一个域名下的请求
在这里插入图片描述
响应码类型:
1xx:信息,请求收到,继续处理
2xx:成功,行为被成功地接受、理解和采纳
3xx:重定向,为了完成请求,必须进一步执行的动作
4xx:客户端错误,请求包含语法错误或者请求无法实现
5xx:服务器错误,服务器不能实现一种明显无效的请求

✎ 问题

刷新一次 qige.io 网站的页面同时进行抓包,你会发现不少的 304
代码的应答,这是所请求的对象没有更改的意思,让浏览器使用本地缓存的内容即可。那么服务器为什么会回答 304 应答而不是常见的 200 应答?

答:当浏览器请求访问某个网站时,它会将缓存标识符(例如 ETag)发送到服务器。如果缓存标识符表明服务器上的资源没有更改,则服务器会返回 304 应答,告诉浏览器使用本地缓存的内容。这样做的好处是可以减少服务器负载,从而提高性能。
如果服务器的资源已更改,则服务器会返回 200 应答并发送新的资源。这样浏览器就可以使用最新的资源,并更新本地缓存。

三、Cisco Packet Tracer 实验

1.直接连接两台 PC 构建 LAN

将两台 PC 直接连接构成一个网络。注意:直接连接需使用交叉线。

进行两台 PC 的基本网络配置,只需要配置 IP 地址即可,然后相互 ping 通即
在这里插入图片描述

PC0配置如下:
在这里插入图片描述
PC1配置如下:
在这里插入图片描述
ping通成功
在这里插入图片描述

2.用交换机构建 LAN

构建完成的拓扑图如下:
在这里插入图片描述
在这里插入图片描述

✎ 问题

1.PC0 能否 ping 通 PC1、PC2、PC3 ? PC3 能否 ping 通 PC0、PC1、PC2 ?为什么?
答: PC2能ping通PC1,不能ping通PC2、PC3,PC3能ping通PC2,但不能ping通PC1、PC0
2. 将 4 台 PC 的掩码都改为 255.255.0.0 ,它们相互能 ping 通吗?为什么?
答:互相之间可以ping通,因为处于同一个子网255.255.255.0中,所以可以互相ping通
3.使用二层交换机连接的网络需要配置网关吗?为什么?
答:是需要配置网关的。在二层交换机连接的网络中,网关通常是配置在网络的边界处,并负责处理来自其他网络的数据包。当一个主机想要发送数据到另一个网络时,它会将数据包发送到网关,网关再负责将数据包转发到目标网络。

✎ 试一试

集线器 Hub 是工作在物理层的多接口设备,它与交换机的区别是什么?请在 CPT 软件中用 Hub 构建网络进行实际验证。
答:集线器和交换机的区别在于:集线器是一种简单的转发设备,它将接收到的数据包转发到网络中的其他计算机,而交换机是一种智能设备,它能够通过分析数据包的目的地址来决定如何转发数据包,这使得交换机能够更快地转发数据包。

3.交换机接口地址列表

仍然构建上图的拓扑结构,并配置各计算机的 IP 在同一个一个子网,使用工具栏中的放大镜点击某交换机如左边的 Switch3,选择 MAC Table,可以看到最初交换机的 MAC 表是空的,也即它不知道该怎样转发帧(那么它将如何处理?)
用 PC0 访问(ping)PC1 后,再查看该交换机的 MAC 表:
在这里插入图片描述

📬 秘籍

你还可以使用 CPT 的 Simulation 模式即模拟方式进一步看清楚这个过程!
在这里插入图片描述

4. 生成树协议

交换机在目的地址未知或接收到广播帧时是要进行广播的。如果交换机之间存在回路/环路,那么就会产生广播循环风暴,从而严重影响网络性能。

而交换机中运行的 STP 协议能避免交换机之间发生广播循环风暴。

只使用交换机,构建如下拓扑:
在这里插入图片描述
这是初始时的状态。我们可以看到交换机之间有回路,这会造成广播帧循环传送即形成广播风暴,严重影响网络性能。
随后,交换机将自动通过生成树协议(STP)对多余的线路进行自动阻塞(Blocking),以形成一棵以 Switch4 为根(具体哪个是根交换机有相关的策略)的具有唯一路径树即生成树!经过一段时间,随着 STP 协议成功构建了生成树后,Switch5 的两个接口当前物理上是连接的,但逻辑上是不通的,处于Blocking状态(桔色)如下图所示:
在这里插入图片描述
在网络运行期间,假设某个时候 Switch4 与 Switch5 之间的物理连接出现问题(将 Switch4 与 Switch5 的连线剪掉),则该生成树将自动发生变化。Switch5 上方先前 Blocking 的那个接口现在活动了(绿色),但下方那个接口仍处于 Blocking 状态(桔色)。如下图所示:
在这里插入图片描述

📬 秘籍

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

在这里插入图片描述

5.路由器配置初步

我们模拟重庆交通大学和重庆大学两个学校的连接,构建如下拓扑:
在这里插入图片描述
说明一
交通大学与重庆大学显然是两个不同的子网。在不同子网间通信需通过路由器。

路由器的每个接口下至少是一个子网,图中我们简单的规划了 3 个子网:

左边路由器是交通大学的,其下使用交换机连接交通大学的网络,分配网络号 192.168.1.0/24,该路由器接口也是交通大学网络的网关,分配 IP 为 192.168.1.1
右边路由器是重庆大学的,其下使用交换机连接重庆大学的网络,分配网络号 192.168.3.0/24,该路由器接口也是重庆大学网络的网关,分配 IP 为 192.168.3.1
两个路由器之间使用广域网接口相连,也是一个子网,分配网络号 192.168.2.0/24

说明二
现实中,交通大学和重庆大学的连接是远程的。该连接要么通过路由器的光纤接口,要么通过广域网接口即所谓的 serial
口(如拓扑图所示)进行,一般不会通过双绞线连接(为什么?)

答:双绞线是用于连接局域网中的设备,而不是连接两个大学之间的设备。这是因为,双绞线的传输距离和传输速率都比较有限,不能满足连接两个大学之间的需要。

下面我们以通过路由器的广域网口连接为例来进行相关配置。请注意:我们选用的路由器默认没有广域网模块(名称为 WIC-1T 等),需要关闭路由器后添加,然后再开机启动。
在这里插入图片描述
WIC-1T:
在这里插入图片描述
说明三
在模拟的广域网连接中需注意 DCE 和 DTE 端(连线时线路上有提示,带一个时钟标志的是 DCE 端。有关 DCE 和 DTE 的概念请查阅相关资料。),在 DCE 端需配置时钟频率 64000在这里插入图片描述
说明四
路由器有多种命令行配置模式,每种模式对应不同的提示符及相应的权限。请留意在正确的模式下输入配置相关的命令。

User mode:
用户模式 Privileged mode:
特权模式 Global configuration mode:
全局配置模式 Interface mode:
接口配置模式 Subinterface mode:子接口配置模式

✎说明五
在现实中,对新的路由器,显然不能远程进行配置,我们必须在现场通过笔记本的串口与路由器的 console 接口连接并进行初次的配置(注意设置比特率为9600)后,才能通过网络远程进行配置。这也是上图左上画出笔记本连接的用意。
✎说明六
在路由器的 CLI 界面中,可看到路由器刚启动成功后,因为无任何配置,将会提示是否进行对话配置(Would you like to enter the initial configuration dialog?),因其步骤繁多,请选择 NO
在这里插入图片描述

✎ 问题

现在交通大学内的各 PC 及网关相互能 ping通,重庆大学也类似。但不能从交大的 PC ping通重大的PC,反之亦然,也即不能跨子网。为什么?
答:广播消息无法进行跨子网传播,交通大学内的 PC 和重庆大学内的 PC 不在同一个子网中,那么交通大学内的 PC 就无法发送广播消息到重庆大学内的 PC

6. 静态路由

静态路由是非自适应性路由协议,是由网络管理人员手动配置的,不能够根据网络拓扑的变化而改变。 因此,静态路由简单高效,适用于结构非常简单的网络。

在当前这个简单的拓扑结构中我们可以使用静态路由,即直接告诉路由器到某网络该怎么走即可。

在前述路由器基本配置成功的情况下使用以下命令进行静态路由协议的配置:
交通大学路由器静态路由配置:

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 //查看路由表
在这里插入图片描述

重庆大学路由器静态路由配置:

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

至此,这些 PC 能全部相互 ping
在这里插入图片描述

7. 动态路由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 //查看路由表
在这里插入图片描述
查看路由表你可看到标记为 R 的一条路由,R 表示 RIP

8.动态路由 OSPF

OSPF(Open Shortest Path First 开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称 IGP), 用于在单一自治系统(Autonomous System,AS)内决策路由。OSPF 性能优于 RIP,是当前域内路由广泛使用的路由协议。

同样的,我们需要把刚才配置的 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 //查看路由表

至此,这些 PC 能全部相互 ping 通
在这里插入图片描述

9.基于端口的网络地址翻译 PAT

网络地址转换(NAT,Network Address Translation)被各个 Internet 服务商即 ISP 广泛应用于它们的网络中,也包括 WiFi 网络。 原因很简单,NAT 不仅完美地解决了 lP 地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
NAT 的实现方式一般有三种:

  • 静态转换: Static NAT
  • 动态转换: Dynamic NAT
  • 端口多路复用: OverLoad

端口多路复用使用最多也最灵活。OverLoad 是指不仅改变发向 Internet 数据包的源 IP 地址,同时还改变其源端口,即进行了端口地址转换(PAT,Port Address Translation)

我们仍然使用重庆交通大学和重庆大学两个学校的拓扑进行 PAT 实验。我们需要保证两个学校的路由已经配置成功,无论使用静态路由还是动态路由,以下我们给出完整的配置过程:设定这两个学校的路由器使用 OSPF 协议,模拟交通大学使用内部 IP 地址(192.168.1.0/24),模拟重庆大学使用外部 IP 地址(8.8.8.0/24),两个路由器之间使用外部 IP 地址(202.202.240.0/24),在交通大学的出口位置即广域网口实施 PAT
拓扑图中各 PC 配置数据如下:
在这里插入图片描述
拓扑图中路由器各接口配置数据如下:
在这里插入图片描述
交通大学路由器接口配置如下:
以太网口:

Router>en // 从普通模式进入特权模式
Router#conf t // 进入全局配置模式
Router(config)#int f0/0 // 进入配置以太网口模式
Router(config-if)#ip address
192.168.1.1 255.255.255.0 // 配置 IP
Router(config-if)#no shutdown // 激活接口

广域网口:

Router>en // 从普通模式进入特权模式
Router#conf t // 进入全局配置模式
Router(config)#int s0/0 // 进入配置广域网口模式
Router(config-if)#ip address
202.202.240.1 255.255.255.0 //配置 IP
Router(config-if)#clock rate 64000 // 其为 DCE 端,配置时钟频率
Router(config-if)#no shutdown // 激活接口

重庆大学路由器接口配置如下:
以太网口:

Router>en // 从普通模式进入特权模式
Router#conf t // 进入全局配置模式
Router(config)#int f0/0 // 进入配置以太网口模式
Router(config-if)#ip address
8.8.8.1 255.255.255.0 // 配置 IP
Router(config-if)#no shutdown // 激活接口

广域网口:

Router>en // 从普通模式进入特权模式
Router#conf t // 进入全局配置模式
Router(config)#int s0/0 // 进入配置广域网口模式
Router(config-if)#ip address
202.202.240.2 255.255.255.0 // 配置 IP
Router(config-if)#no shutdown // 激活接口

交通大学路由器 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 202.202.240.0 0.0.0.255 area 0 //自治域0中的属于202.202.240.0/24网络的所有主机(反向掩码)参与 OSPF

重庆大学路由器 OSPF 路由配置:

Router>en // 从普通模式进入特权模式 Router#conf t // 进入全局配置模式
Router(config)#router ospf 1 // 启用 OSPF 路由协议,进程号为1
Router(config-router)#network 202.202.240.0 0.0.0.255 area 0 //
自治域0中的属于202.202.240.0/24网络的所有主机(反向掩码)参与 OSPF
Router(config-router)#network 8.8.8.0 0.0.0.255 area 0 //
自治域0中的属于8.8.8.0/24网络的

在交通大学内部使用 PC0(192.168.1.2)来 ping 重庆大学的PC2(8.8.8.2)

在这里插入图片描述
下面我们将重庆大学的路由器看着 Internet 中的骨干路由器,那么这些路由器将不会转发内部/私有 IP 地址的包(直接丢弃)。我们通过在重庆大学路由器上实施访问控制 ACL ,即丢弃来自交通大学(私有 IP 地址)的包来模拟这个丢包的过程。
重庆大学路由器丢包的配置:

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
中的规则,实际就是广域网口如果收到来自 192.168.1.0/24 IP的包即丢弃

此时,再使用交通大学内部的 PC0(192.168.1.2)来 ping 重庆大学的 PC2(8.8.8.2)就不成功了,会显示目的主机不可到达(Destination host unreachable)信息。
在这里插入图片描述
下面,我们就开始实施 PAT。即:我们将会在交通大学路由器的出口上将内部/私有 IP 地址转换为外部/公开 IP,从而包的源 IP 发生了改变,就不会被重庆大学路由器丢弃,因此网络连通。

交通大学路由器 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。
在这里插入图片描述

11.虚拟局域网 VLAN

VLAN(Virtual Local Area Network)即虚拟局域网。通过划分 VLAN,我们可以把一个物理网络划分为多个逻辑网段即多个子网。

划分 VLAN 后可以杜绝网络广播风暴,增强网络的安全性,便于进行统一管理等。

在 CPT 中构建如下图所示拓扑:
在这里插入图片描述
Cisco 2960 交换机是支持 VLAN 的交换机,共有 24 个 100M 和 2 个 1000M 以太网口。默认所有的接口都在 VLAN 1 中,故此时连接上来的计算机都处于同一 VLAN,可以进行通信。

下面我们就该交换机的 24 个 100M 接口分为 3 个部分,划分到 3 个不同的 VLAN 中,id 号分别设为 10、20、30,且设置别名(computer、communication、electronic)以利于区分和管理。
交换机 VLAN 配置:

Switch>en
Switch#conf t
Switch(config)#vlan 10    // 创建 id10VLAN(缺省的,交换机所有接口都属于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    // 创建 id20VLAN
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    // 创建 id20VLAN
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-8Switch(config-if-range)#switchport mode access    // 设置为存取模式
Switch(config-if-range)#switchport access vlan 10    // 划归到 VLAN 10Switch(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 之间进行通信。网关通常在局域网的边界处,以控制和过滤流入和流出网络的流量。
如果要发起广播测试,可以使用 ping 命令。可以使用 ping 命令发送广播数据包,以测试局域网内的计算机是否能够接收到该数据包。

12.虚拟局域网管理 VTP

VTP(VLAN Trunk Protocol)即 VLAN 中继协议。VTP 通过 ISL 帧或 Cisco 私有 DTP 帧(可查阅相关资料了解)保持 VLAN 配置统一性,也被称为虚拟局域网干道协议,它是思科私有协议。 VTP 统一管理、增加、删除、调整VLAN,自动地将信息向网络中其它的交换机广播。

此外,VTP 减小了那些可能导致安全问题的配置,只要在 VTP Server 做相应设置,VTP Client 会自动学习 VTP Server 上的 VLAN 信息。

为演示 VTP,重新构建如下拓扑结构:
在这里插入图片描述
目前该网络都属于 VLAN 1,也即这些 PC 是可以相互通信的。前面说过,无论对于性能、管理还是安全等而言,现实中我们必须进行 VLAN 划分。

现在我们的要求是:新建两个 VLAN,然后让 PC0 和 PC1 属于 VLAN 2,PC1 和 PC3 属于 VLAN 3。

我们将在核心交换机 3560上进行如下工作:

设置为 server 模式,VTP 域为 cqjtu
新建 VLAN 2,网络号 192.168.1.0/24,网关 192.168.1.1
新建 VLAN 3,网络号 192.168.2.0/24,网关 192.168.2.1

各项配置完毕后,进行测试
在这里插入图片描述
同 VLAN 可以 ping 通,而不同 VLAN 不行(即使在同一交换机下,如从 PC0 到 PC1),且能够方便的统一规划和管理。

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

动态主机配置 DHCP、域名解析 DNS 以及 Web 服务在日常应用中作用巨大,我们构建如下简单的拓扑来进行练习
在这里插入图片描述
点击 CPT 拓扑图中的 Server 图标,设置其静态 IP 地址为 19.89.6.4/24,然后选择 Service 进行如下相关配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

✎ 试一试

先查看各 PC,看看是否获得网络配置 因为我们在 DNS 服务器中把谷歌和百度的 IP 都设为了 19.89.6.4,即Server-PT,所以,如果打开 PC0 的浏览器,输入 www.google.com 或者 www.baidu.com,我们都应该看到默认的 Server-PT 这个 Web 服务器的主页(你也可进行编辑)

在这里插入图片描述

15.WLAN初步配置

WLAN 即 WiFi 当前也是广泛的应用在各种场景。

我们通过构建如下拓扑的一个家庭 WLAN 来练习一下其相关的配置:
在这里插入图片描述
一般地,我们需要配置无线路由器的基本网络配置(IP、掩码、网关、DNS 等,现实中多为自动获取),然后再配置无线路由器的无线访问部分如连接密码及加密类型等,并开启 DHCP 功能

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值