@@ -8,59 +8,77 @@ display_usage() {
8
8
echo " Note: you may need root privileges for this."
9
9
}
10
10
11
- autoconfigure_bridge_up_outside () {
12
- autoconfigure_tunnel_up_outside
13
-
14
- ip link set ${DEVNAME_OUTSIDE} master ${BRIDGE}
15
- }
16
-
17
- autoconfigure_bridge_down_outside () {
18
- autoconfigure_tunnel_down_outside
19
- }
11
+ # ############# configure triggers ###############
20
12
21
13
autoconfigure_tunnel_up_outside () {
14
+ # precaution
22
15
! ip link delete ${DEVNAME_OUTSIDE}
23
16
! ip link delete ${DEVNAME_INSIDE}
17
+
18
+ # setup pseudo wire
24
19
ip link add ${DEVNAME_OUTSIDE} type veth peer name ${DEVNAME_INSIDE}
25
20
! tc qdisc del dev ${DEVNAME_INSIDE} root
26
- ip link set ${DEVNAME_OUTSIDE} up
21
+ if [ ! -z " $MACADDR " ]; then
22
+ ip link set ${DEVNAME_INSIDE} address ${MACADDR}
23
+ fi
27
24
ip link set ${DEVNAME_INSIDE} netns ${NSNAME}
25
+ ip link set ${DEVNAME_OUTSIDE} up
26
+ ip -n ${NSNAME} link set ${DEVNAME_INSIDE} up
27
+
28
+ # add ipv4 address at global end
28
29
# let this fail silently if IPADDR_OUTSIDE is undefined
29
30
! ip address add ${IPADDR_OUTSIDE} dev ${DEVNAME_OUTSIDE}
30
- ip -n ${NSNAME} link set ${DEVNAME_INSIDE} up
31
+
32
+ return 0 # additional precation against "set -e" in case of future mods of this function
33
+ }
31
34
32
- if [ ! -z " $MACADDR " ]; then
33
- ip link set ${DEVNAME_INSIDE} address ${MACADDR}
35
+ autoconfigure_tunnel_up_inside () {
36
+ # add ipv4 address at netns end
37
+ if [ ! -z " ${IPADDR} " ]; then
38
+ ip address add ${IPADDR} dev ${DEVNAME_INSIDE}
39
+ fi
40
+
41
+ # setup default route
42
+ if [ ! -z " ${GATEWAY} " ]; then
43
+ ip route add default via ${GATEWAY%%/* } onlink
34
44
fi
45
+
46
+ # if DHCP is configured
35
47
if [ " ${DHCPV4} " == " 1" ]; then
36
48
! mkdir -p /var/run/netns
37
49
dhclient -v -i ${DEVNAME_INSIDE} -nw -pf /var/run/netns/dhclient-${NSNAME} .pid
38
- else
39
- if [ ! -z " ${IPADDR} " ]; then
40
- /bin/ip address add ${IPADDR} dev ${DEVNAME_INSIDE}
41
- fi
42
- if [ ! -z " ${GATEWAY} " ]; then
43
- /bin/ip route add default via ${GATEWAY%%/* }
44
- fi
45
50
fi
46
-
47
- return 0 # additional precation against "set -e" in case of future mods of this function
51
+
52
+ return 0
48
53
}
49
54
50
- autoconfigure_tunnel_down_outside () {
55
+ autoconfigure_tunnel_down_inside () {
56
+ # kill DHCP client
51
57
# do not run in ExecStartPost to prevent forked dhclient from being killed
52
58
! kill -15 ` cat /var/run/netns/dhclient-${NSNAME} .pid`
53
59
! rm /var/run/netns/dhclient-${NSNAME} .pid
60
+ }
61
+
62
+ autoconfigure_tunnel_down_outside () {
54
63
ip link delete ${DEVNAME_OUTSIDE}
55
64
}
56
65
57
- autoconfigure_nat_up_inside () {
58
- # add default route if gateway undefined
59
- if [ -z " ${GATEWAY} " -a -n " ${IPADDR_OUTSIDE} " ]; then
60
- ip route add default via ${IPADDR_OUTSIDE%%/* }
61
- fi
66
+ autoconfigure_bridge_up_outside () {
67
+ autoconfigure_tunnel_up_outside
62
68
63
- return 0 # additional precation against "set -e" in case of future mods of this function
69
+ ip link set ${DEVNAME_OUTSIDE} master ${BRIDGE}
70
+ }
71
+
72
+ autoconfigure_bridge_up_inside () {
73
+ autoconfigure_tunnel_up_inside
74
+ }
75
+
76
+ autoconfigure_bridge_down_inside () {
77
+ autoconfigure_tunnel_down_inside
78
+ }
79
+
80
+ autoconfigure_bridge_down_outside () {
81
+ autoconfigure_tunnel_down_outside
64
82
}
65
83
66
84
autoconfigure_nat_up_outside () {
@@ -84,6 +102,23 @@ autoconfigure_nat_up_outside() {
84
102
return 0 # additional precation against "set -e" in case of future mods of this function
85
103
}
86
104
105
+ autoconfigure_nat_up_inside () {
106
+ autoconfigure_tunnel_up_inside
107
+
108
+ # add default route if gateway undefined
109
+ if [ -z " ${GATEWAY} " -a -n " ${IPADDR_OUTSIDE} " ]; then
110
+ ip route add default via ${IPADDR_OUTSIDE%%/* }
111
+ fi
112
+
113
+ return 0 # additional precation against "set -e" in case of future mods of this function
114
+ }
115
+
116
+ autoconfigure_nat_down_inside () {
117
+ autoconfigure_tunnel_down_inside
118
+
119
+ return 0
120
+ }
121
+
87
122
autoconfigure_nat_down_outside () {
88
123
# remove NAT
89
124
iptables -t nat -D POSTROUTING -s ${IPADDR_OUTSIDE} -j MASQUERADE
@@ -93,6 +128,8 @@ autoconfigure_nat_down_outside() {
93
128
iptables -D INPUT -i ${DEVNAME_OUTSIDE} -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
94
129
95
130
autoconfigure_tunnel_down_outside
131
+
132
+ return 0
96
133
}
97
134
98
135
autoconfigure_mvbr_up_outside () {
0 commit comments