所选语种没有对应资源,请选择:

本站点使用Cookies,继续浏览表示您同意我们使用Cookies。Cookies和隐私政策>

提示

尊敬的用户,您的IE浏览器版本过低,为获取更好的浏览体验,请升级您的IE浏览器。

升级

CloudEngine 8800, 7800, 6800, 5800 V200R005C10 配置指南-网络管理与监控

本文档介绍了网络管理与监控的配置,具体包括SNMP配置、RMON配置、NETCONF配置、OpenFlow Agent配置、LLDP配置、NQA配置、镜像配置、报文捕获配置、Packet trace、路径/连通性探测配置、NetStream配置、sFlow配置和iPCA配置。

评分并提供意见反馈 :
华为采用机器翻译与人工审校相结合的方式将此文档翻译成不同语言,希望能帮助您更容易理解此文档的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 华为对于翻译的准确性不承担任何责任,并建议您参考英文文档(已提供链接)。
YANG基本概念

YANG基本概念

YANG是NETCONF协议的一种建模语言。YANG模型定义了数据的层次化结构,可用于基于NETCONF的操作,包括配置、状态数据、远程过程调用和通知。可以对NETCONF客户端和服务器端之间发送的所有数据进行一个完整的描述。

YANG模型文件

YANG模型文件包含如下信息:
  • 模块定义

    Module & Submodule:YANG将数据模型构建为模块和子模块。一个模块可以从其他模块中导入数据,也可以从子模块中引用数据。YANG定义的垂直结构可以扩展,使得模块能够为另一个模块增加节点,这种扩展是有条件的,只有满足特定的条件才能扩展成功。

    外部模块的引入(import & include):“include”声明允许模块或者子模块引用子模块中的材料,“import”声明允许引用其他模块中定义的材料。

  • 模块的名字空间

    名字空间Namespace必须全局唯一。

  • 模块的版本信息

    Revision信息记录版本变更,更新后的revision信息应该和文件名关联。

  • 模型的描述和介绍信息

    组织和联系人方便其他人了解该模型来源。

    描述信息对模型内容进行基本的说明。

YANG模型文件示例

Contents of "acme-system.yang"
module acme-system {
 namespace "http://acme.example.com/system";
 prefix "acme";
 organization "ACME Inc.";
 contact "joe@acme.example.com";
 description
 "The module for entities implementing the ACME system.";
 revision 2007-06-09 {
  description "Initial revision.";
 }
 container system {
  leaf host-name {
   type string;
   description "Hostname for this system";
  }
  leaf-list domain-search {
   type string;
   description "List of domain names to search";
  }
  container login {
   leaf message {
    type string;
    description
    "Message given at start of login session";
   }
   list user {
    key "name";
    leaf name {
     type string;
    }
   }
  }
 }
}

操作定义

YANG支持定义操作,可以使用RPC或者Action对YANG模型中的操作进行定义,包含操作名称、输入参数和输出参数。

  • 使用RPC定义操作

    YANG提供RPC关键字,可以对其模型顶层的操作进行定义。

    使用RPC关键字建模示例,其中,操作名称为activate-software-image;输入参数为image-name,并指定该参数的类型为字符串形式;输出参数为status,并指定该参数的类型为字符串形式。

    rpc activate-software-image {
     input {
      leaf image-name {
       type string;
      }
     }
     output {
      leaf status {
       type string;
      }
     }
    }

    相应的NETCONF XML示例如下

    <rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
     <activate-software-image xmlns="http://acme.example.com/system">
      <image-name>acmefw-2.3</image-name>
     </activate-software-image>
    </rpc>
    
    <rpc-reply message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
     <status xmlns="http://acme.example.com/system">
      The image acmefw-2.3 is being installed.
     </status>
    </rpc-reply>
  • 使用Action定义操作

    Action是YANG的一种语法,可以和container节点、list节点相关联,用来给其中的叶子节点定义操作,比如:reset、reboot,copy等。Action包含input和output两个声明。

    一个叶子节点可以定义多个action操作,但是每次只能下发一个,可以分多次下发。

    YANG示例:名为server的list节点下关联一个action,这个action给leaf节点reset-at定义了一个reset操作。

    module example-server-farm {
      yang-version 1.1;
      namespace "urn:example:server-farm";
      prefix "sfarm";
      import ietf-yang-types {
       prefix "yang";
      }
      list server {
       key name;
       leaf name {
        type string;
       }
       action reset {
        input {
         leaf reset-at {
          type yang:date-and-time;
          mandatory true;
         }
        }
        output {
         leaf reset-finished-at {
          type yang:date-and-time;
          mandatory true;
         }
        }
       } 
      }  
    }

    相应的NETCONF XML示例:在用户指定时间“2014-07-29T13:42:00Z”对名为“apache-1”的服务器执行reset操作,应答报文返回执行完成时间。

    • RPC请求
      <rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
       <action xmlns="urn:ietf:params:xml:ns:yang:1">
        <server xmlns="urn:example:server-farm">
         <name>apache-1</name>
         <reset>
          <reset-at>2014-07-29T13:42:00Z</reset-at>
         </reset>
        </server>
       </action>
      </rpc>
    • RPC应答
      <rpc-reply message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
       <reset-finished-at xmlns="urn:example:server-farm">
        2014-07-29T13:42:12Z
       </reset-finished-at>
      </rpc-reply>

通知机制(Notification)

NETCONF Notification是一种基于NETCONF协议的告警和事件的订阅和上报机制,提供了一种基于数据模型的告警和事件异步上报服务。YANG提供了Notification关键字来对通知机制进行建模。

不同于RPC报文的“一发一收”机制,依赖客户端来查询数据,NETCONF Notification是当告警或者事件发生时,由服务端主动通过Notification报文上报给客户端,主要用于那些需要实时感知设备情况的场景,例如告警和事件通过NETCONF协议上报网管。

使用Notification关键字建模示例,其中,Notification名称为link-failure,当if-name,if-admin-status,if-oper-status这三个参数对应的内容有变更时上报客户端。

notification link-failure {
 description "A link failure has been detected";
 leaf if-name {
  type leafref {
   path "/interface/name";
  }
 }
 leaf if-admin-status {
  type admin-status;
 }
 leaf if-oper-status {
  type oper-status;
 }
}

NETCONF服务器上报客户端的NETCONF XML示例。

<notification xmlns="urn:ietf:params:netconf:capability:notification:1.0">
 <eventTime>2007-09-01T10:00:00Z</eventTime>
 <link-failure xmlns="http://acme.example.com/system">
 <if-name>so-1/2/3.0</if-name>
 <if-admin-status>up</if-admin-status>
 <if-oper-status>down</if-oper-status>
 </link-failure>
</notification>
翻译
下载文档
更新时间:2020-01-09

文档编号:EDOC1100075464

浏览量:12909

下载量:225

平均得分:
本文档适用于这些产品

相关版本

相关文档

Share
上一页 下一页