+
Skip to content

giros-dit/vnx-srv6

Repository files navigation

vnx-srv6

Scenarios for studying and analyzing SRv6 (Segment Routing over IPv6 dataplane).

Table of Contents

Deploying b5g

SRv6 Scenario Overview

1. Launch the Scenario

First, choose the topology you want to launch and navigate to its corresponding directory.
If the converted folder already exists, skip to step 1.2.

Step 1.1: Convert Containerlab Topology to Clabernetes Format

Use the modified clabverter with the following alias:

alias clabverter='sudo docker run --user $(id -u) \
        -v $(pwd):/clabernetes/work --rm \
        ghcr.io/giros-dit/clabernetes/clabverter'

Convert the topology:

clabverter --naming non-prefixed --outputDirectory ./converted --destinationNamespace across-tc32

Step 1.2: Deploy the Converted Topology

Once the topology is converted, deploy it with:

kubectl apply -f ./converted

Then, apply the deployment patch:

./converted/deployment-patcher.sh

After successful deployment, for each rg node, add the default route for the upstream link with the following command.
Note: Replace fcff:5::1 with the appropriate loopback address of the ru node for your specific scenario:

kubectl exec deploy/rg1 -- docker exec rg1 ip -6 route add fd00:0:1::/127 encap seg6 mode encap segs <ru-loopback-ip> dev eth1

For example, if the ru loopback address is fcff:5::1:

kubectl exec deploy/rg1 -- docker exec rg1 ip -6 route add fd00:0:1::/127 encap seg6 mode encap segs fcff:5::1 dev eth1

2. Launch the Controller

Once the network, monitoring stack, and analysis stack are running, launch the controller using the script in NetworkControlStack/k8s:

./deploy.sh

This script will create the necessary ConfigMap and start the controller.

Using the Controller

To create a flow, run the following command (replace the destination IP with the appropriate one):

kubectl exec deploy/networkstack -- python3 flows.py fd00:0:2::3/64

Alternatively, access the controller pod interactively:

kubectl exec -it deploy/networkstack -- bash

Then run:

python3 flows.py fd00:0:2::3/64

Iperf Example

Example of iperf3 between systems hupf-h1 and hgnb1-h1

hupf-h1

iperf3 -c fd00:0:2::2 -V -u -b 20M -l 1000 -t 300

hgnb1-h1

iperf3 -s -V -B fd00:0:2::2

Repository Structure

.
├── NetworkControlStack/
│   └── k8s/
├── converted/
├── topologies/
├── scripts/
├── README.md
└── ...
  • NetworkControlStack/: Controller and related Kubernetes manifests/scripts.
  • converted/: Output directory for converted topologies.
  • topologies/: Source Containerlab topology files.
  • scripts/: Utility scripts for deployment and management.

Requirements

  • Docker
  • Kubernetes (kubectl)
  • Containerlab
  • Python 3.x

About

Network emulation and Network Control Stack for ACROSS project by GIROS group

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 3

  •  
  •  
  •  
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载