NETCONF

What is NETCONF?

NETCONF is a network management protocol for configuration management and retrieving configuration and operational state data from network devices.

NETCONF uses a simple Remote Procedure Call (RPC) based mechanism to facilitate communication between a client and a server and uses XML for encoding the configuration data as well as the protocol messages. It uses Secure Shell (SSH) as the transport layer across network devices. It uses SSH port number 830 as the default port.

NETCONF also supports capability discovery and model downloads.

Continue reading NETCONF

YANG – Data Modeling Language

What is a Data Model?

A data model is a description of how data must be encoded for information exchange between two entities.

What is YANG?

YANG is a text-based data modeling language designed for use with any network management protocol including NETCONF and RESTCONF. YANG is used to model [semantics and constraints of] configuration and operational state data as well as general RPC data.

Continue reading YANG – Data Modeling Language

Ethernet Connectivity Fault Management (CFM) – IEEE 802.1ag

Ethernet Connectivity Fault Management – CFM, is an end-to-end per-service-instance Ethernet operation, administration, and management (OAM) protocol. CFM provides an equivalent of the ping and traceroute commands at layer 2 for large Ethernet metropolitan-area networks (MANs) and WANs.

CFM has its own Ether type (0x8902) and destination MAC address (for multicast messages). CFM employs regular Ethernet frames that travel in-band with the customer traffic so devices that cannot interpret CFM Messages forward them as normal data frames.

Continue reading Ethernet Connectivity Fault Management (CFM) – IEEE 802.1ag

Introduction to IS-IS

IS-IS was developed by the International Organization for Standardization (ISO) as part of their Open Systems Interconnection (OSI) model as a dynamic routing protocol for ISO CLNP. IS-IS was adapted to carry IP prefixes in addition to CLNP known as Integrated or Dual IS-IS.

ISO terminology

  • Router = Intermediate System (IS)
  • Host = End system

In the OSI context, an intermediate system refers to a router, as opposed to an end system (ES), which refers to a node. ES-IS protocols allow routers and nodes to identify each other; IS-IS performs the same service between nodes for routing purposes.

IS-IS

  • Interior Gateway Protocol (IGP)
  • link-state routing protocol
  • supports variable-length subnet mask addressing (VLSM)
  • supports classless Inter-Domain Routing (CIDR)
  • multi-path
  • forms neighbor adjacencies
  • has areas
  • exchanges link-state packets
  • builds a link-state database
  • runs the Dijkstra SPF algorithm to find the best path
  • runs directly on the data link layer (Layer 2)
  • doesn’t use IP addresses

Continue reading Introduction to IS-IS

Batch network configuration/ verification with Python.

This simple Python code reads a configuration/ commands file (script.txt) and a CSV formatted inventory file (inventory.csv) and then apply the configuration/ commands to the devices in the inventory file and finally generates a simple output file (output.txt).

Here is the CSV formatted inventory file:

ip,hostname,type,category,folder,username,password,telnet_port,ssh_port,netconf_port
192.168.240.201,IOSXRv-1,cisco_ios,csr,default,automation,P@ssw0rd,23,22,830
192.168.240.202,IOSXRv-2,cisco_ios,csr,default,automation,P@ssw0rd,23,22,830

And this is the Python script:

import csv
from netmiko import ConnectHandler
import sys

devices = []
response = ""

with open("inventory.csv", "r") as file_h:
    for record in csv.DictReader(file_h):
        devices.append(record)

with open("script.txt", "r") as file_h:
    script = file_h.readlines()

for device in devices:
    response = response + \
               "{HOSTNAME}[{IP}]:\n".format(HOSTNAME=device["hostname"],IP=device["ip"])
    try:
        with ConnectHandler(ip=device["ip"],
                            port=device["ssh_port"],
                            username=device["username"],
                            password=device["password"],
                            device_type=device["type"]) as connect_h:

            for line in script:
                response = response + connect_h.send_command_expect(line) + "\n\n"
                
    except:
        response = response + str(sys.exc_info()[0])

with open("output.txt", "w") as file_h:
    file_h.write(response)

Read more about network automation here:

Network Programmability and Automation: Skills for the Next-Generation Network Engineer

Read more about netmiko here: https://github.com/ktbyers/netmiko

Nexus 7000 Series VDC Concepts and Configuration: Notes on

Virtual Device Context

 Virtual Device Context (VDC) partitions a single physical device into multiple logical devices that provide fault isolation, management isolation, address allocation isolation, service differentiation domains, and adaptive resource management. VDC also virtualizes the control plane, which includes all those software functions that are processed by the CPU on the active supervisor module.

  Continue reading Nexus 7000 Series VDC Concepts and Configuration: Notes on

Fiber Channel over Ethernet (FCoE): Notes On

Data Center Bridging Standards / Converged Enhanced Ethernet

Enhancements required for a successful Unified Fabric implementation, where network and storage traffic are carried over the same Ethernet links, are defined under the Data Center Bridging standards defined by the IEEE.

These enhancements make sure that Unified Ethernet fabric provides lossless, no-drop, in-order delivery of packets end-to-end.

This is also called Converged Enhanced Ethernet (CEE).

These enhancements include:

  • Priority Flow Control (PFC)
  • Enhanced Transmission Selection (ETS)
  • Quantized Congestion Notification (QCN)
  • Data Center Bridging Exchange (DCBX)

Continue reading Fiber Channel over Ethernet (FCoE): Notes On