Add a simple containerlab

This commit is contained in:
Pim van Pelt
2025-05-04 12:24:26 +02:00
parent 1667677f72
commit ef79717ebe
6 changed files with 114 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
clab-*
**/*.bak

View File

@ -0,0 +1,19 @@
protocol bfd bfd1 {
interface "eth2" { interval 100 ms; multiplier 30; };
}
protocol ospf v2 ospf4 {
ipv4 { import all; export all; };
area 0 {
interface "loop0" { stub yes; };
interface "eth2" { type pointopoint; cost 10; bfd on; };
};
}
protocol ospf v3 ospf6 {
ipv6 { import all; export all; };
area 0 {
interface "loop0" { stub yes; };
interface "eth2" { type pointopoint; cost 10; bfd on; };
};
}

16
config/vpp1/vppcfg.yaml Normal file
View File

@ -0,0 +1,16 @@
interfaces:
eth1:
description: 'To client1'
mtu: 1500
lcp: eth1
addresses: [ 10.82.98.65/28, 2001:db8:8298:101::1/64 ]
eth2:
description: 'To vpp2'
mtu: 9000
lcp: eth2
addresses: [ 10.82.98.16/31, 2001:db8:8298:1::1/64 ]
loopbacks:
loop0:
description: 'vpp1'
lcp: loop0
addresses: [ 10.82.98.0/32, 2001:db8:8298::/128 ]

View File

@ -0,0 +1,19 @@
protocol bfd bfd1 {
interface "eth2" { interval 100 ms; multiplier 30; };
}
protocol ospf v2 ospf4 {
ipv4 { import all; export all; };
area 0 {
interface "loop0" { stub yes; };
interface "eth2" { type pointopoint; cost 10; bfd on; };
};
}
protocol ospf v3 ospf6 {
ipv6 { import all; export all; };
area 0 {
interface "loop0" { stub yes; };
interface "eth2" { type pointopoint; cost 10; bfd on; };
};
}

16
config/vpp2/vppcfg.yaml Normal file
View File

@ -0,0 +1,16 @@
interfaces:
eth1:
description: 'To client2'
mtu: 1500
lcp: eth1
addresses: [ 10.82.98.81/28, 2001:db8:8298:102::1/64 ]
eth2:
description: 'To vpp1'
mtu: 9000
lcp: eth2
addresses: [ 10.82.98.17/31, 2001:db8:8298:1::2/64 ]
loopbacks:
loop0:
description: 'vpp2'
lcp: loop0
addresses: [ 10.82.98.1/32, 2001:db8:8298::1/128 ]

42
vpp.clab.yml Normal file
View File

@ -0,0 +1,42 @@
name: learn-vpp
prefix: ""
topology:
kinds:
fdio_vpp:
image: git.ipng.ch/ipng/vpp-containerlab:latest
linux:
image: alpine:latest
nodes:
vpp1:
kind: fdio_vpp
binds:
- config/vpp1/vppcfg.yaml:/etc/vpp/vppcfg.yaml:ro
- config/vpp1/bird-local.conf:/etc/bird/bird-local.conf:ro
vpp2:
kind: fdio_vpp
binds:
- config/vpp2/vppcfg.yaml:/etc/vpp/vppcfg.yaml:ro
- config/vpp2/bird-local.conf:/etc/bird/bird-local.conf:ro
client1:
kind: linux
exec:
- ip link set address 00:c1:ab:00:00:01 dev eth1
- ip addr add 10.82.98.66/28 dev eth1
- ip route add 10.82.98.0/24 via 10.82.98.65
- ip addr add 2001:db8:8298:101::2/64 dev eth1
- ip route add 2001:db8:8298::/48 via 2001:db8:8298:101::1
client2:
kind: linux
exec:
- ip link set address 00:c1:ab:00:00:02 dev eth1
- ip addr add 10.82.98.82/28 dev eth1
- ip route add 10.82.98.0/24 via 10.82.98.81
- ip addr add 2001:db8:8298:102::2/64 dev eth1
- ip route add 2001:db8:8298::/48 via 2001:db8:8298:102::1
links:
- endpoints: ["vpp1:eth2", "vpp2:eth2"]
- endpoints: ["client1:eth1", "vpp1:eth1"]
- endpoints: ["client2:eth1", "vpp2:eth1"]