tinc/test/ns-ping.test

71 lines
1.3 KiB
Text
Raw Normal View History

2019-08-26 11:44:51 +00:00
#!/bin/sh
2019-08-26 11:44:53 +00:00
. "${0%/*}/testlib.sh"
2019-08-26 11:44:51 +00:00
# Skip this test if we aren't root or if "ip netns" does not exist
test "`id -u`" = "0" || exit 77
ip netns list || exit 77
# Initialize two nodes
$tinc $c1 <<EOF
init foo
set Mode switch
set Interface ping.test1
2019-08-26 11:44:52 +00:00
set Port 32577
2019-08-26 11:44:51 +00:00
set Address localhost
EOF
cat >$d1/tinc-up <<EOF
#!/bin/sh
ip netns add ping.test1
ip link set dev \$INTERFACE netns ping.test1
ip netns exec ping.test1 ip addr add 192.168.1.1/24 dev \$INTERFACE
ip netns exec ping.test1 ip link set \$INTERFACE up
EOF
$tinc $c2 <<EOF
init bar
set Mode switch
set Interface ping.test2
set Port 32574
EOF
cat >$d2/tinc-up <<EOF
#!/bin/sh
ip netns add ping.test2
ip link set dev \$INTERFACE netns ping.test2
ip netns exec ping.test2 ip addr add 192.168.1.2/24 dev \$INTERFACE
ip netns exec ping.test2 ip link set \$INTERFACE up
EOF
# Exchange configuration files
$tinc $c1 export | $tinc $c2 exchange | $tinc $c1 import
# Start tinc
$tinc $c1 start $r1
$tinc $c2 start $r2
sleep 1
# The nodes should not be able to ping each other if there is no connection
ip netns exec ping.test1 ping -W1 -c3 192.168.1.2 && exit 1
# After connecting they should be
$tinc $c2 add ConnectTo foo
sleep 1
ip netns exec ping.test1 ping -W1 -c3 192.168.1.2
# Clean up
$tinc $c2 stop
$tinc $c1 stop
ip netns del ping.test2
ip netns del ping.test1