diff options
Diffstat (limited to 'dht/vnet/tcp-build.sh')
-rwxr-xr-x | dht/vnet/tcp-build.sh | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/dht/vnet/tcp-build.sh b/dht/vnet/tcp-build.sh new file mode 100755 index 00000000..fc88cb29 --- /dev/null +++ b/dht/vnet/tcp-build.sh | |||
@@ -0,0 +1,32 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | digit=${1:-0} | ||
4 | |||
5 | iface=$(ip route | awk '/^default/{ if ($4 == "dev") print($5); }') | ||
6 | iface=${iface:-wlan0} | ||
7 | num=$(ip addr show $iface | sed -n '/\s\+inet 192/ s/\s\+inet 192\.168\.[0-9]*\.\([0-9]*\).*$/\1/ p') | ||
8 | num=${num:-88} | ||
9 | |||
10 | dd=$(( 59 - $digit )) | ||
11 | |||
12 | |||
13 | set -x | ||
14 | |||
15 | ip link add tcp$digit type veth peer name tcpp$digit | ||
16 | ip netns add tcpp$digit; ip link set tcpp$digit netns tcpp$digit | ||
17 | |||
18 | nsenter --net=/var/run/netns/tcpp$digit ip addr add 127.0.0.1/8 dev lo | ||
19 | nsenter --net=/var/run/netns/tcpp$digit ip addr add ::1/128 dev lo | ||
20 | nsenter --net=/var/run/netns/tcpp$digit ip link set up dev lo | ||
21 | |||
22 | ip addr add $dd.$num.99.98/31 dev tcp$digit | ||
23 | ip link set up dev tcp$digit | ||
24 | |||
25 | nsenter --net=/var/run/netns/tcpp$digit ip addr add $dd.$num.99.99/31 dev tcpp$digit | ||
26 | nsenter --net=/var/run/netns/tcpp$digit ip link set up dev tcpp$digit | ||
27 | nsenter --net=/var/run/netns/tcpp$digit ip route add default via $dd.$num.99.98 | ||
28 | |||
29 | nsenter --net=/var/run/netns/tcpp$digit iptables -A OUTPUT -p udp -j DROP | ||
30 | nsenter --net=/var/run/netns/tcpp$digit iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | ||
31 | nsenter --net=/var/run/netns/tcpp$digit iptables -A INPUT -j DROP | ||
32 | iptables -I FORWARD 1 -i tcp$digit -o $iface -j DROP | ||