Page MenuHomeVyOS Platform

Add NETCONF server with YANG data modeling
Open, LowPublicFEATURE REQUEST

Description

NETCONF is the standard for installing, manipulating and deleting configuration of network devices while YANG is used to model both configuration and state data of network elements.

netconfd - YANG-based NETCONF-over-SSH server
https://manpages.debian.org/bullseye/netconfd/netconfd.1.en.html

YANG is most likely required to write vendor-specific modules
https://github.com/YangModels/yang

Additional links:
Netopeer2 is a server for implementing network configuration management based on the NETCONF Protocol.
https://github.com/CESNET/netopeer2
https://hub.docker.com/r/sysrepo/sysrepo-netopeer2
https://www.sysrepo.org/
RFC 6020 https://datatracker.ietf.org/doc/html/rfc6020

podman run -it --rm -p 830:830 --name netopeer --net host docker.io/sysrepo/sysrepo-netopeer2


root@r11-roll:/home/vyos# ssh netconf@localhost -p 830 -s netconf
Interactive SSH Authentication
Type your password:
Password: 
<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"><capabilities><capability>urn:ietf:params:netconf:base:1.0</capability><capability>urn:ietf:params:netconf:base:1.1</capability><capability>urn:ietf:params:netconf:capability:writable-running:1.0</capability><capability>urn:ietf:params:netconf:capability:candidate:1.0</capability><capability>urn:ietf:params:netconf:capability:rollback-on-error:1.0</capability><capability>urn:ietf:params:netconf:capability:validate:1.1</capability><capability>urn:ietf:params:netconf:capability:startup:1.0</capability><capability>urn:ietf:params:netconf:capability:xpath:1.0</capability><capability>urn:ietf:params:netconf:capability:with-defaults:1.0?basic-mode=explicit&amp;also-supported=report-all,report-all-tagged,trim,explicit</capability><capability>urn:ietf:params:netconf:capability:notification:1.0</capability><capability>urn:ietf:params:netconf:capability:interleave:1.0</capability><capability>urn:ietf:params:xml:ns:yang:ietf-yang-metadata?module=ietf-yang-metadata&amp;revision=2016-08-05</capability><capability>urn:ietf:params:xml:ns:yang:1?module=yang&amp;revision=2017-02-20</capability><capability>urn:ietf:params:xml:ns:yang:ietf-inet-types?module=ietf-inet-types&amp;revision=2013-07-15</capability><capability>urn:ietf:params:xml:ns:yang:ietf-yang-types?module=ietf-yang-types&amp;revision=2013-07-15</capability><capability>urn:ietf:params:netconf:capability:yang-library:1.1?revision=2019-01-04&amp;content-id=32</capability><capability>urn:sysrepo:plugind?module=sysrepo-plugind&amp;revision=2020-12-10</capability><capability>urn:ietf:params:xml:ns:yang:ietf-netconf-acm?module=ietf-netconf-acm&amp;revision=2018-02-14</capability><capability>urn:ietf:params:xml:ns:netconf:base:1.0?module=ietf-netconf&amp;revision=2013-09-29&amp;features=writable-running,candidate,rollback-on-error,validate,startup,url,xpath</capability><capability>urn:ietf:params:xml:ns:yang:ietf-netconf-with-defaults?module=ietf-netconf-with-defaults&amp;revision=2011-06-01</capability><capability>urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?module=ietf-netconf-notifications&amp;revision=2012-02-06</capability><capability>urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring?module=ietf-netconf-monitoring&amp;revision=2010-10-04</capability><capability>urn:ietf:params:xml:ns:netconf:notification:1.0?module=notifications&amp;revision=2008-07-14</capability><capability>urn:ietf:params:xml:ns:netmod:notification?module=nc-notifications&amp;revision=2008-07-14</capability><capability>urn:ietf:params:xml:ns:yang:ietf-x509-cert-to-name?module=ietf-x509-cert-to-name&amp;revision=2014-12-10</capability><capability>urn:ietf:params:xml:ns:yang:iana-crypt-hash?module=iana-crypt-hash&amp;revision=2014-08-06</capability></capabilities><session-id>1</session-id></hello>]]>]]>
root@r11-roll:/home/vyos# podman exec -it netopeer ls -la /etc/sysrepo/yang/
total 380
drwxrwxrwx 2 root root  4096 Jan 27  2021 .
drwxrwxrwx 5 root root  4096 Dec 14 17:54 ..
-rw-rw-r-- 1 root root  4203 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root 69447 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root  2615 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root 14048 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root 13169 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root 17425 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root 12357 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root 10171 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root 19334 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root  3598 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root 26724 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root 26969 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root  3812 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root 13895 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root 11658 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root  5059 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root  3627 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root  3860 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root 11903 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root  8991 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root  8874 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root 11000 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root 16255 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root  2603 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root  2364 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root  6282 Jan 27  2021 [email protected]
-rw-rw-r-- 1 root root   433 Jan 27  2021 [email protected]

Details

Difficulty level
Hard (possibly days)
Version
-
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Feature (new functionality)

Event Timeline

Viacheslav changed Difficulty level from Unknown (require assessment) to Hard (possibly days).
Unknown Object (User) added a subscriber: Unknown Object (User).Jul 30 2022, 5:53 AM

+1
OpenConfig should be used as a basic YANG model.
If something is missing, add proprietary ones
https://www.openconfig.net/

including information about Netopee2/sysrepo services, how to integrate it with FRR, where we can utilize the advantages netconf/yang :

https://github.com/opensourcerouting/frr/wiki/Architecture

it could be interesting for the future.

dmbaturin edited projects, added VyOS 1.5 Circinus; removed VyOS 1.4 Sagitta.