diff options
Diffstat (limited to 'contrib/scripts/netjail/netjail_setup_internet.sh')
-rwxr-xr-x | contrib/scripts/netjail/netjail_setup_internet.sh | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/contrib/scripts/netjail/netjail_setup_internet.sh b/contrib/scripts/netjail/netjail_setup_internet.sh index c9a6fd6d8..e3880783f 100755 --- a/contrib/scripts/netjail/netjail_setup_internet.sh +++ b/contrib/scripts/netjail/netjail_setup_internet.sh | |||
@@ -1,10 +1,5 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | NAMESPACE_FD=$(mktemp) | ||
4 | INTERFACE_FD=$(mktemp) | ||
5 | |||
6 | trap "rm -f $NAMESPACE_FD $INTERFACE_FD; exit" ERR EXIT | ||
7 | |||
8 | . "./netjail_core.sh" | 3 | . "./netjail_core.sh" |
9 | 4 | ||
10 | set -eu | 5 | set -eu |
@@ -21,11 +16,14 @@ shift 2 | |||
21 | netjail_check $(($LOCAL_M * $GLOBAL_N)) | 16 | netjail_check $(($LOCAL_M * $GLOBAL_N)) |
22 | 17 | ||
23 | # Starts optionally an amount of nodes without NAT starting with "92.68.151.1" | 18 | # Starts optionally an amount of nodes without NAT starting with "92.68.151.1" |
24 | KNOWN=$(netjail_opt '--known' $@) | 19 | netjail_opt '--known' $@ |
25 | KNOWN_NUM=$(netjail_opts '--known' 0 $@) | 20 | KNOWN=$RESULT |
21 | netjail_opts '--known' 0 $@ | ||
22 | KNOWN_NUM=$RESULT | ||
26 | 23 | ||
27 | # Starts optionally 'stunserver' on "92.68.150.254": | 24 | # Starts optionally 'stunserver' on "92.68.150.254": |
28 | STUN=$(netjail_opt '--stun' $@) | 25 | netjail_opt '--stun' $@ |
26 | STUN=$RESULT | ||
29 | 27 | ||
30 | if [ $KNOWN -gt 0 ]; then | 28 | if [ $KNOWN -gt 0 ]; then |
31 | shift 2 | 29 | shift 2 |
@@ -50,28 +48,37 @@ KNOWN_GROUP="92.68.151" | |||
50 | CLEANUP=0 | 48 | CLEANUP=0 |
51 | echo "Start [local: $LOCAL_GROUP.0/24, global: $GLOBAL_GROUP.0/16, stun: $STUN]" | 49 | echo "Start [local: $LOCAL_GROUP.0/24, global: $GLOBAL_GROUP.0/16, stun: $STUN]" |
52 | 50 | ||
53 | NETWORK_NET=$(netjail_bridge) | 51 | netjail_bridge |
52 | NETWORK_NET=$RESULT | ||
54 | 53 | ||
55 | for X in $(seq $KNOWN); do | 54 | for X in $(seq $KNOWN); do |
56 | KNOWN_NODES[$X]=$(netjail_node) | 55 | netjail_node |
57 | KNOWN_LINKS[$X]=$(netjail_node_link_bridge ${KNOWN_NODES[$X]} $NETWORK_NET "$KNOWN_GROUP.$X" 16) | 56 | KNOWN_NODES[$X]=$RESULT |
57 | netjail_node_link_bridge ${KNOWN_NODES[$X]} $NETWORK_NET "$KNOWN_GROUP.$X" 16 | ||
58 | KNOWN_LINKS[$X]=$RESULT | ||
58 | done | 59 | done |
59 | 60 | ||
60 | declare -A NODES | 61 | declare -A NODES |
61 | declare -A NODE_LINKS | 62 | declare -A NODE_LINKS |
62 | 63 | ||
63 | for N in $(seq $GLOBAL_N); do | 64 | for N in $(seq $GLOBAL_N); do |
64 | ROUTERS[$N]=$(netjail_node) | 65 | netjail_node |
65 | NETWORK_LINKS[$N]=$(netjail_node_link_bridge ${ROUTERS[$N]} $NETWORK_NET "$GLOBAL_GROUP.$N" 16) | 66 | ROUTERS[$N]=$RESULT |
66 | ROUTER_NETS[$N]=$(netjail_bridge) | 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 | ||
67 | 71 | ||
68 | for M in $(seq $LOCAL_M); do | 72 | for M in $(seq $LOCAL_M); do |
69 | NODES[$N,$M]=$(netjail_node) | 73 | netjail_node |
70 | NODE_LINKS[$N,$M]=$(netjail_node_link_bridge ${NODES[$N,$M]} ${ROUTER_NETS[$N]} "$LOCAL_GROUP.$M" 24) | 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 | ||
71 | done | 77 | done |
72 | 78 | ||
73 | ROUTER_ADDR="$LOCAL_GROUP.$(($LOCAL_M+1))" | 79 | ROUTER_ADDR="$LOCAL_GROUP.$(($LOCAL_M+1))" |
74 | ROUTER_LINKS[$N]=$(netjail_node_link_bridge ${ROUTERS[$N]} ${ROUTER_NETS[$N]} $ROUTER_ADDR 24) | 80 | netjail_node_link_bridge ${ROUTERS[$N]} ${ROUTER_NETS[$N]} $ROUTER_ADDR 24 |
81 | ROUTER_LINKS[$N]=$RESULT | ||
75 | 82 | ||
76 | netjail_node_add_nat ${ROUTERS[$N]} $ROUTER_ADDR 24 | 83 | netjail_node_add_nat ${ROUTERS[$N]} $ROUTER_ADDR 24 |
77 | 84 | ||
@@ -84,8 +91,10 @@ WAITING="" | |||
84 | KILLING="" | 91 | KILLING="" |
85 | 92 | ||
86 | if [ $STUN -gt 0 ]; then | 93 | if [ $STUN -gt 0 ]; then |
87 | STUN_NODE=$(netjail_node) | 94 | netjail_node |
88 | STUN_LINK=$(netjail_node_link_bridge $STUN_NODE $NETWORK_NET "$GLOBAL_GROUP.254" 16) | 95 | STUN_NODE=$RESULT |
96 | netjail_node_link_bridge $STUN_NODE $NETWORK_NET "$GLOBAL_GROUP.254" 16 | ||
97 | STUN_LINK=$RESULT | ||
89 | 98 | ||
90 | netjail_node_exec $STUN_NODE 0 1 stunserver & | 99 | netjail_node_exec $STUN_NODE 0 1 stunserver & |
91 | KILLING="$!" | 100 | KILLING="$!" |