拓扑完善
先对拓扑等进行设置(连好对应的线),注意:在连线之前务必关闭要相互连接的设备。
通 过html5 console登录方式进行登录,这样就可以直接双击交换机或者vpc进入对应的设备命令窗口。
交换机设置dhcp ip地址
这时候,我们在对应的电脑上就可以ping通我们的交换机了。
cli和API接口测试
cli命令方式(获取交换机设备信息)
使用这种方式之前一定要在交换机中对 nxapi 进行开启。
命令
feature nxapi //如果输入两次一样的就是关闭了
nxapi http port 80
在交换机中查看nxapi的状态
在浏览器界面打开n9k 交换机沙盒,直接输入 http://172.17.170.218
根据参考文档,可以使用python脚本进行编写测试。我是在windows上进行测试的,对应的要安装json和request的库,另外python的环境变量要注意加入…script/路径,它下面包含了pip,安装requests需要使用,一般安装python就会自带有,不需要另外安装。
import json
import requests
"""
Modify these please
"""
url='http://172.17.170.218/ins'
switchuser='admin'
switchpassword='admin'
myheaders={'content-type':'application/json'}
payload={
"ins_api":{
"version": "1.0",
"type": "cli_show",
"chunk": "0",
"sid": "1",
"input": "show ip interface mgmt 0",
"output_format": "json"
}
}
response = requests.post(url,data=json.dumps(payload), headers=myheaders,auth=(switchuser,switchpassword)).json()
output = json.dumps(response, indent=4, sort_keys=True)
print(output)
测试结果:
这是用cli的方式。
使用交换机 api方式 获取数据
参考链接
这种方式的话,必须要先进行认证(没有为什么。。。)。
认证方式就是生成一个对应的token。
主要的操作就是以下的json数据,然后post提交到交换机内部的对应地址(ip为交换机ip)
生成完token后,就可以根据参考链接文档中给出的api接口进行测试了。
文档接口示例
POST http://<mgmt0_IP>/api/mo/sys/intf.json
{
"interfaceEntity": {
"children": [
{
"l1PhysIf": {
"attributes": {
"id": "eth1/2",
"mode": "trunk",
"trunkVlans": "15-20"
}
}
}
]
}
}
Response
{
imdata:[]
}
在postman中进行测试,
重新生成token,再进行接口的测试(注意:http服务和https服务只能开一个,也就是说,如果开了http的话,生成token的访问地址需要直接变成http开头了)。
比较两者方式,个人认为cli命令访问方式是比较好用的,只需要改变input中的命令即可获得不同的结果,而且其他部分的代码不需要改动,另外url地址也是不变动的;而api方式的话,每次的URL地址不一定相同不说,它对应的请求payload内容也不一定是一样,改变大。