what is Box-by-Box operations that done in network devices ? | - 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 |
how Automation help us ? | - new devices automatically finds an initial configuration
- automated QoS profiles/config
- automated AAA profiles/config
- utilizes scripts/tools
- standardize some procedures
- schedule operations
- sometimes, automated troubleshooting (WoW)
So smaller staff is needed, time saving, and config consistency. |
what is SDN ? | 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) . |
what is SDN Controller ? | - 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) |
SDN has 2 Type of Implementation ? | - Imperative Approach
- Declarative Approach |
what is 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 |
what is 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 |
what is 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) |
what does it mean SDN Fabric ? | - the physical devices used to build the underlay
- those devices can be controlled by a “Controller” |
what are the 3 planes in the network devices ? | 1-Control Plane
2- Data Plane
3-Management Plane |
what is 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...) |
what is Data plane ? | - also known as Forwarding Plane
- any logical/physical component that controls the frame/packet
Forwarding (action)
- like Tables (MAC Table, Routing Table) |
what is Management Plane ? | - responsible for AAA (remotely)
- also, the console port resides in here |
so how SDN will effect the planes ? | depends on the implementation approach
if it was an Imperative approach
- also called a “Stateful SDN”
OR
- if it was a Declarative approach
- also called a “Stateless SDN” |
what is DNA center ? | 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 . |
what are APIC and NDP ? | - 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 |
what is API ? | 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) |
what is a northbound api ? | - the transformers that are transforming everything from
The Application to the controllers, and vice-versa
- those will be called “Northbound API” |
what is a southbound api ? | - also transforms everything from the controller to the network
Devices, and vice-versa
- the “Southbound API” |
what are 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) |
what is REST-Based APIs ? | Representational State Transfer
the most common type of web-service API, mostly found in the Northbound.
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 ? | (XML, and JSON)
encoding means standardizing a data structure between the app,
Controller, and nodes. |
what are the applications that you use to automate ? | (Puppet, Chef, and Ansible).
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 |
what are 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 |
what is Ansible? | - Agentless
- uses the Push Model
- Master pushes a config to the agent
- uses the YAML language |
what is (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” |
what does JSON Values means ? | always surrounded by a curly bracket { }
- name:value pairs
- a string must be enclosed with double quotes “ ” like ={“name”:”III”,“job”:”channel”,“location”:”YouTube”}. |