├── .gitignore
├── .devcontainer
├── postAttachCommand.sh
├── postCreateCommand.sh
├── devcontainer.json
└── welcome
├── imgs
├── failed.png
└── successful.png
├── configs
├── client2.sh
├── client3.sh
├── client4.sh
├── client1.sh
├── superspine1.yaml
├── superspine2.yaml
├── leaf2.yaml
├── leaf1.yaml
├── leaf3.yaml
├── leaf4.yaml
├── spine1.yaml
├── spine2.yaml
├── spine3.yaml
└── spine4.yaml
├── nuts_data
├── nr-config.yaml
├── tests
│ ├── test_User.yaml
│ ├── clients
│ │ └── test_ping_leaf.yaml
│ ├── test_NetworkInstances.yaml
│ ├── test_LLDPNeighbors.yaml
│ ├── test_Interfaces.yaml
│ └── test_ARP.yaml
└── inventory
│ ├── groups.yaml
│ └── hosts.yaml
├── LICENSE
├── setup.sh
├── README.md
└── setup.clos02.clab.yml
/.gitignore:
--------------------------------------------------------------------------------
1 | clab-clos02/
2 | .setup.clos02.clab.yml.bak
3 | .venv
4 | nuts_data/tshoot.py
5 |
--------------------------------------------------------------------------------
/.devcontainer/postAttachCommand.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | clear
3 | cat $CODESPACE_VSCODE_FOLDER/.devcontainer/welcome
--------------------------------------------------------------------------------
/imgs/failed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/network-unit-testing-system/nuts-containerlab-demo/HEAD/imgs/failed.png
--------------------------------------------------------------------------------
/.devcontainer/postCreateCommand.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | echo install gnmic
3 | bash -c "$(curl -sL https://get-gnmic.openconfig.net)"
--------------------------------------------------------------------------------
/imgs/successful.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/network-unit-testing-system/nuts-containerlab-demo/HEAD/imgs/successful.png
--------------------------------------------------------------------------------
/configs/client2.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # IP config is not persistent
4 | ip addr add 10.0.0.27/31 dev eth1
5 | ip addr add 1000:10:0:0::27/127 dev eth1
6 | echo 0 > /proc/sys/net/ipv6/conf/eth1/accept_ra
--------------------------------------------------------------------------------
/configs/client3.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # IP config is not persistent
4 | ip addr add 10.0.0.29/31 dev eth1
5 | ip addr add 1000:10:0:0::29/127 dev eth1
6 | echo 0 > /proc/sys/net/ipv6/conf/eth1/accept_ra
7 |
--------------------------------------------------------------------------------
/configs/client4.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # IP config is not persistent
4 | ip addr add 10.0.0.31/31 dev eth1
5 | ip addr add 1000:10:0:0::31/127 dev eth1
6 | echo 0 > /proc/sys/net/ipv6/conf/eth1/accept_ra
7 |
--------------------------------------------------------------------------------
/nuts_data/nr-config.yaml:
--------------------------------------------------------------------------------
1 | inventory:
2 | plugin: SimpleInventory
3 | options:
4 | host_file: "inventory/hosts.yaml"
5 | group_file: "inventory/groups.yaml"
6 | transform_function: "load_credentials"
7 | runner:
8 | plugin: threaded
9 | options:
10 | num_workers: 100
--------------------------------------------------------------------------------
/.devcontainer/devcontainer.json:
--------------------------------------------------------------------------------
1 | {
2 | "image": "ghcr.io/srl-labs/containerlab/devcontainer-dind-slim:0.67.0",
3 | "hostRequirements": {
4 | "cpus": 8,
5 | "memory": "32gb"
6 | },
7 | "postCreateCommand": "./.devcontainer/postCreateCommand.sh",
8 | "postAttachCommand": "./.devcontainer/postAttachCommand.sh"
9 | }
--------------------------------------------------------------------------------
/nuts_data/tests/test_User.yaml:
--------------------------------------------------------------------------------
1 | # # Waiting for https://github.com/napalm-automation-community/napalm-srlinux/issues/61
2 | []
3 | # - test_module: nuts.base_tests.napalm_get_users
4 | # test_class: TestNapalmOnlyDefinedUsersExist
5 | # test_data:
6 | # - groups:
7 | # - router
8 | # usernames:
9 | # - admin
10 |
--------------------------------------------------------------------------------
/nuts_data/tests/clients/test_ping_leaf.yaml:
--------------------------------------------------------------------------------
1 | # nuts_client_tests tests are still in a early alpha phase
2 | - test_module: nuts_client_tests.linux_ping
3 | test_class: TestLinuxPing
4 | test_execution:
5 | ttl: 1
6 | timeout: 1
7 | size: 1472
8 | test_data:
9 | - host: client2
10 | destination: 10.0.0.26
11 | expected: SUCCESS
12 | max_drop: 1
13 | - host: client3
14 | destination: 10.0.0.28
15 | expected: SUCCESS
16 | max_drop: 1
17 | - host: client4
18 | destination: 10.0.0.30
19 | expected: SUCCESS
20 | max_drop: 1
--------------------------------------------------------------------------------
/.devcontainer/welcome:
--------------------------------------------------------------------------------
1 | --------------------------------------------------------------------
2 | ********************************************************************
3 | 👋👋👋 Welcome to the NUTS demo 👋👋👋
4 | - Start the containerlab lab: `containerlab deploy`
5 | - Configure the topology: `./setup.sh`
6 | - Connect to client1: `docker exec -it clab-clos02-client1 bash`
7 | - Change directory to workspace: `cd workspace`
8 | - Execute the tests: `pytest -vv`
9 | ********************************************************************
10 | --------------------------------------------------------------------
--------------------------------------------------------------------------------
/nuts_data/tests/test_NetworkInstances.yaml:
--------------------------------------------------------------------------------
1 | - test_class: TestNapalmNetworkInstances
2 | test_data:
3 | - groups:
4 | - leaf
5 | - spine
6 | network_instance: default
7 | interfaces:
8 | - ethernet-1/1.0
9 | - ethernet-1/2.0
10 | - ethernet-1/3.0
11 | - system0.0
12 | route_distinguisher: "" # not setup config
13 | - groups:
14 | - superspine
15 | network_instance: default
16 | interfaces:
17 | - ethernet-1/1.0
18 | - ethernet-1/2.0
19 | - system0.0
20 | route_distinguisher: "" # not setup config
21 |
--------------------------------------------------------------------------------
/configs/client1.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | apt update
4 | apt install -y iproute2 vim nano
5 |
6 | # IP config is not persistent
7 | ip addr add 10.0.0.25/31 dev eth1
8 | ip addr add 1000:10:0:0::25/127 dev eth1
9 | echo 0 > /proc/sys/net/ipv6/conf/eth1/accept_ra
10 |
11 | pip install --update pip
12 | pip install nuts
13 | # pip install git+https://github.com/network-unit-testing-system/nuts.git@branch_name
14 | # pip install git+https://github.com/network-unit-testing-system/nuts.git
15 |
16 |
17 | pip install git+https://github.com/napalm-automation-community/napalm-srlinux@v1.0.6
18 |
19 |
20 | # Client tests are still in a early alpha phase
21 | pip install git+https://github.com/network-unit-testing-system/nuts-client-tests.git
22 |
--------------------------------------------------------------------------------
/nuts_data/tests/test_LLDPNeighbors.yaml:
--------------------------------------------------------------------------------
1 | - test_class: TestNapalmLldpNeighbors
2 | test_data:
3 | # Leaf uplink LLDP Neighbors
4 | - tags:
5 | - site1
6 | local_port: ethernet-1/1
7 | remote_host: spine1
8 | # remote_port: ethernet-1/2
9 | - tags:
10 | - site1
11 | local_port: ethernet-1/2
12 | remote_host: spine2
13 | # remote_port: ethernet-1/2
14 | - tags:
15 | - site2
16 | local_port: ethernet-1/1
17 | remote_host: spine3
18 | # remote_port: ethernet-1/2
19 | - tags:
20 | - site2
21 | local_port: ethernet-1/2
22 | remote_host: spine4
23 | # remote_port: ethernet-1/2
24 |
25 | # Spine uplink LLDP Neighobrs
26 | - host:
27 | - spine1
28 | - spine3
29 | local_port: ethernet-1/3
30 | remote_host: superspine1
31 | - host:
32 | - spine2
33 | - spine4
34 | local_port: ethernet-1/3
35 | remote_host: superspine2
36 |
--------------------------------------------------------------------------------
/nuts_data/inventory/groups.yaml:
--------------------------------------------------------------------------------
1 | router:
2 | username: admin
3 | password: NokiaSrl1!
4 | connection_options:
5 | napalm:
6 | platform: srl
7 | extras:
8 | optional_args:
9 | gnmi_port: 57400
10 | jsonrpc_port: 80
11 | # target_name: 172.100.100.3
12 | # tls_cert: /root/gnmic_certs/srl_certs/clientCert.crt
13 | # tls_ca: /root/gnmic_certs/srl_certs/RootCA.crt
14 | # tls_key: /root/gnmic_certs/srl_certs/clientKey.pem
15 | skip_verify: True
16 | insecure: True
17 | encoding: "JSON_IETF"
18 |
19 | linux:
20 | username: admin
21 | password: admin
22 | platform: linux
23 |
24 | leaf:
25 | data:
26 | tags:
27 | - ospf
28 | - isis
29 | - bgp
30 |
31 | spine:
32 | data:
33 | tags:
34 | - ospf
35 | - isis
36 | - bgp
37 |
38 | superspine:
39 | data:
40 | tags:
41 | - ospf
42 | - isis
43 | - bgp
44 |
45 | client: {}
46 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Network Unit Testing System
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/nuts_data/tests/test_Interfaces.yaml:
--------------------------------------------------------------------------------
1 | - test_class: TestNapalmInterfaces
2 | test_data:
3 | - groups:
4 | - spine
5 | - superspine
6 | name: ethernet-1/1
7 | is_enabled: true
8 | is_up: true
9 | mtu: 9232
10 | speed: 10.0
11 | - groups:
12 | - spine
13 | - superspine
14 | name: ethernet-1/2
15 | is_enabled: true
16 | is_up: true
17 | mtu: 9232
18 | speed: 10.0
19 | - groups:
20 | - spine
21 | name: ethernet-1/3
22 | is_enabled: true
23 | is_up: true
24 | mtu: 9232
25 | speed: 100.0
26 |
27 | # Test interface speed
28 | - tags: # Also group spine could be used.
29 | - site1
30 | - site2
31 | name: ethernet-1/1
32 | is_enabled: true
33 | is_up: true
34 | mtu: 9232
35 | speed: 25.0
36 | - tags:
37 | - site1
38 | - site2
39 | name: ethernet-1/2
40 | is_enabled: true
41 | is_up: true
42 | mtu: 9232
43 | speed: 25.0
44 | - tags:
45 | - site1
46 | - site2
47 | name: ethernet-1/3
48 | is_enabled: true
49 | is_up: true
50 | mtu: 9232
51 | speed: 25.0
52 |
--------------------------------------------------------------------------------
/setup.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | RED='\033[0;31m'
3 | NC='\033[0m' # No Color
4 |
5 | CFG_DIR=./configs
6 | SRL_PASSWORD=NokiaSrl1!
7 |
8 | configure_SRL() {
9 | OUT=$(gnmic -a clab-clos02-$1 --timeout 30s -u admin -p $SRL_PASSWORD -e json_ietf --skip-verify set --update-path / --update-file $CFG_DIR/$1.yaml 2>&1)
10 | echo $OUT | grep -q -e '\"operation\": \"UPDATE\"'
11 | if [ $? -eq 0 ]; then
12 | docker exec clab-clos02-$1 sr_cli "save startup" > /dev/null
13 | else
14 | echo -e "${RED}Error: Unable to push config into clab-clos02-$1.${NC}"
15 | fi
16 | echo $OUT > /dev/null
17 | }
18 |
19 | configure_CLIENT() {
20 | docker cp $CFG_DIR/$1.sh clab-clos02-$1:/tmp/
21 | docker exec clab-clos02-$1 bash /tmp/$1.sh 2>/dev/null
22 | }
23 |
24 | echo
25 | PIDS=""
26 | NE=("leaf1" "leaf2" "leaf3" "leaf4" "spine1" "spine2" "spine3" "spine4" "superspine1" "superspine2")
27 | CLIENT=("client1" "client2" "client3" "client4")
28 |
29 | for VARIANT in ${NE[@]}; do
30 | ( configure_SRL $VARIANT ) &
31 | REF=$!
32 | echo "[$REF] Configuring $VARIANT..."
33 | PIDS+=" $REF"
34 | done
35 |
36 | for VARIANT in ${CLIENT[@]}; do
37 | ( configure_CLIENT $VARIANT ) &
38 | REF=$!
39 | echo "[$REF] Configuring $VARIANT..."
40 | PIDS+=" $REF"
41 | done
42 |
43 | echo
44 | for p in $PIDS; do
45 | if wait $p; then
46 | echo "Process $p success"
47 | else
48 | echo "${RED}Process $p fail${NC}"
49 | fi
50 | done
51 | echo
--------------------------------------------------------------------------------
/nuts_data/inventory/hosts.yaml:
--------------------------------------------------------------------------------
1 |
2 | leaf1:
3 | hostname: 172.100.100.2
4 | groups:
5 | - router
6 | - leaf
7 | data:
8 | tags:
9 | - site1
10 | autonomous-system: 65001
11 | outer-id: 30.0.0.1
12 |
13 | leaf2:
14 | hostname: 172.100.100.3
15 | groups:
16 | - router
17 | - leaf
18 | data:
19 | tags:
20 | - site1
21 | autonomous-system: 65002
22 | router-id: 30.0.0.2
23 |
24 | leaf3:
25 | hostname: 172.100.100.4
26 | groups:
27 | - router
28 | - leaf
29 | data:
30 | tags:
31 | - site2
32 | autonomous-system: 65003
33 | router-id: 30.0.0.3
34 |
35 | leaf4:
36 | hostname: 172.100.100.5
37 | groups:
38 | - router
39 | - leaf
40 | data:
41 | tags:
42 | - site2
43 | autonomous-system: 65004
44 | router-id: 30.0.0.4
45 |
46 | spine1:
47 | hostname: 172.100.100.6
48 | groups:
49 | - router
50 | - spine
51 | data:
52 | autonomous-system: 65056
53 | router-id: 30.0.0.5
54 |
55 | spine2:
56 | hostname: 172.100.100.7
57 | groups:
58 | - router
59 | - spine
60 | data:
61 | autonomous-system: 65056
62 | router-id: 30.0.0.6
63 |
64 | spine3:
65 | hostname: 172.100.100.8
66 | groups:
67 | - router
68 | - spine
69 | data:
70 | autonomous-system: 65078
71 | router-id: 30.0.0.7
72 |
73 | spine4:
74 | hostname: 172.100.100.9
75 | groups:
76 | - router
77 | - spine
78 | data:
79 | autonomous-system: 65078
80 | router-id: 30.0.0.8
81 |
82 | superspine1:
83 | hostname: 172.100.100.10
84 | groups:
85 | - router
86 | - superspine
87 | data:
88 | autonomous-system: 65910
89 | router-id: 30.0.0.9
90 |
91 | superspine2:
92 | hostname: 172.100.100.11
93 | groups:
94 | - router
95 | - superspine
96 | data:
97 | autonomous-system: 65910
98 | router-id: 30.0.0.10
99 |
100 |
101 | client2:
102 | hostname: 172.100.100.13
103 | groups:
104 | - linux
105 | - client
106 | client3:
107 | hostname: 172.100.100.14
108 | groups:
109 | - linux
110 | - client
111 | client4:
112 | hostname: 172.100.100.15
113 | groups:
114 | - linux
115 | - client
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # nuts-containerlab-demo
2 |
3 | 
4 |
5 |
10 |
11 | ## Requirements
12 |
13 | - [containerlab](https://containerlab.dev/)
14 | - [gnmic](https://gnmic.openconfig.net/)
15 |
16 | ## Lab
17 |
18 | The lab is heavily based on the 5-stage Clos fabric from ContainerLab (https://containerlab.dev/lab-examples/min-5clos/).
19 |
20 | The client1 is replaced with a Python container image and NUTS will be installed on it. Clients 2 to 4 are running a Linux container with an SSH service.
21 |
22 | The router images are Nokia SR Linux. To be able to use NAPALM, the community driver (https://github.com/napalm-automation-community/napalm-srlinux) is used.
23 |
24 | ### Nuts installation
25 |
26 | The installation for NUTS can be found in [./configs/client1.sh](configs/client1.sh)
27 |
28 | ## Start
29 |
30 | ```bash
31 | sudo containerlab deploy -t setup.clos02.clab.yml
32 | chmod +x ./setup.sh
33 | ./setup.sh
34 | ```
35 |
36 | Connect to client1 and run network tests:
37 |
38 | ```bash
39 | docker exec -it clab-clos02-client1 bash
40 |
41 | root@client1:/# cd /workspace/
42 | root@client1:/workspace# ls -l
43 | total 12
44 | drwxr-xr-x 2 1000 1000 4096 Aug 8 22:10 inventory
45 | -rw-r--r-- 1 1000 1000 225 Aug 8 20:55 nr-config.yaml
46 | drwxr-xr-x 2 1000 1000 4096 Aug 9 08:12 tests
47 |
48 | root@client1:/workspace# pytest -vv
49 | ```
50 |
51 | ## Stop
52 |
53 | ```bash
54 | sudo containerlab destroy
55 | ```
56 |
57 |
58 |
59 | ## Running Tests
60 |
61 | In the best case, all tests will be successful (passed) or skipped. When the setup is executed, no test should fail.
62 |
63 | 
64 |
65 | When we change tests we can see that tests fail now:
66 |
67 | ```diff
68 | --- a/nuts_data/tests/test_Interfaces.yaml
69 | +++ b/nuts_data/tests/test_Interfaces.yaml
70 | - groups:
71 | - spine
72 | name: ethernet-1/3
73 | is_enabled: true
74 | is_up: true
75 | mtu: 9232
76 | - speed: 100.0
77 | + speed: 10.0
78 | ```
79 |
80 | 
--------------------------------------------------------------------------------
/nuts_data/tests/test_ARP.yaml:
--------------------------------------------------------------------------------
1 | - test_class: TestNapalmArp
2 | test_data:
3 | # leaf's
4 | - host: leaf1
5 | interface: ethernet-1/1.0
6 | ip: 10.0.0.1
7 | - host: leaf1
8 | interface: ethernet-1/2.0
9 | ip: 10.0.0.3
10 | - host: leaf2
11 | interface: ethernet-1/1.0
12 | ip: 10.0.0.5
13 | - host: leaf2
14 | interface: ethernet-1/2.0
15 | ip: 10.0.0.7
16 | - host: leaf3
17 | interface: ethernet-1/1.0
18 | ip: 10.0.0.13
19 | - host: leaf3
20 | interface: ethernet-1/2.0
21 | ip: 10.0.0.15
22 | - host: leaf4
23 | interface: ethernet-1/1.0
24 | ip: 10.0.0.17
25 | - host: leaf4
26 | interface: ethernet-1/2.0
27 | ip: 10.0.0.19
28 |
29 | # spine's
30 | - host: spine1
31 | interface: ethernet-1/1.0
32 | ip: 10.0.0.0
33 | - host: spine1
34 | interface: ethernet-1/2.0
35 | ip: 10.0.0.4
36 | - host: spine1
37 | interface: ethernet-1/3.0
38 | ip: 10.0.0.9
39 | - host: spine2
40 | interface: ethernet-1/1.0
41 | ip: 10.0.0.2
42 | - host: spine2
43 | interface: ethernet-1/2.0
44 | ip: 10.0.0.6
45 | - host: spine2
46 | interface: ethernet-1/3.0
47 | ip: 10.0.0.11
48 | - host: spine3
49 | interface: ethernet-1/1.0
50 | ip: 10.0.0.12
51 | - host: spine3
52 | interface: ethernet-1/2.0
53 | ip: 10.0.0.16
54 | - host: spine3
55 | interface: ethernet-1/3.0
56 | ip: 10.0.0.21
57 | - host: spine4
58 | interface: ethernet-1/1.0
59 | ip: 10.0.0.14
60 | - host: spine4
61 | interface: ethernet-1/2.0
62 | ip: 10.0.0.18
63 | - host: spine4
64 | interface: ethernet-1/3.0
65 | ip: 10.0.0.23
66 |
67 | # superspine's
68 | - host: superspine1
69 | interface: ethernet-1/1.0
70 | ip: 10.0.0.8
71 | - host: superspine1
72 | interface: ethernet-1/2.0
73 | ip: 10.0.0.20
74 | - host: superspine2
75 | interface: ethernet-1/1.0
76 | ip: 10.0.0.10
77 | - host: superspine2
78 | interface: ethernet-1/2.0
79 | ip: 10.0.0.22
80 |
81 | - test_class: TestNapalmArpRange
82 | test_data:
83 | - groups:
84 | - spine
85 | min: 3
86 | max: 20 # ARP on mgmt0.0 also count
87 | - groups:
88 | - superspine
89 | - leaf
90 | min: 3
91 | max: 20 # ARP on mgmt0.0 also count
92 |
--------------------------------------------------------------------------------
/configs/superspine1.yaml:
--------------------------------------------------------------------------------
1 | srl_nokia-interfaces:interface:
2 | - name: ethernet-1/1
3 | admin-state: enable
4 | subinterface:
5 | - index: 0
6 | ipv4:
7 | admin-state: enable
8 | address:
9 | - ip-prefix: 10.0.0.9/31
10 | ipv6:
11 | admin-state: enable
12 | address:
13 | - ip-prefix: 1000:10::9/127
14 | - name: ethernet-1/2
15 | admin-state: enable
16 | subinterface:
17 | - index: 0
18 | ipv4:
19 | admin-state: enable
20 | address:
21 | - ip-prefix: 10.0.0.21/31
22 | ipv6:
23 | admin-state: enable
24 | address:
25 | - ip-prefix: 1000:10::21/127
26 | - name: system0
27 | admin-state: enable
28 | subinterface:
29 | - index: 0
30 | ipv4:
31 | address:
32 | - ip-prefix: 30.0.0.9/32
33 | ipv6:
34 | address:
35 | - ip-prefix: 3000:30::9/128
36 |
37 | srl_nokia-network-instance:network-instance:
38 | - name: default
39 | admin-state: enable
40 | interface:
41 | - name: ethernet-1/1.0
42 | - name: ethernet-1/2.0
43 | - name: system0.0
44 | protocols:
45 | srl_nokia-bgp:bgp:
46 | autonomous-system: 65910
47 | router-id: 30.0.0.9
48 | afi-safi:
49 | - afi-safi-name: ipv4-unicast
50 | admin-state: enable
51 | - afi-safi-name: ipv6-unicast
52 | admin-state: enable
53 | group:
54 | - group-name: clos02
55 | admin-state: enable
56 | neighbor:
57 | - peer-address: 10.0.0.8
58 | peer-as: 65056
59 | peer-group: clos02
60 | - peer-address: 10.0.0.20
61 | peer-as: 65078
62 | peer-group: clos02
63 | srl_nokia-isis:isis:
64 | instance:
65 | - name: default
66 | admin-state: enable
67 | level-capability: L2
68 | net:
69 | - 49.0001.3000.0000.0009.00
70 | interface:
71 | - interface-name: ethernet-1/1.0
72 | circuit-type: point-to-point
73 | - interface-name: ethernet-1/2.0
74 | circuit-type: point-to-point
75 | - interface-name: system0.0
76 | level:
77 | - level-number: 2
78 | metric-style: wide
79 | srl_nokia-ospf:ospf:
80 | instance:
81 | - name: default
82 | admin-state: enable
83 | version: ospf-v2
84 | router-id: 30.0.0.9
85 | area:
86 | - area-id: 0.0.0.0
87 | interface:
88 | - interface-name: ethernet-1/1.0
89 | interface-type: point-to-point
90 | - interface-name: ethernet-1/2.0
91 | interface-type: point-to-point
92 | - interface-name: system0.0
93 |
--------------------------------------------------------------------------------
/configs/superspine2.yaml:
--------------------------------------------------------------------------------
1 | srl_nokia-interfaces:interface:
2 | - name: ethernet-1/1
3 | admin-state: enable
4 | subinterface:
5 | - index: 0
6 | ipv4:
7 | admin-state: enable
8 | address:
9 | - ip-prefix: 10.0.0.11/31
10 | ipv6:
11 | admin-state: enable
12 | address:
13 | - ip-prefix: 1000:10::11/127
14 | - name: ethernet-1/2
15 | admin-state: enable
16 | subinterface:
17 | - index: 0
18 | ipv4:
19 | admin-state: enable
20 | address:
21 | - ip-prefix: 10.0.0.23/31
22 | ipv6:
23 | admin-state: enable
24 | address:
25 | - ip-prefix: 1000:10::23/127
26 | - name: system0
27 | admin-state: enable
28 | subinterface:
29 | - index: 0
30 | ipv4:
31 | address:
32 | - ip-prefix: 30.0.0.10/32
33 | ipv6:
34 | address:
35 | - ip-prefix: 3000:30::10/128
36 |
37 | srl_nokia-network-instance:network-instance:
38 | - name: default
39 | admin-state: enable
40 | interface:
41 | - name: ethernet-1/1.0
42 | - name: ethernet-1/2.0
43 | - name: system0.0
44 | protocols:
45 | srl_nokia-bgp:bgp:
46 | autonomous-system: 65910
47 | router-id: 30.0.0.10
48 | afi-safi:
49 | - afi-safi-name: ipv4-unicast
50 | admin-state: enable
51 | - afi-safi-name: ipv6-unicast
52 | admin-state: enable
53 | group:
54 | - group-name: clos02
55 | admin-state: enable
56 | neighbor:
57 | - peer-address: 10.0.0.10
58 | peer-as: 65056
59 | peer-group: clos02
60 | - peer-address: 10.0.0.22
61 | peer-as: 65078
62 | peer-group: clos02
63 | srl_nokia-isis:isis:
64 | instance:
65 | - name: default
66 | admin-state: enable
67 | level-capability: L2
68 | net:
69 | - 49.0001.3000.0000.0010.00
70 | interface:
71 | - interface-name: ethernet-1/1.0
72 | circuit-type: point-to-point
73 | - interface-name: ethernet-1/2.0
74 | circuit-type: point-to-point
75 | - interface-name: system0.0
76 | level:
77 | - level-number: 2
78 | metric-style: wide
79 | srl_nokia-ospf:ospf:
80 | instance:
81 | - name: default
82 | admin-state: enable
83 | version: ospf-v2
84 | router-id: 30.0.0.10
85 | area:
86 | - area-id: 0.0.0.0
87 | interface:
88 | - interface-name: ethernet-1/1.0
89 | interface-type: point-to-point
90 | - interface-name: ethernet-1/2.0
91 | interface-type: point-to-point
92 | - interface-name: system0.0
93 |
--------------------------------------------------------------------------------
/setup.clos02.clab.yml:
--------------------------------------------------------------------------------
1 | name: clos02
2 |
3 | mgmt:
4 | network: br-clos02
5 | ipv4-subnet: 172.100.100.0/24
6 | ipv6-subnet: 2001:172:100:100::0/64
7 |
8 | topology:
9 | kinds:
10 | srl:
11 | image: ghcr.io/nokia/srlinux:25.3.1
12 | linux:
13 | image: ghcr.io/network-unit-testing-system/nuts-testclient:0.0.2
14 | env:
15 | ADMIN_PASSWORD: admin
16 | nodes:
17 | leaf1:
18 | kind: srl
19 | mgmt-ipv4: 172.100.100.2
20 | mgmt-ipv6: 2001:172:100:100::2
21 | leaf2:
22 | kind: srl
23 | mgmt-ipv4: 172.100.100.3
24 | mgmt-ipv6: 2001:172:100:100::3
25 | leaf3:
26 | kind: srl
27 | mgmt-ipv4: 172.100.100.4
28 | mgmt-ipv6: 2001:172:100:100::4
29 | leaf4:
30 | kind: srl
31 | mgmt-ipv4: 172.100.100.5
32 | mgmt-ipv6: 2001:172:100:100::5
33 |
34 | spine1:
35 | kind: srl
36 | type: ixrd3
37 | mgmt-ipv4: 172.100.100.6
38 | mgmt-ipv6: 2001:172:100:100::6
39 | spine2:
40 | kind: srl
41 | type: ixrd3
42 | mgmt-ipv4: 172.100.100.7
43 | mgmt-ipv6: 2001:172:100:100::7
44 | spine3:
45 | kind: srl
46 | type: ixrd3
47 | mgmt-ipv4: 172.100.100.8
48 | mgmt-ipv6: 2001:172:100:100::8
49 | spine4:
50 | kind: srl
51 | type: ixrd3
52 | mgmt-ipv4: 172.100.100.9
53 | mgmt-ipv6: 2001:172:100:100::9
54 |
55 | superspine1:
56 | kind: srl
57 | type: ixrd3
58 | mgmt-ipv4: 172.100.100.10
59 | mgmt-ipv6: 2001:172:100:100::10
60 | superspine2:
61 | kind: srl
62 | type: ixrd3
63 | mgmt-ipv4: 172.100.100.11
64 | mgmt-ipv6: 2001:172:100:100::11
65 |
66 | client1:
67 | kind: linux
68 | image: python:3.10
69 | mgmt-ipv4: 172.100.100.12
70 | mgmt-ipv6: 2001:172:100:100::12
71 | binds:
72 | - nuts_data:/workspace
73 |
74 | client2:
75 | kind: linux
76 | mgmt-ipv4: 172.100.100.13
77 | mgmt-ipv6: 2001:172:100:100::13
78 | client3:
79 | kind: linux
80 | mgmt-ipv4: 172.100.100.14
81 | mgmt-ipv6: 2001:172:100:100::14
82 | client4:
83 | kind: linux
84 | mgmt-ipv4: 172.100.100.15
85 | mgmt-ipv6: 2001:172:100:100::15
86 |
87 | links:
88 | - endpoints: ["leaf1:e1-1", "spine1:e1-1"]
89 | mtu: &mtu 9232
90 | - endpoints: ["leaf1:e1-2", "spine2:e1-1"]
91 | mtu: *mtu
92 | - endpoints: ["leaf2:e1-1", "spine1:e1-2"]
93 | mtu: *mtu
94 | - endpoints: ["leaf2:e1-2", "spine2:e1-2"]
95 | mtu: *mtu
96 |
97 | - endpoints: ["spine1:e1-3", "superspine1:e1-1"]
98 | mtu: *mtu
99 | - endpoints: ["spine2:e1-3", "superspine2:e1-1"]
100 | mtu: *mtu
101 |
102 | - endpoints: ["leaf3:e1-1", "spine3:e1-1"]
103 | mtu: *mtu
104 | - endpoints: ["leaf3:e1-2", "spine4:e1-1"]
105 | mtu: *mtu
106 | - endpoints: ["leaf4:e1-1", "spine3:e1-2"]
107 | mtu: *mtu
108 | - endpoints: ["leaf4:e1-2", "spine4:e1-2"]
109 | mtu: *mtu
110 |
111 | - endpoints: ["spine3:e1-3", "superspine1:e1-2"]
112 | mtu: *mtu
113 | - endpoints: ["spine4:e1-3", "superspine2:e1-2"]
114 | mtu: *mtu
115 |
116 | - endpoints: ["client1:eth1", "leaf1:e1-3"]
117 | mtu: *mtu
118 | - endpoints: ["client2:eth1", "leaf2:e1-3"]
119 | mtu: *mtu
120 | - endpoints: ["client3:eth1", "leaf3:e1-3"]
121 | mtu: *mtu
122 | - endpoints: ["client4:eth1", "leaf4:e1-3"]
123 | mtu: *mtu
124 |
--------------------------------------------------------------------------------
/configs/leaf2.yaml:
--------------------------------------------------------------------------------
1 | srl_nokia-interfaces:interface:
2 | - name: ethernet-1/1
3 | admin-state: enable
4 | subinterface:
5 | - index: 0
6 | ipv4:
7 | admin-state: enable
8 | address:
9 | - ip-prefix: 10.0.0.4/31
10 | ipv6:
11 | admin-state: enable
12 | address:
13 | - ip-prefix: 1000:10::4/127
14 | - name: ethernet-1/2
15 | admin-state: enable
16 | subinterface:
17 | - index: 0
18 | ipv4:
19 | admin-state: enable
20 | address:
21 | - ip-prefix: 10.0.0.6/31
22 | ipv6:
23 | admin-state: enable
24 | address:
25 | - ip-prefix: 1000:10::6/127
26 | - name: ethernet-1/3
27 | admin-state: enable
28 | subinterface:
29 | - index: 0
30 | ipv4:
31 | admin-state: enable
32 | address:
33 | - ip-prefix: 10.0.0.26/31
34 | ipv6:
35 | admin-state: enable
36 | address:
37 | - ip-prefix: 1000:10::26/127
38 | - name: system0
39 | admin-state: enable
40 | subinterface:
41 | - index: 0
42 | ipv4:
43 | address:
44 | - ip-prefix: 30.0.0.2/32
45 | ipv6:
46 | address:
47 | - ip-prefix: 3000:30::2/128
48 |
49 | srl_nokia-network-instance:network-instance:
50 | - name: default
51 | admin-state: enable
52 | interface:
53 | - name: ethernet-1/1.0
54 | - name: ethernet-1/2.0
55 | - name: ethernet-1/3.0
56 | - name: system0.0
57 | protocols:
58 | srl_nokia-bgp:bgp:
59 | autonomous-system: 65002
60 | router-id: 30.0.0.2
61 | afi-safi:
62 | - afi-safi-name: ipv4-unicast
63 | admin-state: enable
64 | - afi-safi-name: ipv6-unicast
65 | admin-state: enable
66 | group:
67 | - group-name: clos02
68 | admin-state: enable
69 | neighbor:
70 | - peer-address: 10.0.0.5
71 | peer-as: 65056
72 | peer-group: clos02
73 | - peer-address: 10.0.0.7
74 | peer-as: 65056
75 | peer-group: clos02
76 | srl_nokia-isis:isis:
77 | instance:
78 | - name: default
79 | admin-state: enable
80 | level-capability: L2
81 | net:
82 | - 49.0001.3000.0000.0002.00
83 | interface:
84 | - interface-name: ethernet-1/1.0
85 | circuit-type: point-to-point
86 | - interface-name: ethernet-1/2.0
87 | circuit-type: point-to-point
88 | - interface-name: ethernet-1/3.0
89 | circuit-type: point-to-point
90 | - interface-name: system0.0
91 | level:
92 | - level-number: 2
93 | metric-style: wide
94 | srl_nokia-ospf:ospf:
95 | instance:
96 | - name: default
97 | admin-state: enable
98 | version: ospf-v2
99 | router-id: 30.0.0.2
100 | area:
101 | - area-id: 0.0.0.0
102 | interface:
103 | - interface-name: ethernet-1/1.0
104 | interface-type: point-to-point
105 | - interface-name: ethernet-1/2.0
106 | interface-type: point-to-point
107 | - interface-name: ethernet-1/3.0
108 | interface-type: point-to-point
109 | - interface-name: system0.0
110 |
--------------------------------------------------------------------------------
/configs/leaf1.yaml:
--------------------------------------------------------------------------------
1 | srl_nokia-interfaces:interface:
2 | - name: ethernet-1/1
3 | admin-state: enable
4 | subinterface:
5 | - index: 0
6 | ipv4:
7 | admin-state: enable
8 | address:
9 | - ip-prefix: 10.0.0.0/31
10 | ipv6:
11 | admin-state: enable
12 | address:
13 | - ip-prefix: '1000:10::/127'
14 | - name: ethernet-1/2
15 | admin-state: enable
16 | subinterface:
17 | - index: 0
18 | ipv4:
19 | admin-state: enable
20 | address:
21 | - ip-prefix: 10.0.0.2/31
22 | ipv6:
23 | admin-state: enable
24 | address:
25 | - ip-prefix: '1000:10::2/127'
26 | - name: ethernet-1/3
27 | admin-state: enable
28 | subinterface:
29 | - index: 0
30 | ipv4:
31 | admin-state: enable
32 | address:
33 | - ip-prefix: 10.0.0.24/31
34 | ipv6:
35 | admin-state: enable
36 | address:
37 | - ip-prefix: '1000:10::24/127'
38 | - name: system0
39 | admin-state: enable
40 | subinterface:
41 | - index: 0
42 | ipv4:
43 | address:
44 | - ip-prefix: 30.0.0.1/32
45 | ipv6:
46 | address:
47 | - ip-prefix: '3000:30::1/128'
48 |
49 | srl_nokia-network-instance:network-instance:
50 | - name: default
51 | admin-state: enable
52 | interface:
53 | - name: ethernet-1/1.0
54 | - name: ethernet-1/2.0
55 | - name: ethernet-1/3.0
56 | - name: system0.0
57 | protocols:
58 | srl_nokia-bgp:bgp:
59 | autonomous-system: 65001
60 | router-id: 30.0.0.1
61 | afi-safi:
62 | - afi-safi-name: ipv4-unicast
63 | admin-state: enable
64 | - afi-safi-name: ipv6-unicast
65 | admin-state: enable
66 | group:
67 | - group-name: clos02
68 | admin-state: enable
69 | neighbor:
70 | - peer-address: 10.0.0.1
71 | peer-as: 65056
72 | peer-group: clos02
73 | - peer-address: 10.0.0.3
74 | peer-as: 65056
75 | peer-group: clos02
76 | srl_nokia-isis:isis:
77 | instance:
78 | - name: default
79 | admin-state: enable
80 | level-capability: L2
81 | net:
82 | - 49.0001.3000.0000.0001.00
83 | interface:
84 | - interface-name: ethernet-1/1.0
85 | circuit-type: point-to-point
86 | - interface-name: ethernet-1/2.0
87 | circuit-type: point-to-point
88 | - interface-name: ethernet-1/3.0
89 | circuit-type: point-to-point
90 | - interface-name: system0.0
91 | level:
92 | - level-number: 2
93 | metric-style: wide
94 | srl_nokia-ospf:ospf:
95 | instance:
96 | - name: default
97 | admin-state: enable
98 | version: ospf-v2
99 | router-id: 30.0.0.1
100 | area:
101 | - area-id: 0.0.0.0
102 | interface:
103 | - interface-name: ethernet-1/1.0
104 | interface-type: point-to-point
105 | - interface-name: ethernet-1/2.0
106 | interface-type: point-to-point
107 | - interface-name: ethernet-1/3.0
108 | interface-type: point-to-point
109 | - interface-name: system0.0
110 |
--------------------------------------------------------------------------------
/configs/leaf3.yaml:
--------------------------------------------------------------------------------
1 | srl_nokia-interfaces:interface:
2 | - name: ethernet-1/1
3 | admin-state: enable
4 | subinterface:
5 | - index: 0
6 | ipv4:
7 | admin-state: enable
8 | address:
9 | - ip-prefix: 10.0.0.12/31
10 | ipv6:
11 | admin-state: enable
12 | address:
13 | - ip-prefix: 1000:10::12/127
14 | - name: ethernet-1/2
15 | admin-state: enable
16 | subinterface:
17 | - index: 0
18 | ipv4:
19 | admin-state: enable
20 | address:
21 | - ip-prefix: 10.0.0.14/31
22 | ipv6:
23 | admin-state: enable
24 | address:
25 | - ip-prefix: 1000:10::14/127
26 | - name: ethernet-1/3
27 | admin-state: enable
28 | subinterface:
29 | - index: 0
30 | ipv4:
31 | admin-state: enable
32 | address:
33 | - ip-prefix: 10.0.0.28/31
34 | ipv6:
35 | admin-state: enable
36 | address:
37 | - ip-prefix: 1000:10::28/127
38 | - name: system0
39 | admin-state: enable
40 | subinterface:
41 | - index: 0
42 | ipv4:
43 | address:
44 | - ip-prefix: 30.0.0.3/32
45 | ipv6:
46 | address:
47 | - ip-prefix: 3000:30::3/128
48 |
49 | srl_nokia-network-instance:network-instance:
50 | - name: default
51 | admin-state: enable
52 | interface:
53 | - name: ethernet-1/1.0
54 | - name: ethernet-1/2.0
55 | - name: ethernet-1/3.0
56 | - name: system0.0
57 | protocols:
58 | srl_nokia-bgp:bgp:
59 | autonomous-system: 65003
60 | router-id: 30.0.0.3
61 | afi-safi:
62 | - afi-safi-name: ipv4-unicast
63 | admin-state: enable
64 | - afi-safi-name: ipv6-unicast
65 | admin-state: enable
66 | group:
67 | - group-name: clos02
68 | admin-state: enable
69 | neighbor:
70 | - peer-address: 10.0.0.13
71 | peer-as: 65078
72 | peer-group: clos02
73 | - peer-address: 10.0.0.15
74 | peer-as: 65078
75 | peer-group: clos02
76 | srl_nokia-isis:isis:
77 | instance:
78 | - name: default
79 | admin-state: enable
80 | level-capability: L2
81 | net:
82 | - 49.0001.3000.0000.0003.00
83 | interface:
84 | - interface-name: ethernet-1/1.0
85 | circuit-type: point-to-point
86 | - interface-name: ethernet-1/2.0
87 | circuit-type: point-to-point
88 | - interface-name: ethernet-1/3.0
89 | circuit-type: point-to-point
90 | - interface-name: system0.0
91 | level:
92 | - level-number: 2
93 | metric-style: wide
94 | srl_nokia-ospf:ospf:
95 | instance:
96 | - name: default
97 | admin-state: enable
98 | version: ospf-v2
99 | router-id: 30.0.0.3
100 | area:
101 | - area-id: 0.0.0.0
102 | interface:
103 | - interface-name: ethernet-1/1.0
104 | interface-type: point-to-point
105 | - interface-name: ethernet-1/2.0
106 | interface-type: point-to-point
107 | - interface-name: ethernet-1/3.0
108 | interface-type: point-to-point
109 | - interface-name: system0.0
110 |
--------------------------------------------------------------------------------
/configs/leaf4.yaml:
--------------------------------------------------------------------------------
1 | srl_nokia-interfaces:interface:
2 | - name: ethernet-1/1
3 | admin-state: enable
4 | subinterface:
5 | - index: 0
6 | ipv4:
7 | admin-state: enable
8 | address:
9 | - ip-prefix: 10.0.0.16/31
10 | ipv6:
11 | admin-state: enable
12 | address:
13 | - ip-prefix: 1000:10::16/127
14 | - name: ethernet-1/2
15 | admin-state: enable
16 | subinterface:
17 | - index: 0
18 | ipv4:
19 | admin-state: enable
20 | address:
21 | - ip-prefix: 10.0.0.18/31
22 | ipv6:
23 | admin-state: enable
24 | address:
25 | - ip-prefix: 1000:10::18/127
26 | - name: ethernet-1/3
27 | admin-state: enable
28 | subinterface:
29 | - index: 0
30 | ipv4:
31 | admin-state: enable
32 | address:
33 | - ip-prefix: 10.0.0.30/31
34 | ipv6:
35 | admin-state: enable
36 | address:
37 | - ip-prefix: 1000:10::30/127
38 | - name: system0
39 | admin-state: enable
40 | subinterface:
41 | - index: 0
42 | ipv4:
43 | address:
44 | - ip-prefix: 30.0.0.4/32
45 | ipv6:
46 | address:
47 | - ip-prefix: 3000:30::4/128
48 |
49 | srl_nokia-network-instance:network-instance:
50 | - name: default
51 | admin-state: enable
52 | interface:
53 | - name: ethernet-1/1.0
54 | - name: ethernet-1/2.0
55 | - name: ethernet-1/3.0
56 | - name: system0.0
57 | protocols:
58 | srl_nokia-bgp:bgp:
59 | autonomous-system: 65004
60 | router-id: 30.0.0.4
61 | afi-safi:
62 | - afi-safi-name: ipv4-unicast
63 | admin-state: enable
64 | - afi-safi-name: ipv6-unicast
65 | admin-state: enable
66 | group:
67 | - group-name: clos02
68 | admin-state: enable
69 | neighbor:
70 | - peer-address: 10.0.0.17
71 | peer-as: 65078
72 | peer-group: clos02
73 | - peer-address: 10.0.0.19
74 | peer-as: 65078
75 | peer-group: clos02
76 | srl_nokia-isis:isis:
77 | instance:
78 | - name: default
79 | admin-state: enable
80 | level-capability: L2
81 | net:
82 | - 49.0001.3000.0000.0004.00
83 | interface:
84 | - interface-name: ethernet-1/1.0
85 | circuit-type: point-to-point
86 | - interface-name: ethernet-1/2.0
87 | circuit-type: point-to-point
88 | - interface-name: ethernet-1/3.0
89 | circuit-type: point-to-point
90 | - interface-name: system0.0
91 | level:
92 | - level-number: 2
93 | metric-style: wide
94 | srl_nokia-ospf:ospf:
95 | instance:
96 | - name: default
97 | admin-state: enable
98 | version: ospf-v2
99 | router-id: 30.0.0.4
100 | area:
101 | - area-id: 0.0.0.0
102 | interface:
103 | - interface-name: ethernet-1/1.0
104 | interface-type: point-to-point
105 | - interface-name: ethernet-1/2.0
106 | interface-type: point-to-point
107 | - interface-name: ethernet-1/3.0
108 | interface-type: point-to-point
109 | - interface-name: system0.0
110 |
--------------------------------------------------------------------------------
/configs/spine1.yaml:
--------------------------------------------------------------------------------
1 | srl_nokia-interfaces:interface:
2 | - name: ethernet-1/1
3 | admin-state: enable
4 | subinterface:
5 | - index: 0
6 | ipv4:
7 | admin-state: enable
8 | address:
9 | - ip-prefix: 10.0.0.1/31
10 | ipv6:
11 | admin-state: enable
12 | address:
13 | - ip-prefix: 1000:10::1/127
14 | - name: ethernet-1/2
15 | admin-state: enable
16 | subinterface:
17 | - index: 0
18 | ipv4:
19 | admin-state: enable
20 | address:
21 | - ip-prefix: 10.0.0.5/31
22 | ipv6:
23 | admin-state: enable
24 | address:
25 | - ip-prefix: 1000:10::5/127
26 | - name: ethernet-1/3
27 | admin-state: enable
28 | subinterface:
29 | - index: 0
30 | ipv4:
31 | admin-state: enable
32 | address:
33 | - ip-prefix: 10.0.0.8/31
34 | ipv6:
35 | admin-state: enable
36 | address:
37 | - ip-prefix: 1000:10::8/127
38 | - name: system0
39 | admin-state: enable
40 | subinterface:
41 | - index: 0
42 | ipv4:
43 | address:
44 | - ip-prefix: 30.0.0.5/32
45 | ipv6:
46 | address:
47 | - ip-prefix: 3000:30::5/128
48 |
49 | srl_nokia-network-instance:network-instance:
50 | - name: default
51 | admin-state: enable
52 | interface:
53 | - name: ethernet-1/1.0
54 | - name: ethernet-1/2.0
55 | - name: ethernet-1/3.0
56 | - name: system0.0
57 | protocols:
58 | srl_nokia-bgp:bgp:
59 | autonomous-system: 65056
60 | router-id: 30.0.0.5
61 | afi-safi:
62 | - afi-safi-name: ipv4-unicast
63 | admin-state: enable
64 | - afi-safi-name: ipv6-unicast
65 | admin-state: enable
66 | group:
67 | - group-name: clos02
68 | admin-state: enable
69 | neighbor:
70 | - peer-address: 10.0.0.0
71 | peer-as: 65001
72 | peer-group: clos02
73 | - peer-address: 10.0.0.4
74 | peer-as: 65002
75 | peer-group: clos02
76 | - peer-address: 10.0.0.9
77 | peer-as: 65910
78 | peer-group: clos02
79 | srl_nokia-isis:isis:
80 | instance:
81 | - name: default
82 | admin-state: enable
83 | level-capability: L2
84 | net:
85 | - 49.0001.3000.0000.0005.00
86 | interface:
87 | - interface-name: ethernet-1/1.0
88 | circuit-type: point-to-point
89 | - interface-name: ethernet-1/2.0
90 | circuit-type: point-to-point
91 | - interface-name: ethernet-1/3.0
92 | circuit-type: point-to-point
93 | - interface-name: system0.0
94 | level:
95 | - level-number: 2
96 | metric-style: wide
97 | srl_nokia-ospf:ospf:
98 | instance:
99 | - name: default
100 | admin-state: enable
101 | version: ospf-v2
102 | router-id: 30.0.0.5
103 | area:
104 | - area-id: 0.0.0.0
105 | interface:
106 | - interface-name: ethernet-1/1.0
107 | interface-type: point-to-point
108 | - interface-name: ethernet-1/2.0
109 | interface-type: point-to-point
110 | - interface-name: ethernet-1/3.0
111 | interface-type: point-to-point
112 | - interface-name: system0.0
113 |
--------------------------------------------------------------------------------
/configs/spine2.yaml:
--------------------------------------------------------------------------------
1 | srl_nokia-interfaces:interface:
2 | - name: ethernet-1/1
3 | admin-state: enable
4 | subinterface:
5 | - index: 0
6 | ipv4:
7 | admin-state: enable
8 | address:
9 | - ip-prefix: 10.0.0.3/31
10 | ipv6:
11 | admin-state: enable
12 | address:
13 | - ip-prefix: 1000:10::3/127
14 | - name: ethernet-1/2
15 | admin-state: enable
16 | subinterface:
17 | - index: 0
18 | ipv4:
19 | admin-state: enable
20 | address:
21 | - ip-prefix: 10.0.0.7/31
22 | ipv6:
23 | admin-state: enable
24 | address:
25 | - ip-prefix: 1000:10::7/127
26 | - name: ethernet-1/3
27 | admin-state: enable
28 | subinterface:
29 | - index: 0
30 | ipv4:
31 | admin-state: enable
32 | address:
33 | - ip-prefix: 10.0.0.10/31
34 | ipv6:
35 | admin-state: enable
36 | address:
37 | - ip-prefix: 1000:10::10/127
38 | - name: system0
39 | admin-state: enable
40 | subinterface:
41 | - index: 0
42 | ipv4:
43 | address:
44 | - ip-prefix: 30.0.0.6/32
45 | ipv6:
46 | address:
47 | - ip-prefix: 3000:30::6/128
48 |
49 | srl_nokia-network-instance:network-instance:
50 | - name: default
51 | admin-state: enable
52 | interface:
53 | - name: ethernet-1/1.0
54 | - name: ethernet-1/2.0
55 | - name: ethernet-1/3.0
56 | - name: system0.0
57 | protocols:
58 | srl_nokia-bgp:bgp:
59 | autonomous-system: 65056
60 | router-id: 30.0.0.6
61 | afi-safi:
62 | - afi-safi-name: ipv4-unicast
63 | admin-state: enable
64 | - afi-safi-name: ipv6-unicast
65 | admin-state: enable
66 | group:
67 | - group-name: clos02
68 | admin-state: enable
69 | neighbor:
70 | - peer-address: 10.0.0.2
71 | peer-as: 65001
72 | peer-group: clos02
73 | - peer-address: 10.0.0.6
74 | peer-as: 65002
75 | peer-group: clos02
76 | - peer-address: 10.0.0.11
77 | peer-as: 65910
78 | peer-group: clos02
79 | srl_nokia-isis:isis:
80 | instance:
81 | - name: default
82 | admin-state: enable
83 | level-capability: L2
84 | net:
85 | - 49.0001.3000.0000.0006.00
86 | interface:
87 | - interface-name: ethernet-1/1.0
88 | circuit-type: point-to-point
89 | - interface-name: ethernet-1/2.0
90 | circuit-type: point-to-point
91 | - interface-name: ethernet-1/3.0
92 | circuit-type: point-to-point
93 | - interface-name: system0.0
94 | level:
95 | - level-number: 2
96 | metric-style: wide
97 | srl_nokia-ospf:ospf:
98 | instance:
99 | - name: default
100 | admin-state: enable
101 | version: ospf-v2
102 | router-id: 30.0.0.6
103 | area:
104 | - area-id: 0.0.0.0
105 | interface:
106 | - interface-name: ethernet-1/1.0
107 | interface-type: point-to-point
108 | - interface-name: ethernet-1/2.0
109 | interface-type: point-to-point
110 | - interface-name: ethernet-1/3.0
111 | interface-type: point-to-point
112 | - interface-name: system0.0
113 |
--------------------------------------------------------------------------------
/configs/spine3.yaml:
--------------------------------------------------------------------------------
1 | srl_nokia-interfaces:interface:
2 | - name: ethernet-1/1
3 | admin-state: enable
4 | subinterface:
5 | - index: 0
6 | ipv4:
7 | admin-state: enable
8 | address:
9 | - ip-prefix: 10.0.0.13/31
10 | ipv6:
11 | admin-state: enable
12 | address:
13 | - ip-prefix: 1000:10::13/127
14 | - name: ethernet-1/2
15 | admin-state: enable
16 | subinterface:
17 | - index: 0
18 | ipv4:
19 | admin-state: enable
20 | address:
21 | - ip-prefix: 10.0.0.17/31
22 | ipv6:
23 | admin-state: enable
24 | address:
25 | - ip-prefix: 1000:10::17/127
26 | - name: ethernet-1/3
27 | admin-state: enable
28 | subinterface:
29 | - index: 0
30 | ipv4:
31 | admin-state: enable
32 | address:
33 | - ip-prefix: 10.0.0.20/31
34 | ipv6:
35 | admin-state: enable
36 | address:
37 | - ip-prefix: 1000:10::20/127
38 | - name: system0
39 | admin-state: enable
40 | subinterface:
41 | - index: 0
42 | ipv4:
43 | address:
44 | - ip-prefix: 30.0.0.7/32
45 | ipv6:
46 | address:
47 | - ip-prefix: 3000:30::7/128
48 |
49 | srl_nokia-network-instance:network-instance:
50 | - name: default
51 | admin-state: enable
52 | interface:
53 | - name: ethernet-1/1.0
54 | - name: ethernet-1/2.0
55 | - name: ethernet-1/3.0
56 | - name: system0.0
57 | protocols:
58 | srl_nokia-bgp:bgp:
59 | autonomous-system: 65078
60 | router-id: 30.0.0.7
61 | afi-safi:
62 | - afi-safi-name: ipv4-unicast
63 | admin-state: enable
64 | - afi-safi-name: ipv6-unicast
65 | admin-state: enable
66 | group:
67 | - group-name: clos02
68 | admin-state: enable
69 | neighbor:
70 | - peer-address: 10.0.0.12
71 | peer-as: 65003
72 | peer-group: clos02
73 | - peer-address: 10.0.0.16
74 | peer-as: 65004
75 | peer-group: clos02
76 | - peer-address: 10.0.0.21
77 | peer-as: 65910
78 | peer-group: clos02
79 | srl_nokia-isis:isis:
80 | instance:
81 | - name: default
82 | admin-state: enable
83 | level-capability: L2
84 | net:
85 | - 49.0001.3000.0000.0007.00
86 | interface:
87 | - interface-name: ethernet-1/1.0
88 | circuit-type: point-to-point
89 | - interface-name: ethernet-1/2.0
90 | circuit-type: point-to-point
91 | - interface-name: ethernet-1/3.0
92 | circuit-type: point-to-point
93 | - interface-name: system0.0
94 | level:
95 | - level-number: 2
96 | metric-style: wide
97 | srl_nokia-ospf:ospf:
98 | instance:
99 | - name: default
100 | admin-state: enable
101 | version: ospf-v2
102 | router-id: 30.0.0.7
103 | area:
104 | - area-id: 0.0.0.0
105 | interface:
106 | - interface-name: ethernet-1/1.0
107 | interface-type: point-to-point
108 | - interface-name: ethernet-1/2.0
109 | interface-type: point-to-point
110 | - interface-name: ethernet-1/3.0
111 | interface-type: point-to-point
112 | - interface-name: system0.0
113 |
--------------------------------------------------------------------------------
/configs/spine4.yaml:
--------------------------------------------------------------------------------
1 | srl_nokia-interfaces:interface:
2 | - name: ethernet-1/1
3 | admin-state: enable
4 | subinterface:
5 | - index: 0
6 | ipv4:
7 | admin-state: enable
8 | address:
9 | - ip-prefix: 10.0.0.15/31
10 | ipv6:
11 | admin-state: enable
12 | address:
13 | - ip-prefix: 1000:10::15/127
14 | - name: ethernet-1/2
15 | admin-state: enable
16 | subinterface:
17 | - index: 0
18 | ipv4:
19 | admin-state: enable
20 | address:
21 | - ip-prefix: 10.0.0.19/31
22 | ipv6:
23 | admin-state: enable
24 | address:
25 | - ip-prefix: 1000:10::19/127
26 | - name: ethernet-1/3
27 | admin-state: enable
28 | subinterface:
29 | - index: 0
30 | ipv4:
31 | admin-state: enable
32 | address:
33 | - ip-prefix: 10.0.0.22/31
34 | ipv6:
35 | admin-state: enable
36 | address:
37 | - ip-prefix: 1000:10::22/127
38 | - name: system0
39 | admin-state: enable
40 | subinterface:
41 | - index: 0
42 | ipv4:
43 | address:
44 | - ip-prefix: 30.0.0.8/32
45 | ipv6:
46 | address:
47 | - ip-prefix: 3000:30::8/128
48 |
49 | srl_nokia-network-instance:network-instance:
50 | - name: default
51 | admin-state: enable
52 | interface:
53 | - name: ethernet-1/1.0
54 | - name: ethernet-1/2.0
55 | - name: ethernet-1/3.0
56 | - name: system0.0
57 | protocols:
58 | srl_nokia-bgp:bgp:
59 | autonomous-system: 65078
60 | router-id: 30.0.0.8
61 | afi-safi:
62 | - afi-safi-name: ipv4-unicast
63 | admin-state: enable
64 | - afi-safi-name: ipv6-unicast
65 | admin-state: enable
66 | group:
67 | - group-name: clos02
68 | admin-state: enable
69 | neighbor:
70 | - peer-address: 10.0.0.14
71 | peer-as: 65003
72 | peer-group: clos02
73 | - peer-address: 10.0.0.18
74 | peer-as: 65004
75 | peer-group: clos02
76 | - peer-address: 10.0.0.23
77 | peer-as: 65910
78 | peer-group: clos02
79 | srl_nokia-isis:isis:
80 | instance:
81 | - name: default
82 | admin-state: enable
83 | level-capability: L2
84 | net:
85 | - 49.0001.3000.0000.0008.00
86 | interface:
87 | - interface-name: ethernet-1/1.0
88 | circuit-type: point-to-point
89 | - interface-name: ethernet-1/2.0
90 | circuit-type: point-to-point
91 | - interface-name: ethernet-1/3.0
92 | circuit-type: point-to-point
93 | - interface-name: system0.0
94 | level:
95 | - level-number: 2
96 | metric-style: wide
97 | srl_nokia-ospf:ospf:
98 | instance:
99 | - name: default
100 | admin-state: enable
101 | version: ospf-v2
102 | router-id: 30.0.0.8
103 | area:
104 | - area-id: 0.0.0.0
105 | interface:
106 | - interface-name: ethernet-1/1.0
107 | interface-type: point-to-point
108 | - interface-name: ethernet-1/2.0
109 | interface-type: point-to-point
110 | - interface-name: ethernet-1/3.0
111 | interface-type: point-to-point
112 | - interface-name: system0.0
113 |
--------------------------------------------------------------------------------