Skip to content

Instantly share code, notes, and snippets.

@mathershifter
Created July 31, 2018 21:22
Show Gist options
  • Save mathershifter/853de2cdbd2adf4545efdf13f32b0bd7 to your computer and use it in GitHub Desktop.
Save mathershifter/853de2cdbd2adf4545efdf13f32b0bd7 to your computer and use it in GitHub Desktop.
#!/bin/bash
# Credit to Sudip Regmi <[email protected]>
create_ceos() {
docker create --name=$1 --privileged \
-e CEOS=1 \
-e container=docker \
-e EOS_PLATFORM=ceoslab \
-e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 \
-e ETBA=1 \
-e INTFTYPE=eth \
-i -t ceoslab \
/sbin/init
sudo docker start $1
sudo docker pause $1
}
connect_ceos() {
echo "Connecting ${1}:${3} to ${2}:${4}"
sudo mkdir -p /var/run/netns
pid1="$(sudo docker inspect -f '{{.State.Pid}}' ${1})"
pid2="$(sudo docker inspect -f '{{.State.Pid}}' ${2})"
sudo ln -sf /proc/$pid1/ns/net /var/run/netns/$1
sudo ln -sf /proc/$pid2/ns/net /var/run/netns/$2
sudo ip link add $1-$3 type veth peer name $2-$4
sudo ip link set $1-$3 netns $1
sudo ip link set $2-$4 netns $2
sudo ip netns exec $1 ip link set $1-$3 name $3
sudo ip netns exec $2 ip link set $2-$4 name $4
sudo ip netns exec $1 ip link set $3 up
sudo ip netns exec $2 ip link set $4 up
}
create_ceos ceos1
create_ceos ceos2
for i in $(seq 1 48); do
connect_ceos ceos1 ceos2 eth${i} eth${i}
done
sudo docker unpause ceos1 ceos2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment