11 Containerlab
11 Containerlab
11 Containerlab
with Containerlab
Roman Dodin @ntdvps 38th EURO-IX FORUM
Network labs
A right, not a privilege
1 2 3
Change Prototyping and Learning
management validation
IT
IaC
tool
name: mylab
Network Labs
topology:
nodes:
:
:
links:
- :
Purpose built & proven First class support for containerized NOSes
Free versions available Transparent datapath
UI Git friendly & better image sharing and handling
VM-centric Repeatable lab builds and CI friendly
weak containers support
Heavy and semi-open Small footprint, open, free and fast
Fewer Network OSes supported
UI
No UI
5 © 2023 Nokia Public
Learn by doing
Basic IXP topology with Route Servers
OpenBGPd BIRD
ASN 64503 ASN 64503
192.168.0.3
192.168.0.4
eth1
eth1
Peer #1 Peering LAN Peer #2
Nokia SR OS 192.168.0.0/24 FRR
ASN 64501 ASN 64502
OpenBGPd BIRD
ASN 64503 ASN 64503
eBGP session
name: mylab
topology:
nodes:
:
:
links:
- :
https://containerlab.dev
9 © 2023 Nokia Public
Building an IXP lab
Adding Nokia SR OS node
topology definition logical view
ixp.clab.yml
name: ixp
topology:
nodes:
peer1:
kind: vr-nokia_sros peer1
image: sros:23.3.R1 (Nokia SR OS)
license: license.key
ixp.clab.yml
name: ixp
topology:
nodes:
peer1: {…}
peer2:
kind: linux
image: quay.io/frrouting/frr:8.4.1
peer1 peer2
(Nokia SR OS) (FRR)
ixp.clab.yml
rs1
name: ixp
(OpenBGPd)
topology:
nodes:
peer1: {…}
peer2: {…}
rs1:
kind: linux
image: quay.io/openbgpd/openbgpd:7.9
peer1 peer2
(Nokia SR OS) (FRR)
ixp.clab.yml
rs1 rs2
name: ixp (OpenBGPd) (BIRD)
topology:
nodes:
peer1: {…}
peer2: {…}
rs1: {…}
rs2:
kind: linux
image: ghcr.io/srl-labs/bird:2.0.11
peer1 peer2
(Nokia SR OS) (FRR)
ixp-net:
kind: bridge
peer1 peer2
(Nokia SR OS) (FRR)
eth1
eth1
peer2: {…}
rs1: {…}
rs2: {…}
ixp-net: {…}
links:
- endpoints: ["peer1:eth1", "ixp-net:port1"]
- endpoints: ["peer2:eth1", "ixp-net:port2"] peer1 peer2
- endpoints: ["rs1:eth1", "ixp-net:port3"]
- endpoints: ["rs2:eth1", "ixp-net:port4"]
16 © 2023 Nokia
Deploying the lab
17 © 2023 Nokia
Containerlab
Connecting to the nodes
ixp.clab.yml
name: ixp
topology:
nodes:
peer1:
kind: vr-nokia_sros peer1
image: sros:23.3.R1 (Nokia SR OS)
license: license.key
startup-config: sros.partial.cfg
sros.partial.cfg
ixp.clab.yml
name: ixp
topology:
nodes:
peer1: {…}
peer2:
binds:
- frr.conf:/etc/frr/frr.conf
- daemons:/etc/frr/daemons peer1 peer2
(Nokia SR OS) (FRR)
ixp.clab.yml
rs1
name: ixp (OpenBGPd)
topology:
nodes:
eth1
peer1: {…} 192.168.0.3
peer2: {…}
rs1:
binds:
- openbgpd.conf:/etc/bgpd/bgpd.conf peer1 peer2
exec:
- ip address add dev eth1 192.168.0.3/24
(Nokia SR OS) (FRR)
Looking glass
ARouteServer
BUM filtering
IRR mirror
RPKI validation RPKI Client
(ARouteServer)
Looking glass integration
Vendor try-out
hellt/sros-frr-ixp-lab
24 © 2023 Nokia Public
Lab
A to Z explanation
IXP-Lab
ipinfusion_ocnos checkpoint_cloudguard
Open Container-based
Light Fast