Skip to content

Commit

Permalink
Improve containerlab topology
Browse files Browse the repository at this point in the history
- Use proper Nokia SROS version vr-sros:22.10.R7.
- Move files to correct plane where it should be used.
- Added documentation about demo topology:
  - How to start & destroy topology.
  - Logical topology representation.
  - IP addressing and ports table.
  - How to build docker images from qemu/vmdk disks.
- Added sample locations and coordinates to devices configuration.
  • Loading branch information
jaro0149 committed Aug 1, 2024
1 parent 54f6a2b commit 391d4d2
Show file tree
Hide file tree
Showing 20 changed files with 142 additions and 1 deletion.
109 changes: 109 additions & 0 deletions containerlab/frinx_topo_1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# FRINX Demo Topology

This is a simple topology for testing FRINX topology services.
It consists of MPLS core network, two regions with PE routers and connected CPE routers.

Device types:
- Core, PE, and PTP GM routers: `vrnetlab/vr-sros:22.10.R7`
- CPE routers: `vrnetlab/vr-xrv:6.0.1`
- OLT and CMTS switches: `openvswitch`

Check failure on line 9 in containerlab/frinx_topo_1/README.md

View workflow job for this annotation

GitHub Actions / Codespell

OLT ==> OLD

Configured protocols:
- LDP
- RSVP
- MPLS
- OSPF
- BGP
- PTP
- SyncE
- LLDP

## Logical topology

<div style="background-color: white; display: inline-block;">
<img src="assets/demo_lab.svg" width="1024" alt="Demo lab"/>
</div>

## IP addressing

The following table shows management IP addresses and supported management protocols
for each configurable device in the topology:

| Device | IP address | CLI (SSH) | NETCONF (SSH) | gNMI |
|---------------|---------------|-----------|---------------|-------|
| C1 | 172.20.20.11 | 22 | 830 | 57400 |
| C2 | 172.20.20.12 | 22 | 830 | 57400 |
| R1_PE1 | 172.20.20.111 | 22 | 830 | 57400 |
| R1_PE2 | 172.20.20.112 | 22 | 830 | 57400 |
| R2_PE1 | 172.20.20.121 | 22 | 830 | 57400 |
| R2_PE2 | 172.20.20.122 | 22 | 830 | 57400 |
| DC1_PE1 | 172.20.20.93 | 22 | 830 | 57400 |
| R1_CPE1 | 172.20.20.202 | 22 | 830 | |
| R1_CPE2 | 172.20.20.203 | 22 | 830 | |
| R2_CPE1 | 172.20.20.204 | 22 | 830 | |
| R2_CPE2 | 172.20.20.205 | 22 | 830 | |
| PTP_GM | 172.20.20.9 | 22 | 830 | 57400 |
| PTP_GM_BACKUP | 172.20.20.8 | 22 | 830 | 57400 |

## Building required docker images

Scripts for building of the required docker images that are compatible with containerlab are provided
by the https://github.com/hellt/vrnetlab repository.
See https://containerlab.dev/manual/vrnetlab/#compatibility-matrix for details about compatibility between
containerlab and vrnetlab versions.

The last tested versions of vrnetlab and containerlab:
- vrnetlab: 0.18.1
- containerlab: 0.56.0

### vrnetlab/vr-sros:22.10.R7

Requirements:
- sros-vm-22.10.R7.qcow2 image: Ask Nokia support to provide you with the Qemu disk image.
- sros-vm-22.10.R7.qcow2.license file: Ask Nokia support to provide you with the valid license file.

1. Append the date, when licence starts to be valid, to the end of the file into the comment section
(comment starts with the # character).
Format of the date is YYYY-MM-DD.
Example: # TEST(TiMOS-[BC]-22.*) 2024-01-01

2. Copy 'sros-vm-22.10.R7.qcow2' and 'sros-vm-22.10.R7.qcow2.license' files to the 'sros' directory
in the vrnetlab repository.

3. Build the docker image using `make docker-image` command.
Built docker image should have 'vrnetlab/vr-sros:22.10.R7' tag.

### vrnetlab/vr-xrv:6.0.1

Requirements:

- iosxrv-k9-6.0.1.vmdk image: Download the image from the Cisco website with valid subscription model.
Image is also provided by the Cisco Modeling Labs (CML).

1. Copy 'iosxrv-k9-6.0.1.vmdk' file to the 'xrv' directory in the vrnetlab repository.
2. Build the docker image using `make docker-image` command.
Built docker image should have 'vr-xrv:6.0.1' tag.

## Startup process

To start the topology, run the following commands:

```bash
# create openvswitch bridges
sudo ./openswitch1.sh

# deploy the containerlab topology
sudo containerlab deploy

# wait for the topology to start ...
# configure openvswitch ports
sudo ./openswitch2.sh
```

## Stopping the topology

To stop the topology, run the following command:

```bash
sudo containerlab destroy
```
1 change: 1 addition & 0 deletions containerlab/frinx_topo_1/assets/demo_lab.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions containerlab/frinx_topo_1/config_c1.partial.txt
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,9 @@ configure {
}
}
system {
location "Bratislava Frinx Office"
coordinates "[48.14422, 17.14098]"

ptp {
admin-state enable
clock-type boundary
Expand Down
3 changes: 3 additions & 0 deletions containerlab/frinx_topo_1/config_c2.partial.txt
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,9 @@ configure {
}

system {
location "Bratislava Frinx Office"
coordinates "[48.14422, 17.14098]"

ptp {
admin-state enable
clock-type boundary
Expand Down
3 changes: 3 additions & 0 deletions containerlab/frinx_topo_1/config_dc1_pe1.partial.txt
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,9 @@ configure {
}

system {
location "Rusovce Airport"
coordinates "[48.05254, 17.13692]"

ptp {
admin-state enable
clock-type boundary
Expand Down
3 changes: 3 additions & 0 deletions containerlab/frinx_topo_1/config_ptp_gm.partial.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ configure {
}

system {
location "The Slovak Internet eXchange (SIX)"
coordinates "[48.15145, 17.11359]"

ptp {
admin-state enable
clock-type master-only
Expand Down
3 changes: 3 additions & 0 deletions containerlab/frinx_topo_1/config_ptp_gm_backup.partial.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ configure {
}

system {
location "Slovak Telekom"
coordinates "[48.14839, 17.14924]"

ptp {
admin-state enable
clock-type master-only
Expand Down
1 change: 1 addition & 0 deletions containerlab/frinx_topo_1/config_r1_cpe1.partial.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
banner exec "Zahorska Bystrica Stadion [48.23961, 17.04140]"
interface GigabitEthernet0/0/0/0
ipv4 address 172.16.10.10 255.255.255.0
no shutdown
Expand Down
1 change: 1 addition & 0 deletions containerlab/frinx_topo_1/config_r1_cpe2.partial.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
banner exec "Boutique Hotel Pri Mlyne [48.32895, 17.05584]"
interface GigabitEthernet0/0/0/0
ipv4 address 172.16.20.10 255.255.255.0
no shutdown
Expand Down
3 changes: 3 additions & 0 deletions containerlab/frinx_topo_1/config_r1_pe1.partial.txt
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,9 @@ configure {
}

system {
location "Stupava Centrum"
coordinates "[48.27588, 17.03212]"

ptp {
admin-state enable
clock-type boundary
Expand Down
3 changes: 3 additions & 0 deletions containerlab/frinx_topo_1/config_r1_pe2.partial.txt
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,9 @@ configure {
}

system {
location "Borinka Station"
coordinates "[48.25966, 17.09604]"

ptp {
admin-state enable
clock-type boundary
Expand Down
1 change: 1 addition & 0 deletions containerlab/frinx_topo_1/config_r2_cpe1.partial.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
banner exec "Senkvice Primary School [48.29629, 17.34420]"
interface GigabitEthernet0/0/0/0
ipv4 address 172.16.30.10 255.255.255.0
no shutdown
Expand Down
1 change: 1 addition & 0 deletions containerlab/frinx_topo_1/config_r2_cpe2.partial.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
banner exec "Trnava Railway Station [48.37032, 17.58445]"
interface GigabitEthernet0/0/0/0
ipv4 address 172.16.40.10 255.255.255.0
no shutdown
Expand Down
3 changes: 3 additions & 0 deletions containerlab/frinx_topo_1/config_r2_pe1.partial.txt
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,9 @@ configure {
}

system {
location "Euronics Senec"
coordinates "[48.22102, 17.39742]"

ptp {
admin-state enable
clock-type boundary
Expand Down
3 changes: 3 additions & 0 deletions containerlab/frinx_topo_1/config_r2_pe2.partial.txt
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,9 @@ configure {
}

system {
location "Euronics Senec"
coordinates "[48.22102, 17.39742]"

ptp {
admin-state enable
clock-type boundary
Expand Down
2 changes: 1 addition & 1 deletion containerlab/frinx_topo_1/frinx_topo_1.clab.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: frinx_topo_1
topology:
defaults:
kind: nokia_sros
image: vrnetlab/vr-sros:22.10.R1
image: vrnetlab/vr-sros:22.10.R7
license: ../frinx_topo_1/sros.license
config:
vars:
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit 391d4d2

Please sign in to comment.