Cisco Certified Network Associate (200-301 CCNA)
CHAPTER 7: AUTOMATION & PROGRAMMABILITY
7.1 Automation
- Traditionally, Network Management is about
- Installation and initial config
- modifying and updating the existing config
- upgrading software
- all of those were achieved by
- Console, Telnet, SSH, applying scripts or by copying config
- and, Monitoring
- which was achieved through
- SNMP, and Netflow
- AND, it was always “Box-by-Box”
1
Cisco Certified Network Associate (200-301 CCNA)
- With Automation
- new devices automatically finds an initial configuration
- automated QoS profiles/config
- automated AAA profiles/config
- utilizes scripts/tools
- standardize some procedures
- software image per device model
- and, the upgrade procedure
- schedule operations
- sometimes, automated troubleshooting (WoW)
- which are done through (CLI, SSH, SNMP, NETCONF, RESTCONF)
- topology visualization and monitoring
- which are done by using (SNMP Manager, and Netflow Collector)
- So, all of that led to reduce or even eliminate the Box-by-Box,
Smaller staff is needed, time saving, and config consistency
2
Cisco Certified Network Associate (200-301 CCNA)
7.2 Software-Defined Networking (SDN)
- Automation is achieved by SDN
- where you have a “software” that runs your network
- so, through a “software” you be able to run and administrate
An entire network, with its different types of devices
- that will definitely need either a “Controller”!!!
Or, a built-in scripting (Cisco TCL, or Python)
- SDN Controller
- the big guy that does almost everything in this chapter
- controls and implement the automation and administration
- can either be
- A “software” installed in a server
- An appliance with a controller inside (Cisco APIC, DNA Center)
- Or, a remote controller through the cloud
- and, it uses some tools/apps like (puppet, chef, and ansible)
3
Cisco Certified Network Associate (200-301 CCNA)
7.3 SDN Implementation
- Imperative Approach
- the control plane logic resides completely in the controller
- the controller has a complete control over programing the
The forwarding decisions of the networking devices
- devices then will ask the controllers before any forwarding
Or routing action
- Declarative Approach
- the control plane resides within the network device (just like before)
- the controller will declare the requirements of the all the
Forwarding/routing decisions to the networking devices
- the network devices will then decide how to translate the
Controller instructions into actions
4
Cisco Certified Network Associate (200-301 CCNA)
7.4 SDN Architecture
- Underlay Network
- the protocols & features to get reachability
- all the links must be L3 and P2P
- open standard protocols (OSPF and IS-IS)
- Overlay Network
- Virtual Network created on top of the Underlay
- now the underlay is like a “physical connectivity”
- some protocols use (VRF, MPLS-VPN, VXLAN)
- SDN Fabric
- the physical devices used to build the underlay
- those devices can be controlled by a “Controller”
5
Cisco Certified Network Associate (200-301 CCNA)
7.5 SDN Effect upon Planes
- First of all, there are 3 planes in the network devices
- Control Plane
- learn information from the protocols
- downloads them to the Data planes (as Tables)
- protocols resides here (routing protocols, MAC learning,
DHCP, AAA, etc…)
- Data Plane
- also known as Forwarding Plane
- any logical/physical component that controls the frame/packet
Forwarding (action)
- like Tables (MAC Table, Routing Table)
- Management Plane
- responsible for AAA (remotely)
- also, the console port resides in here
6
Cisco Certified Network Associate (200-301 CCNA)
- so, the SDN effect upon the Control and the Data plane
- depends on the implementation approach
- if it was an Imperative approach
- also called a “Stateful SDN”
- the controller will be responsible for learning information
- and downloading them to the data plane
- if the devices lost connectivity to the controllers, they
Will be powerless
- if it was a Declarative approach
- also called a “Stateless SDN”
- the controller will only declare how it wishes things
To go on in the network
7
Cisco Certified Network Associate (200-301 CCNA)
- Cisco DNA Center
- the Digital Network Architecture
- it is an Appliance (comes in various models)
- A Central Management, Automation, and Analysis Point
- gives Intent-Based Networking
- and that is, controlling a network by a software
- allows to design and create topology maps
- design WLAN SSIDs
- managed through a GUI
- has a built-in APIC
- the Application Policy Infrastructure Controller
- it’s controller
- also has a built-in NDP
- Network Data Platform
- analyzes problems, show them, and suggest solutions
8
Cisco Certified Network Associate (200-301 CCNA)
7.6 Application Programming Interface
- the transformers that are transforming everything from
The Application to the controllers, and vice-versa
- those will be called “Northbound API”
- also transforms everything from the controller to the network
Devices, and vice-versa
- the “Southbound API”
- and, transforms data between different controllers of different devices
- so, it’s a code
- written by a language
- that language encodes data into an API
- it uses the Server/Client relation
- in the Northbound (Controller = Server, Application = Client)
- in the Southbound (Network Device = Server, Controller = Client)
9
Cisco Certified Network Associate (200-301 CCNA)
- API types
- Internal API
- between applications
- like transferring data from HTML to PDF
- Web-Service API
- exchanging data between remote devices
- Uses IP address
- like REST-Based API
*some Southbound APIs (Openflow, Cisco OpFlex, CLI,
SNMP, NETCONF)
10
Cisco Certified Network Associate (200-301 CCNA)
- Representational State Transfer APIs (REST-Based APIs)
- the most common type of web-service API
- mostly found in the Northbound (like a Polar Bear!)
- utilizes HTTP verbs (GET, PUT, POST, DELETE)
- while a REST API is in developing, a developer would use
A CRUD to develop the API’s HTTP verbs
- CRUD = Create, Read, Update, and Delete
- most common languages used to encode data in a REST-Based API
Are (XML, and JSON)
- encoding means standardizing a data structure between the app,
Controller, and nodes
*Cisco Intent: is a Northbound REST-Based API
11
Cisco Certified Network Associate (200-301 CCNA)
7.7 Configuration Management Mechanisms
- the applications that you use to automate
- all of them requires CLI/Scripting
- includes a GUI
- schedule a task
- manually instantiate events
- so, a CLI script will give a GUI result
- like (Puppet, Chef, and Ansible)
12
Cisco Certified Network Associate (200-301 CCNA)
- Puppet & Chef
- uses the Master/Agent relation
- 2 codes
- one in the server, other in the node
- uses the Pull Model
- an agent will periodically ask a master for event and actions,
And Pulls the script from it
- uses the RUBY language
- Ansible
- Agentless
- uses the Push Model
- Master pushes a config to the agent
- uses the YAML language
13
Cisco Certified Network Associate (200-301 CCNA)
7.8 Java-Script Object Notation (JSON)
- a programming language used to create APIs
- used by REST-Based APIs
- human-readable
- lightweight
- the “Object” is about
- a container that encloses “one-or-more” {name:value} pairs
- also called a “key-value pairs”
- JSON Values
- always surrounded by a curly bracket { }
- name:value pairs
- a string must be enclosed with double quotes “ ”
- like = {“name”:”III”, “job”:”channel”, “location”:”YouTube”}
14
Cisco Certified Network Associate (200-301 CCNA)
- the pairs values types
- String:String
- the name is a string, also the value is a string
- {“name”:”III”}
- String:Number
- the value won’t need a double quote
- {“Count”:10}
- String:Arrays
- for a range of values
- {“Class”:[A, B, C, D]}
- String:Booleans
- True/False case
- the value won’t need a double quote
- {“Direct”:False}
- Null
- {“Route”:Null}
*Spaces don’t matter
15
Cisco Certified Network Associate (200-301 CCNA)
- Thanks a lot for reaching here so far
- Chapter 7 is the final chapter
- CCNA 200-301 Complete Course
- Free and available on YouTube
- Available in 2 Languages (English and Arabic)
- more Courses are coming!
https://www.youtube.com/channel/UCbXctm6VW2ZZrksHBWAg_tw
16