summaryrefslogtreecommitdiff
path: root/jenkins/netns-setup
blob: f989d7e4f854439113599ad3ea107e1f2b23d3ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/sh

set -eu

prefix="10.1"
count="${1:-8}"

for net in $(seq 1 $count); do
	ns="newpid$net"
	veth="veth$net"
	ceth="ceth$net"

	ip netns add $ns 2> /dev/null || :

	ip link del $veth 2> /dev/null || :
	ip link add $veth type veth peer name $ceth
	ip link set $ceth netns $ns
	ip a add $prefix.$net.1/24 dev $veth
	ip link set $veth up
	ip netns exec $ns ip link set lo up
	ip netns exec $ns ip a add $prefix.$net.2/24 dev $ceth
	ip netns exec $ns ip link set $ceth up
	ip netns exec $ns ip r add default via $prefix.$net.1
done

# see also forwarding/masquerading rules in ansible/nftables.conf