Γενικά

Πριν αρχίσουμε

Ας ξεκαθαρίσουμε κάτι από την αρχή. Δεν είναι δυνατό σε ένα άρθρο να πούμε όλα όσα πρέπει να γνωρίζετε για τα Yang Data Models. Ακόμα και ο τίτλος “Introduction” δεν είναι ακριβής. Πιο σωστός θα ήταν το “Σημείο έναρξης για να προσεγγίσετε τα Yang Data Models” ή κάτι παρόμοιο. Σε πολλά σημεία παραλείπουμε πληροφορίες. Άλλα σημεία δεν τα αναφέρουμε καθόλου. Ο σκοπός είναι το παρόν άρθρο να είναι εύκολο στην ανάγνωση, να προσφέρει μια περίληψη και ένα σωστό σημείο εκκίνησης, από το οποίο θα μπορέσετε να εξερευνήσετε περισσότερο τα σημεία για τα οποία ενδιαφέρεστε περισσότερο. Επίσης για πρακτική εξάσκηση θα πρέπει να αναζήσετε καταλληλότερες πηγές. Μην ξεχνάτε όμως ότι μπορείτε πάντα να ενταχθείτε στην κοινότητα μας και να αναζητήσετε βοήθεια.

Τί είναι τα YANG data models

To YANG (Yet Another Next Generation) είναι γλώσσα μοντελοποίησης. Πολλές φορές όμως χρησιμοποιούμε τον όρο αναφερόμενοι στα ίδια τα μοντέλα, στα δεδομένα τα οποία αναπαριστώνται με βάση αυτά τα μοντέλα ή τη γλώσσα μοντελοποίησης (Yang data modeling language / Yang data models / Yang data).

Κάποια στιγμή, προέκυψε η ανάγκη της δημιουργίας ενός νέου μοντέλου δεδομένων για τη διαχείριση των δικτυακών συσκευών και των λειτουργιών τους, όπου οι πληροφορίες για την κατάσταση και λειτουργικότητα των συσκευών (operational data) θα ήταν ξέχωρα από τις πληροφορίες για τη ρύθμιση τους (configuration data), όπου τα μοντέλα θα ήταν επεκτάσιμα και καλύτερα δομημένα, η μετάδοση θα ήταν ασφαλής (με χρήση κρυπτογράφησης) και αξιόπιστη (over TCP) και η χρήση των καναλιών μεταφοράς βελτιστοποιημένη, δηλαδή ότι δεν ήταν το SNMP και το αντίστοιχο μοντέλο δεδομένων, το SMI.

To YANG σαν modeling language έδωσε επίσης τη δυνατότητα για δομές όχι αυστηρά δεδροειδείς αλλά με δυνατότητες για εισαγωγή άλλων μοντέλων (π.χ. interface <-> mac address & ipv4 address) με πολλαπλούς τρόπους (π.χ. augmentation/deviation)

Χρησιμότητα

Config/Operational

Η επικρατούσα αντίληψη είναι πως τα YANG Data models και τα σχετικά εργαλεία και συστατικά χρησιμοποιούνται για το configuration των δικτυακών συσκευών και υπηρεσιών, ενώ για το monitoring της υγείας και απόδοσης συσκευών και λειτουργιών συνεχίζει κανείς να χρησιμοποιεί το SNMP. Η πραγματικότητα είναι πως υπάρχουν μοντέλα YANG τα οποία επιτελούν και το σκοπό της παρακολούθησης και τα οποία συχνά έχουν το επίθεμα oper.

Telemetry/Streaming/OnChange

Με αυτό το σκεπτικό υπάρχουν αρκετές περιπτώσεις όπου η χρήση model driven παρακολούθησης για το δίκτυο και τις δικτυακές συσκευές έχει σημαντικά πλεονεκτήματα, όπως τη δυνατότητα για αποστολή συνεχών ομάδων μετρήσεων από τις ίδιες τις συσκευές σε συνεχόμενο ρυθμό (streaming telemetry) με ελάχιστη επιβάρυνση της απόδοσης των συσκευών. Επίσης οι ίδιες οι συσκευές μπορούν να ειδοποιούν στέλνοντας δεδομένα Yang μόνο όταν υπάρχει αλλαγή στην κατάσταση της συσκευής (on change). Η επιλογή των δεδομένων για την συνεχόμενη εκπομπή μπορεί να γίνει με τη μέθοδο της εγγραφής συνδρομής (subscription)

Απευθείας προγραμματική πρόσβαση στα δεδομένα

Ακόμα όμως και εκτός των ορίων του Streaming Telemetry, η δυνατότητα να έχουμε προγραμματική πρόσβαση ανά πάσα στιγμή στις παραμέτρους λειτουργίας του δικτύου χωρίς να μεσολαβεί κάποια μετάφραση (parsing - βλέπετε How to get started with Network Automation) από συνδέσεις κονσόλας μέσω Telnet/SSH, αλλά απευθείας στα δεδομένα που ο κατασκευαστής προέβλεψε να θέσει στη διάθεση μας, είναι μια πολύ μεγάλη ευκολία. Για την περίπτωση όπου θέλουμε να έχουμε προγραμματική πρόσβαση στη διαμόρφωση των παραμέτρων λειτουργίας του εξοπλισμού, η χρήση YANG Data Models με κατάλληλα πρωτόκολλα επικοινωνίας δίνει πολύ μεγάλη ευελιξία και ακρίβεια.

YANG/MDT vs SNMP

Καταρχήν όπως είπαμε η ανάπτυξη στον τομέα του SNMP έχει σταματήσει από τόσο παλιά, που κάνει πραγματικά εντύπωση. Όποιος έχει παρακολουθήσει τις διαλέξεις (presentation και pdf) του Benoit Claise ή έχει διαβάσει το βιβλίο του Network Programmability with YANG: The Structure of Network Automation with YANG, NETCONF, RESTCONF, and gNMI γνωρίζει ότι πρακτικά μετά το 2007 τα πράγματα είχαν εντελώς τελματώσει για το SNMP.

Επίσης όλοι γνωρίζουμε ότι SNMP είναι αρκετά δυσνόητο (ASN.1 notation, SMI tree, MIB imports, κλπ), οι υλοποιήσεις του αρκετά προβληματικές (μεγάλο πρόβλημα με ασυμβατότητα μεταξύ των MIBs) και όσο αφορά την ασφάλεια, δεν είναι τυχαίο που μεγάλος αριθμός συσκευών δεν υποστηρίζει την “ασφαλή” έκδοση SNMPv3, η οποία έχει πέντε διαφορετικές παραλαγές, όπου κάποιες από αυτές μόνο ασφαλείς δεν είναι. Σαν επισφράγισμα στον “τάφο” του SNMP, πολλοί λίγοι οργανισμοί τολμούν να εφαρμόσουν το συγκεκριμένο πρωτόκολλο και προτιμούν την λιγότερη ασφαλή αλλά “απλή” και “προβλέψιμη” έκδοση SNMPv2c.

Αντίθετα οι τρόποι μεταφοράς YANG Data προσφέρουν ασφάλεια δεδομένων κατά τη μεταφορά, τα μοντέλα προβλέπουν θέματα συμβατότητας και ο τρόπος αναπαράστασης είναι κατά πολύ βελτιωμένος σε σχέση με το SNMP. Επίσης για την χρήση σε monitoring/supervision οι δυνατότητες που προσφέρει το MDT - Model Driven Telemetry (γνωστό και ως Streaming Telemetry) για μεγαλύτερη πυκνότητα δεδομένων χωρίς μεγάλη επίπτωση στις επιδόσεις του εξοπλισμού, είτε για streaming data είτε on-change, είτε με outgoing subscriptions (no polling, μεγαλύτερη ασφάλεια και scalability), είτε incoming (συνεχή tcp connections όσο διαρκεί το streaming με ευθύνη του monitoring station). Για τον ορισμό των subscriptions είναι απαραίτητη η χρήση xpath querries και η μεταφορά γίνεται είτε μέσω Netconf είτε με GRPC.

Παρόλα αυτά, αν κανείς ξεκινήσει να ασχολείται με το YANG δανειζόμενος την οπτική γιγάντων του χώρου όπως ο Benoit Claise και o Carl Moberg (πρώην Tail-f / Cisco), μάλλον θα αρχίσει να το ξανασκέφτεται.. Ευτυχώς υπάρχουν και πιο εύκολοι δρόμοι και .. κι εμείς εδώ είμαστε ;)

Ιστορικό

Η συζήτηση για την ανεπάρκεια των υπαρχόντων τεχνολογιών ξεκίνησε νωρίς, το 2002 με το IAB Network Management Workshop το οποίο συμπληρώθηκε και με άλλα κείμενα π.χ. On the Difference between Information Models and Data Models. Στη συνέχεια πρώτα καθορίστηκε ένα πρωτόκολλο για τη μεταφορά δεδομένων, το Netconf το 2006 με την RFC4741, η οποία έγινε obsolete από την RFC6241 το 2011.

Στη συνέχεια προέκυψε η προδιαγραφή για τη γλώσσα YANG:YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF) το 2010 και με τα χρόνια και τα σχετικά συστατικά της π.χ. Common YANG Data Types και YANG Tree Diagrams, ενώ το πρωτόκολλο RESTCONF άργησε να καθοριστεί. Στην πορεία αυτή βλέπει κανείς να συνδράμουν σημαντικά τόσο ακαδημαϊκά ιδρύματα αλλά και εταιρείες που έβαλαν τα θεμέλια για τις δυνατότητες και τη χρήση των YANG Models σήμερα, π.χ. Tail-f systems, Juniper, κλπ. Ένα κρίσιμο σημείο είναι ότι η πορεία ανάπτυξης του SNMP σταμάτησε αρκετά νωρίς (περίπου το 2007), οι vendors δεν ανέπτυσαν πλέον τις MIB τους και έτσι σιγά εγκαταλείφθηκε η επένδυση σε αυτό το μοντέλο διαχείρισης και δόθηκε βάρος σε μοντέλα και τεχνολογίες όπως τα Yang Data Models.

Υπάρχουν πληθώρα δεδομένων και βιβλίων γύρω τόσο από το ιστορικό όσο και από την τεχνολογία και τη χρήση της αλλά το reference πάνω στη χρήση της YANG στο Network Programmability αποτελεί το βιβλίο των Benoit Claise, Joe Clarke & Jan Lindblad: Network Programmability with YANG: The Structure of Network Automation with YANG, NETCONF, RESTCONF, and gNMI

Είδη μοντέλων

Open Models

Τα Open models είναι ανεξάρτητα από συγκεκριμένους vendors και αναπαριστούν τις παραμέτρους λειτουργίας των δικτυακών συσκευών σύμφωνα με όσα ορίζουν οργανισμοί με ανοικτά standards. Τέτοιοι οργανισμοί είναι το IETF και το OpenConfig. Προφανώς αφορούν λειτουργίες οι οποίες είναι κοινές σε δικτυακές συσκευές διαφορετικών κατασκευαστών, όπως τα πρωτόκολλα routing π.χ. ospf, οι ιδιότητες βασικών στοιχείων των συσκευών, π.χ. interfaces κλπ. To IETF δεν χρειάζεται ιδιαίτερες συστάσεις (ή δεν θα έπρεπε). To OpenConfig είναι οργανισμός στον οποίο συμμετέχουν αρκετοί vendors στην προσπάθεια να δημιουργηθεί κάτι κοινό που προσαρμόζεται γρηγορότερα στις εξελίξεις.

Native Models

Τα Native Models είναι αυτά που ορίζονται από τους ίδιους τους vendors ανά μοντέλο/κατηγορία συσκευής και λειτουργικό σύστημα (π.χ. Cisco IOS-XE/17.3.1 - https://github.com/YangModels/yang/tree/master/vendor/cisco/xe/1731)

Δομή

Yang Modules & Submodules

Τα Yang data models ορίζουν ομάδες δεδομένων που αναπαριστούν πλήρως ένα μοντέλο χρησιμοποιώντας modules και submodules. Ένα module αναπαριστά και ορίζει πλήρως ένα μόνο μοντέλο, ωστόσο μπορεί να εισάγει (import) εξωτερικά modules, να συμπεριλάβει (include) ένα ή περισσότερα submodules, να επεκτείνει ένα model (augment) ή να καθορίσει που οι προδιαγραφές του αποκλίνουν (deviation) από ένα μοντέλο. Ένα module ορίζεται από ένα μοναδικό XML namespace (xmlns). Τα submodules είναι ενότητες στις οποίες μπορεί να διαιρεθεί ένα module για καλύτερη οργάνωση.

Yang Node Types

Ανάλογα με τον τρόπο οργάνωσης και αναπάραστασης της πληροφορίας σε ένα μοντέλο, ορίζονται οι παρακάτω τύποι:

  • container: Ένα subset από δεδομένα που μπορούν να είναι ανόμοια ως προς τον τύπο τους και ομαδοποιούνται για οργανωτικούς λόγους. Ένα container δεν διαθέτει data type.
container system {
    container login {
        leaf message {
            type string;
            description
                "Message given at start of login session";
        }
    }
}
  • list: Μια ομάδα από δεδομένα του ίδιου τύπου (μπορεί να είναι και ένα άλλο μοντέλο που εισάγεται σε αυτό που εξετάζουμε) και για την οργάνωση των οποίων και την απευθείας πρόσβαση σε συγκεκριμένα από αυτά, ορίζονται πεδία - κλειδιά.
  • key: Τα παραπάνω αναφερόμενα πεδία - κλειδιά, π.χ. το όνομα ενός δικτυακού interface. Μία λίστα μπορεί να έχει παραπάνω από ένα πεδίο κλειδί, και για την απευθείας πρόσβαση σε συγκεκριμένα δεδομένα, ανάλογα με την περίπτωση, πρέπει κανείς να ορίζει ή όλα τα κλειδιά ή κάποια από αυτά.
list user {
    key "name";
    leaf name {
        type string;
    }
    leaf full-name {
        type string;
    }
    leaf class {
        type string;
    }
}
  • leaf: Ένα απλό πεδίο όπου ορίζεται μια τιμή για το μοντέλο. Κάθε leaf συνήθως έχει συγκεκριμένο τύπο δεδομένων ενώ μπορεί να ορίζει και κανόνες για το πότε είναι σωστά τα δεδομένα που θέλει κάποιος να αποθηκεύσει σε αυτό (Data Validation).
leaf host-name {
    type string;
    description "Hostname for this system";
}
  • grouping Ομάδες δεδομένων που μπορούν να επαναχρησιμοποιηθούν εντός του μοντέλου με το πρόθεμα uses.
grouping target {
    leaf address {
        type inet:ip-address;
        description "Target IP address";
    }
    leaf port {
        type inet:port-number;
        description "Target port number";
    }
}
container peer {
    container destination {
        uses target;
    }
}

Data types & Validation

Built-in Data Types

Όπως και σε άλλες γλώσσες έτσι και στην Yang είναι ορισμένοι ενσωματωμένοι τύποι δεδoμένων. Τα παρακάτω ορίζονται στο documentation: Common YANG Data Types

Name Type Description
binary Text Any binary data
bits Text/Number A set of bits or flags
boolean Text “true” or “false”
decimal64 Number 64-bit fixed point real number
empty Empty A leaf that does not have any value
enumeration Text/Number Enumerated strings with associated numeric values
identityref Text A reference to an abstract identity
instance-identifier Text References a data tree node
int8 Number 8-bit signed integer
int16 Number 16-bit signed integer
int32 Number 32-bit signed integer
int64 Number 64-bit signed integer
leafref Text/Number A reference to a leaf instance
string Text Human readable string
uint8 Number 8-bit unsigned integer
uint16 Number 16-bit unsigned integer
uint32 Number 32-bit unsigned integer
uint64 Number 64-bit unsigned integer
union Text/Number Choice of member types

Derived Types

Είναι τύποι δεδομένων που προκύπτουν κατασκευάζονται με την εντολή typedef.

typedef percent {
    type uint16 {
        range "0 .. 100";
    }
    description "Percentage";
}

leaf completed {
    type percent;
}

Τρόποι επικοινωνίας

yang data

Παρακάτω βλέπουμε μια αναπαράσταση του Yang stack από την παρουσίαση του Hank Preston στο BRKDEV-1368 στο Cisco Live του 2020 ΕΜΕΑ yang stack

Netconf

Πρωτόκολλο ασφαλούς μεταφοράς YANG Data βασισμένο συνήθως σε XML RPCs τα οποία μεταδίδονται μέσω SSH (default port 830). https://datatracker.ietf.org/doc/html/rfc4741 https://datatracker.ietf.org/doc/html/rfc6241

Το Netconf μεταφέρει και επιστρέφει δεδομένα σε XML. Παρακάτω βλέπουμε το protocol stack του: netconf stack

Παρακάτω βλέπουμε ένα παράδειγμα output από python script από το session BRKDEV-1368 στο Cisco Live: netconf example

Τα Netconf Operations είναι τα παρακάτω:

Operation Description
<get> Retrieve running configuration and device state information
<get-config> Retrieve all or part of specified configuration data store
<edit-config> Loads all or part of a configuration to the specified configuration data store
<copy-config> Replace an entire configuration data store with another
<delete-config> Delete a configuration data store
<commit> Copy candidate data store to running data store
<lock>-<unlock> Lock or unlock the entire configuration data store system
<close-session> Graceful termination of NETCONF session
<kill-session> Forced termination of NETCONF session

Οι βιβλιοθήκες Python που υποστηρίζουν Netconf και με τις οποίες μπορεί κανείς να επικοινωνήσει με δικτυακό εξοπλισμό είναι οι:

Scrapli is a python framework developed by Carl Montanari. Ncclient was developed by Shikar Bhushan. It is now maintained by Leonidas Poulopoulos and Einar Nilsen-Nygaard.

Για την επικοινωνία με τον εξοπλισμό, πρέπει να χρησιμοποιήσει κανείς είτε XML Subtrees είτε XML XPaths. Η δεύτερη μέθοδος είναι σαφέστατα πιο κομψή.

Restconf

Πρωτόκολλο ασφαλούς μεταφοράς YANG Data βασισμένο σε HTTPS για το transport. https://datatracker.ietf.org/doc/html/rfc8040

Επιστρέφει δεδομένα είτε σε JSON format είτε σε XML. Παρακάτω βλέπουμε το protocol stack του: restconf stack

Κι εδώ βλέπουμε την αντιστοιχία των CRUD Operations του Restconf με τις αντίστοιχες του Netconf:

RESTCONF NETCONF
GET <get> , <get-config>
POST <edit-config> (operation="create”)
PUT <edit-config> (operation="create/replace”)
PATCH <edit-config> (operation="merge”)
DELETE <edit-config> (operation="delete”)

Τα payloads που χρησιμοποιούνται στο Restconf είναι συνήθως JSON ενώ οι απαντήσεις από τις συσκευές μπορούν να είναι σε XML(default) ή JSON. Για χρήση εντός Python scripts μπορεί κανείς να χρησιμοποιήσει τόσο το requests library όσο και το httpx το οποίο υποστηρίζει ASYNC-IO.

GRPC

Το GRPC είναι πρωτόκολο μεταφοράς κατασκευασμένο από τη Google, τα αρχικά σημαίνουν Google Remote Procedure Call. Χρησιμοποιεί Protocol Buffers για το format των δεδομένων. GRPC diagram

Τρόποι αναπαράστασης - εργαλεία

pyang

Command Line εργαλείο βασισμένο σε python για human readable formated αναπαράσταση ενός μοντέλου Yang. Η πιο απλή σύνταξη της εντολής είναι η παρακάτω, η οποία αναπαριστά ένα μοντέλο σε δενδροειδή μορφή:

pyang –f tree <yang-model-filename.yang>

To Yang tree diagram καθορίζεται εδώ: https://datatracker.ietf.org/doc/html/rfc8340

Παράδειγμα παρμένο από το site της Cisco για NX-OS Programmability :

pyang example

O πηγαίος κώδικας διατίθεται στο https://github.com/mbj4668/pyang ενώ εδώ μπορείτε να βρείτε ένα tutorial.

Postman

Το Postman είναι ένα REST API client. Διαθέτει δυνατότητα για δημιουργία και συγχρονισμό, εισαγωγή, εξαγωγή συλλογών από REST API calls, χρήση παραμέτρων και μεταβλητών, διάφορες μορφοποιήσεις δεδομένων εισόδου - εξόδου, και μεγάλη ευκολία χρήσης. Δεν είναι τυχαίο που αποτελεί το εργαλείο που χρησιμοποιείται πιο συχνά όταν κάποιος θέλει να επιδείξει ή να εξερευνίσει ένα REST API μέσω Restconf. Στην περίπτωση των YANG data models, είναι προσφιλές εργαλείο εξερεύνησης μέσω Restconf των δυνατοτήτων και δεδομένων που υποστηρίζει ένας δικτυακός εξοπλισμός. Σε σύγκριση με το Pyang, μας δίνει τη δυαντότητα να αναζητήσουμε όσα γνωρίζουμε σε θεωρητικό επίπεδο για ένα μοντέλο, όπως αυτό εφαρμόζεται στην πράξη στον δικτακό εξοπλισμό. Συνήθως κανείς ξεκινά από τα capabilities του εξοπλισμού (το σύνολο των Yang models που εφαρμόζει ο εξοπλισμός) και προχωρά σε συγκεκριμένα μοντέλα και ιδιότητες. Μπορείτε να βρείτε πολλά εκπαιδευτικά βίντεο για το postman στο σχετικό κανάλι στο Youtube: https://www.youtube.com/c/postman αλλά και πολλά training videos από άλλες πλατφόρμες/κανάλια: https://www.youtube.com/watch?v=VywxIQ2ZXw4 Φυσικά υπάρχουν κι αυτοί που ισχυρίζονται ότι δεν χρειάζονται το Postman, αφού μπορούν να ενσωματώσουν αυτές τις λειτουργίες σε εργαλεία IDE: https://www.youtube.com/watch?v=AbCTlemwZ1k

Yang Catalogue

Άλλος ένας τρόπος να εξερευνήσει κανείς τα Yang Data Models. Στη διεύθυνση https://www.yangcatalog.org/ μπορεί κανείς να βρει όλα τα μοντέλα που δημοσιεύονται προς χρήση και να τα μελετήσει ενδελεχώς online. Είναι ένα εντυπωσιακό εγχείρημα (υπάρχουν σχετικές αναφορές στις διαλέξεις των Claise & Moberg).

ANX

To ANX είναι εργαλείο το οποίο επιτρέπει την απευθείας εξερεύνηση των μοντέλων YANG από τον ίδιο το δικτυακό εξοπλισμό και στη συνέχεια και την εξαγωγή τους αλλά και τη χρήση τους για την διαχείριση του ίδιου ή άλλων συμβατών με αυτόν. Έχει αναπτυχθεί από μηχανικούς της Cisco και μέχρι πρόσφατα ηταν το μοναδικό εργαλείο που επέτρεπε την add-hoc εξερεύνηση των μοντέλων χωρίς μεγάλη προσπάθεια και πρότερη γνώση. Είναι Open Source και μπορεί να χρησιμοποιηθεί και σε μορφή Docker Container. Θα το συνατήσετε σε τουλάχιστον δύο διαφορετικές πλατφόρμες online training σε courses για Network Programmability.

Yang-Suite

Είναι ένα εξαιρετικό εργαλείο λογισμικού, ανεπτυγμένο και πάλι από μηχανικούς της Cisco, ως διάδοχος του πολύ επιτυχημένου αλλά πλέον παρωχημένου Yang Explorer, το οποίο χρησιμοποιούνταν για την εξερεύνηση και διαχείριση μοντέλων YANG, ώσπου τα συστατικά στα οποία βασιζόταν σταμάτησαν να υποστηρίζονται. Αναφορά στο Yang Explorer θα βρείτε και στο Cisco Code Exchange: https://developer.cisco.com/codeexchange/github/repo/CiscoDevNet/yang-explorer/ Το Yang Suite ωστόσο είναι σύγχρονο και ευέλικτο, έχει όλες τις δυνατότητες και πολλές περισσότερες και σύντομα θα προσφέρει στους μηχανικούς μια γέφυρα μεταξύ του παλιού κόσμου στον οποίο βασίζονταν (SNMP) και του καινούργιου (YANG). Όταν ανακοινωθεί επίσημα, θα ενημερώσουμε το άρθρο. https://blogs.cisco.com/developer/363-yangsuite-01 https://developer.cisco.com/docs/yangsuite/ https://gblogs.cisco.com/pt/2021/07/01/introduction-to-yang-suite/

yang suite

YDK - Yang Development Kit

Υπάρχει άλλο ένα εργαλείο που μπορεί να χρησιμοποιηθεί προγραμματιστικά για χειρισμό Yang Data Models & Yang Data. Διαθέτει βιβλιοθήλες C++ και Python. https://developer.cisco.com/site/ydk/

What’s next

Η ομάδα μας δεν δημοσιευει tutorials. Μπορείτε να βρείτε πολλά σε blogs, YouTube videos, free & paid training platforms. Μπορείτε επίσης να αναζητησετε βοήθεια εντός της ομάδας. Επόμενο introductory post: Introduction to PyATS.

Πηγές - Links

https://www.juniper.net/documentation/us/en/software/junos/netconf/topics/concept/netconf-yang-modules-overview.html https://www.fir3net.com/Networking/Protocols/an-introduction-to-netconf-yang.html https://discuss.tail-f.com/c/yang/8 https://grpc.io/docs/what-is-grpc/introduction/ https://developers.google.com/protocol-buffers/docs/overview

https://github.com/YangModels/yang https://www.yangcatalog.org/ https://github.com/mbj4668/pyang https://github.com/mbj4668/pyang/wiki/Tutorial https://blogs.cisco.com/developer/363-yangsuite-01 https://developer.cisco.com/docs/yangsuite/ https://gblogs.cisco.com/pt/2021/07/01/introduction-to-yang-suite/ https://developer.cisco.com/codeexchange/github/repo/cisco-ie/anx https://github.com/cisco-ie/anx

https://blogs.cisco.com/getyourbuildon/network-programmability-with-yang-the-structure-of-network-automation-with-yang-netconf-restconf-and-gnmi https://www.ciscolive.com/c/dam/r/ciscolive/emea/docs/2020/pdf/BRKDEV-1368.pdf https://www.ciscolive.com/c/dam/r/ciscolive/emea/docs/2020/pdf/BRKNMS-2032.pdf https://www.netacad.com/sites/default/files/images/careers/Webinars/DevNet/devnet_session_7_networkprogrammability_yang_netconf_restconf.pdf https://www.slideshare.net/cmoberg/a-30minute-introduction-to-netconf-and-yang https://www.tail-f.com/what-is-yang/ https://www.tail-f.com/wordpress/wp-content/uploads/2013/03/Tail-f-NETCONF-YANG-Service-Automation-LISA-Usenix-2011.pdf http://nxos-prog.ciscolive.com/pod0/labs/lab7/lab7-m1 https://developers.google.com/protocol-buffers/docs/overview https://grpc.io/docs/what-is-grpc/introduction/ https://datatracker.ietf.org/meeting/101/materials/slides-101-netconf-grpc-network-management-interface-gnmi-00 https://www.postman.com/product/what-is-postman/

https://www.montanari.io/posts/2020/scrapli_netconf/ https://github.com/ncclient/ncclient https://ncclient.readthedocs.io/en/latest/

https://www.cbtnuggets.com/learn/it-training/playlist/nrn:playlist:certification:5f57b50480e1f9001566c4cf/132?autostart=1