Jeremy’s IT Lab lecture video:

Day 59 - Intro to Network Automation


Commands

No Commands :)


Network Automation Info

  • In the traditional model, engineers manage devices one at a time by connecting to their CLI via SSH.

    • This has a few downsides to it, including:
      • Typos and other small mistakes are common.
      • It is time-consuming and very inefficient in large-scale networks.
      • It is difficult to ensure that all devices adhere to the organization’s standard configurations.
  • Meanwhile, on the side of the automated model, tools (ie. SDN, Ansible, Python scripts, etc.) are used to setup most of the configurations on network devices.

    • This includes a few benefits, such as:
      • Human error (typos etc.) is reduced.
      • Networks become much more scalable.
      • New deployments, network-wide changes, and troubleshooting can be implemented in a fraction of the time.
      • Network-wide policy compliance can be assured (standard configurations, software versions, etc)
      • The improved efficiency of network operations reduces the opex (operating expenses) of the network. Each task requires fewer man-hours.

Logical Planes

The various functions of network devices can be logically divided up into planes:

  1. Data plane
  2. Control plane
  3. Management plane

1. Data Plane

All tasks involved in forwarding user data/traffic from one interface to another are part of the Data plane.

  • A router receives a message, looks for the most specific matching route in its routing table, and forwards it out of the appropriate interface to the next hop.
  • It also de-encapsulates the original Layer 2 header, and re-encapsulates with a new header destined for the next-hop’s MAC address.
  • A switch receives a message, looks at the destination MAC address, and forwards it out of the appropriate interface (or floods it). This includes functions like adding or removing 802.1Q VLAN tags.
  • NAT (changing the source/destination addresses before forwarding) is part of the Data plane.
  • Deciding to forward or discard messages due to ACLs, port security, etc. is part of the data plane.
Data Plane Visualization

2. Control Plane

The Control plane contains functions that decide forwarding decisions for the Data plane.

  • A device makes its forwarding decisions through tables, like routing tables, MAC address tables, ARP tables, etc.
  • The Control plane basically controls what the data plane does, for example by building the router’s routing table.
  • It performs overhead work.
    • OSPF itself doesn’t forward data packets, but it informs the data plane on how packets should be forwarded.
    • STP itself isn’t directly involved in the process of forwarding frames, but it informs the Data plane about which interfaces should and shouldn’t be used to forward frames.
    • ARP messages aren’t user data, but they are used to build an ARP table which is used in the process of forwarding.
Control Plane Visualization

3. Management Plane

Similar to the Control plane, the Management plane performs overhead work. It also doesn’t directly affect the forwarding of messages in the data plane.

  • The Management plane consists of protocols that are used to manage devices.
    • SSH/Telnet, used to connect to the CLI of a device to manage/configure it.
    • Syslog, used to keep logs of events that occur on the device.
    • SNMP, used of monitor the operations of the device.
    • NTP, used to maintain accurate time on the device.
Management Plane Visualization

Traditional Networking Layout

  • In traditional networking, the Data plane and Control plane are both distributed. Each device has its own Data plane and its own Control plane. The planes are ‘distributed’ throughout the network.

More information on the planes

  • The Data plane is the reason why we buy routers and switches, to forward messages.
  • However, the Data plane cannot function by itself and that’s why both the Control plane and the Management plane are necessary to enable it to do its job.

Logical Planes - Special Hardware

The operations of the Management plane and Control plane are usually managed by the CPU.

  • However, the CPU is not desirable for Data plane operations because CPU processing is slow (relatively speaking).
  • That’s why a specialized hardware Application-Specific Integrated Circuit (ASIC) is used. ASICs are chips built for specific purposes.

  • ASICs are used in Switches for example, they do the following:
    • When a frame is received, the ASIC is responsible for the switching logic.
    • The MAC address table is stored in a kind of memory called Ternary Content-Addressable Memory (TCAM).
      • MAC address tables are also commonly called CAM tables.
    • The ASIC feeds the destination MAC address of the frame into the TCAM, which returns the matching MAC address table entry.
    • The frame is then forwarded out of the appropriate interface.

  • Modern routers also use a similar hardware Data plane: An ASIC designed for forwarding logic, and tables stored in TCAM.

Summary of the above:

  • When a device receives Control/Management traffic (destined for itself), it’ll be processed in the CPU.
  • When a device receives Data traffic, which should pass through the device, it is processed by the ASIC for maximum speed.

Software-Defined Networking (SDN)

(You can find more info about SDN in Day 62 - Software-Defined Networking)

Software-Defined Networking (SDN) is an approach to networking that centralizes the Control plane into an application called a Controller

  • This is similar to Wireless LAN Controllers (WLCs).
  • SDN is also called Software-Defined Architecture (SDA) or Controller-Based Networking.
  • Traditional Control planes use a distributed architecture.
    • For example, each router in the network runs OSPF and the routers share routing information and then calculate their preferred routes to each destination.
  • An SDN Controller centralizes Control plane functions (for example, calculating routes).
  • The Controller can interact programmatically with the network devices using Application Programming Interfaces (APIs).

Southbound Interface (SBI)

The Southbound Interface (SBI) is used for communications between the Controller and the network devices it controls.

  • It typically consists of a communication protocol and an API.
  • APIs facilitate data exchanges between programs.
    • Data is exchanged between the Controller and the network devices.
    • An API on the network devices allows the Controller to access information on the devices, control their data plane tables, etc.
  • Using the SBI, the Controller communicates with the managed devices and gathers information about them, such as:
    • The devices in the network
    • The topology of the network (how devices are connected together)
    • The available interfaces on each device
    • Their configurations

  • SBI examples:
    • OpenFlow
    • Cisco OpFlex
    • Cisco onePK (Open Network Environment Platform Kit)
    • Netconf
Visualization of the Control plane being centralized through the SDN Controller (Communication with network devices is done through the Southbound Interface (SBI))

Northbound Interface (NBI)

The Northbound Interface (NBI) is what allows us to interact with the Controller, access the data it gathers, program it, and make changes to the network via the SBI.

  • A Representational State Transfer (REST) API is used on the Controller as an interface to interact with it.
  • Data is sent in a structured (serialized) format such as JSON or XML.
    • This allows apps and programs to read and use the data.
Visualization of the Northbound Interface (NBI) being used by a program in order to receive information from the Controller

Automation in Traditional Networks VS Software-Defined Networking (SDN)

Traditional Networks

Networking tasks can be automated in traditional networks, for example:

  • Scripts can be written (using Python for example) to push commands to many devices at once.
  • Python with good use of Regular Expressions can parse through show commands to gather information about the network devices.

Software-Defined Networking (SDN)

The Controller collects information about all devices in the network.

  • Northbound APIs allow apps to access information in a format that is easy for programs and apps to understand. (JSON, XML, etc.)
  • The centralized data facilitates network-wide analytics.
  • SDN tools can provide the benefits of automation without the requirement of third-party apps and scripts.
    • You also don’t need expertise in automation to make use of SDN tools.
    • However, APIs allow third-party applications to interact with the Controller.

Jeremy IT Lab előadás videó:

59. Nap - Bevezetés a hálózati automatizációba (Day 59 - Intro to Network Automation)


Parancsok (Commands)

Nincsenek parancsok :)


Hálózati automatizációs ismeretek (Network Automation Info)

  • A hagyományos modellben (traditional model) a mérnökök az eszközöket egyesével kezelik úgy, hogy SSH-n keresztül csatlakoznak a CLI-jükhöz.

    • Ennek több hátránya is van, többek között:
      • Az elgépelések (typos) és egyéb apró hibák gyakoriak.
      • Időigényes és rendkívül kevéssé hatékony nagyméretű hálózatokban.
      • Nehéz biztosítani, hogy minden eszköz kövesse a szervezet szabványos konfigurációit.
  • Ezzel szemben az automatizált modellben (automated model) eszközöket (pl. SDN, Ansible, Python scriptek stb.) használnak a hálózati eszközök legtöbb konfigurációjának beállítására.

    • Ez számos előnnyel jár, mint például:
      • Csökken az emberi tévedések (elgépelések stb.) száma.
      • A hálózatok sokkal jobban skálázhatóvá válnak.
      • Az új telepítések, a hálózatszintű módosítások és a hibaelhárítás az idő töredéke alatt végrehajthatók.
      • Biztosítható a hálózatszintű szabályzatoknak való megfelelés (standard konfigurációk, szoftververziók stb.).
      • A hálózati üzemeltetés javuló hatékonysága csökkenti a hálózat működési költségeit (opex - operating expenses). Minden feladat kevesebb munkaórát igényel.

Logikai síkok (Logical Planes)

A hálózati eszközök különböző funkciói logikailag síkokra (planes) oszthatók:

  1. Data plane (Adatsík)
  2. Control plane (Vezérlési sík)
  3. Management plane (Menedzsment sík)

1. Data Plane

Minden olyan feladat, amely a felhasználói adatok/forgalom (user data/traffic) egyik interfészről a másikra történő továbbításában vesz részt, a Data plane része.

  • A router fogad egy üzenetet, megkeresi a legpontosabban illeszkedő (most specific) útvonalat a routing table-ben, és kiküldi a megfelelő interfészen a next hop felé.
  • Emellett de-encapsulation-t végez az eredeti Layer 2 fejlécen, majd új fejlécet készít (re-encapsulation), amely a next-hop MAC címére van címezve.
  • A switch fogad egy üzenetet, megnézi a destination MAC címet, és kiküldi a megfelelő interfészen (vagy elárasztja / floodolja). Ez magában foglalja az 802.1Q VLAN tagek hozzáadását vagy eltávolítását is.
  • A NAT (a source/destination címek módosítása továbbítás előtt) a Data plane része.
  • Az üzenetek továbbításáról vagy eldobásáról szóló döntés ACL-ek, port security stb. alapján szintén a Data plane része.
Data Plane Vizualizáció

2. Control Plane

A Control plane olyan funkciókat tartalmaz, amelyek a továbbítási döntéseket hozzák meg a Data plane számára.

  • Az eszköz a továbbítási döntéseit táblázatokon keresztül hozza meg, mint például a routing table, MAC address table, ARP table stb.
  • A Control plane alapvetően vezérli, hogy mit csinál a Data plane, például a router routing table-jének felépítésével.
  • Rezsimunkát (overhead work) végez.
    • Az OSPF maga nem továbbít adatcsomagokat, de tájékoztatja a Data plane-t arról, hogyan kell a csomagokat továbbítani.
    • Az STP maga nem vesz részt közvetlenül a keretek továbbításában, de meghatározza a Data plane számára, hogy mely interfészeket szabad és melyeket nem szabad kerettovábbításra használni.
    • Az ARP üzenetek nem felhasználói adatok, de egy ARP table felépítésére szolgálnak, amelyet a továbbítási folyamat során használnak.
Control Plane Vizualizáció

3. Management Plane

A Control plane-hez hasonlóan a Management plane is rezsimunkát végez. Emellett közvetlenül nem befolyásolja az üzenetek továbbítását a Data plane-ben.

  • A Management plane olyan protokollokból áll, amelyeket az eszközök menedzselésére használnak:
    • SSH/Telnet: az eszköz CLI-jéhez való csatlakozásra a menedzseléshez/konfiguráláshoz.
    • Syslog: az eszközön történő események naplózására.
    • SNMP: az eszköz működésének monitorozására.
    • NTP: a pontos idő fenntartására az eszközön.
Management Plane Vizualizáció

Hagyományos hálózati elrendezés (Traditional Networking Layout)

  • A hagyományos hálózatkezelésben a Data plane és a Control plane egyaránt elosztott (distributed). Minden eszköznek saját Data plane-je és saját Control plane-je van. A síkok „elosztva” működnek a hálózaton keresztül.

További információk a síkokról

  • A Data plane az oka annak, hogy routereket és switch-eket vásárolunk: az üzenetek továbbítása.
  • Azonban a Data plane önmagában nem képes működni, ezért mind a Control plane, mind a Management plane elengedhetetlen ahhoz, hogy elvégezhesse a feladatát.

Logikai síkok - Speciális hardver (Logical Planes - Special Hardware)

A Management plane és a Control plane műveleteit általában a CPU kezeli.

  • A CPU azonban nem ideális a Data plane műveleteihez, mert a CPU általi feldolgozás (relatív értelemben) lassú.
  • Ezért használnak speciális hardvert: Application-Specific Integrated Circuit (ASIC). Az ASIC-ek célorientáltan, meghatározott feladatokra épített chipek.

  • Az ASIC-eket például switchekben használják, a következők elvégzésére:
    • Keret fogadásakor az ASIC felelős a switching logikáért.
    • A MAC address table egy speciális memóriatípusban tárolódik, amelyet Ternary Content-Addressable Memory-nak (TCAM) neveznek.
      • A MAC address table-öket gyakran CAM table-nek is nevezik.
    • Az ASIC betáplálja a keret destination MAC címét a TCAM-be, amely visszaadja az egyező MAC address table bejegyzést.
    • A keret ezután a megfelelő interfészen kerül továbbításra.

  • A modern routerek szintén hasonló hardveres Data plane-t használnak: továbbítási logikára tervezett ASIC-et és TCAM-ben tárolt táblázatokat.

A fentiek összefoglalása:

  • Amikor egy eszköz Control/Management forgalmat kap (amely magának az eszköznek szól), azt a CPU dolgozza fel.
  • Amikor egy eszköz Data forgalmat kap, amelynek át kell haladnia az eszközön, azt az ASIC dolgozza fel a maximális sebesség érdekében.

Szoftveresen definiált hálózatok (Software-Defined Networking - SDN)

(További információt az SDN-ről itt talál: 52. Nap - Software-Defined Networking)

A Software-Defined Networking (SDN) egy olyan hálózati megközelítés, amely a Control plane-t egy Controller nevű alkalmazásban központosítja.

  • Ez hasonló a Wireless LAN Controller-ekhez (WLC-khez).
  • Az SDN-t Software-Defined Architecture-nek (SDA) vagy Controller-Based Networking-nek is nevezik.
  • A hagyományos Control plane-ek elosztott (distributed) architektúrát használnak.
    • Például a hálózat minden routere OSPF-et futtat, a routerek megosztják egymással a routing információkat, majd kiszámítják a preferált útvonalaikat az egyes célállomásokhoz (destinations).
  • Egy SDN Controller központosítja (centralizes) a Control plane funkcióit (például az útvonalak kiszámítását).
  • A Controller programozottan képes kommunikálni a hálózati eszközökkel Application Programming Interface-ek (API-k) használatával.

Southbound Interface (SBI)

A Southbound Interface (SBI) a Controller és az általa vezérelt hálózati eszközök közötti kommunikációra szolgál.

  • Jellemzően egy kommunikációs protokollból és egy API-ból áll.
  • Az API-k megkönnyítik a programok közötti adatcserét.
    • Adatcsere történik a Controller és a hálózati eszközök között.
    • A hálózati eszközökön található API lehetővé teszi a Controller számára az eszközökön lévő információk elérését, azok Data plane táblázatainak vezérlését stb.
  • Az SBI használatával a Controller kommunikál a menedzselt eszközökkel, és információkat gyűjt róluk, mint például:
    • A hálózatban lévő eszközök
    • A hálózat topológiája (hogyan kapcsolódnak össze az eszközök)
    • Az egyes eszközökön elérhető interfészek
    • Azok konfigurációi

  • SBI példák:
    • OpenFlow
    • Cisco OpFlex
    • Cisco onePK (Open Network Environment Platform Kit)
    • Netconf
Vizualizáció arról, ahogy a Control plane központosítva van az SDN Controller által (A hálózati eszközökkel való kommunikáció a Southbound Interface-en (SBI) keresztül történik)

Northbound Interface (NBI)

A Northbound Interface (NBI) teszi lehetővé számunkra az interakciót a Controllerrel, az általa gyűjtött adatok elérését, a felprogramozását és módosítások végrehajtását a hálózaton az SBI-n keresztül.

  • A Controlleren egy Representational State Transfer (REST) API szolgál felületként a vele való kommunikációra.
  • Az adatok továbbítása strukturált (szerializált) formátumban történik, mint például JSON vagy XML.
    • Ez lehetővé teszi az alkalmazások és programok számára az adatok beolvasását és felhasználását.
Vizualizáció arról, ahogy a Northbound Interface-t (NBI) egy program használja információk lekérésére a Controllertől

Automatizáció a hagyományos hálózatokban VS Software-Defined Networking (SDN)

Hagyományos hálózatok (Traditional Networks)

A hálózati feladatok a hagyományos hálózatokban is automatizálhatók, például:

  • Scriptek írhatók (például Python használatával), amelyekkel egyszerre több eszközre küldhetők ki parancsok.
  • A Python a Regular Expressions (reguláris kifejezések) hatékony használatával képes elemezni a show parancsok kimenetét, hogy információkat gyűjtsön a hálózati eszközökről.

Software-Defined Networking (SDN)

A Controller információkat gyűjt a hálózat összes eszközéről.

  • A Northbound API-k lehetővé teszik az alkalmazások számára az adatok elérését olyan formátumban, amelyet a programok és appok könnyen értelmeznek (JSON, XML stb.).
  • A központosított adatok megkönnyítik a hálózatszintű analitikát.
  • Az SDN eszközök anélkül nyújtják az automatizáció előnyeit, hogy külső (third-party) alkalmazásokra és scriptekre lenne szükség.
    • Az SDN eszközök használatához nincs szükség automatizációs szakértői ismeretekre sem.
    • Azonban az API-k lehetővé teszik a harmadik féltől származó alkalmazások számára az interakciót a Controllerrel.