客户端(SoapUI)--------服务端(F1060-10.88.142.136)
1、NETCONF API文档分属于四个命名空间:
1) data命名空间:提供系统的运行状态数据和配置数据,为只读,支持下发get和get-bulk操作。
2) config命名空间:提供系统的配置数据信息,可读写,支持下发get-config、get-bulk-config和edit-config操作。
3) action命名空间:通常提供系统非配置类的操作(如ping、reset操作),可执行,支持下发action操作。
4) event命名空间:提供系统的事件数据信息,支持通过create-subscription操作订阅指定类型的事件。
每一个支持NETCONF的模块都包括一个或者多个NETCONF API文档,分别描述其在data命名空间、config命名空间、action命名空间和event命名空间的功能。文档命名遵循如下格式,其中XXX代表模块名:
1) data命名空间:Comware XXX NETCONF XML API Data Reference.docx
2) config命名空间:Comware XXX NETCONF XML API Configuration Reference.docx
3) action命名空间:Comware XXX NETCONF XML API Action Reference.docx
4) event命名空间:Comware XXX NETCONF XML API Event Reference.docx
NETCONF模块可能还存在一个名为Comware XXX NETCONF XML API Error Message Reference.docx的模块错误提示信息参考文档,该文档用来描述模块操作过程中的各种错误。
2、NETCONF报文格式
1)
<rpc message-id=”101” xmlns=”urn:ietf:params:xml:ns:netconf:base:1.0”>
<get-config>
<source>
<running/>
</source>
<filter type=”subtree”>
<top xmlns=”http://www.h3c.com/netconf/config:1.0”>
模块信息
</top>
</filter>
</get-config>
</rpc>
2)
<rpc message-id =”101” xmlns=”urn:ietf:params:xml:ns:netconf:base:1.0”>
<edit-config>
<target>
<running/>
</target>
<config xmlns:xc=”urn:ietf:params:xml:ns:netconf:base:1.0”>
<top xmlns=”http://www.h3c.com/netconf/config:1.0”>
模块信息
</top>
</config>
</edit-config>
</rpc>
1.
2. 新建SOAP项目
1) 点击FileàNew SOAP Project
2) Project Name可自定义
3) WSDL可使用:***.***/calculator.asmx?wsdl (必填,否则后面创建SOAP Request会报错)
3. 新建TestSuite
1) 鼠标右键点击项目名称,选择New TestSuite
2) TestSuite名称自定义
4. 在TestSuite中新建一个TestCase
1) 鼠标右键点击TestSuite名称,选择New TestCase
2) TestCase名称自定义
5. 在TestCase中增加Test Step,类型为SOAP Request
1) 鼠标右键点击Test StepsàAdd StepàSOAP Request
2) Step名称自定义
3) 配置完成后目录如下:
1. 登录防火墙完成Netconf设备侧配置,本次选用NETCONF over SOAP传输方式。
1) 配置NETCONF用户,用户名为xuejiayu,密码为1qaz2wsx3edc
<H3C>system-view
[H3C]local-user xuejiayu
[H3C-luser-manage-xuejiayu]service-type http https
[H3C-luser-manage-xuejiayu]password simple 1qaz2wsx3edc
[H3C-luser-manage-xuejiayu]authorization-attribute user-role network-admin
[H3C-luser-manage-xuejiayu]quit
[H3C]
2) 配置NETCONF over SOAP over HTTP访问方式
[H3C] ip http enable
[H3C] netconf soap http enable
2. 按照上文“SoapUI基本配置”步骤完成SOAP Projectà TestSuiteàTestCase的创建
3. 在TestCase中新建一个名为Hello的Step,用来SOAP登陆设备,同时传递登录用户名和密码,并获取登陆成功的凭据。
1) 创建好的页面如下:
2) 上图①处是Netconf服务端(本例中的防火墙)的URL地址,格式为:
3) 上图②处是NETCONF xml请求,要完成配置需要先通过SoapUI软件使用NETCONF over SOAP over HTTP的方式登陆防火墙,可以使用如下语句向防火墙传递用户名和密码完成登陆。登陆成功后客户端会和服务端建立NETCONF会话,同时服务端会返回一个登陆成功的凭据,客户端必须保留此凭据作为下次请求的凭证。
<env:Envelope xmlns:env="***.***/2003/05/soap-envelope">
<env:Header>
<auth:Authentication env:mustUnderstand="1" xmlns:auth="http://www.h3c.com/netconf/base:1.0">
<auth:UserName>xuejiayu</auth:UserName>
<auth:Password>1qaz2wsx3edc</auth:Password>
<auth:Language>en</auth:Language>
</auth:Authentication>
</env:Header>
<env:Body>
<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<capabilities>
<capability>urn:ietf:params:netconf:base:1.0</capability>
</capabilities>
</hello>
</env:Body>
</env:Envelope>
4. 运行Hello step后结果如下:
5. 查看H3C 安全产品 Comware 7 NETCONF XML API文档,确认创建对象组的edit-config操作报文格式(进入www.h3c.comà支持à文档中心à安全àH3C SecPath F1000系列防火墙à二次开发àH3C SecPath 安全产品 Comware 7 NETCONF XML API Reference-6W1
6. 按照上述格式编写XML语句,同时携带获取到的登陆凭据,创建一个名为netconfobjg的ipv4地址对象组
<env:Envelope xmlns:env="***.***/2003/05/soap-envelope">
<env:Header>
<auth:Authentication env:mustUnderstand="true" xmlns:auth="http://www.h3c.com/netconf/base:1.0">
<auth:AuthInfo>1000048b26f81d5ed7c580f6906615e5834c</auth:AuthInfo>
</auth:Authentication>
</env:Header>
<env:Body>
<rpc message- xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<edit-config>
<target>
<running/>
</target>
<config>
<top xmlns="http://www.h3c.com/netconf/config:1.0">
<OMS>
<IPv4Groups>
<Group>
<Name>netconfobjg</Name>
</Group>
</IPv4Groups>
</OMS>
</top>
</config>
</edit-config>
</rpc>
</env:Body>
</env:Envelope>
7. 在TestCase中新建一个名为Create Object-group的Step,填入上述XML语句,点击运行
8. 继续查看H3C 安全产品 Comware 7 NETCONF XML API文档,确认向对象组执行操作的报文格式
9. 按照上述格式编写XML语句,同时携带获取到的登陆凭据,给对象组netconfobjg添加一个ID为10的主机地址192.168.1.1
<env:Envelope xmlns:env="***.***/2003/05/soap-envelope">
<env:Header>
<auth:Authentication env:mustUnderstand="true" xmlns:auth="http://www.h3c.com/netconf/base:1.0">
<auth:AuthInfo>1000048b26f81d5ed7c580f6906615e5834c</auth:AuthInfo>
</auth:Authentication>
</env:Header>
<env:Body>
<rpc message- xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<edit-config>
<target>
<running/>
</target>
<config>
<top xmlns="http://www.h3c.com/netconf/config:1.0">
<OMS>
<IPv4Objs>
<Obj>
<Group>netconfobjg</Group>
<ID>10</ID>
<Type>3</Type>
<HostIPv4Address>192.168.1.1</HostIPv4Address>
</Obj>
</IPv4Objs>
</OMS>
</top>
</config>
</edit-config>
</rpc>
</env:Body>
</env:Envelope>
10. 在TestCase中新建一个名为Object-group add rule的Step,填入上述XML语句,点击运行
11. 查看设备日志和配置,确认配置下发成功
[H3C]dis cu conf obj-grp
#
object-group ip address netconfobjg
10 network host address 192.168.1.1
#
1. 执行 edit-config 操作时,不需要的参数需要删掉,否则可能会报错,比如:
删除后正常:
2. 再举例
删除后正常:
[H3C]dis cu conf obj-grp
#
object-group ip address netconfobjg
10 network host address 192.168.1.1
#
object-group ip address test2
10 network range 192.168.1.1 192.168.1.10
#
3. 二次开发指南(www.h3c.com)
1) data命名空间:提供系统的运行状态数据和配置数据,为只读,支持下发get和get-bulk操作。
2) config命名空间:提供系统的配置数据信息,可读写,支持下发get-config、get-bulk-config和edit-config操作。
3) action命名空间:通常提供系统非配置类的操作(如ping、reset操作),可执行,支持下发action操作。
4) 执行 edit-config 操作时,不需要的参数需要删掉,否则可能会报错
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作