This repository covers demo of Service Provider multi-vendor network running Segment Routing with various services on top.
Whenever possible OpenConfig YANG modules are used to unify the configuration of Service Provider Fabric. Where it isn't possible (where OpenConfig YANG modules aren't created or not implemented by particular vendor), either vendor-native YANG modules or CLI-based Ansible playbooks are used.
- Arist EOS 4.21.1.1F
- Cisco IOS XR 6.5.1
- Nokia SR OS 16.0.R5
- Cumulus Linux 3.7.1
- IP VPN for IPV4 and IPV6 between all 3 PE
- EVPN (E-LAN fashion) between all 3 PE
InfluxData TICK (Telegraf and InfluxDB) + Grafana:
- Telegraf is using to collect data over SNMPv3 over IPv6 and store it in InfluxDB
- Another Telegraf insance collects syslog information on UDP port 6514 in RFC5424 format and stores it into another database in InfluxDB
- Grafana polls data out of InfluxDB to build graphs of interfaces' utilization and syslogs information
This repositry is currently being developed, so expect the changes and pull the repository to get the latest version
- Add automation for EVPNoSR services
- Add SR policies (static and dynamic using BGP-SR-TE)
- Add automatic chose of connection method use by device depending on its capabilities (CLI, NETCONF/YANG(native), NETCONF/YANG(OpenConfig))
- Add GRT routing service (BGP-LU for IPv4/IPv6) for Internet traffic
The current version of the repository is 0.6.3
Version 0.1
- Initial topology is created.
- IP VPN is deployed.
Version 0.2
- Previous files are stored in
backup
folder in proper version. - Underlay topology is updated. It starts with
sp_
prefix. - New overlay topology for EVPN (E-LAN) is created. It starts with
evpn_elan_
prefix and located withintopology
folder. - Initial configuration files are updated. Now all of them start with
sp_
prefix. - New final configuration files for EVPN (E-LAN) are created. Their names start with
evpn_elan_
prefix.
Version 0.3
- Added folder
ansible
with automation of Service Provider Fabric configuration. More details inansible/README.md
. - Initial configuration files are updated to anticipate minimal requirements for automation.
- Underlay topology file
topology/sp_underlay.txt
is updated with link prefixes for IPv4 and IPv6. - Currently only underlay IGP (ISIS) and MPLS data plane (Segment Routing) is automated.
- New file with OOB topology is assed in
topology/oob_management.txt
.
Version 0.4
- Added LLDP configuration for
underlay_mpls
role. It's configured automatically on all Ethernet interfaces. - Added BGP configuration for
underla_bgp
role to finalize creation of Service Provider Fabric. More details inansible/README.md
. - Some changes in tasks structure in
underlay_mpls
role to unify and simplify the configuration and provide possibility to extend for new vendors. - Added YANG tool
yang_extractor_config.yml
to obtain the configuration/states in particular YANG module from network function. More details inansible/README.md
.
Version 0.4.1
- New overlay topology for IP VPN (IPv4 and IPv6) is created. It starts with
ip_vpn_
prefixi and located withintopology
folder. - Files for EVPN (E-LAN) toplogies are slightly modified.
- Varios updated in
README.md
files across sub-folders. - Underlay topology
sp_underlay.txt
is updated with the metic values of the interfaces. - Template for configuration of Nokia for
underlay_mpls
roles is updated to include metric values. - File
main_final.yml
fromunderlay_mpls/tasks
is updated to apply viaeos_config
on Arista EOS network functions configuration commands not available in OpenConfig YANG modules.
Version 0.4.2
- Configuration of Nokia SR OS for
underlay_mpls
role is converted to NETCONF/YANG using Nokia native YANG modules. - Configuration of Nokia SR OS for
underlay_bgp
role is converted to NETCONF/YANG using Nokia native YANG modules.
Version 0.5
- Automation for IP VPN service creation based on IETF L3VPN SVC (RFC 8299) is added. Check
ansible\README.md
for details how to launch. - IETF L3VPN SVC service reqest is located in
ansible\vars
folder and starts withservice_ip_vpn_
prefix. - Information about default route target and route distinguishers range allocated for automated services is stored in
ansible\group_vars\all\main.yml
- In
ansible\files\ietf
folders there are all IETF YANG models including L3VPN and L2VPN SVC clonned from official GitHub of Yang. - To role
underlay_bgp
added configuration of default route policy (action: accept_route) to be used later for customer route fileting. - Added customer provisioning for IP VPN using
ansible\customer_equipment.yml
.
Version 0.5.1
- Added automated configuration of SNMP version 3. More details in
ansible/README.md
.
Version 0.5.2
- Management IP addresses are changed to IPv6, so from now on the communication between management host and all VNFs is over IPv6.
- File
hosts
with actual state of project's/etc/hosts
is added tofiles
folder.
Version 0.6
- Added monitoring using InfluxData TICK and Grafana. Automated installation and operation over
management_cloud.yml
playbook. More details inansible\README.md
. - OOB topology
topology/oob_management.txt
is updated with containers' network (Docker bridge). - Mapping of IP to VNF hostname for OOB is stored in
ansible/vars/etc_hosts.yml
. - Added ansible role to update
/etc/hosts
with proper OOB IPv6 addresses of network VNFs. More details inansible\README.md
. - Added
topology/monitoring_architecture.txt
scheme with explanation how the Service Provider Fabric is monitored.
Version 0.6.1
- Added automated generation of self-signed certificate on InfluxDB.
- Communication between Telegraf and InfluxDB is moved to HTTPS.
- Communication between Grafana and InfluxDB is moved to HTTPS.
- Communication between Grafana and user is moved to HTTPS.
Version 0.6.2
- Automatical linking of IP addresses between containers.
Version 0.6.3
- Rebuild the role of
cloud_monitoring
. - Added
telegraf_syslog
container, which collects the syslog information. BTW, the current limitation that it supports only RFC 5424 format, whereas Cisco, Arista and Nokia send the info in RFC 3164 format, what isn't yet compatible.