APP下载

基于RESTCONF API的虚拟化资源访问

2022-07-23李春平

现代计算机 2022年10期
关键词:IP地址虚拟化编程

李春平

(广东白云学院大数据与计算机学院,广州 510000)

0 引言

在基础设施的资源分配与管理中,目前通常采用虚拟化技术、云计算的方式实现资源池化管理和按需分配。计算资源、存储资源、网络资源分别都有相应的虚拟化技术的解决方案,前两者都有相对成熟的技术,而对于网络资源的虚拟化解决方案,目前提得最多的是SDN技术,即软件定义网络。

SDN的主要思想是将转控平面分离,转发平面即数据平面,承担数据转发功能,而控制管理功能交由控制平面负责。这样做的好处是可以通过编程的方式,实现对设备配置、监控和管理的自动化处理,解决传统手动配置、监管过程中由于人为错误导致的网络失效。另一方面,通过软件开发的方式定义网络,还能实时对网络故障进行定位并及时响应,采取措施处理问题。

1 RESTCONF API概述

在支持SDN的网络设备中,需要提供编程接口和外部程序进行通信。目前大多数SDN设备提供各种丰富的API接口,其中NETCONF和RESTCONF应用较为普遍。RESTCONF协议是NETCONF的一个功能子集,通过RESTful API提供了一个轻量级的网络设备访问方案。RESTCONF具有如下特点:

(1)遵循类似REST的原则,提供对设备配置信息的访问和控制。

(2)使用HTTP协议传输数据,并使用NETCONF中定义的数据格式和访问方法。

(3)使用XML或JSON等格式的结构化数据,以及YANG模型来提供表征性状态转移API,从而实现通过编程方式对设备进行访问和管理。

尽管RESTCONF比NETCONF更简便,容易实现,其目的并非完全取代NETCONF,而是提供一个与NETCONF数据格式兼容的HTTP访问界面,并遵循REST框架原则。RESTCONF和NETCONF操作的主要区别如表1所示。

表1 RESTCONF和NETCONF操作的主要区别

2 构建虚拟网络

2.1 部署虚拟机资源

用VMWare作为虚拟机管理平台,在虚拟机盒子里安装DEVASC虚拟机、CSR1kv虚拟机。安装完成后,在主机网络连接中查看,有一个VMware Network Adapter VMnet1的虚拟网卡,其IPv4地址/掩码:192.168.56.1/24。

使用SecureCRT远程登录工具登录到CSR1kv虚拟机上,在主机框里填入CSR1kv虚拟机的IP地址192.168.110.130,用户名cisco,密码cisco123!。输入无误可以远程登录到CSR1kv虚拟机。

2.2 启用RESTCONF及关联服务

在使用RESTCONF API访问虚拟资源时,其数据是通过HTTP协议获取,因此虚拟设备上需要启用RESTCONF和HTTP服务。在CSR1kv虚拟机上,部署的HTTP服务是nginx。

2.2.1 启用RESTCONF服务

在CSR1kv虚拟机上验证是否开启了RESTCONF服务。使用show platform software yang-management process命令检验与RESTCONF服务关联的所有服务进程是否都在运行。

打开配置窗口

CSR1kv#show platform software yang-management process

2.2.2 启用HTTPS服务

nginx服务器采用的是HTTPS协议。如果nginx未在虚拟机上运行,可通过执行下面的命令开启nginx服务。

配置完成后,使用show platform software yang-management process命令检查nginx服务是否已正常运行。

2.2.3 Webui测试

CSR1kv虚拟机提供Web管理界面,当CSR1kv虚拟机上nginx服务正常开启后,使用浏览器可以访问CSR1kv虚拟机。在URL地址栏输入https://192.168.110.130,输入正确的用户名和密码后将打开CSR1kv的Web界面,如图1所示。

图1 CSR1kv虚拟机的Web界面

2.3 虚拟网络连通性测试

运行虚拟机devasc,在虚拟机devasc终端上ping CSR1kv虚拟机的IP地址192.168.110.130,测试虚拟机之间的网络连通性。

结果表明,虚拟机之间网络连通性正常。

3 RESTCONF API调用

3.1 初始化工作

3.1.1 关闭SSL验证

使用Postman工具来构造请求数据。Post⁃man是一个模拟HTTP客户端的API测试工具,可以发送各种HTTP请求。进入DEVASC虚拟机桌面,打开Postman。Postman默认会打开SSL认证验证,而在这个测试案例中不会用到SSL证书,因此这里需将SSL认证关闭。

3.1.2 凭证检查

在Postman里构造GET请求,URL地址为https://x.x.x.x/restconf/。这里x.x.x.x为虚拟机的IPv4地址。凭证检查设置为“Basic Auth”,用户名和密码做好相应配置。

3.1.3 定义JSON数据格式

在Postman构造GET请求,在“Headers”区域中需要建立2个字典类型的键/值对。第1个键/值对的“Key”字段为“Content-type”,Value值为“application/yang-data+json”。这样设置是通知Postman程序将JSON格式的数据发送到CSR1kv虚拟机API接口上。第2个键/值对的“Key”字段为“Accept”,“Value”字段为“ap⁃plication/yang-data+json”。

3.1.4 测试API请求

现在已经完成GET请求所需的数据内容封装。当CSR1kv虚拟机上的RESTCONF和HTTP服务均正常工作时,使用Postman发送GET请求,将得到类似下面内容的响应数据。

这说明服务器端JSON响应正常,可以通过Postman发送其他RESTCONF API请求到CSR1kv虚拟机。

3.2 使用Postman发送请求

3.2.1 查看虚拟机接口参数

使用Postman发送请求数据,这里HTTP服务器地址为192.168.110.130。URL构造为https://192.168.110.130/restconf/data/ietf-interfaces:inter⁃faces。从csr1kv返回的JSON数据如下:

从返回的结果来看,其中的接口IPv4地址参数是空的,这是由于CSR1kv虚拟机上的IP地址是通过DHCP获取的,需要将CSR1kv虚拟机上GigabitEthernet1接口地址更改为手动配置,然后在Postman中将GET请求的参数设置为interface=GigabitEthernet1,重新发送GET请求:https://192.168.110.130/restconf/data/ietfinterfaces:interfaces/interface=GigabitEthernet1,返回的JSON数据如下:

从返回的JSON数据来看,已经能够通过API调用正确获取网络设备的IP地址参数,其值为:“ip”:“192.168.110.130”,“netmask”:“255.255.255.0”。

3.2.2 修改虚拟机接口参数

通过API调用修改虚拟机接口参数。在Post⁃man请求中选择PUT方法,构造URL为https://192.168.110.130/restconf/data/ietf-interfaces:inter⁃faces/interface=Loopback0,其 中interface=Loop⁃back0表示要添加的虚拟接口为Loopback0,构造如下的Body部分的内容。

这个PUT方法是为了在CSR1kv虚拟机上创建一个Loopback0环回接口,并定义接口的IP地址参数,其值为:“ip”:“172.16.10.10”,“net⁃mask”:“255.255.255.0”。

3.2.3 验证虚拟机接口参数修改情况

在CSR1kv虚拟机上查看接口摘要信息,可以看见Loopback0接口的IPv4地址已经添加。

表2 CSR1kv#show ip int bri

4 结语

RESTCONF遵循表征性状态转移原则,通过HTTP封装格式实现API调用。在虚拟资源的访问中,可以通过Postman工具构造请求数据,并以JSON的数据格式或XML数据格式返回响应。在基于SDN的设备上进行手工配置无疑会增加工作量,而且容易出错,给网络资源管理带来困扰。通过虚拟资源提供的API接口,可以实现对虚拟资源的编程访问,以及自动化部署、管理和排错,从而提高虚拟资源访问的可靠性、可用性以及管理效率。

猜你喜欢

IP地址虚拟化编程
玩游戏学编程,Blockly Games上手玩
纺织机上诞生的编程
编程屋完成数百元万天使轮融资
学编程,先画画
《IP地址及其管理》教学设计
计算机的网络身份IP地址
浅谈虚拟化工作原理
用户怎样选择虚拟化解决方案
虚拟化整合之势凸显
轻松明白网络IP地址以及子网划分问题