前言:在IT领域,网络协议的理解和掌握是至关重要的。GNS3和Wireshark是非常实用的工具,它们可以帮助你深入了解TCP/IP协议和网络的运作情况。
GNS3 是一款图形化的网络模拟软件。
支持的网络设备包括:Cisco 路由器、(1700/2600/2691/3600/3725/3745/7200)、防火墙(PIX、ASA)、入侵检测系统(IDS)、交换机、Juniper 路由器、甚至能连接到实际网络中,处理真实的网络流量。
GNS3安装和使用详细图文教程,避免各种烦人报错
①禁用VirtualBox网卡(解决90%的问题):
网络和Internet设置 -> 更改适配器选项 -> VirtualBox Host-Only Network 右键 -> 禁用
②将DHCP改成静态IP(解决100%的问题):
1、按“Enter”键
2、按方向键选择“Networking”,之后按“Enter”键
3、按方向键将光标移到iface eth0 inet dhcp
那里,如下图修改(改成静态)
4、按Ctrl + O
保存,按“Enter
”键,再按Ctrl + X
重启
5、可以看到已经配置好静态IP了,接下来去VM设置一下
6、然后点“确定”,之后去设置点开“网络和Internet”,如下图修改
7、命令行 -> ipconfig
检查一下是否修改成功,之后命令行再ping
一下看看是否正常
网际操作系统(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 有多种模式:
用户模式:
特权模式:
全局 / 接口配置模式:
ROM 监控模式:
当前可用的 CLI 命令集与所在的模式有关。
命令模式 | 访问方法 | 提示符 | 退出方法 | 用途 |
---|---|---|---|---|
User EXEC | 连接设备 | Router> | 输入命令logout 或quit |
改变终端设置 执行基本测试 显示系统信息 |
Privileged EXEC | 在User EXEC 模式下输入命令enable (若设置了enbale密码,还需输入密码) |
Router# | 输入命令disable 或exit ,退回到UserEXEC模式 |
执行show 和debug 命令向设备复制镜像文件 重启设备 管理设备配置文件 管理设备文件系统 |
Global configuration | 在 Privileged EXEC 模式下输入命令configure terrminal (简写conf t ) |
Router(config)# | 输入命令exit 或end ,或按Ctrl+Z 组合键,退回到Privileged EXEC 模式 |
设置设备全局属性 |
Interface configuration | 在Global configuration模式下输入命令interface (简写int ) |
Router(config-if)# | 输人命令exit 退回到Global Configuration模式输人命令 end ,或按Ctrl+Z组合键,退回到Privileged EXEC模式 |
设置指定端口属性 |
Line configuration | 在Global configuration模式中下输入命令line vty 或line console |
Router(config-line)# | 输人命令exit 退回到Global Configuration模式输人命令 end 退回到Privileged EXEC模式 |
设置指定终端属性 |
ROM configuration | 在privileged EXEC模式下输入命令reload,在系统启动前60s内按Ctrl+C组合键 | > 或boot>或rommon#> 注:#代表行号,每出现一行新的提示符,行号加1 |
输入continue命令 | 设备无法加载有效镜像时,默认进入ROM monitor模式 恢复设备IOS镜像文件 密码重置 |
CLI 命令使用:
configure termina
l” 可简写为 “conf t
”。Tab
键也可自动补全命令关键字。?
”,IOS 会列出当前可用的命令集。no shutdown
”表示端口开启。Wireshark 是一款开源的分组嗅探工具(Packet Sniffer)。
分组嗅探器包括两部分:
从指定网络接口捕获分组时,需要将网络适配器(网卡)的工作模式设置为混杂模式(Promiscuous Mode),这样分组嗅探器就能复制到达该接口的(发送或接收)所有的数据链路层帧。
分组列表窗口(Packet-Listing Window):
分组首部详细信息窗口(Packet-Header Details Window):
分组内容窗口(Packet-Content Window):
在 GNS3 链路上点击右键,选择开始捕获(Start Capture)命令会自动启动 Wireshark。
在 GNS3 链路上点击右键,选择停止捕获(Stop Capture)命令,可结束分组捕获,但不会关闭 Wireshark。
此时可在 Wireshark 中对已经捕获的分组进行各种分析,还可以通过保存(Save)命令(在 File 菜单下)将捕获的分组存储到文件中。
Wireshark 支持将捕获的分组保存为多种格式的文件,如文本文件、pcap文件、enc文件、trc文件等。
Wireshark 捕获(Capture)菜单下包含有捕获控制命令和捕获选项设置命令等;
概要(Summary)菜单下包含有 Wireshark 提供的流量分析、统计等相关命令。
有两种类型的过滤器(Filter):
这两种过滤器的语法不同。
捕获过滤器(Capture Filter)采用 libcap 过滤语法。
一个捕获过滤器是一个简单表达式(Primitive Expression),或由一组简单表达式通过逻辑关联词“and”或“or”连接而成。
[not] primitive [and | or [not] primitive …]
libcap 语法
选择捕获(Capture)菜单下的选项(Options)命令可打开捕获过滤器设置窗口。
可在捕获过滤器按钮(Capture Filter)后的文本框中输入捕获过滤器表达式,或点击捕获过滤器按钮,在弹出的捕获过滤器窗口中选择已存储的表达式。
显示过滤器(Display Filter)由协议及协议字段满足的条件构成。
比较运算符有两种表示方法:英文字符、类似于 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 |
[…] | 子字符串运算符,用于从字符串中截取子字符串。有多种语法格式。 |
|
|
in {…} | 成员运算符,用于测试协议字段值是否属于一个集合 | tcp.port in {80 443 8080} |
熟悉显示过滤器语法可以在主界面的显示过滤器窗口直接输入过滤器表达式。
不熟悉语法可通过过滤器表达式对话框来设置。
点击显示过滤器文本框后的(编辑)表达式按钮(Expression),可打开显示过滤器设置对话框。
字段名称(Field Name)窗口中以树形结构组织Wireshark支持的所有协议及其字段名称,这里列出的协议和协议字段都可用于显示过滤器表达式设置。
Wireshark支持上百种协议,可通过输入协议名称开始的若干个字符快速在树中找到协议节点。点击协议节点前的符号可展开节点,以子节点方式列出相应协议的所有字段的名称。
关系(Relation)窗口给出了可用于所选择协议字段的表达式运算符,其中除“是否存在”(is present)是单目运算符外,其他都是双目运算符。若选择双目运算符,需要在“值”(Value)文本框中输入协议字段的比较值。
预定义值(Predefined values)窗口中列出了Wireshark预先定义的一些协议字段值(类似于C语言中的枚举变量)。如果表达式中的协议字段有预定义的值,可在此选择而不用再输入。
范围(Range)文本框可输入一个或多个整数范围区间
一、 开启GNS3虚拟机,新建拓扑文件,在工作区添加一台路由器(c3745)、两台交换机和两台PC,按下图连接路由器、PC和交换机,开启设备。并按照下表进行IP地址的配置,将PC机和路由器的配置指令截图如下:
设备 | 接口 | IP地址 | 地址掩码 | 默认网关 |
---|---|---|---|---|
R1 | F0/0 | 10.0.0.1 | 255.255.255.0 | - |
R1 | F0/1 | 10.0.1.1 | 255.255.255.0 | - |
PC-1 | E0 | 10.0.0.2 | 255.255.255.0 | 10.0.0.1 |
PC-2 | E0 | 10.0.1.2 | 255.255.255.0 | 10.0.1.1 |
R1#conf t # 进入特权模式
R1(config)#interface f0/0 # 指定接口
R1(config-if)#ip address 10.0.0.1 255.255.255.0 # 配置接口IP与地址掩码
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 add 10.0.1.1 255.255.255.0 # 简写
R1(config-if)#no shut # 简写
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
博客链接: 作者博客主页