root / hooks / network-disconnect-post.d / snf-network @ 6e257ba8
History | View | Annotate | Download (1.4 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 |
source $NODEINFRAFILE |
21 |
source $CLUSTERINFRAFILE |
22 |
source $NETFILE |
23 |
source $NODEMAPFILE |
24 |
|
25 |
if [ "$MODE" == "routed" ]; then |
26 |
VLAN=$LINK |
27 |
TABLE=rt_$NETWORK |
28 |
if [ "$TYPE" == "public" ]; then |
29 |
ARP_IP=$(ipcalc $SUBNET | grep HostMax | awk '{print $2}') |
30 |
|
31 |
arptables -D OUTPUT -o $VLAN --opcode request -j mangle --mangle-ip-s $ARP_IP |
32 |
|
33 |
ip route del default via $GATEWAY dev $VLAN table $TABLE |
34 |
ip route del $SUBNET dev $VLAN table $TABLE |
35 |
|
36 |
ip route del $SUBNET dev $VLAN table main |
37 |
|
38 |
ip rule del iif $VLAN table $TABLE |
39 |
|
40 |
sed -i 's/.*'"$TABLE"'$//' $RT_TABLES |
41 |
fi |
42 |
fi |
43 |
|
44 |
|
45 |
|
46 |
if [ "$MODE" == "bridged" ]; then |
47 |
BRIDGE=$LINK |
48 |
if [ ! -z "$GATEWAY" -a $ENABLE_MASQ]; then |
49 |
if [ "$TYPE" == "private" ]; then |
50 |
if [ "$HOSTNAME" == "$ROUTER" ]; then |
51 |
NETMASK=$(ipcalc $SUBNET | grep Netmask | awk '{print $4}') |
52 |
ip addr del $GATEWAY/$NETMASK dev $BRIDGE |
53 |
iptables -t nat -D POSTROUTING -s $SUBNET \! -d 192.168.0.0/16 -j MASQUERADE |
54 |
fi |
55 |
fi |
56 |
fi |
57 |
fi |
58 |
|
59 |
rm $NODEMAPFILE |