root / hooks / network-disconnect-post.d / snf-network @ a9872828
History | View | Annotate | Download (1.8 kB)
1 |
#!/bin/bash |
---|---|
2 |
|
3 |
source /etc/default/snf-network |
4 |
|
5 |
source $CONF |
6 |
|
7 |
NETWORK=$GANETI_GROUP_NETWORK_NAME |
8 |
MODE=$GANETI_GROUP_NETWORK_MODE |
9 |
LINK=$GANETI_GROUP_NETWORK_LINK |
10 |
|
11 |
HOSTNAME=$(hostname) |
12 |
|
13 |
NETFILE=$SHAREDDIR/networks/$NETWORK |
14 |
NODEMAPFILE=$SHAREDDIR/mappings/$NETWORK-$HOSTNAME |
15 |
NODEINFRAFILE=$SHAREDDIR/infra/$HOSTNAME |
16 |
CLUSTERINFRAFILE=$SHAREDDIR/infra/cluster |
17 |
|
18 |
RT_TABLES=/etc/iproute2/rt_tables |
19 |
|
20 |
|
21 |
if [ ! -e $NODEMAPFILE ]; then |
22 |
exit 0 |
23 |
fi |
24 |
|
25 |
source $NODEINFRAFILE |
26 |
source $CLUSTERINFRAFILE |
27 |
source $NETFILE |
28 |
source $NODEMAPFILE |
29 |
|
30 |
if [ "$MODE" == "routed" ]; then |
31 |
TABLE=rt_$NETWORK |
32 |
if [ "$TYPE" == "public" ]; then |
33 |
VLAN=$PUBLIC_VLAN |
34 |
ARP_IP=$(ipcalc $SUBNET | grep HostMax | awk '{print $2}') |
35 |
|
36 |
if [ -n "$SUBNET" ]; then |
37 |
arptables -D OUTPUT -o $VLAN --opcode request -j mangle --mangle-ip-s $ARP_IP |
38 |
if [ -n "$GATEWAY" ]; then |
39 |
ip route del default via $GATEWAY dev $VLAN table $TABLE |
40 |
fi |
41 |
|
42 |
ip route del $SUBNET dev $VLAN table $TABLE |
43 |
|
44 |
ip route del $SUBNET dev $VLAN table main |
45 |
|
46 |
ip rule del iif $VLAN table $TABLE |
47 |
fi |
48 |
if [ -n "$SUBNET6" ]; then |
49 |
if [ -n "$GATEWAY6" ]; then |
50 |
ip -6 route del default via $GATEWAY6 dev $VLAN table $TABLE |
51 |
fi |
52 |
ip -6 route add $SUBNET6 dev $VLAN table $TABLE |
53 |
ip -6 route add $SUBNET6 dev $VLAN table main |
54 |
ip -6 rule add iff $VLAN table $TABLE |
55 |
fi |
56 |
sed -i 's/.*'"$TABLE"'$//' $RT_TABLES |
57 |
|
58 |
fi |
59 |
fi |
60 |
|
61 |
|
62 |
|
63 |
if [ "$MODE" == "bridged" ]; then |
64 |
BRIDGE=$LINK |
65 |
if [ ! -z "$GATEWAY" -a $ENABLE_MASQ]; then |
66 |
if [ "$TYPE" == "private" ]; then |
67 |
if [ "$HOSTNAME" == "$ROUTER" ]; then |
68 |
NETMASK=$(ipcalc $SUBNET | grep Netmask | awk '{print $4}') |
69 |
ip addr del $GATEWAY/$NETMASK dev $BRIDGE |
70 |
iptables -t nat -D POSTROUTING -s $SUBNET \! -d 192.168.0.0/16 -j MASQUERADE |
71 |
fi |
72 |
fi |
73 |
fi |
74 |
fi |
75 |
|
76 |
rm $NODEMAPFILE |