Revision 2e8a73e0 snf-network-configure-interfaces

b/snf-network-configure-interfaces
9 9
HOSTNAME=$(hostname)
10 10

  
11 11

  
12
INTERFACES=$SHAREDDIR/interfaces/$HOSTNAME
13
HOSTINFRA=$SHAREDDIR/infra/$HOSTNAME
14
CLUSTERINFRA=$SHAREDDIR/infra/cluster
12
INTERFACES=$STATE_DIR/interfaces
13
HOSTINFRA=$STATE_DIR/infra
15 14

  
16
if [ -e "$HOSTINFRA" ]; then
17
  source $HOSTINFRA
15
if [ ! -a $HOSTFILE ]; then 
16
  echo "A host infra file must exist" 
17
  echo "Run snf-network-build-host-infra"
18
  exit 1
18 19
fi
19 20

  
20
source $CLUSTERINFRA
21
source $HOSTINFRA
21 22

  
22
if [ -n "$PUBLIC_BRIDGE" -a -e /proc/sys/net/ipv4/conf/$PUBLIC_BRIDGE ]; then 
23
  echo Interfaces already exist! Please check: 
24
  echo $PUBLIC_BRIDGE for bridging TAPs with public IPs
25
  exit 1
26
elif [ -n "$PUBLIC_VLAN" -a -e /proc/sys/net/ipv4/conf/$PUBLIC_VLAN -o \
27
       -n "$PRIVATE_BRIDGE" -a -e /proc/sys/net/ipv4/conf/$PRIVATE_BRIDGE -o \
28
       -n "$PRIVATE_VLAN" -a -e /proc/sys/net/ipv4/conf/$PRIVATE_VLAN ]; then
29
  echo Interfaces already exist! Please check: 
30
  echo $PUBLIC_BRIDGE for bridging TAPs with public IPs
31
  echo $PUBLIC_VLAN for routing TAPs with public IPs
32
  echo $PRIVATE_VLAN  bridged on $PRIVATE_BRIDGE for private LANs
33
  exit 1
34
fi
23
DONOTIFUP=false
35 24

  
25
check_iface(){
36 26

  
27
  if [ -n "$1" -a -e /proc/sys/net/ipv4/conf/$1 ]; then 
28
    echo Interface $1 already exist! Please check
29
    export DONOTIFUP=true
30
  fi
31
}
32

  
33

  
34
check_iface "$PUBLIC_BRIDGE"
35
check_iface "$PUBLIC_IFACE.$PUBLIC_VLAN_ID"
36
check_iface "$PUBLIC_IFACE.$PRIVATE_VLAN_ID"
37
check_iface "$BRIDGE_PREFIX$PRIVATE_VLAN_ID"
38

  
39
if [ -n "$PRIVATE_VLAN_ID_OFFSET" ]; then
40
  for id in `seq $PRIVATE_VLAN_ID_MIN 1 $PRIVATE_VLAN_ID_MAX`; do
41
    check_iface $BRIDGE_PREFIX$((PRIVATE_VLAN_ID_OFFSET+id))
42
    check_iface $PUBLIC_IFACE.$((PRIVATE_VLAN_ID_OFFSET+id))
43
  done
44
fi
37 45

  
38 46
if [ -n "$PUBLIC_BRIDGE" -a -n "$PUBLIC_IFACE" ]; then
39 47
  cat > $INTERFACES<<EOF
......
48 56

  
49 57
else
50 58
  if [ -n "$PUBLIC_VLAN" ]; then
51
    echo PUBLIC_VLAN=$PUBLIC_VLAN >> $HOSTINFRA
52
    cat >> $INTERFACES<<EOF
59
    cat > $INTERFACES<<EOF
53 60
auto $PUBLIC_VLAN
54 61
iface $PUBLIC_VLAN inet manual
55 62

  
......
57 64
  fi
58 65

  
59 66
  if [ -n "$PRIVATE_VLAN" -a -n "$PRIVATE_BRIDGE" ]; then
60
    echo PRIVATE_VLAN=$PRIVATE_VLAN >> $HOSTINFRA
61 67
    cat >> $INTERFACES<<EOF
62 68
auto $PRIVATE_VLAN
63 69
iface $PRIVATE_VLAN inet manual
......
70 76
  post-up ip link set $PRIVATE_BRIDGE address $PUBLIC_MAC 
71 77

  
72 78
EOF
79
  fi
80

  
81
  if [ -n "$PRIVATE_VLAN_ID_OFFSET" ]; then
82
     HELPER="$PRIVATE_VLAN_ID_MIN $PRIVATE_VLAN_ID_MAX $PRIVATE_VLAN_ID_OFFSET"
83
     cat >> $INTERFACES<<EOF
84
auto prv
85
iface prv inet manual
86
    up   prv-net-helper up   $PUBLIC_IFACE $HELPER $BRIDGE_PREFIX
87
    down prv-net-helper down $PUBLIC_IFACE $HELPER $BRIDGE_PREFIX
73 88

  
89
EOF
74 90
  fi
91
    
75 92
fi
76 93

  
77
ifup -i $INTERFACES -a
78 94

  
95
if $DONOTIFUP; then
96
  echo Check interfaces:
97
  cat $INTERFACES
98
  exit 1
99
fi
79 100

  
80 101
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
102
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
81 103
echo 1 > /proc/sys/net/ipv4/ip_forward
104

  
105
ifup -i $INTERFACES -a

Also available in: Unified diff