flowchart LR
ve1e1 --- ve2e1
ve1e2 --- ve3e1
ve3e2 --- ve4e1
subgraph ve1
ve1e1(ve1e1<br/><small>.1</small>)
ve1e2(ve1e2<br/><small>.2</small>)
end
subgraph ve2
ve2e1(ve2e1<br/><small>.3</small>)
end
subgraph ve3
ve3e1(ve3e1<br/><small>.4</small>)
ve3e2(ve3e1<br/><small>.5</small>)
end
subgraph ve4
ve4e1(ve4e1<br/><small>.6</small>)
end
Last active
April 25, 2022 09:02
-
-
Save sarjsheff/1b5b088c18e237c9aa28fcc218578536 to your computer and use it in GitHub Desktop.
ip netns simple virtual net + static route
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
set -x | |
ip netns delete ve1 | |
ip netns delete ve2 | |
ip netns delete ve3 | |
ip netns delete ve4 | |
ip netns add ve1 | |
ip netns add ve2 | |
ip netns add ve3 | |
ip netns add ve4 | |
ip link add ve1e1 netns ve1 type veth peer ve2e1 netns ve2 | |
ip link add ve1e2 netns ve1 type veth peer ve3e1 netns ve3 | |
ip link add ve3e2 netns ve3 type veth peer ve4e1 netns ve4 | |
ip netns exec ve1 ip addr add 10.20.1.1/24 dev ve1e1 | |
ip netns exec ve1 ip addr add 10.20.1.2/24 dev ve1e2 | |
ip netns exec ve2 ip addr add 10.20.1.3/24 dev ve2e1 | |
ip netns exec ve3 ip addr add 10.20.1.4/24 dev ve3e1 | |
ip netns exec ve3 ip addr add 10.20.1.5/24 dev ve3e2 | |
ip netns exec ve4 ip addr add 10.20.1.6/24 dev ve4e1 | |
ip netns exec ve1 ip link set dev lo up | |
ip netns exec ve2 ip link set dev lo up | |
ip netns exec ve3 ip link set dev lo up | |
ip netns exec ve4 ip link set dev lo up | |
ip netns exec ve1 ip link set dev ve1e1 up | |
ip netns exec ve1 ip link set dev ve1e2 up | |
ip netns exec ve2 ip link set dev ve2e1 up | |
ip netns exec ve3 ip link set dev ve3e1 up | |
ip netns exec ve3 ip link set dev ve3e2 up | |
ip netns exec ve4 ip link set dev ve4e1 up | |
ip netns exec ve1 ip route flush all | |
ip netns exec ve1 ip route add dev ve1e1 10.20.1.1 | |
ip netns exec ve1 ip route add dev ve1e2 10.20.1.2 | |
ip netns exec ve1 ip route add dev ve1e1 10.20.1.3 | |
ip netns exec ve1 ip route add dev ve1e2 10.20.1.4 | |
ip netns exec ve1 ip route add dev ve1e2 10.20.1.5 | |
ip netns exec ve1 ip route add dev ve1e2 10.20.1.6 via 10.20.1.5 | |
ip netns exec ve2 ip route flush all | |
ip netns exec ve2 ip route add dev ve2e1 10.20.1.1 | |
ip netns exec ve2 ip route add dev ve2e1 10.20.1.2 | |
ip netns exec ve2 ip route add dev ve2e1 10.20.1.3 | |
ip netns exec ve2 ip route add dev ve2e1 10.20.1.4 via 10.20.1.2 | |
ip netns exec ve2 ip route add dev ve2e1 10.20.1.5 via 10.20.1.2 | |
ip netns exec ve2 ip route add dev ve2e1 10.20.1.6 via 10.20.1.2 | |
ip netns exec ve3 ip route flush all | |
ip netns exec ve3 ip route add dev ve3e1 10.20.1.1 | |
ip netns exec ve3 ip route add dev ve3e1 10.20.1.2 | |
ip netns exec ve3 ip route add dev ve3e1 10.20.1.4 | |
ip netns exec ve3 ip route add dev ve3e2 10.20.1.5 | |
ip netns exec ve3 ip route add dev ve3e2 10.20.1.6 | |
ip netns exec ve3 ip route add dev ve3e1 10.20.1.3 via 10.20.1.1 | |
ip netns exec ve4 ip route flush all | |
ip netns exec ve4 ip route add dev ve4e1 10.20.1.4 | |
ip netns exec ve4 ip route add dev ve4e1 10.20.1.5 | |
ip netns exec ve4 ip route add dev ve4e1 10.20.1.6 | |
ip netns exec ve4 ip route add dev ve4e1 10.20.1.1 via 10.20.1.4 | |
ip netns exec ve4 ip route add dev ve4e1 10.20.1.2 via 10.20.1.4 | |
ip netns exec ve4 ip route add dev ve4e1 10.20.1.3 via 10.20.1.4 | |
set +x | |
for ip in `seq 1 6` | |
do | |
ip netns exec ve1 ping -c 1 10.20.1.${ip} > /dev/null || echo "ve1 -> ${ip}" | |
ip netns exec ve2 ping -c 1 10.20.1.${ip} > /dev/null || echo "ve2 -> ${ip}" | |
ip netns exec ve3 ping -c 1 10.20.1.${ip} > /dev/null || echo "ve3 -> ${ip}" | |
ip netns exec ve4 ping -c 1 10.20.1.${ip} > /dev/null || echo "ve4 -> ${ip}" | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment