Statistics
| Branch: | Tag: | Revision:

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