Page MenuHomeVyOS Platform

Add NETCONF server with YANG data modeling
Open, Requires assessmentPublicFEATURE 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


[email protected]:/home/vyos# ssh [email protected] -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>]]>]]>
[email protected]:/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).

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