Commit cafe2104 authored by Manuel Kieweg's avatar Manuel Kieweg 🤷
Browse files

Merge branch 'develop' into 'master'

Update stuff

See merge request !7
parents c55c68eb ecb7c149
Pipeline #73565 passed with stage
in 12 seconds
# Summary
* [da/net OER](README.md)
* [da/net edurouter](danetro/README.md)
* [Managing Networks](manage-networks/README.md)
* [Intro](manage-networks/Intro/README.md)
* [Yang Models](manage-networks/yang-models/README.md)
* [Transport of Yang Models](manage-networks/transport/README.md)
* [YANG-GNMI Programming](manage-networks/yangnmi-prog/README.md)
# The da/net edurouter (danetro)
The da/net group uses a virtual machine with jails as educational environment for students to work with exercises around various network topics in our courses.
The virtual machine environment is called the da/net edurouter, or short danetro.
......@@ -2,4 +2,19 @@
Managing networks, i.e., any type of data network such as the Internet or special purpose ones, comprises a number of meanings depending on the technical context and also depending on type of person dealing with this topic.
In broad terms, managing networks defines all actions required to setup, run, and monitor a data network. Whereas such a network is made of network elements, links between these network elements, network services, and customer services.
In broad terms, managing networks defines all actions required to setup, run, and monitor a data network. Whereas such a network is made of network elements, links between these network elements, network services, and customer services. For any network element, a supervisor should be able to read configuration and operational data from and write configuration data to.
Configuration data is, for example, the hostname, an IPv6 addresses, or the used routing protocol in a subnetwork. Operational data is, for example, the temperature of the element or the number of packets sent.
However, there are a number of challenges in this area:
* variety of network elements, e.g., switches, routers, multi-service devices,
* variety of different vendors,
* number of network elements, such as, switches, routers, virtual-machine hosts and their networking stack,
* number of links between elements, such as physical links and logical links,
* number of activities, such as data flows, routes, application services,
* number of ways to interact with the various network elements, such as, ssh, snmp, yang/gnmi,
* and last but not least human operators in charge of managing all of it.
This memo here aims at showing one specific way of managing networks today (as of 2021) and is covering what is typically noted under *network management* or *Software Defined Networking (SDN)*. However, in both areas a network supervisor aims at controlling the behavior of the network elements and potentially the complete network.
We focus on yang models and their application with gnmi.
# Transport of YANG Models
The definition of YANG models is one part of being able to manage network elements, but communicating the contents of the model to and from a network element is another issue.
# Yang Models
## Abstraction of Network Elements
There are various network elements in different "flavors" mentioned in the introduction to this memo. We propose two basic types for our discussion here in order to have to concrete examples:
* a FreeBSD-based software router on a commercial off-the-shelf (COTS) PC
* and an Arista-based hardware switch, e.g., a DCS-7050TX-48.
Both are different network elements, e.g.:
* the software router does forwarding of packets in software vs. the Arista does forwarding in specialized forwarding hardware
* the software router is a server-based element vs. the Arista is a special-build element.
Nonetheless both share network concepts, for instance:
* interfaces: both type have hardware interfaces, but packet processing is handled differently (e.g., packets are passed to the operating system on PC-based systems while on a switch packets are in most cases handled in hardware)
* forwarding: forwarding of packets has to be performed in both types
* routing: selection of a routing protocol and determination of the necessary parameters.
This leads to the point that one can create an information model of a network element, based on the building blocks, i.e., made up of the network concepts. The information model would define that a network element has 1 to n interfaces, where an interface has a name, an identifier, a hardware-address, 0 to m IP addresses etc.
An information model is not sufficient, as it does not determine how the information is mapped to the actual data. For instance, interface identifiers could be human readable, e.g., "exp0" which is a string, or just a number such as _15_. This general representation is described in a so-called data model, where the data elements, their syntax and their semantics are described. (TODO: needs better definition and citation)
Historically, Management Information Bases (MIBs) have been one way of defining data models for network elements. (TODO: need ref to MIB)
## YANG: A Data Modeling Language for Networks
RFC 6020
## YANG Models
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment