This is a comprehensive lab simulating an access, aggregation, and core IP network using SRv6 (Segment Routing over IPv6) technology. The lab demonstrates L2 service interworking between an SRv6 domain in access ring 2 and a legacy RSVP domain in access ring 1, showcasing modern network evolution and service continuity.
The lab consists of three main network layers:
- R01-IXR (IXR-R6): Access router with 10G/100G interfaces
- R02-IXR (IXR-e2): Access access router
- R03-IXR (IXR-R6): Access router with 10G/100G interfaces
- R04-IXR (IXR-R6): Access with 10G/100G interfaces
- R05-SR to R12-SR (SR-1): Core routers forming the backbone with both SRv6 and RSVP enabled
- R05-SR & R06-SR: ASBR (Autonomous System Border Routers) connecting RSVP to SRv6
- R11-SR & R12-SR: ASBR connecting SRv6 to SRv6 access ring
- R13-IXR (IXR-R6d): SRv6 Access router with 100G QSFP28
- R14-IXR (IXR-e2): SRv6 Access router
- R15-IXR (IXR-R6d): SRv6 Access router with 100G QSFP28
- R16-IXR (IXR-e2): SRv6 Access router
- Multi-Domain Interworking: Seamless L2 service delivery between RSVP and SRv6 domains
- Modern Network Evolution: Smooth migration from legacy RSVP to modern SRv6
- Comprehensive Testing: Multiple test endpoints for service validation
- Telemetry Integration: Full observability with Prometheus, Grafana, and gNMI
- Containerized Deployment: Easy deployment using Containerlab using Nokia SR-SIM
- L2 Epipe services between RSVP and SRv6 domains
- End-to-end connectivity verification
- Performance metrics collection
- Containerlab: Network topology orchestration (0.69.3 or higher)
- Nokia SROS: Network operating system (25.7.R1 for SR-SIM support. If only vSIM is available, use 24.10.R1 or newer)
- SRv6: Segment Routing over IPv6 for modern packet forwarding
- RSVP-TE: Legacy traffic engineering protocol
- EVPN: multi-instance service layer for RSVP and SRv6 interworking
- PW-switching: PW switching for legacy deployment using a PW per domain stitched at the ASBR
- gNMI: Network configuration and telemetry
- Prometheus + Grafana: Monitoring and visualization
- UPA: prefix summarization for SRv6 locators including Unreachable Prefix Announcement (UPA)
- Docker and Containerlab installed
- Nokia SROS license files (see license section in topology file)
- Sufficient system resources for 16+ network nodes
- Clone the repository:
git clone https://github.com/giancarlo3g/srv6_lab.git
cd srv6_lab
- Deploy the topology:
containerlab deploy
- Verify deployment:
containerlab inspect
All nodes are accessible via SSH on the following ports:
- RSVP Access Ring: 50101-50401 (R01-R04)
- Core SRv6: 50501-51201 (R05-R12)
- SRv6 Access Ring: 51301-51601 (R13-R16)
- Test Endpoints: 172.20.20.120-128
- Management Network: 172.20.20.0/24
- Node Configs: Located in
./config/
directory - Telemetry Configs: Located in
./tele-config/
directory - Topology File:
topo.clab.yml
(main deployment file)
The lab includes comprehensive monitoring capabilities:
- Prometheus: Metrics collection on port 9090
- Grafana: Visualization dashboard on port 3000
- Consul: Service discovery on port 8500
- gNMI: Network telemetry streaming
For classic SID
/show router isis 1 segment-routing-v6 locator
/show router segment-routing-v6 local-sid
/show router isis segment-routing-v6 locator
For micro-SID (uSID or Next-CSID)
/show router segment-routing-v6 micro-segment-locator
/show router segment-routing-v6 micro-segment-local-sid
/show router isis 1 segment-routing-v6 micro-segment-locator
/show fwd-path-ext fpe 1
/show router route-table ipv6 2001:ac8:0:b::/64
/show router tunnel-table ipv6 2001:ac8:0:b::/64
/show router tunnel-table ipv6 2001:ac8:0:b::/64 alternative
/show router fib 1 ipv6 ip-prefix-prefix-length 2001:ac8:0:b::/64
/show router bgp routes 172.31.3.0/24 vpn-ipv4 detail
- tester1-tester5: RSVP domain connectivity testing
- tester11, tester13, tester14, tester16: SRv6 domain connectivity testing
The lab demonstrates L2 service continuity between:
- Legacy RSVP domain (Access Ring 1)
- Modern SRv6 domain (Access Ring 2)
This showcases how service providers can evolve their networks while maintaining existing customer services.
- epipe (T-LDP) R2-R3_2000
- Connectivity test between tester1 (IP 192.168.0.1, VLAN 10) and tester14 (IP 192.168.0.14, VLAN 10)
- epipe (T-LDP) R1-R14_3000
- RSVP-based LSP/SDP per domain stitched at ASBR
- Includes PW-redundancy from R01 to both ASBR R05/R06
- Connectivity test between tester1 (IP 192.168.0.1, VLAN 10) and tester14 (IP 192.168.0.14, VLAN 10)
- epipe (BGP-EVPN) R13-R16_VPWS-SRv6
- Summarization on ASBR nodes R11 and R12
- Connectivity test between tester13 (IP 10.13.16.13, VLAN 1316) and tester16 (IP 10.13.16.16, VLAN 1316)
- epipe (BGP-EVPN) R05-R16_VPWS-SRv6
- Summarization on ASBR nodes R11 and R12
- Connectivity between tester5 (IP 10.5.16.5, VLAN 516) and tester16 (IP 10.5.16.16, VLAN 516)
- epipe R04-R13_VPWS-SRv6
- RSVP-based LSP/SDP with T-LDP epipe on access ring 1 from R04 to both ASBR nodes R05/R06
- SRv6 from ASBR nodes R05 and R06 to R13
- Connecitivy between tester4 (IP 10.4.13.4, VLAN 413) and tester13 (IP 10.4.13.13, VLAN 413)
srv6_lab/
├── topo.clab.yml # Main topology file
├── topology/ # Network diagrams
│ ├── Topology.png # High-level topology
│ └── detailed_topology.png # Port-level details
├── config/ # Node configurations
├── tele-config/ # Telemetry configurations
│ ├── gnmic.yaml # gNMIc configuration
│ ├── grafana/ # Grafana configuration
│ └── prometheus/ # Prometheus configuration
├── commands/ # Command reference files
├── srv6_7250.md # 7250 IXR configuration guide
├── srv6_7750.md # 7750 SR configuration guide
├── upa.md # UPA and prefix summarization configuration guide
├── save_config.sh # Configuration backup script
├── .gitignore # Git ignore file
└── README.md # This file
This lab is designed for educational and testing purposes. Feel free to modify configurations and experiment with different SRv6 scenarios.
- Containerlab Documentation
- Nokia SROS Documentation
- Nokia SR-SIM
- SRv6 Network Programming
- BGP services over SRv6
- Compressed SRv6
Note: Ensure you have valid Nokia SROS licenses before deploying this lab. The topology file references license files that must be present in the parent directory ../srv6_lab/
.