- 实验1:网络命令的使用
- 实验2:数据链路层—用集线器组建局域网
- 实验3:数据链路层—以太网二层交换机原理实验
- 实验4:数据链路层—交换机中交换表的自学习功能
- 实验5:数据链路层—交换机VLAN实验
- 实验6:数据链路层—交换机VLAN中继实验
- 实验7:数据链路层—生成树配置
- 实验8:数据链路层—以太通道配置
- 实验9:IPv4地址 — 分类地址
- 实验10:IPv4地址 — 划分子网
- 实验11:IPv4地址 — 构造超网(无分类编址)
- 实验12:IP数据包的发送和转发流程
- 实验13:默认路由和特定主机路由
- 实验14:静态路由配置错误导致的路由环路问题
- 实验15:聚合了不存在的网络导致的路由环路问题
- 实验16:网络故障导致的路由环路问题
- 实验17:路由信息协议RIP
- 实验18:开放最短路径优先OSPF
- 实验19:边界网络协议BGP
- 实验20:网际控制报文协议ICMP的应用
- 实验21:运输层的端口号
实验1:网络命令的使用
ping
简介
Ping是个使用频率极高的ICMP协议的程序,用于确定本地主机是否能与另一台主机(发送与接收)数据报,需要注意的是:成功与另一台主机进行一次或两次数据报交换
并不表示TCP/IP配置就是正确的,我们必须执行大量的本地主机与远程主机的数据报交换,才能确信TCP/IP的正确性
基本Ping命令返回数据包分析

bytes值:数据包大小,也就是字节。time值:响应时间,这个时间越小,说明你连接这个地址速度越快。TTL值:Time To Live,表示DNS记录在DNS服务器上存在的时间,它是IP协议包的一个值,告诉路由器该数据包何时需要被丢弃
TTL值分析对方操作系统

这些不重要,因为并不是唯一确定的
Ping命令网络排查常用命令
Ping结合其他参数命令

挑选出几个常用参数命令的演示
持续不断发出请求,除非你手动停止ping -t www.baidu.com
默认发生4个请求包,这里设置为10个请求包ping -n 10 www.baidu.com

默认发送4个数据包,显示经过6个路由器的IP地址,最多显示9个ping -r 6 www.baidu.com

默认包的大小为32,这里设置为1024ping -l 1024 www.baidu.com

ipconfig
简介
ipconfig可查看电脑ip参数配置信息,如ip地址、默认网关、子网掩码、DNS(域名服务)、WINS服务器等地址
ifconfig命令参数

这里只介绍常用的参数命令
显示所有信息,这里内容太多不做完整截图ipconfig -all

执行下面命令后,我断网了,然后又自动重新连接到网络ipconfig -release
更新(再次获取)所有适配器ip设置参数 ,这个命令比起上面那个命令慢很多,ipconfig -renew
同时这个向DHCP服务器重新租用一个IP地址大多数情况下网卡将重新赋予和以前所赋予的相同的IP地址
netstat
简介
用于显示与IP,TCP,UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况
参数命令使用

arp
-a 查看arp缓存-d 删除arp缓存-s 向arp高速缓存中人工输入一个静态项目。目的是让IP地址对应的MAC地址静态化,这样,病毒或攻击者就无法用伪造MAC地址的方法破坏局域网了
arp -a
tracert
简介
跟踪路由路径的一个实用程序
tracert命令参数

我们把常用命令来实验一下
tracert -d www.baidu.com

route
简介
Route命令用于在本地IP路由表中显示和修改条目。在排除网络故障时常会用到
route命令参数
清除所有网关项的路由表 route -f

实验2:数据链路层—用集线器组建局域网
接下来的实验都是实操,有图形界面和命令界面的配置
我们通过集线器组建局域网来了解集线器的工作原理
下面我们使用一个集线器和三台主机构建一个局域网,如下图所示:

我们让主机1 向 主机 2 发生数据包,查看整个环节

我们可以清晰看到,集线器是广播主机1的请求给主机2、3.主机3检查数据包头发现不是请求的自己就不作回答,只有主机2给出答复由于集线器是广播连接到集线器上的所有主机(出去发送方),所有主机2的答复也会发给主机3一份,但主机3依旧不作任何操作,只有主机1会接受这个返回的数据包
实验3:数据链路层—以太网二层交换机原理实验
交换机不会像集线器那样每次都广播转发,只要交换机的交换表有目标IP信息就会单独转发,如果没有的话才会去广播学习
网络拓扑图已经搭建完毕,如图所示:

接下来我们发生请求,学习交换机原理

我们发现,由于初次搭建这个局域网,所以交换机的交换表没有任何内容,就在主机1要向主机2 发生ICMP请求时,交换机会先检查自己的交换表,发现没有与之对应的信息,就像集线器那样广播,发生ARP请求给到主机2 和 主机3 ,主机3不给回复,主机2给予回复,于此交换机就获得主机2的信息,同时储存到交换表当中,紧接着我们看到,主机1再次发送ICMP请求给交换机,交换机一下子就找到主机2的信息,直接发送给主机2,然后再经由交换机返回信息响应给主机1
实验4:数据链路层—交换机中交换表的自学习功能
其实上面一节,就把这部分内容讲清楚了,下面我们详细进行说明,与此同时学习几个命令
我们继续使用上个实验的拓扑图,先来学两个命令,对交换机的交换表进行处理
show mac-address-table 显示交换机交换表信息
clear mac-address-table 清空交换机交换表信息
鉴于上个实验使得交换机交换表有信息,我们先对其进行清空,再查看是否清空完毕

准备工作做好以后,我们就开始学习交换机学习原理

我们现在去查看交换机交换表信息

学习过程上个实验说的明白,这里用思维导图来做个说明

实验5:数据链路层—交换机VLAN实验
接下来我们要学习很多命令,尽管可以界面设置,但是在现实生活中我们是要使用命令来配置的
同时处在不同VLAN下的主机是无法通信的,这也是我们这节实验要去证明的

但是,基于端口划分方式的应用最多,这里我们也只学习这个
先提前学习命令,再去完成实验
vlan 1 # 创建VLAN 1name valn-name #给VLAN命名为vlan-name,继上个命令之后switchport mode access #将端口定义为access模式,应用于端口模式下 另外一个模式是trunkswitchport access vlan 1 #将端口划分到特定VLAN 1 ,应用于端口模式下show vlan #显示vlan及端口信息show vlan 1 #显示特定vlan信息interface fastethernet 0/1 (可简写为 int f0/1) ,全局模式下可接入接口配置模式
我们初步构建好网络拓扑图,但这里我们还没有划分VLAN

我们要实现的目标是左半边划分到VLAN1,右半边划分到VLAN2
然后我们让VLAN1下的主机1 请求 VLAN2下的主机2 看能否成功,因为如果不是VLAN划分的话,是可以请求成功的,前面实验已经证明过
那么我们开始使用命令划分VLAN
我们看到交换机下有默认的VLAN,我们在分配给主机分配IP的时候默认情况下处在VLAN1下面

既然如此,我们只需要去把右半部分写在VLAN2下即可,也达到命令学习的目的
vlan 2 #创建vlan 2no vlan 2 #删除vlan 2name vlan2 #命名为vlan2interface range f0/4-6 #将f0/4-6端口加入此vlanswitchport mode access #将端口定义为access模式,应用于端口模式下switchport access vlan 2 #将端口划分到特定VLAN 2 ,应用于端口模式下exit #退出全局模式do show vlan #显示vlan配置信息
配置成功

然后就开始我们的请求实验,看能否让主机1请求到主机6

可见无法请求成功
由于交换机交换表没有内容,所以会把信息发生同VLAN下的其他主机进行学习
实验6:数据链路层—交换机VLAN中继实验
简单来说就是 利用两个交换机把VLAN连接起来,尽管如此,也要知道的是必须是同VLAN下才可以请求成功,下面我们需要给出实验证明
先搭建网络拓扑

这里我们要让PC2访问PC6,目前他们是在VLAN2下,但是是在access模式下,我们来验证这种情况下能否请求成功

创建PDU之后,我们来看结果

显然是不可以的,我们需要去把这两个主机设置为trunk模式,才可以实现两个交换机的同VLAN下的传输


大家学习的时候不要使用VLAN1,而是新建VLAN,否则你会失败的,但我也不知道为什么,反正这个实验浪费了我一个下午,唉….
希望你是顺顺利利的
实验7:数据链路层—生成树配置
生成树协议主要用来解决交换网络中的环路问题,使同一个广播域中物理链路上形成的环路,在逻辑上无法形成环路,避免大量广播风暴的形成。另外,生成树还可以为交
换网络提供冗余备份链路,该协议将交换网络中的冗余备份链路从逻辑上断开,当主链路出现故障时,能够自动切换到备份链路,保证数据的正常转发
我们先来构建一个环形网络拓扑图,可以看到有端口堵塞

显示这在物理上是闭环,但在逻辑上并不是,因为我们看到只有交换机1 的部分端口堵塞,其他都是顺畅可通过的,这个时候我们引入两台主机,看请求是否能发过去

我们使用cmd命令,让主机1 ping 主机2,可以看到这是成功的,其经过路线,想必大家也都一目了然

这就是STP协议树的功能,我们配置的交换机默认情况下是开启协议树的,这里我们将其关闭,看看没有协议树的情况下,会带来什么坏处
no spanning-tree vlan 1 关闭vlan 1 下的STP
查看交换1 的 端口状态,尽管我们可以通过图示看到
接下来我们进入全局模式把协议关闭
config terminalno spanning-tree vlan 1 //根据你的需要指定vlan
关闭协议树后的结果图

紧接着我们去把其他交换机也关闭,可以看到这时候没有任何地方有堵塞

我们发出请求,你在软件上会看到无止境的数据包的发送和接受

这会导致严重的浪费网络资源,导致网络堵塞
这时候主机1访问主机2 ,时间超时,可见生成树协议的作用有多必要

生成树协议解决了闭环导致的网络堵塞问题,通过对部分端口的关闭来处理这个问题,如果关闭交换机上的协议树,会导致因为没有端口闭塞而路线唯一
实验8:数据链路层—以太通道配置
实验9:IPv4地址 — 分类地址
我们知道主要使用的是 A类 、 B类 、 C类
先来搭建网络拓扑,看在不同类(不同网段也是不可以的)的下的主机能否通信

打开命令行,可见结果是无法通信

既然不在同类地址下,也就代表不在一个网段下,即使是用同一根网线连接也是无法通信,接下来我们使用路由器使得他们通信,然后介绍一下网关
先来看一下网络拓扑图

为了能够让两台主机通信,需要对路由器进行配置,也就是让主机先能够和路由器进行数据传输,再由路由器进行数据转发
既然要通信,那就要在一个网段下,所以对路由器进行配置

配置如下图

大家别看到这里末尾是254就以为有什么特殊含义,只要是一个网段下就行,IP没有固定,你也可以设置为192.168.1.5 下面那个你也可以设置为10.1.2.2 当然,后面我们的网关设置也要和这里相同
大家可能觉得这样就可以实现通信,但实际还是不可以,因为主机并不知道路由器的IP地址,是无法进行数据通信的,所以我们需要对主机进行网关设置
下面就是配置图


进行上述配置以后,再来进行通信测试

网关作用简介
在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络B向网络A转发数据包的过程所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信
实验10:IPv4地址 — 划分子网
这四台主机可以相互通信,因为在一个网段下并且没有划分VLAN
接下来我们对其进行子网划分,下面是网络拓扑图,你觉得四台主机还能通信吗?

下面,我们来验证一下通信情况



可见,主机192.168.0.1和主机192.168.0.2在一个网段下,和另外两个主机不在一个网段
下面我就不验证其他主机情况,实际上主机192.168.0.65和192.168.0.66在一个网段下,和另外两个主机不在一个网段下
下面我们就是来看看这是如何进行子网划分的(尽管这个不属于实验内容,但实在很重要)

可见这里均匀划分了四个子网,分别是
255.255.255.00000000
255.255.255.01000000
255.255.255.10000000
255.255.255.11000000
分别对应为
255.255.255.0—255.255.255.63(子网1)
255.255.255.64—255.255.255.127(子网2)
255.255.255.128—255.255.255.191(子网3)
255.255.255.192—255.255.255.255(子网4)
至于如何计算的,我们下面详细介绍一个,大家就可以推演出下面的子网
255.255.255.00000000
我这里这里确定的是网络号变化的值为加粗部分,还可以变为01,10,11,分别对应下面的其他子网
对于可变的部分保持不动,后面数字不论是什么,全部转换为0和1
全部转换为0 ,代表最小地址 255.255.255.00000000 即 255.255.255.0
全部转化为1,代表最大地址 255.255.255.00111111 即 255.255.255.63
这里还要注意的是,要去除网络地址(255.255.255.0)和广播地址(255.255.255.63),最终得到子网范围
子网范围就是 最小地址—最大地址 即 255.255.255.1—255.255.255.62
进行这一系列分析,想必大家已经知道本次实验的根本,也验证了上面的为什么有些主机可以通信,而有些却不行
接下来我们利用路由器,让不在一个网段下的主机进行通信吧,操作过程和上次实验一样
路由器配置

网关设置




进过一番配置后,成功通信

实验11:IPv4地址 — 构造超网(无分类编址)
先来看一道题目

分析

然后对主机和路由器进行IP地址分配
到实际软件中实现网络拓扑
根据这道题,提出四个问题
无分类编址的计算方法
其实很简单,计算思路和子网划分是一样的。不过这里要特别注意的是地址掩码的计算方法

通信问题

答案是可以通信,毕竟在一个网段下


之所以不可以通信,是因为我们没有进行网关设置,这个知识前面实验已经讲清楚,这里不赘述
下面这个是我要讲的重要知识点,也就是静态路由的意义

也许刚开始你觉得可以(都已经进行网关设置),但实际上是无效的
因为路由只知道和自己直连的路由器的地址,而不知道相邻路由器的地址,这就需要我们进行静态路由配置

我们可以看到这个路由器是没有192.168.16.196/30这个目的网络信息的,甚至可以说它都不知道有这个网络,这就需要我们进行配置了

对于路由器直连的网络,路由器可以自行得出,而对于非直连的需要进行人工配置,就可以成功通信了

还有一个就是路由聚合

实验12:IP数据包的发送和转发流程
实验13:默认路由和特定主机路由
参考学习链接:https://blog.csdn.net/weixin_42649617/article/details/105765748
先选择特定主机路由,才会考虑默认路由
默认路由

- 路由器R1要向主机B、C、D转发数据,都必须得经过R2,路由表中三条信息的下一跳的地址都是10.0.0.1。在这里,我们可以考虑将下一跳地址R2作为默认路由地址。于是可以将另外三条信息从路由表中删除。这样就可以减少路由器中项目的条数,减少存储器的占用,增加查表速度
- 默认路由,由于其目的网络和地址掩码全为0,因此可以任何一个目的地址ip都可以与之匹配。所以默认路由智能放在路由器的最后
[
](https://blog.csdn.net/weixin_42649617/article/details/105765748)
特定路由
- 因特网所有的分组转发都是基于目的主机所在的网络,但在大多数情况下都允许有这样的特例,即对特定的目的主机指明一个路由。这种路由就叫做特定主机路由
- 采用特定主机路由可使网络管理人员能够更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由
- 在对网络的连接或路由表进行排错时,指明到某一主机的特定路由就十分有用
- 前缀32位,或掩码为255.255.255.255
[
](https://blog.csdn.net/weixin_42649617/article/details/105765748)
图中路由表的第一条信息就是特定主机E的ip地址,它对应的掩码是255.255.255.255
了解上述知识点,我们学到了什么?
完善路由表信息,即 尽量使得路由表中的信息最少,且尽量设置特定主机路由和默认路由

实验14:静态路由配置错误导致的路由环路问题
网络实验拓扑图

明显两台主机可以通信

接下来我们对网络拓扑进行一个修改,这在现实生活中可认为是网络工作人员配置错误
修改的是R2
让主机 H2 访问 主机 H1

TTL减为0方才丢包,所以设置TTL值的大小可以有效防止这种错误配置出现的情况

实验15:聚合了不存在的网络导致的路由环路问题
网络拓扑图

通过测试,主机H1 可以 和 H2 通信


我们看数据包的转发,一直在路由器6和路由器5之间来回转发。我们设定的TTL为8,所以一共转发了8次就丢弃数据包了,而路由器之间就转发了7次

聚合路由中其实有两个不存在的网络192.168.0.0/24和192.168.3.0/24,当R2要发送数据报到192.168.3.0/24,数据报会到达R1的接口1,查找R1的路由表,没有该网络的路由,就会按默认路由转发回R2的接口0 ,这样循环转发,直到TTL值为0
我们可以使用黑洞路由来解决这个问题

当数据报的目的地址为黑洞路由的目的网络,就会被丢弃而不被转发。同样,如果出现网络故障而导致某个网络无法被联通造成的路由环路,也可以使用这种解决办法。

进行上述配置以后,得到如下验证,显然没有在路由器5 和 路由器6 之间环路转发。我的TTL设置为8

更详细的数据包

实验16:网络故障导致的路由环路问题
这次实验沿用上次实验的网络拓扑,没有任何改变

我们来让主机H2 向 主机H1发送请求,得到如下结果

这又是环路问题,是因为没有找到请求的目标网络,路由器5就会根据默认路由转发,而其默认路由设置的是路由器6,导致形成环路,直到TTL为0

解决方法还是设置黑洞路由

可见没有形成环路了
我们再来看数据包信息

