Revision 6e257ba8 snf-network-reconfigure

b/snf-network-reconfigure
4 4

  
5 5
source $CONF
6 6

  
7
if [ $# -ne 1 ]; then 
8
  echo Usage: $0 add/remove
9
  exit 1
10
fi
11

  
12

  
13
ACTION=$1
14 7
NETWORKS="$(ls $SHAREDDIR/networks/)"
15 8

  
16 9
HOSTNAME=$(hostname)
17 10

  
18
if [ "$ACTION" == "add" ]; then
19
  snf-network-configure-interfaces
20
fi
11
INTERFACES=$SHAREDDIR/interfaces/$HOSTNAME
21 12

  
22
for NETWORK in $NETWORKS; do
13
ifup -i $INTERFACES -a
23 14

  
24
NETFILE=$SHAREDDIR/networks/$NETWORK
25
NODEMAPFILE=$SHAREDDIR/mappings/$NETWORK-$HOSTNAME
26
NODEINFRAFILE=$SHAREDDIR/infra/$HOSTNAME
27

  
28
RT_TABLES=/etc/iproute2/rt_tables
15
for NETWORK in $NETWORKS; do
29 16

  
30
source $NODEINFRAFILE
31
source $NETFILE
32
source $NODEMAPFILE
17
  NETFILE=$SHAREDDIR/networks/$NETWORK
18
  NODEMAPFILE=$SHAREDDIR/mappings/$NETWORK-$HOSTNAME
19
  NODEINFRAFILE=$SHAREDDIR/infra/$HOSTNAME
20
  CLUSTERINFRAFILE=$SHAREDDIR/infra/cluster
33 21

  
22
  RT_TABLES=/etc/iproute2/rt_tables
34 23

  
24
  source $NODEINFRAFILE
25
  source $CLUSTERINFRAFILE
26
  source $NETFILE
35 27

  
36
if [ "$ACTION" == "add" ]; then
37 28
  if [ "$MODE" == "routed" ]; then 
38 29
    VLAN=$LINK
39 30
    TABLE=rt_$NETWORK
......
64 55

  
65 56
  if [ "$MODE" == "bridged" ]; then
66 57
    BRIDGE=$LINK
67
    if [ ! -z "$GATEWAY" ]; then
58
    if [ ! -z "$GATEWAY" -a $ENABLE_MASQ ]; then
68 59
      if [ "$TYPE" == "private" ]; then 
69 60
        if [ "$HOSTNAME" == "$ROUTER" ]; then
70 61
          NETMASK=$(ipcalc $SUBNET | grep Netmask | awk '{print $4}')
......
74 65
      fi
75 66
    fi
76 67
  fi
77
  
78
elif [ "$ACTION" == "remove" ]; then
79
  if [ ! -e "$NODEMAPFILE" ]; then
80
    exit 0;
81
  fi
82

  
83
  source $NODEMAPFILE
84

  
85
  if [ "$MODE" == "routed" ]; then 
86
    VLAN=$LINK
87
    TABLE=rt_$NETWORK
88
    if [ "$TYPE" == "public" ]; then
89
      ARP_IP=$(ipcalc $SUBNET | grep HostMax | awk '{print $2}')
90
    
91
      arptables -D OUTPUT -o $VLAN --opcode request -j mangle --mangle-ip-s  $ARP_IP 
92

  
93
      ip route del default via $GATEWAY dev $VLAN table $TABLE
94
      ip route del $SUBNET dev $VLAN table $TABLE
95

  
96
      ip route del $SUBNET dev $VLAN table main 
97

  
98
      ip rule del iif $VLAN table $TABLE
99
      
100
      sed -i 's/.*'"$TABLE"'$//' $RT_TABLES
101
    fi
102
  fi
103

  
104

  
105

  
106
  if [ "$MODE" == "bridged" ]; then
107
    BRIDGE=$LINK
108
    if [ ! -z "$GATEWAY" ]; then
109
      if [ "$TYPE" == "private" ]; then 
110
        if [ "$HOSTNAME" == "$ROUTER" ]; then
111
          NETMASK=$(ipcalc $SUBNET | grep Netmask | awk '{print $4}')
112
          ip addr del $GATEWAY/$NETMASK dev $BRIDGE
113
          iptables -t nat -D POSTROUTING -s $SUBNET \! -d 192.168.0.0/16 -j MASQUERADE
114
        fi  
115
      fi
116
    fi
117
  fi
118
  
119

  
120
fi
121 68

  
122 69
done
123

  
124
if [ "$ACTION" == "remove" ]; then
125
  snf-network-unconfigure-interfaces
126
fi 

Also available in: Unified diff