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
|