|
@@ -1,19 +1,33 @@
|
|
-#!/bin/sh
|
|
|
|
|
|
+#!/bin/bash
|
|
|
|
|
|
set -e -x
|
|
set -e -x
|
|
|
|
|
|
-docker run --name lighthouse1 --rm nebula:smoke -config lighthouse1.yml -test
|
|
|
|
-docker run --name host2 --rm nebula:smoke -config host2.yml -test
|
|
|
|
-docker run --name host3 --rm nebula:smoke -config host3.yml -test
|
|
|
|
-docker run --name host4 --rm nebula:smoke -config host4.yml -test
|
|
|
|
|
|
+set -o pipefail
|
|
|
|
|
|
-docker run --name lighthouse1 --device /dev/net/tun:/dev/net/tun --cap-add NET_ADMIN --rm nebula:smoke -config lighthouse1.yml &
|
|
|
|
|
|
+mkdir -p logs
|
|
|
|
+
|
|
|
|
+cleanup() {
|
|
|
|
+ set +e
|
|
|
|
+ if [ "$(jobs -r)" ]
|
|
|
|
+ then
|
|
|
|
+ sudo docker kill lighthouse1 host2 host3 host4
|
|
|
|
+ fi
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+trap cleanup EXIT
|
|
|
|
+
|
|
|
|
+sudo docker run --name lighthouse1 --rm nebula:smoke -config lighthouse1.yml -test
|
|
|
|
+sudo docker run --name host2 --rm nebula:smoke -config host2.yml -test
|
|
|
|
+sudo docker run --name host3 --rm nebula:smoke -config host3.yml -test
|
|
|
|
+sudo docker run --name host4 --rm nebula:smoke -config host4.yml -test
|
|
|
|
+
|
|
|
|
+sudo docker run --name lighthouse1 --device /dev/net/tun:/dev/net/tun --cap-add NET_ADMIN --rm nebula:smoke -config lighthouse1.yml 2>&1 | tee logs/lighthouse1 &
|
|
sleep 1
|
|
sleep 1
|
|
-docker run --name host2 --device /dev/net/tun:/dev/net/tun --cap-add NET_ADMIN --rm nebula:smoke -config host2.yml &
|
|
|
|
|
|
+sudo docker run --name host2 --device /dev/net/tun:/dev/net/tun --cap-add NET_ADMIN --rm nebula:smoke -config host2.yml 2>&1 | tee logs/host2 &
|
|
sleep 1
|
|
sleep 1
|
|
-docker run --name host3 --device /dev/net/tun:/dev/net/tun --cap-add NET_ADMIN --rm nebula:smoke -config host3.yml &
|
|
|
|
|
|
+sudo docker run --name host3 --device /dev/net/tun:/dev/net/tun --cap-add NET_ADMIN --rm nebula:smoke -config host3.yml 2>&1 | tee logs/host3 &
|
|
sleep 1
|
|
sleep 1
|
|
-docker run --name host4 --device /dev/net/tun:/dev/net/tun --cap-add NET_ADMIN --rm nebula:smoke -config host4.yml &
|
|
|
|
|
|
+sudo docker run --name host4 --device /dev/net/tun:/dev/net/tun --cap-add NET_ADMIN --rm nebula:smoke -config host4.yml 2>&1 | tee logs/host4 &
|
|
sleep 1
|
|
sleep 1
|
|
|
|
|
|
set +x
|
|
set +x
|
|
@@ -21,35 +35,35 @@ echo
|
|
echo " *** Testing ping from lighthouse1"
|
|
echo " *** Testing ping from lighthouse1"
|
|
echo
|
|
echo
|
|
set -x
|
|
set -x
|
|
-docker exec lighthouse1 ping -c1 192.168.100.2
|
|
|
|
-docker exec lighthouse1 ping -c1 192.168.100.3
|
|
|
|
|
|
+sudo docker exec lighthouse1 ping -c1 192.168.100.2
|
|
|
|
+sudo docker exec lighthouse1 ping -c1 192.168.100.3
|
|
|
|
|
|
set +x
|
|
set +x
|
|
echo
|
|
echo
|
|
echo " *** Testing ping from host2"
|
|
echo " *** Testing ping from host2"
|
|
echo
|
|
echo
|
|
set -x
|
|
set -x
|
|
-docker exec host2 ping -c1 192.168.100.1
|
|
|
|
|
|
+sudo docker exec host2 ping -c1 192.168.100.1
|
|
# Should fail because not allowed by host3 inbound firewall
|
|
# Should fail because not allowed by host3 inbound firewall
|
|
-! docker exec host2 ping -c1 192.168.100.3 -w5 || exit 1
|
|
|
|
|
|
+! sudo docker exec host2 ping -c1 192.168.100.3 -w5 || exit 1
|
|
|
|
|
|
set +x
|
|
set +x
|
|
echo
|
|
echo
|
|
echo " *** Testing ping from host3"
|
|
echo " *** Testing ping from host3"
|
|
echo
|
|
echo
|
|
set -x
|
|
set -x
|
|
-docker exec host3 ping -c1 192.168.100.1
|
|
|
|
-docker exec host3 ping -c1 192.168.100.2
|
|
|
|
|
|
+sudo docker exec host3 ping -c1 192.168.100.1
|
|
|
|
+sudo docker exec host3 ping -c1 192.168.100.2
|
|
|
|
|
|
set +x
|
|
set +x
|
|
echo
|
|
echo
|
|
echo " *** Testing ping from host4"
|
|
echo " *** Testing ping from host4"
|
|
echo
|
|
echo
|
|
set -x
|
|
set -x
|
|
-docker exec host4 ping -c1 192.168.100.1
|
|
|
|
|
|
+sudo docker exec host4 ping -c1 192.168.100.1
|
|
# Should fail because not allowed by host4 outbound firewall
|
|
# Should fail because not allowed by host4 outbound firewall
|
|
-! docker exec host4 ping -c1 192.168.100.2 -w5 || exit 1
|
|
|
|
-! docker exec host4 ping -c1 192.168.100.3 -w5 || exit 1
|
|
|
|
|
|
+! sudo docker exec host4 ping -c1 192.168.100.2 -w5 || exit 1
|
|
|
|
+! sudo docker exec host4 ping -c1 192.168.100.3 -w5 || exit 1
|
|
|
|
|
|
set +x
|
|
set +x
|
|
echo
|
|
echo
|
|
@@ -57,7 +71,13 @@ echo " *** Testing conntrack"
|
|
echo
|
|
echo
|
|
set -x
|
|
set -x
|
|
# host2 can ping host3 now that host3 pinged it first
|
|
# host2 can ping host3 now that host3 pinged it first
|
|
-docker exec host2 ping -c1 192.168.100.3
|
|
|
|
|
|
+sudo docker exec host2 ping -c1 192.168.100.3
|
|
# host4 can ping host2 once conntrack established
|
|
# host4 can ping host2 once conntrack established
|
|
-docker exec host2 ping -c1 192.168.100.4
|
|
|
|
-docker exec host4 ping -c1 192.168.100.2
|
|
|
|
|
|
+sudo docker exec host2 ping -c1 192.168.100.4
|
|
|
|
+sudo docker exec host4 ping -c1 192.168.100.2
|
|
|
|
+
|
|
|
|
+sudo docker exec host4 sh -c 'kill 1'
|
|
|
|
+sudo docker exec host3 sh -c 'kill 1'
|
|
|
|
+sudo docker exec host2 sh -c 'kill 1'
|
|
|
|
+sudo docker exec lighthouse1 sh -c 'kill 1'
|
|
|
|
+sleep 1
|