【思科模拟器Packet Tracer的一些操作】你见过这样PacketTracer吗

你见过这样PacketTracer吗?

请添加图片描述请添加图片描述

机柜

请添加图片描述

抓包

请添加图片描述

模拟城域网

各位网工朋友应该都用过思科模拟器

Packet Tracer是思科系统开发的一款网络模拟器,用于模拟计算机网络中的设备和网络环境。它可以帮助网络工程师或学生在没有真实设备的情况下学习和实验各种网络配置和协议。
Packet Tracer提供了一个虚拟的网络环境,可以模拟各种网络设备,如路由器、交换机、PC等,并支持多种网络协议,如IP、TCP、HTTP等。用户可以通过简单直观的图形界面来配置和连接这些设备,然后通过模拟器运行仿真。

作为网工的必备练习工具相信大部分人都用过或者听说过,但是虽然大伙经常用它,却不一定真正了解这个模拟器,而不知道它还有很多好用的功能。这波就让大伙看一下就我知道的一些奇淫巧计,从浅入深。

一些开胃小技巧

1.修改命令行背景

你可以通过"Options→Preference→fond→color"栏中,配置命令行的颜色,比如我在这里选择了经典黑绿配色
在这里插入图片描述
在这里插入图片描述

2.加速同调(时间加速)与绯红之王(时间重置)

在这里插入图片描述
左边的时钟可以重置网络,右边的箭头是加速时间,可以快速跳过生成树收敛、动态路由邻居建立协商等

3.快速解除输错命令卡逼

如下图所示:当你输错命令的时候会返回255.255.255.255,原理我们稍后分析,先给出解决方法
在这里插入图片描述
这种情况按下键盘Ctrl+shift+6,就能跳出漫长等待
在这里插入图片描述
无限255原理:思科的命令里没有你输入的内容,于是它认为你输入的是某域名,然后它尝试解析这个域名的IP,但是由于这也不是个域名,就会导致解析超时,等过了超时时间才能操作。
所以这里可以用命令:

Switch(config)#no ip domain-lookup 

取消了该设备的域名查找功能后,设备就不会自动查找不认识的命令的IP了,而是直接返回Unknown command…
在这里插入图片描述
OK接下来正片开始,大的要来了

一、模拟机柜

思科模拟器可以模拟物理机柜的布局和连接,就在左上角的Physical选项,如图,我先放一个典型的单臂路由
请添加图片描述
点击左上角"Physical"
请添加图片描述
请添加图片描述
可以看到,变成了物理机柜布局
请添加图片描述
这个模式可以让你更直观地看到网络设备的实际状态,你可以看到电源、网口、状态指示灯等,可以让学者对网络仿真有着更优秀的展现
请添加图片描述
请添加图片描述
你可以更改线缆的配色、点击设备从而配置设备,点击网线移动它,或者配置网络设备的背面等
请添加图片描述
当然你也可以在这个模式往机架上添加设备,比如我在这里添加了服务器(Server)、控制器(NetworkController)、3650-24PS、3560-24PS、2950-24

二、抓包分析

要知道思科模拟器的英文原名可不是叫Cisco Simulator而是叫Packet Tracer(包跟踪)啊,抓包功能不是白闹的。Packet Tracer自带抓包工具,在路由交换的实验中可以帮助我们排错。下面我将演示在路由器上抓取ping命令产生的ICMP数据包。

部署两台2621XM路由器,交叉线(虚线)连快速以太网(FastEthernet),刚连起来灯是红的:
在这里插入图片描述
我们需要分别配置两台路由器的接口Fa0/0,进入接口配置IP地址并激活(启动)接口,方法如下:
Router0:
在这里插入图片描述
Router1:
在这里插入图片描述
配置完毕后效果如下:
在这里插入图片描述
点击右下角的Simulation进入仿真模式
在这里插入图片描述
点击EditFilters
在这里插入图片描述
勾选ICMP协议,ping产生的报文属于ICMP echo消息
在这里插入图片描述
Router0开始ping对端Router1的F0/0接口IP地址:
在这里插入图片描述
准备好包了,但是不会发,因为仿真模式下你不让他动他是不会动的(如果某一天遇到配置完路由协议却迟迟不收敛,看看有没有开着仿真模式):中间按钮是连续发包,右边按钮是发一个包,滑块用来调节发包的速度
在这里插入图片描述
点击之后就可以看到报文交互过程了
在这里插入图片描述
我们可以把右边的框框拉出来放大,就能看到过程中的每个报文的数据
在这里插入图片描述
双击这里的报文查看详细
在这里插入图片描述
这里也可以选择点击"Previous Layer"、"Next Layer"看上一层或者下一层的数据
查看PDU(协议数据单元)的细节:
在这里插入图片描述
抓包完毕之后关闭仿真模式
在这里插入图片描述
你也可以用这个方法来进行DNS递归解析测试,按步骤搭建并配置好本地DNS服务器、根DNS服务器和授权DNS服务器,可以看到DNS递归解析是如何一步一步进行DNS解析请求的
在这里插入图片描述
详情请看视频 ▶思科的DNS服务器转发实验

三、SDN-思科DNA

思科模拟器Packet tracer 8.0.0于2021年/02/24发布,在其中新增加的功能,SDN网络控制器,已经可以使用我们的电脑中的工具访问API编程功能。如使用(VScode,curl,和Python requests)。
在这里插入图片描述

Cisco Packet Tracer 8.0.0 中的 SDN 控制器

Cisco Packet Tracer 8.0.0 中嵌入的 SDN 控制器类似于真实世界中的 SDN 控制器,如 Cisco DNA Center 和 APIC-EM。
在这里插入图片描述

该网络控制器可以通过其 Web GUI 或使用其 API 进行管理,提供了一个集中式的仪表板来查看网络状态,允许网络管理员快速识别和解决问题,并一次性将配置更改推送到所有受管理的设备。

网络控制器可以从主机上运行的真实世界应用程序访问,例如 Web 浏览器、VScode、Python、curl、Postman,以执行网络自动化脚本。但在能够在 SDN 控制器设备配置选项卡中启用之前,必须在 Cisco Packet Tracer 8.0.0 的偏好设置中启用对 SDN 控制器的外部访问。

步骤 1:在如下界面点击箭头所示的框,启用网络控制器 REST API 全局设置的外部访问

在这里插入图片描述

在这里插入图片描述
步骤 2:在 SDN 控制器配置选项卡中启用远程访问并配置 HTTP 端口
在这里插入图片描述
做完如上操作后,就可以使用Web浏览器对控制器进行访问了。在浏览器地址栏输入http://127.0.0.1:58001 或者 http://localhost:58001,出现如下的注册界面。分别输入用户名、密码和确认密码。
在这里插入图片描述
登陆后页面
在这里插入图片描述

SDN 控制器与 Python、VSCode 和 WSL 的编程

WSL 集成

Cisco Packet Tracer 8.0 的 SDN 控制器提供了一个 REST API,使用 Python 语言实现网络可编程性。由于 API 可以从主机访问,网络管理员可以利用真实世界的开发环境的强大功能,并使用 Microsoft VScode IDE 和 Windows Subsystem Linux(WSL 1 支持通过 http://localhost:<端口> 访问,使用 http://<主机 IP>:<端口> 的 WSL2 访问尚未经过测试,可能会遇到防火墙问题)对 Cisco Packet Tracer 模拟网络进行编程。
在这里插入图片描述
Microsoft VScode 及其 WSL 集成扩展编辑器也可用于使用 Python 3 简化 SDN API 的可编程性,利用诸如 Pylint 或 Sonarqube 之类的代码质量工具,并使用 GIT SCM 在团队内进行协作。
在这里插入图片描述
Cisco Packet Tracer 8.0 软件定义网络(SDN)控制器可以使用其 REST API 进行编程,您可以使用所选的编程语言进行访问,以下示例将使用 Python 3。

import json
import requests
	
def main():
	
	#Get security token
	securityUrl = "http://localhost:58000/api/v1/ticket"
	securityData = json.dumps({"username": "test","password": "test"})
	securityHeader = {'Content-type': 'application/json'}
	r = requests.post(securityUrl, data=securityData, headers=securityHeader)
	token = r.json()["response"]["serviceTicket"]
	print("token: " + token)

	#Get hosts
	apiAccessHeader = {}
	apiAccessHeader['content-type'] = 'application/json'
	apiAccessHeader['x-auth-token'] = token
	r = requests.get('http://localhost:58000/api/v1/network-device', headers=apiAccessHeader);
	print(json.dumps(r.json(), indent=2))

if __name__ == "__main__":
	main()

代码的执行结果是一个 JSON 负载,其中列出了所有已连接设备的相关信息,包括但不限于:设备的收集状态、连接的接口名称、连接的网络设备 IP 地址、连接的网络设备名称、错误描述、全局凭证 ID、主机名、ID、接口数量、库存状态详情、IP 地址、最后更新时间、MAC 地址、管理 IP 地址、平台 ID、产品 ID、可达性故障原因、可达性状态、序列号、软件版本、类型和运行时间等。

token: NC-34-2444786aba2d4ef787d5-nbi
{
  "response": [
    {
      "collectionStatus": "Managed",
      "connectedInterfaceName": [
        "FastEthernet0/3",
        "GigabitEthernet0/0/0"
      ],
      "connectedNetworkDeviceIpAddress": [
        "",
        "2.1.1.2"
      ],
      "connectedNetworkDeviceName": [
        "Switch",
        "Router"
      ],
      "errorDescription": "",
      "globalCredentialId": "ca8f6f2a-eef2-488e-96da-96c42eb80548",
      "hostname": "Router",
      "id": "FDO13025YJT-uuid",
      "interfaceCount": "4",
      "inventoryStatusDetail": "Managed",
      "ipAddresses": [
        "1.1.1.5",
        "2.1.1.1"
      ],
      "lastUpdateTime": "31",
      "lastUpdated": "2020-02-14 20:18:51",
      "macAddress": "000C.85AD.AB89",
      "managementIpAddress": "1.1.1.5",
      "platformId": "ISR4300",
      "productId": "ISR4331",
      "reachabilityFailureReason": "",
      "reachabilityStatus": "Reachable",
      "serialNumber": "FDO13025YJT-",
      "softwareVersion": "15.4",
      "type": "Router",
      "upTime": "18 minutes, 58 seconds"
    },
    {
      "collectionStatus": "Managed",
      "connectedInterfaceName": [
        "GigabitEthernet0/0/1",
        "GigabitEthernet0/0/0"
      ],
      "connectedNetworkDeviceIpAddress": [
        "2.1.1.1",
        "3.1.1.2"
      ],
      "connectedNetworkDeviceName": [
        "Router",
        "Router"
      ],
      "errorDescription": "",
      "globalCredentialId": "ca8f6f2a-eef2-488e-96da-96c42eb80548",
      "hostname": "Router",
      "id": "FDO1302EP0P-uuid",
      "interfaceCount": "3",
      "inventoryStatusDetail": "Managed",
      "ipAddresses": [
        "2.1.1.2",
        "3.1.1.1"
      ],
      "lastUpdateTime": "31",
      "lastUpdated": "2020-02-14 20:18:51",
      "macAddress": "000C.85A6.7E56",
      "managementIpAddress": "3.1.1.1",
      "platformId": "ISR4300",
      "productId": "ISR4321",
      "reachabilityFailureReason": "",
      "reachabilityStatus": "Reachable",
      "serialNumber": "FDO1302EP0P-",
      "softwareVersion": "15.4",
      "type": "Router",
      "upTime": "18 minutes, 58 seconds"
    },
    {
      "collectionStatus": "Managed",
      "connectedInterfaceName": [
        "GigabitEthernet0/0/1"
      ],
      "connectedNetworkDeviceIpAddress": [
        "3.1.1.1"
      ],
      "connectedNetworkDeviceName": [
        "Router"
      ],
      "errorDescription": "",
      "globalCredentialId": "ca8f6f2a-eef2-488e-96da-96c42eb80548",
      "hostname": "Router",
      "id": "FDO130280QN-uuid",
      "interfaceCount": "3",
      "inventoryStatusDetail": "Managed",
      "ipAddresses": [
        "3.1.1.2"
      ],
      "lastUpdateTime": "31",
      "lastUpdated": "2020-02-14 20:18:51",
      "macAddress": "0002.4A8E.036D",
      "managementIpAddress": "3.1.1.2",
      "platformId": "ISR4300",
      "productId": "ISR4321",
      "reachabilityFailureReason": "",
      "reachabilityStatus": "Reachable",
      "serialNumber": "FDO130280QN-",
      "softwareVersion": "15.4",
      "type": "Router",
      "upTime": "18 minutes, 58 seconds"
    },
    {
      "collectionStatus": "Unsupported",
      "errorDescription": "",
      "globalCredentialId": "ca8f6f2a-eef2-488e-96da-96c42eb80548",
      "id": "FTX1524S1GF-uuid",
      "interfaceCount": "3",
      "inventoryStatusDetail": "Unsupported",
      "ipAddresses": [
        "1.1.1.10"
      ],
      "lastUpdateTime": "31",
      "lastUpdated": "2020-02-14 20:18:51",
      "macAddress": "00D0.9794.E246",
      "managementIpAddress": "1.1.1.10",
      "platformId": "",
      "productId": "",
      "reachabilityFailureReason": "NOT_VALIDATED",
      "reachabilityStatus": "Reachable",
      "serialNumber": "",
      "type": "",
      "upTime": ""
    },
    {
      "collectionStatus": "Unreachable",
      "errorDescription": "",
      "globalCredentialId": "ca8f6f2a-eef2-488e-96da-96c42eb80548",
      "id": "uuid",
      "interfaceCount": "9",
      "inventoryStatusDetail": "Unreachable",
      "ipAddresses": [
        "1.1.1.11"
      ],
      "lastUpdateTime": "31",
      "lastUpdated": "2020-02-14 20:18:51",
      "macAddress": "",
      "managementIpAddress": "192.168.0.1",
      "platformId": "",
      "productId": "",
      "reachabilityFailureReason": "Unable to ping to device. ",
      "reachabilityStatus": "Unreachable",
      "serialNumber": "",
      "type": "",
      "upTime": ""
    }
  ],
  "version": "1.0"
}
  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值