https://github.com/srl-labs/nokia-basic-dci-lab
https://github.com/srl-labs/nokia-basic-dci-lab
clab-topo
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/srl-labs/nokia-basic-dci-lab
- Owner: srl-labs
- License: apache-2.0
- Created: 2024-03-06T20:11:23.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-10T14:15:20.000Z (almost 2 years ago)
- Last Synced: 2025-04-05T22:08:19.352Z (about 1 year ago)
- Topics: clab-topo
- Language: Shell
- Homepage:
- Size: 795 KB
- Stars: 2
- Watchers: 5
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# nokia-basic-dci-lab
A basic Datacenter Interconnect (DCI) lab for with leaf/spine switches powered by SR Linux and DC Gateway and P routers powered by Nokia 7750 SR OS.
In this lab, you will see two DC fabrics with VXLAN/EVPN and a WAN network that interconnects them with BGP-VPN.
There are clients connected to Leaf routers(see the topology below) in every site to test the connectivity in the fabric as well as inter-dc.
## Images & License
This lab requires containerized images of both SR Linux and SROS and a valid vSIM license for SROS.
SR Linux container image is automatically pulled from the public repository upon deploying the lab. (See the topology file)
SROS container image is available via a Nokia private repository, but can also be derived from an vSIM VM image via [VRNETLAB](https://containerlab.dev/manual/vrnetlab/#vrnetlab).
## Topology

## Deploy on containerlab
From within the cloned directory run:
```bash
sudo clab deploy -c
```
## Deploy on c9s
### Install clabernetes
```bash
helm upgrade --install --create-namespace --namespace c9s \
clabernetes oci://ghcr.io/srl-labs/clabernetes/clabernetes
```
### Setup clabverter
```bash
alias clabverter='sudo docker run --user $(id -u) \
-v /opt/nokia:/opt/nokia \
-v $(pwd):/clabernetes/work --rm \
ghcr.io/srl-labs/clabernetes/clabverter:latest'
```
### Run clabverter
```bash
clabverter --stdout --naming non-prefixed --disableExpose \
| kubectl apply -f -
```
## Client connectivity validation

The `netcheck.sh` script will run ping from client1 in DC1 to other clients. That will validate connectivity within and between the dc fabrics.
### With containerlab
```bash
./netcheck.sh
```
### With c9s
Automated ping tests from client1 towards client2, client3 and client4 can be done with:
```bash
./netcheck-c9s.sh
```
The output will show the success or failure of the ping tests for each destination.
To run the ping tests manually, use the following command:
```bash
kubectl exec -it -n c9s-dci -- docker exec -it client1-dc1 ping 10.0.0.4
```
## Cleanup
### Containerlab
```bash
sudo clab destroy -c
```
### c9s
```bash
kubectl delete namespace c9s-dci
```
If you wish to also uninstall the clabernetes:
```bash
helm uninstall -n c9s clabernetes && \
kubectl delete namespace c9s
```
## Misc
### Traffic capture with wireshark
```bash
pcapc9s.sh c9s-dci client4 eth1
```
### Replace underscores in names
```
sed -ir 's/([a-zA-Z0-9]+)_dc/\1-dc/g' dci.clab.yml
```