Statistics
| Branch: | Tag: | Revision:

root / snf-network-reconfigure @ 6e257ba8

History | View | Annotate | Download (1.6 kB)

1
#!/bin/bash
2

    
3
source /etc/default/snf-network
4

    
5
source $CONF
6

    
7
NETWORKS="$(ls $SHAREDDIR/networks/)"
8

    
9
HOSTNAME=$(hostname)
10

    
11
INTERFACES=$SHAREDDIR/interfaces/$HOSTNAME
12

    
13
ifup -i $INTERFACES -a
14

    
15
for NETWORK in $NETWORKS; do
16

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

    
22
  RT_TABLES=/etc/iproute2/rt_tables
23

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

    
28
  if [ "$MODE" == "routed" ]; then 
29
    VLAN=$LINK
30
    TABLE=rt_$NETWORK
31
    if [ "$TYPE" == "public" ]; then
32
      ARP_IP=$(ipcalc $SUBNET | grep HostMax | awk '{print $2}')
33
      
34
      ip link set $VLAN up
35

    
36
      echo 1 > "/proc/sys/net/ipv4/conf/$VLAN/proxy_arp"
37

    
38
      ID=$(wc -l < $RT_TABLES)
39
      echo $((ID+1)) $TABLE >> $RT_TABLES
40

    
41
      ip rule add iif $VLAN table $TABLE
42

    
43
      ip route add $SUBNET dev $VLAN table main 
44

    
45
      ip route add $SUBNET dev $VLAN table $TABLE
46
      ip route add default via $GATEWAY dev $VLAN table $TABLE
47
      
48
      echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
49

    
50
      arptables -A OUTPUT -o $VLAN --opcode request -j mangle --mangle-ip-s  $ARP_IP 
51
    fi
52
  fi
53

    
54

    
55

    
56
  if [ "$MODE" == "bridged" ]; then
57
    BRIDGE=$LINK
58
    if [ ! -z "$GATEWAY" -a $ENABLE_MASQ ]; then
59
      if [ "$TYPE" == "private" ]; then 
60
        if [ "$HOSTNAME" == "$ROUTER" ]; then
61
          NETMASK=$(ipcalc $SUBNET | grep Netmask | awk '{print $4}')
62
          ip addr add $GATEWAY/$NETMASK dev $BRIDGE
63
          iptables -t nat -A POSTROUTING -s $SUBNET \! -d 192.168.0.0/16 -j MASQUERADE
64
        fi  
65
      fi
66
    fi
67
  fi
68

    
69
done