https://github.com/dbono711/clab-iol-provider-network
MPLS Service Provider (SP) network using CONTAINERlab and IOL
https://github.com/dbono711/clab-iol-provider-network
cisco containerlab iol l2vpn l3vpn mpls networking
Last synced: 2 months ago
JSON representation
MPLS Service Provider (SP) network using CONTAINERlab and IOL
- Host: GitHub
- URL: https://github.com/dbono711/clab-iol-provider-network
- Owner: dbono711
- License: mit
- Created: 2024-11-12T01:57:21.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-04-01T02:02:31.000Z (3 months ago)
- Last Synced: 2026-04-01T04:47:59.472Z (3 months ago)
- Topics: cisco, containerlab, iol, l2vpn, l3vpn, mpls, networking
- Language: Makefile
- Homepage:
- Size: 22.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# clab-iol-provider-network
## Overview
A simple Service Provider (SP) setup for facilitating MPLS L2VPN & L3VPN service connectivity using [CONTAINERlab](https://containerlab.dev/) and [IOL](https://developer.cisco.com/docs/modeling-labs/iol/) nodes to enable connectivity between two clients.
## Requirements
- [CONTAINERlab](https://containerlab.dev/install/)
- _The [CONTAINERlab](https://containerlab.dev/install/) installation guide outlines various installation methods. This lab assumes all [pre-requisites](https://containerlab.dev/install/#pre-requisites) (including Docker) are met and CONTAINERlab is installed via the [install script](https://containerlab.dev/install/#install-script)._
- Cisco IOL [image](https://containerlab.dev/manual/kinds/cisco_iol/) >= 17.12.01
- Adjust the ```topology.kinds.cisco_iol.image``` value in [setup.yml](setup.yml) to reflect the proper image and tag
```shell
$ docker image ls | grep iol
vrnetlab/cisco_iol l2-17.12.01 002115d03152 5 weeks ago 607MB
vrnetlab/cisco_iol 17.12.01 3c4532f8634c 5 weeks ago 704MB
```
- Python 3
## Topology
```mermaid
graph TD
pe_west---p_central
pe_east---p_central
client1---pe_east
client2---pe_west
```
## Resources
### IP Assignments
_**NOTE**: The Overlay/VTEP assignments for spine01/spine02 are not actually implemented, or even required, since our VTEP's in this lab are on leaf01/leaf02/leaf03. The assignments are therefore just for consistency purposes_
| Scope | Network | Sub-Network | Assignment | Name |
| ------------------ | ------------- | ------------- | ------------- | ------- |
| Management | 10.0.0.0/24 | | 10.0.0.2/24 | pe_east |
| Management | 10.0.0.0/24 | | 10.0.0.3/24 | p_central |
| Management | 10.0.0.0/24 | | 10.0.0.4/24 | pe_west |
| Router ID (lo0) | 10.10.10.0/24 | | 10.10.10.1/32 | pe_east |
| Router ID (lo0) | 10.10.10.0/24 | | 10.10.10.2/32 | p_central |
| Router ID (lo0) | 10.10.10.0/24 | | 10.10.10.3/32 | pe_west |
| P2P Links | 10.1.0.0/24 | 10.1.0.0/31 | 10.1.0.0/31 | pe_west::p_central |
| P2P Links | 10.1.0.0/24 | 10.1.0.0/31 | 10.1.0.1/31 | p_central::pe_west |
| P2P Links | 10.1.0.0/24 | 10.1.0.2/31 | 10.1.0.2/31 | pe_east::p_central |
| P2P Links | 10.1.0.0/24 | 10.1.0.2/31 | 10.1.0.3/31 | p_central::pe_east |
### Underlay ASN Assignments
| ASN | Device |
| ----- | --------- |
| 64512 | p_central |
| 64512 | pe_east |
| 64512 | pe_west |
## Deployment
Clone this repsoitory and start the lab
```shell
git clone https://github.com/dbono711/clab-iol-provider-network.git
cd clab-iol-provider-network
make all
```
**_NOTE: CONTAINERlab requires SUDO privileges in order to execute_**
- Initializes the ```setup.log``` file
- Creates the [CONTAINERlab network](setup.yml) based on the [topology definition](https://containerlab.dev/manual/topo-def-file/)
## Cleanup
Stop the lab, tear down the CONTAINERlab containers
```shell
make clean
```
## Logging
All activity is logged to a file called ```setup.log``` at the root of the repository.
## Authors
- Darren Bono - [darren.bono@att.net](mailto://darren.bono@att.net)
## License
This project is licensed under the MIT License. See [LICENSE](LICENSE) for details