-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup_router.sh
More file actions
executable file
·74 lines (54 loc) · 1.68 KB
/
setup_router.sh
File metadata and controls
executable file
·74 lines (54 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#
# BE CAREFULL, THIS COME FROM THE DEV BRANCH OF INCLUDEOS, SO MAY NOT WORK
#
#! /bin/bash
source_net=10.0.0.0/24
source_bridge=bridge43
dest_net=10.42.42.0/24
dest_bridge=bridge44
dest_gateway=10.42.42.2
export NSNAME="server1"
shopt -s expand_aliases
alias server1="sudo ip netns exec $NSNAME"
setup() {
# TODO: it's probably not nice to install test deps here
sudo apt install -y iperf3
# Make sure the default bridge exists
$INCLUDEOS_PREFIX/includeos/scripts/create_bridge.sh
# Create veth link
sudo ip link add veth_src type veth peer name veth_dest
# Bring up source end
sudo ip link set veth_src up
# Add network namespace
sudo ip netns add $NSNAME
# Add destination to namespace
sudo ip link set veth_dest netns $NSNAME
# Bring up destination end, with IP, inside namespace
server1 ip addr add $dest_gateway/24 dev veth_dest
server1 ip link set veth_dest up
server1 ip link set lo up
# Create a second bridge and bring it up, no IP
sudo brctl addbr $dest_bridge
sudo ip link set dev $dest_bridge up
# Add source end to bridge44
sudo brctl addif $dest_bridge veth_src
# Route all traffic to the isolated network via bridge43
sudo ip route add $dest_net dev $source_bridge
# Route all traffic from server1 back to root namespace, via veth_dest
server1 sudo ip route add $source_net via $dest_gateway
}
undo(){
echo ">>> Deleting $dest_bridge"
sudo ip link set $dest_bridge down
sudo brctl delbr $dest_bridge
echo ">>> Deleting namespace and veth pair"
sudo ip netns del $NSNAME
echo ">>> Deleting route to namespace"
sudo ip route del $dest_net dev $source_bridge
}
if [ "$1" == "--clean" ]
then
undo
else
setup
fi