Statistics
| Branch: | Tag: | Revision:

root / hooks / network-disconnect-post.d / snf-network @ a9872828

History | View | Annotate | Download (1.8 kB)

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