| < draft-ietf-rtgwg-yang-vrrp-03.txt | draft-ietf-rtgwg-yang-vrrp-04.txt > | |||
|---|---|---|---|---|
| Network Working Group X. Liu, Ed. | Network Working Group X. Liu, Ed. | |||
| Internet-Draft A. Kyparlis | Internet-Draft A. Kyparlis | |||
| Intended status: Standards Track Jabil | Intended status: Standards Track Jabil | |||
| Expires: November 9, 2017 R. Parikh | Expires: December 1, 2017 R. Parikh | |||
| VMware | VMware | |||
| A. Lindem | A. Lindem | |||
| Cisco Systems | Cisco Systems | |||
| M. Zhang | M. Zhang | |||
| Huawei Technologies | Huawei Technologies | |||
| May 8, 2017 | May 30, 2017 | |||
| A YANG Data Model for Virtual Router Redundancy Protocol (VRRP) | A YANG Data Model for Virtual Router Redundancy Protocol (VRRP) | |||
| draft-ietf-rtgwg-yang-vrrp-03 | draft-ietf-rtgwg-yang-vrrp-04 | |||
| Abstract | Abstract | |||
| This document describes a data model for Virtual Router Redundancy | This document describes a data model for Virtual Router Redundancy | |||
| Protocol (VRRP). Both version 2 and version 3 of VRRP are covered. | Protocol (VRRP). Both version 2 and version 3 of VRRP are covered. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| skipping to change at page 1, line 37 ¶ | skipping to change at page 1, line 37 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on November 9, 2017. | This Internet-Draft will expire on December 1, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 25 ¶ | skipping to change at page 2, line 25 ¶ | |||
| 2.1. Scope of the Model . . . . . . . . . . . . . . . . . . . 4 | 2.1. Scope of the Model . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.2. Relations with Interface Model and IP Model . . . . . . . 4 | 2.2. Relations with Interface Model and IP Model . . . . . . . 4 | |||
| 2.3. Protocol Configuration . . . . . . . . . . . . . . . . . 6 | 2.3. Protocol Configuration . . . . . . . . . . . . . . . . . 6 | |||
| 2.4. Protocol States . . . . . . . . . . . . . . . . . . . . . 8 | 2.4. Protocol States . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 2.5. Notifications . . . . . . . . . . . . . . . . . . . . . . 9 | 2.5. Notifications . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 | 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 33 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 33 | |||
| 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 33 | 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 33 | |||
| 6.1. Normative References . . . . . . . . . . . . . . . . . . 33 | 6.1. Normative References . . . . . . . . . . . . . . . . . . 33 | |||
| 6.2. Informative References . . . . . . . . . . . . . . . . . 35 | 6.2. Informative References . . . . . . . . . . . . . . . . . 34 | |||
| Appendix A. Complete Model Tree Structure . . . . . . . . . . . 36 | Appendix A. Complete Model Tree Structure . . . . . . . . . . . 36 | |||
| Appendix B. Data Tree Example . . . . . . . . . . . . . . . . . 39 | Appendix B. Data Tree Example . . . . . . . . . . . . . . . . . 39 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 42 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 42 | |||
| 1. Introduction | 1. Introduction | |||
| This document introduces a YANG [RFC6020][RFC7950] data model for | This document introduces a YANG [RFC6020][RFC7950] data model for | |||
| Virtual Router Redundancy Protocol (VRRP) [RFC3768][RFC5798]. VRRP | Virtual Router Redundancy Protocol (VRRP) [RFC3768][RFC5798]. VRRP | |||
| provides higher resiliency by specifying an election protocol that | provides higher resiliency by specifying an election protocol that | |||
| dynamically assigns responsibility for a virtual router to one of the | dynamically assigns responsibility for a virtual router to one of the | |||
| VRRP routers on a LAN. | VRRP routers on a LAN. | |||
| This YANG model supports both version 2 and version 3 of VRRP. VRRP | This YANG model supports both version 2 and version 3 of VRRP. VRRP | |||
| version 2 defined in [RFC3768] supports IPv4. VRRP version 3 defined | version 2 defined in [RFC3768] supports IPv4. VRRP version 3 defined | |||
| in [RFC5798] supports both IPv4 and IPv6. | in [RFC5798] supports both IPv4 and IPv6. | |||
| 1.1. Terminology | 1.1. Terminology | |||
| The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | document are to be interpreted as described in [RFC2119]. | |||
| 14, [RFC2119]. | ||||
| The following terms are defined in [RFC7950] and are not redefined | The following terms are defined in [RFC7950] and are not redefined | |||
| here: | here: | |||
| o augment | o augment | |||
| o data model | o data model | |||
| o data node | o data node | |||
| 1.2. Tree Diagrams | 1.2. Tree Diagrams | |||
| A simplified graphical representation of the data model is used in | A simplified graphical representation of the data model is used in | |||
| this document. The meaning of the symbols in these diagrams is as | this document. The meaning of the symbols in these diagrams is as | |||
| follows: | follows: | |||
| skipping to change at page 34, line 5 ¶ | skipping to change at page 34, line 5 ¶ | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <http://www.rfc-editor.org/info/rfc3688>. | <http://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC3768] Hinden, R., Ed., "Virtual Router Redundancy Protocol | ||||
| (VRRP)", RFC 3768, DOI 10.17487/RFC3768, April 2004, | ||||
| <http://www.rfc-editor.org/info/rfc3768>. | ||||
| [RFC5798] Nadas, S., Ed., "Virtual Router Redundancy Protocol (VRRP) | [RFC5798] Nadas, S., Ed., "Virtual Router Redundancy Protocol (VRRP) | |||
| Version 3 for IPv4 and IPv6", RFC 5798, | Version 3 for IPv4 and IPv6", RFC 5798, | |||
| DOI 10.17487/RFC5798, March 2010, | DOI 10.17487/RFC5798, March 2010, | |||
| <http://www.rfc-editor.org/info/rfc5798>. | <http://www.rfc-editor.org/info/rfc5798>. | |||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
| <http://www.rfc-editor.org/info/rfc6020>. | <http://www.rfc-editor.org/info/rfc6020>. | |||
| skipping to change at page 34, line 40 ¶ | skipping to change at page 34, line 36 ¶ | |||
| <http://www.rfc-editor.org/info/rfc7223>. | <http://www.rfc-editor.org/info/rfc7223>. | |||
| [RFC7277] Bjorklund, M., "A YANG Data Model for IP Management", | [RFC7277] Bjorklund, M., "A YANG Data Model for IP Management", | |||
| RFC 7277, DOI 10.17487/RFC7277, June 2014, | RFC 7277, DOI 10.17487/RFC7277, June 2014, | |||
| <http://www.rfc-editor.org/info/rfc7277>. | <http://www.rfc-editor.org/info/rfc7277>. | |||
| [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
| RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
| <http://www.rfc-editor.org/info/rfc7950>. | <http://www.rfc-editor.org/info/rfc7950>. | |||
| [I-D.ietf-netconf-rfc5277bis] | ||||
| Clemm, A., Prieto, A., Voit, E., Nilsen-Nygaard, E., | ||||
| Tripathy, A., Chisholm, S., and H. Trevino, "Subscribing | ||||
| to Event Notifications", draft-ietf-netconf-rfc5277bis-01 | ||||
| (work in progress), October 2016. | ||||
| [I-D.ietf-netconf-yang-push] | ||||
| Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen- | ||||
| Nygaard, E., Bierman, A., and B. Lengyel, "Subscribing to | ||||
| YANG datastore push updates", draft-ietf-netconf-yang- | ||||
| push-06 (work in progress), April 2017. | ||||
| 6.2. Informative References | 6.2. Informative References | |||
| [RFC6087] Bierman, A., "Guidelines for Authors and Reviewers of YANG | [RFC3768] Hinden, R., Ed., "Virtual Router Redundancy Protocol | |||
| Data Model Documents", RFC 6087, DOI 10.17487/RFC6087, | (VRRP)", RFC 3768, DOI 10.17487/RFC3768, April 2004, | |||
| January 2011, <http://www.rfc-editor.org/info/rfc6087>. | <http://www.rfc-editor.org/info/rfc3768>. | |||
| [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | |||
| Protocol (NETCONF) Access Control Model", RFC 6536, | Protocol (NETCONF) Access Control Model", RFC 6536, | |||
| DOI 10.17487/RFC6536, March 2012, | DOI 10.17487/RFC6536, March 2012, | |||
| <http://www.rfc-editor.org/info/rfc6536>. | <http://www.rfc-editor.org/info/rfc6536>. | |||
| [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | |||
| RFC 7951, DOI 10.17487/RFC7951, August 2016, | RFC 7951, DOI 10.17487/RFC7951, August 2016, | |||
| <http://www.rfc-editor.org/info/rfc7951>. | <http://www.rfc-editor.org/info/rfc7951>. | |||
| [I-D.ietf-netconf-rfc5277bis] | ||||
| Clemm, A., Prieto, A., Voit, E., Nilsen-Nygaard, E., | ||||
| Tripathy, A., Chisholm, S., and H. Trevino, "Subscribing | ||||
| to Event Notifications", draft-ietf-netconf-rfc5277bis-01 | ||||
| (work in progress), October 2016. | ||||
| [I-D.ietf-netconf-yang-push] | ||||
| Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen- | ||||
| Nygaard, E., Bierman, A., and B. Lengyel, "Subscribing to | ||||
| YANG datastore push updates", draft-ietf-netconf-yang- | ||||
| push-06 (work in progress), April 2017. | ||||
| Appendix A. Complete Model Tree Structure | Appendix A. Complete Model Tree Structure | |||
| The VRRP YANG data model defined in this document has the following | The VRRP YANG data model defined in this document has the following | |||
| tree structure: | tree structure: | |||
| module: ietf-vrrp | module: ietf-vrrp | |||
| augment /if:interfaces/if:interface/ip:ipv4: | augment /if:interfaces/if:interface/ip:ipv4: | |||
| +--rw vrrp | +--rw vrrp | |||
| +--rw vrrp-instance* [vrid] | +--rw vrrp-instance* [vrid] | |||
| +--rw vrid uint8 | +--rw vrid uint8 | |||
| skipping to change at page 40, line 5 ¶ | skipping to change at page 40, line 5 ¶ | |||
| | +--:(ipv6) | | +--:(ipv6) | |||
| | +--ro ipv6 | | +--ro ipv6 | |||
| | +--ro vrid leafref | | +--ro vrid leafref | |||
| +--ro virtual-router-error-reason identityref | +--ro virtual-router-error-reason identityref | |||
| Appendix B. Data Tree Example | Appendix B. Data Tree Example | |||
| This section contains an example of an instance data tree in the JSON | This section contains an example of an instance data tree in the JSON | |||
| encoding [RFC7951], containing both configuration and state data. | encoding [RFC7951], containing both configuration and state data. | |||
| Virtual router IP address: 10.0.0.1 | Virtual router IP address: 192.0.2.1 | |||
| +-----------------+ +-----------------+ | +-----------------+ +-----------------+ | |||
| | | | | | | | | | | |||
| | Router 1.1.1.1 | | Router 1.1.1.2 | | | Router 1 | | Router 2 | | |||
| | | | | | | | | | | |||
| +--------+--------+ +--------+--------+ | +--------+--------+ +--------+--------+ | |||
| |eth1 |eth1 | |eth1 |eth1 | |||
| |10.0.1.1 |10.0.2.1 | |192.0.2.11 |192.0.2.12 | |||
| -------+--------------------------+------- | -------+--------------------------+------- | |||
| | | | | | | |||
| |10.0.2.1 |10.0.2.2 | |192.0.2.51 |192.0.2.52 | |||
| +--------+--------+ +--------+--------+ | +--------+--------+ +--------+--------+ | |||
| | Host 1 | | Host 2 | | | Host 1 | | Host 2 | | |||
| | Default gateway:| | Default gateway:| | | Default gateway:| | Default gateway:| | |||
| | 10.0.0.1 | | 10.0.0.1 | | | 192.0.2.1 | | 192.0.2.1 | | |||
| +-----------------+ +-----------------+ | +-----------------+ +-----------------+ | |||
| The instance data tree for Router 1.1.1.1 in the above figure could | The instance data tree for Router 1 in the above figure could be as | |||
| be as follows: | follows: | |||
| { | { | |||
| "ietf-interfaces:interfaces": { | "ietf-interfaces:interfaces": { | |||
| "interface": [ | "interface": [ | |||
| { | { | |||
| "name": "eth1", | "name": "eth1", | |||
| "type": "iana-if-type:ethernetCsmacd", | "type": "iana-if-type:ethernetCsmacd", | |||
| "description": "An interface with VRRP enabled.", | "description": "An interface with VRRP enabled.", | |||
| "ietf-ip:ipv4": { | "ietf-ip:ipv4": { | |||
| "address": [ | "address": [ | |||
| { | { | |||
| "ip": "10.0.1.1", | "ip": "192.0.2.11", | |||
| "prefix-length": 24 | "prefix-length": 24 | |||
| } | } | |||
| ], | ], | |||
| "forwarding": true, | "forwarding": true, | |||
| "ietf-vrrp:vrrp": { | "ietf-vrrp:vrrp": { | |||
| "vrrp-instance": [ | "vrrp-instance": [ | |||
| { | { | |||
| "vrid": 1, | "vrid": 1, | |||
| "version": "vrrp-v3", | "version": "vrrp-v3", | |||
| "priority": 200, | "priority": 200, | |||
| "advertise-interval-centi-sec": 50, | "advertise-interval-centi-sec": 50, | |||
| "virtual-ipv4-addresses": { | "virtual-ipv4-addresses": { | |||
| "virtual-ipv4-address": [ | "virtual-ipv4-address": [ | |||
| "ipv4-address": "10.0.0.1" | "ipv4-address": "192.0.2.1" | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| }, | }, | |||
| skipping to change at page 41, line 26 ¶ | skipping to change at page 41, line 26 ¶ | |||
| "phys-address": "00:0C:42:E5:B1:E9", | "phys-address": "00:0C:42:E5:B1:E9", | |||
| "oper-status": "up", | "oper-status": "up", | |||
| "statistics": { | "statistics": { | |||
| "discontinuity-time": "2016-10-24T17:11:27+02:00" | "discontinuity-time": "2016-10-24T17:11:27+02:00" | |||
| }, | }, | |||
| "ietf-ip:ipv4": { | "ietf-ip:ipv4": { | |||
| "forwarding": true, | "forwarding": true, | |||
| "mtu": 1500, | "mtu": 1500, | |||
| "address": [ | "address": [ | |||
| { | { | |||
| "ip": "10.0.1.1", | "ip": "192.0.2.11", | |||
| "prefix-length": 24 | "prefix-length": 24 | |||
| } | } | |||
| ] | ] | |||
| "ietf-vrrp:vrrp": { | "ietf-vrrp:vrrp": { | |||
| "vrrp-instance": [ | "vrrp-instance": [ | |||
| { | { | |||
| "vrid": 1, | "vrid": 1, | |||
| "version": "vrrp-v3", | "version": "vrrp-v3", | |||
| "log-state-change": false, | "log-state-change": false, | |||
| "preempt": { | "preempt": { | |||
| "enabled": true, | "enabled": true, | |||
| "hold-time": 0 | "hold-time": 0 | |||
| } | } | |||
| "priority": 200, | "priority": 200, | |||
| "accept-mode": false, | "accept-mode": false, | |||
| "advertise-interval-centi-sec": 50, | "advertise-interval-centi-sec": 50, | |||
| "virtual-ipv4-addresses": { | "virtual-ipv4-addresses": { | |||
| "virtual-ipv4-address": [ | "virtual-ipv4-address": [ | |||
| "ipv4-address": "10.0.0.1" | "ipv4-address": "192.0.2.1" | |||
| ] | ] | |||
| }, | }, | |||
| "state": "master", | "state": "master", | |||
| "is-owner": false, | "is-owner": false, | |||
| "last-adv-source": "10.1.1.1", | "last-adv-source": "192.0.2.11", | |||
| "up-datetime": "2016-10-24T17:11:27+02:00", | "up-datetime": "2016-10-24T17:11:27+02:00", | |||
| "master-down-interval": 161, | "master-down-interval": 161, | |||
| "skew-time": 11, | "skew-time": 11, | |||
| "last-event": "vrrp-event-interface-up", | "last-event": "vrrp-event-interface-up", | |||
| "new-master-reason": "priority", | "new-master-reason": "priority", | |||
| "statistics": { | "statistics": { | |||
| "discontinuity-datetime": | "discontinuity-datetime": | |||
| "2016-10-24T17:11:27+02:00", | "2016-10-24T17:11:27+02:00", | |||
| "master-transitions": 2, | "master-transitions": 2, | |||
| "advertisement-recv": 20, | "advertisement-recv": 20, | |||
| End of changes. 22 change blocks. | ||||
| 41 lines changed or deleted | 35 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||