Statistics
| Branch: | Tag: | Revision:

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