Fix log-env
[snf-network] / snf-network-reconfigure
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