aboutsummaryrefslogtreecommitdiff
path: root/contrib/scripts/netjail/netjail_setup_internet.sh
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/scripts/netjail/netjail_setup_internet.sh')
-rwxr-xr-xcontrib/scripts/netjail/netjail_setup_internet.sh166
1 files changed, 0 insertions, 166 deletions
diff --git a/contrib/scripts/netjail/netjail_setup_internet.sh b/contrib/scripts/netjail/netjail_setup_internet.sh
deleted file mode 100755
index ea820f38c..000000000
--- a/contrib/scripts/netjail/netjail_setup_internet.sh
+++ /dev/null
@@ -1,166 +0,0 @@
1#!/bin/bash
2
3. "./netjail_core.sh"
4
5set -eu
6set -x
7
8export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
9
10PREFIX=$PPID
11LOCAL_M=$1
12GLOBAL_N=$2
13
14shift 2
15
16netjail_check $(($LOCAL_M * $GLOBAL_N))
17
18# Starts optionally an amount of nodes without NAT starting with "92.68.151.1"
19netjail_opt '--known' $@
20KNOWN=$RESULT
21netjail_opts '--known' 0 $@
22KNOWN_NUM=$RESULT
23
24# Starts optionally 'stunserver' on "92.68.150.254":
25netjail_opt '--stun' $@
26STUN=$RESULT
27
28if [ $KNOWN -gt 0 ]; then
29 shift 2
30
31 KNOWN=$KNOWN_NUM
32
33 netjail_check $(($LOCAL_M * $GLOBAL_N + $KNOWN))
34fi
35
36if [ $STUN -gt 0 ]; then
37 netjail_check_bin stunserver
38
39 shift 1
40fi
41
42netjail_check_bin $1
43
44LOCAL_GROUP="192.168.15"
45GLOBAL_GROUP="92.68.150"
46KNOWN_GROUP="92.68.151"
47
48CLEANUP=0
49echo "Start [local: $LOCAL_GROUP.0/24, global: $GLOBAL_GROUP.0/16, stun: $STUN]"
50
51netjail_bridge
52NETWORK_NET=$RESULT
53
54for X in $(seq $KNOWN); do
55 netjail_node
56 KNOWN_NODES[$X]=$RESULT
57 netjail_node_link_bridge ${KNOWN_NODES[$X]} $NETWORK_NET "$KNOWN_GROUP.$X" 16
58 KNOWN_LINKS[$X]=$RESULT
59done
60
61declare -A NODES
62declare -A NODE_LINKS
63
64for N in $(seq $GLOBAL_N); do
65 netjail_node
66 ROUTERS[$N]=$RESULT
67 netjail_node_link_bridge ${ROUTERS[$N]} $NETWORK_NET "$GLOBAL_GROUP.$N" 16
68 NETWORK_LINKS[$N]=$RESULT
69 netjail_bridge
70 ROUTER_NETS[$N]=$RESULT
71
72 for M in $(seq $LOCAL_M); do
73 netjail_node
74 NODES[$N,$M]=$RESULT
75 netjail_node_link_bridge ${NODES[$N,$M]} ${ROUTER_NETS[$N]} "$LOCAL_GROUP.$M" 24
76 NODE_LINKS[$N,$M]=$RESULT
77 done
78
79 ROUTER_ADDR="$LOCAL_GROUP.$(($LOCAL_M+1))"
80 netjail_node_link_bridge ${ROUTERS[$N]} ${ROUTER_NETS[$N]} $ROUTER_ADDR 24
81 ROUTER_LINKS[$N]=$RESULT
82
83 netjail_node_add_nat ${ROUTERS[$N]} $ROUTER_ADDR 24
84
85 for M in $(seq $LOCAL_M); do
86 netjail_node_add_default ${NODES[$N,$M]} $ROUTER_ADDR
87 done
88done
89
90WAITING=""
91KILLING=""
92
93if [ $STUN -gt 0 ]; then
94 netjail_node
95 STUN_NODE=$RESULT
96 netjail_node_link_bridge $STUN_NODE $NETWORK_NET "$GLOBAL_GROUP.254" 16
97 STUN_LINK=$RESULT
98
99 netjail_node_exec $STUN_NODE 0 1 stunserver &
100 KILLING="$!"
101fi
102
103for X in $(seq $KNOWN); do
104 INDEX=$(($X - 1))
105
106 FD_X=$(($INDEX * 2 + 3 + 0))
107 FD_Y=$(($INDEX * 2 + 3 + 1))
108
109 netjail_node_exec ${KNOWN_NODES[$X]} $FD_X $FD_Y $@ &
110 WAITING="$! $WAITING"
111done
112
113for N in $(seq $GLOBAL_N); do
114 for M in $(seq $LOCAL_M); do
115 INDEX=$(($LOCAL_M * ($N - 1) + $M - 1 + $KNOWN))
116
117 FD_X=$(($INDEX * 2 + 3 + 0))
118 FD_Y=$(($INDEX * 2 + 3 + 1))
119
120 netjail_node_exec ${NODES[$N,$M]} $FD_X $FD_Y $@ &
121 WAITING="$! $WAITING"
122 done
123done
124
125cleanup() {
126 if [ $STUN -gt 0 ]; then
127 netjail_node_unlink_bridge $STUN_LINK
128 netjail_node_clear $STUN_NODE
129 fi
130
131 for X in $(seq $KNOWN); do
132 netjail_node_unlink_bridge ${KNOWN_LINKS[$X]}
133 netjail_node_clear ${KNOWN_NODES[$X]}
134 done
135
136 for N in $(seq $GLOBAL_N); do
137 for M in $(seq $LOCAL_M); do
138 netjail_node_unlink_bridge ${NODE_LINKS[$N,$M]}
139 netjail_node_clear ${NODES[$N,$M]}
140 done
141
142 netjail_node_unlink_bridge ${ROUTER_LINKS[$N]}
143 netjail_bridge_clear ${ROUTER_NETS[$N]}
144 netjail_node_unlink_bridge ${NETWORK_LINKS[$N]}
145 netjail_node_clear ${ROUTERS[$N]}
146 done
147
148 netjail_bridge_clear $NETWORK_NET
149}
150
151trapped_cleanup() {
152 netjail_killall $WAITING
153 netjail_killall $KILLING
154
155 cleanup
156}
157
158trap 'trapped_cleanup' ERR
159
160netjail_waitall $WAITING
161netjail_killall $KILLING
162wait
163
164cleanup
165
166echo "Done"