Anuket Project
Potential Project: Automated Network Device Configuration
Target Phase of Cloud-Lifecycle:
Pre-Deployment of VIM (Openstack or Kubernetes)
Cloud Deployment – Real-World Workflow.
- Hardware Delivery.
- Racking / Stacking
- Power On.
- Hardware configuration and (Validation – handled by CIRV-HDV).
- [N/W Configuration]
- cabling – already done
- BMC is connected – already done
- Link aggregation, OSPF, VRF, STP, security configuration, NTP, - need to make sure if this can be done by SDN controller(ZTE, Huawei, H3C). day-0
- SDN – discover & plan network.
- Cloud Deployment (Multiple Installer projects - Airship, Triple-O, Fuel, Kuberef, etc.)
Project description
In the real-world cloud deployment, network device configuration always takes a lot time, the reason could be network adjustment from cloud application, or lack of common definition. So to reduce the time for cloud deployment, we need a flexible fc automation tool to configure network devices.
Existing challenges
1,time consuming, multiple reconfiguration, so machine readable configuration is needed
2,no uniform way to provide configuration for SDN controller –
In order to do that, we will need define common architecture configuration requirements as reference for network devices, and a flexible automation tool which will take user network configuration requirements/preference and network planning as input.
Scope
The scope of this project will including 2 parts: specification and implementation
Specification-RI:
Define common network device topology, which will including router, SDN GW, EOR, and TOR all network devices in Access layer, aggregation layer, and outgoing layer, both SDN and Non-SDN
Define the common network device configuration requirements, like
VRF configuration reference to separate different network
M-LAG, LACP, STP, OSPF and other protocol reference, Link aggregation configuration reference
Security reference
etc
Implementation
We expecting this tool could be flexible and scalable, the tool should be able to configure network devices based on the users inputs, including configuration requirements/preference and network planning.
Implementation part will include:
define the standard user requirement config file, so user can provide user requirements like how and what VRF required, and how devices connected, including connection to TOR, EOR, servers (number of cables, load balance/slave-master)
define the standard network planning config file, including network plane, VLAN ID and allocated IP ranges, applied nodes.
then the tool will generate the transcript of configuration items, and then configure network devices according to Network device description file.
User do not have to provide all network configuration requirements at once, we can configure network devices step by step based on the user input. For example, if we only got TOR requirements from user requirements, we can just configure TOR.
Technology:
Ansible
- Ansible Network is in very matured stated.
- Especially true for Tier-1 switch vendors.
- Multiple connections and Numerous Modules
Ansible -Roles:
Verb-First, Vendor-Next
Verbs: Gather Facts and Capabilities (mandatory), Update Firmware (optional), Update Config (Mandatory)
For Each Verb: Multiple Switch Vendor specific ansible tasks.
Dependency
PDF(Pod Description File). The description file should includes information for all network device : name, IP, login info, role, port-mapping table
People Interested to contribute:
jie niu (mainly work on specification)
Sridhar Rao (Implementation Only)