【网络协议详解】——GNS3的使用(学习笔记)

📖 前言:在IT领域,网络协议的理解和掌握是至关重要的。GNS3和Wireshark是非常实用的工具,它们可以帮助你深入了解TCP/IP协议和网络的运作情况。

在这里插入图片描述


目录

  • 🕒 1. 网络协议分析工具——GNS3
    • 🕘 1.1 快速上手
    • 🕘 1.2 网际操作系统 IOS
  • 🕒 2. Wireshark的使用
    • 🕘 2.1 概述
    • 🕘 2.2 快速上手
    • 🕘 2.3 过滤器
  • 🕒 3. 实操

🕒 1. 网络协议分析工具——GNS3

GNS3 是一款图形化的网络模拟软件。

  • 模拟器的核心是 Dynamips 程序,通过构建一个虚拟的环境来运行真实的路由器网际操作系统(Internet Operating Systems,IOS)。
  • GNS3 是 Dynamips 的一种图形化前端工具,提供了友好的用户界面。

支持的网络设备包括:Cisco 路由器、(1700/2600/2691/3600/3725/3745/7200)、防火墙(PIX、ASA)、入侵检测系统(IDS)、交换机、Juniper 路由器、甚至能连接到实际网络中,处理真实的网络流量。

🔎 GNS3安装和使用详细图文教程,避免各种烦人报错

这里讲一下遇到报错的其中一个解决方案,正常的话可以忽略下文。
将DHCP改成静态IP:

在这里插入图片描述

1、按“Enter”键

在这里插入图片描述
2、按方向键选择“Networking”,之后按“Enter”键

在这里插入图片描述
3、按方向键将光标移到iface eth0 inet dhcp那里,如下图修改(改成静态)

在这里插入图片描述
4、按Ctrl + O保存,按“Enter”键,再按Ctrl + X重启
在这里插入图片描述
5、可以看到已经配置好静态IP了,接下来去VM设置一下

在这里插入图片描述
6、然后点“确定”,之后去设置点开“网络和Internet”,如下图修改
在这里插入图片描述
7、命令行 -> ipconfig 检查一下是否修改成功,之后命令行再ping一下看看是否正常

在这里插入图片描述
在这里插入图片描述
8、重启一下GNS3软件,看到绿色灯亮就是正常啦

在这里插入图片描述

🕘 1.1 快速上手

  1. 在工作区创建一个网络。
  2. 在工具栏中点击启动/恢复所有设备(Start/Resume all devices)按钮,启动所有设备。
  3. 在设备(路由器或计算机等)上单击右键,选择控制台(Console)命令,可打开一个连接到设备的 Telnet 配置窗口,在其中可执行设备命令。
  4. 在链路上单击右键,选择开始捕获(Start Capture)命令,之后会弹出Wireshark并捕获经过该链路的分组后进行分析。
  5. 用文件(File)菜单下的保存工程(Save Project)或将工程保存为(Save Project as)命令可将仿真拓扑及其设备配置保存到一个工程文件中(文件扩展名为gns3,不要使用中文命名)。这样再次用GNS3打开工程文件后,可恢复仿真网络拓扑和设备的配置信息。
    请添加图片描述

🕘 1.2 网际操作系统 IOS

网际操作系统(Internet Operation System,IOS)是Cisco 公司的交换和路由产品的软件平台,给不同需求的客户提供了一个统一的操作控制界面。

IOS 不仅支持标准的网络互联协议,如 RIP、EIGRP、OSPF、ISIS、BGP等,还支持大量 Cisco 私有的网络互联协议。

此外,IOS 还集成了如 Firewall、NAT、DHCP、FTP、HTTP、TFTP、Voice、Multicast 等诸多服务功能,是最为复杂和完善的网络操作系统之一。

IOS 的命令行接口(Command-Line Interface,CLI)是配置、监控和维护 Cisco 设备的最主要用户接口。

CLI 有多种模式:

  • user EXEC(用户模式)
  • privileged EXEC (enable)(特权模式,也称使能模式)
  • Global configuration(全局配置模式)
  • Interface configuration(接口配置模式)
  • ROM monitor(ROM监控模式)

用户模式

  • 用户登录到交换机、路由器时,就处于用户模式,用户模式下只有少量命令可以使用。

特权模式

  • 用户可以执行所有的 EXEC 命令。
  • EXEC 是 IOS 的命令解释器,用于解释和执行用户输入的命令。

全局 / 接口配置模式

  • 各种配置模式用于设置全局、接口或协议等的运行参数。
  • 参数可在特权模式下用 write 命令进行保存,当交换机或路由器重启后仍然有效。

ROM 监控模式

  • 用于设备恢复,当交换机或路由器由于 IOS 镜像或配置文件损坏而无法正常启动时,就进入 ROM monitor 模式。

当前可用的 CLI 命令集与所在的模式有关。
在这里插入图片描述

CLI 命令使用

  • CLI 命令关键字可缩写,只要当前已输入的命令字符能与其他命令相区分即可。
    • 例如,“configure terminal” 可简写为 “config t”。
  • 输入命令时,按 Tab 键也可自动补全命令关键字
  • 在任何模式下输入问号“”,IOS 会列出当前可用的命令集。
  • IOS 还支持字帮助和命令语法帮助功能。
    • 输入命令关键字前面的若干字符后,紧接着输入问号“?”(注意之间没有空格),可以列出以已输入字符开始的所有可用的命令,这称为字帮助
    • 输入命令关键字(可缩写)后,再输入一个空格,然后再输入问号,IOS会提示后续的命令关键字或参数,这称为命令语法帮助
  • IOS 会记录过去最近输入的 20 条命令,可用上下箭头或Ctrl-P 和 Ctrl-N 重新显示历史命令并执行。
  • 几乎所有的配置命令前都可增加 “no” 关键字,用于执行与命令功能相反的操作。
    • 例如,“no shutdown”表示端口开启。
  • CLI 命令对字母大小写不敏感,但设置的各种密码是大小写敏感的。

🕒 2. Wireshark的使用

🕘 2.1 概述

Wireshark 是一款开源的分组嗅探工具(Packet Sniffer)。

  • 支持在多种网络接口上捕获分组
    • 如,Ethernet、PPP、SLIP、HDLC、WLAN、FDDI、ATM、Frame Relay、WLAN、Loopback、USB、Bluetooth、IrDA 等。
    • 受操作系统支持的限制,在不同系统上支持的网络接口类型有所区别。
  • 支持上百种协议的分组结构分析。

分组嗅探器包括两部分:

  • 分组捕获器(Packet Capture Library),用于复制从指定接口发送和接收的所有数据链路层帧;
  • 分组分析器(Packet Analyzer),用于分析捕获的分组。
    • 如,显示分组的协议层次及其字段内容、追踪 TCP流、统计协议分布、分组长度分布等。

在这里插入图片描述

从指定网络接口捕获分组时,需要将网络适配器(网卡)的工作模式设置为混杂模式(Promiscuous Mode),这样分组嗅探器就能复制到达该接口的(发送或接收)所有的数据链路层帧。

🕘 2.2 快速上手

在这里插入图片描述

分组列表窗口(Packet-Listing Window):

  • 位于主界面上部,显示了所有已捕获的分组;
  • 其中的每一行都是一个捕获的分组的概要信息,包括:分组编号(NO.,注意该编号是由 Wireshark 分配的,并不是分组任何协议的首部字段)、捕获时间(Time)、分组源地址(Source)、分组目的地址(Destination)、协议(Protocol,分组的最高层协议)、分组长度(Length,字节数)以及协议的相关信息(Info.)等。
  • 用鼠标单击某一列的标题,就可按该列排序分组的显示顺序。

分组首部详细信息窗口(Packet-Header Details Window):

  • 位于主界面中间;
  • 显示了在分组列表窗口中被选中分组的各层协议的详细首部字段信息,包括:数据链路层协议首部、IP 协议首部、传输层协议(如TCP或UDP)首部、应用层协议首部以及数据。
  • 显示的每一层协议的首部信息可通过点击协议名称前的符号展开或隐藏。

分组内容窗口(Packet-Content Window):

  • 位于主界面下部;
  • 以十六进制字符和 ASCII 字符格式显示了在分组列表窗口中被选中分组的全部内容
  • 工具栏和分组列表窗口之间是分组显示过滤器的设置文本框。在此可输入显示过滤器,选择要在分组列表窗口中显示的捕获分组。

在 GNS3 链路上点击右键,选择开始捕获(Start Capture)命令会自动启动 Wireshark。

  • 可通过配置设置成捕获分组但不启动 Wireshark。

在 GNS3 链路上点击右键,选择停止捕获(Stop Capture)命令,可结束分组捕获,但不会关闭 Wireshark。

此时可在 Wireshark 中对已经捕获的分组进行各种分析,还可以通过保存(Save)命令(在 File 菜单下)将捕获的分组存储到文件中。

Wireshark 支持将捕获的分组保存为多种格式的文件,如文本文件、pcap文件、enc文件、trc文件等。

Wireshark 捕获(Capture)菜单下包含有捕获控制命令和捕获选项设置命令等;

概要(Summary)菜单下包含有 Wireshark 提供的流量分析、统计等相关命令。

🕘 2.3 过滤器

有两种类型的过滤器(Filter):

  • 捕获过滤器(Capture Filter):用于在捕获分组时设置过滤条件,只有满足条件的分组才被捕获。
  • 显示过滤器(Display Filter):用于在分组显示时设置过滤条件,只有满足条件的分组才被显示。
    • 显示过滤器并没有丢弃任何捕获的分组,只是不显示不满足条件的分组。

这两种过滤器的语法不同。

捕获过滤器(Capture Filter)采用 libcap 过滤语法

一个捕获过滤器是一个简单表达式(Primitive Expression),或由一组简单表达式通过逻辑关联词“and”或“or”连接而成。

[not] primitive [and | or [not] primitive …]

🔎 libcap 语法

选择捕获(Capture)菜单下的选项(Options)命令可打开捕获过滤器设置窗口。

可在捕获过滤器按钮(Capture Filter)后的文本框中输入捕获过滤器表达式,或点击捕获过滤器按钮,在弹出的捕获过滤器窗口中选择已存储的表达式。

在这里插入图片描述

显示过滤器(Display Filter)由协议及协议字段满足的条件构成

  • 协议及协议字段名称都采用小写;
  • 条件:
    • 可以用比较运算符比较协议字段值,用比较结果作为过滤条件;
    • 可以用逻辑运算符连接多个比较表达式,构成复杂的显示过滤器。
  • 对 Wireshark 支持的每一种协议,分组首部详细信息窗口中列出的所有协议字段都可作为显示过滤器的设置字段。

比较运算符有两种表示方法:英文字符、类似于 C 语言运算符

英文字符类 C 运算符描述例子
eq==相等ip.src == 10.0.0.5
ne!=不相等ip.src != 10.0.0.5
gt>大于frame.len > 100
lt<小于frame.len < 1000
ge>=大于或等于frame.len ge 0x100
le<=小于或等于frame.len le 0x20

逻辑运算符

英文字符类 C 运算符描述例子
and&&逻辑与ip.src==10.0.0.5 and tcp.flags.fin
or||逻辑或ip.src==10.0.0.5 or ip.src ==192.1.1.1
xor^^逻辑异或tr.dst[0:3] == 0.6.29 xor tr.src[0:3] == 0.6.29
not!逻辑非not llc
[…]子字符串运算符,用于从字符串中截取子字符串。有多种语法格式。
  • eth.src[0:3] == 00:00:83
    • eth.src [1-2]== 00:83
      • eth.src [:4] == 00:00:83:00
        • eth.src [4:]== 20:20
          • eth.src [2] == 83
in {…}成员运算符,用于测试协议字段值是否属于一个集合tcp.port in {80 443 8080}

熟悉显示过滤器语法可以在主界面的显示过滤器窗口直接输入过滤器表达式。

不熟悉语法可通过过滤器表达式对话框来设置。

点击显示过滤器文本框后的(编辑)表达式按钮(Expression),可打开显示过滤器设置对话框。

在这里插入图片描述

字段名称(Field Name)窗口中以树形结构组织Wireshark支持的所有协议及其字段名称,这里列出的协议和协议字段都可用于显示过滤器表达式设置。
Wireshark支持上百种协议,可通过输入协议名称开始的若干个字符快速在树中找到协议节点。点击协议节点前的符号可展开节点,以子节点方式列出相应协议的所有字段的名称。
关系(Relation)窗口给出了可用于所选择协议字段的表达式运算符,其中除“是否存在”(is present)是单目运算符外,其他都是双目运算符。若选择双目运算符,需要在“值”(Value)文本框中输入协议字段的比较值。
预定义值(Predefined values)窗口中列出了Wireshark预先定义的一些协议字段值(类似于C语言中的枚举变量)。如果表达式中的协议字段有预定义的值,可在此选择而不用再输入。
范围(Range)文本框可输入一个或多个整数范围区间

🕒 3. 实操

一、 开启GNS3虚拟机,新建拓扑文件,在工作区添加一台路由器(c3745)、两台交换机和两台PC,按下图连接路由器、PC和交换机,开启设备。并按照下表进行IP地址的配置,将PC机和路由器的配置指令截图如下:

在这里插入图片描述

设备接口IP地址地址掩码默认网关
R1F0/010.0.0.1255.255.255.0-
R1F0/110.0.1.1255.255.255.0-
PC-1E010.0.0.2255.255.255.010.0.0.1
PC-2E010.0.1.2255.255.255.010.0.1.1
R1#conf t		# 进入特权模式
R1(config)#inter
R1(config)#interface f0/0
R1(config-if)#ip address 10.0.0.1 255.255.255.0
R1(config-if)#
R1(config-if)#no shutdown
*Mar  1 00:04:57.427: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar  1 00:04:58.427: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int f0/1		# 可以简写
R1(config-if)#ip address 10.0.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#
*Mar  1 00:06:30.191: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to up
*Mar  1 00:06:31.191: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
PC-1> ip 10.0.0.2/24 10.0.0.1			# /24就是地址掩码255.255.255.0
Checking for duplicate address...
PC1 : 10.0.0.2 255.255.255.0 gateway 10.0.0.1

PC-1> save
Saving startup configuration to startup.vpc
.  done
PC-2> ip 10.0.1.2/24 10.0.1.1
Checking for duplicate address...
PC1 : 10.0.1.2 255.255.255.0 gateway 10.0.1.1

PC-2> save
Saving startup configuration to startup.vpc
.  done

二、 在PC1上pingPC2:

PC-1> ping 10.0.1.2
10.0.1.2 icmp_seq=1 timeout
84 bytes from 10.0.1.2 icmp_seq=2 ttl=63 time=14.108 ms
84 bytes from 10.0.1.2 icmp_seq=3 ttl=63 time=18.045 ms
84 bytes from 10.0.1.2 icmp_seq=4 ttl=63 time=15.082 ms
84 bytes from 10.0.1.2 icmp_seq=5 ttl=63 time=14.043 ms

三、 在PC-1和S1的链路上点击右键,进行抓包分析,说明捕获到有哪些协议产生的数据包。使用捕获过滤器进行过滤,只保留ICMP协议数据包,将过滤条件写出,截图如下。

在这里插入图片描述

在这里插入图片描述


OK,以上就是本期知识点“GNS3的使用”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~

❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/16431.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一篇你看得懂的SNP

单核苷酸多态性&#xff0c;&#xff08;Single Nucleotide Polymorphism&#xff0c;简称SNP&#xff09;指的是由单个核苷酸—A,T,C或G的改变而引起的DNA序列的改变&#xff0c;造成包括人类在内的物种之间染色体基因组的多样性。是指在基因组上单个核苷酸的变异&#xff0c;…

一篇带你了解大厂都在用的DDD领域驱动设计

一、DDD到底是什么 DDD全称Domain Driven Design&#xff0c;领域驱动设计。 为了解决快速变化、复杂系统的设计问题的 领域驱动设计是Eric Evans在2004年发表的Domain Driven Design&#xff08;领域驱动设计&#xff0c;DDD)著作中提出的一种从系统分析到软件建模的一套方…

Windows安装mariadb,配置环境变量(保姆级教学)

软件下载地址&#xff1a;https://mariadb.com/downloads/ 1.双击下载好的软件 2.点击next 3.勾选我同意&#xff0c;点击next 4.这里那你可以设置你要安装的路径&#xff0c;也可以使用默认的&#xff0c;之后点击next 5.如图所示&#xff0c;设置完点击next 6.接下来就默…

Java面试题总结 | Java面试题总结8- Redis模块(持续更新)

Redis 文章目录 Redisredis的线程模型Redis的Mysql的区别Redis和传统的关系型数据库有什么不同&#xff1f;Redis常见的数据结构zset数据结构Redis中rehash过程redis为什么不考虑线程安全的问题呢Redis单线程为什么还能这么快&#xff1f;为什么Redis是单线程的&#xff1f;red…

JSP 的本质原理解析:“编写的时候是JSP,心里想解读的是 java 源码“

JSP 的本质原理解析&#xff1a;“编写的时候是JSP&#xff0c;心里想解读的是 java 源码” 文章目录 JSP 的本质原理解析&#xff1a;"编写的时候是JSP&#xff0c;心里想解读的是 java 源码"每博一文案1. JSP 概述2. 第一个 JSP 程序3. JSP 的本质就是 Servlet4. J…

R语言 | 日期和时间的处理

目录 一、日期的设定与使用 1.1 as.Date()函数 1.2 weekdays()函数 1.3 months()函数 1.4 quarters()函数 1.5 Sys.localeconv()函数 1.6 Sys.Date()函数 1.7 再谈seq()函数 1.8 使用不同格式表示日期 二、时间的设定与使用 2.1 Sys.time()函数 2.2 as.POSIXct()函数…

【Python】selenium工具

目录 1. 安装 2. 测试 3. 无头浏览器 4. 元素定位 5. 页面滑动 6. 按键、填写登录表单 7. 页面切换 Selenium是Web的自动化测试工具&#xff0c;为网站自动化测试而开发&#xff0c;Selenium可以直接运行在浏览器上&#xff0c;它支持所有主流的浏览器&#xff0c;可以接…

P1915 [NOI2010] 成长快乐

此题为世纪难题 题目提供者 洛谷 难度 NOI/NOI/CTSC 输入输出样例 输入 #1 5 1 6 0 0 1 5 2 2 0 0 输出 #1 1 5 5 2 2 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~此题非常难&#xff0c;小白就不用想着独自完成了 题解&#xff1a; #…

常用HTML标签分享系列一

前言 HTML,超文本标记语言,由标签组成,分为单标签和双标签,每个标签的属性id唯一,但name不唯一,其基本结构为Dom(Document Object Mode 文档对象模型)树,如图: <html lang"en"> <head><!-- 头部内容 --> </head> <body><!-- 身体内…

安装配置goaccess实现可视化并实时监控nginx的访问日志

一、业务需求 我们安装了nginx后,需要对nginx的访问情况进行监控(希望能够实时查看到访问nginx的情况),如下图所示: 二、goaccess的安装配置步骤 2.1、准备内容 需要先安装配置nginx或OpenResty - 安装 Linux环境对Nginx开源版源码下载、编译、安装、开机自启https://b…

Photoshop如何使用绘画和图像修饰之实例演示?

文章目录 0.引言1.给图像添加渐变色效果2.快速创建一副素描画3.清除图像中多余的景物4.快速融合两张图像5.调整图像光影6.人像面部瑕疵修除7.美化眼睛 0.引言 因科研等多场景需要进行绘图处理&#xff0c;笔者对PS进行了学习&#xff0c;本文通过《Photoshop2021入门教程》及其…

第 02 章 OSPF实验

2.1 OSPF 回顾 2.1.1 实验目的 在 CCNA 中&#xff0c;我们学习到了 OSPF 是一个链路状态路由协议&#xff0c;和 RIP 以及 EIGRP 的最大 不同在于对于它们对于网络的认识以及根本的算法的不同。通过对 CCNA 中 OSPF 配置实验 的回顾&#xff0c;从中加强我们对 OSPF 的理解。…

DAY 51 LVS负载均衡——DR模式

数据包流向分析 &#xff08;1&#xff09;客户端发送请求到Director Server (负载均衡器)&#xff0c;请求的数据报文&#xff08;源IP是CIP&#xff0c;目标IP是VIP&#xff09;到达内核空间。 &#xff08;2&#xff09;Director Server 和Real Server 在同一个网络中&…

TIM-输出比较(PWM)——STM32

TIM-输出比较——STM32 Oc (Output Compare) 输出比较 输出比较可以通过比较CNT与CCR寄存器值的关系&#xff0c;来对输出电平进行置1、置0或翻转的操作&#xff0c;用于输出一定频率和占空比的PWM波形 每个高级定时器和通用定时器都拥有4个输出比较通道高级定时器的前3个通道…

RepVGG学习笔记

RepVGG 0 前言1 结构重参数化1.1 结构重参数化第一步&#xff08;将 C o n v 2 D Conv2D Conv2D算子和 B N BN BN算子融合以及将只有 B N BN BN的分支转换成一个 C o n v 2 D Conv2D Conv2D算子&#xff09;1.2 结构重参数化第二步&#xff08;多分支的 3 3 3\times3 33卷积融…

2023五一数学建模竞赛选题人数公布

数据来源自&#xff0c;各个平台人数投票统计&#xff0c;仅供参考。 具体数值比例为&#xff1a; 题号人数A504B1174C1905 目前&#xff0c;五一数模竞赛C题半成品论文基本完成制作&#xff08;累计35页&#xff0c;10000字&#xff09;&#xff0c;注&#xff1a;蓝色字体…

three.js学习 06 - 结合GSAP(补间动画)设置各种动画效果(运动效果与双击暂停动画等效果)

1. GSAP简介 GSAP&#x1f44d;&#x1f3fc;是前端业内非常有名的一个动效库&#xff0c;有大量的优秀的网站都在使用它。它不仅能在原生JS的环境下使用&#xff0c;也能配合各种当前流行的框架进行使用。 通过使用它&#xff0c;非常多原本实现起来很有难度的交互动画效果&a…

一文吃透Http协议

Http 协议 1. 初始 Http Http 协议 , 是应用层最为广泛使用的协议 , Http 就是浏览器和服务器之间的桥梁. Http 是基于 TCP 协议实现的 , 通常我们输入搜索框中的网址 (URL) , 浏览器就会根据这个 URL 构造出一个 Http 请求 , 发送给服务器. 服务器就会返回一个 Http 响应(包…

基于空间矢量脉宽调制(SVPWM)的并网逆变器研究(Simulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Doris(23):Doris的函数—字符串函数

1 append_trailing_char_if_absent(VARCHAR str, VARCHAR trailing_char) 如果s字符串非空并且末尾不包含c字符,则将c字符附加到末尾。 trailing_char只包含一个字符,如果包含多个字符,将返回NULL select append_trailing_char_if_absent(a,c);select append_trailing_cha…