Statistics
| Branch: | Tag: | Revision:

root / snf-network-configure-interfaces @ 2e8a73e0

History | View | Annotate | Download (2.1 kB)

1
#!/bin/bash
2

    
3
DEFAULT=/etc/default/snf-network
4

    
5
source $DEFAULT
6
source $CONF
7
source $INFRA
8

    
9
HOSTNAME=$(hostname)
10

    
11

    
12
INTERFACES=$STATE_DIR/interfaces
13
HOSTINFRA=$STATE_DIR/infra
14

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

    
21
source $HOSTINFRA
22

    
23
DONOTIFUP=false
24

    
25
check_iface(){
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
45

    
46
if [ -n "$PUBLIC_BRIDGE" -a -n "$PUBLIC_IFACE" ]; then
47
  cat > $INTERFACES<<EOF
48
auto $PUBLIC_BRIDGE
49
iface $PUBLIC_BRIDGE inet manual
50
  bridge_ports $PUBLIC_IFACE
51
  bridge_stp off
52
  bridge_fd 2
53
  post-up ip link set $PUBLIC_BRIDGE address $PUBLIC_MAC 
54

    
55
EOF
56

    
57
else
58
  if [ -n "$PUBLIC_VLAN" ]; then
59
    cat > $INTERFACES<<EOF
60
auto $PUBLIC_VLAN
61
iface $PUBLIC_VLAN inet manual
62

    
63
EOF
64
  fi
65

    
66
  if [ -n "$PRIVATE_VLAN" -a -n "$PRIVATE_BRIDGE" ]; then
67
    cat >> $INTERFACES<<EOF
68
auto $PRIVATE_VLAN
69
iface $PRIVATE_VLAN inet manual
70

    
71
auto $PRIVATE_BRIDGE
72
iface $PRIVATE_BRIDGE inet manual
73
  bridge_ports $PRIVATE_VLAN
74
  bridge_stp off
75
  bridge_fd 2
76
  post-up ip link set $PRIVATE_BRIDGE address $PUBLIC_MAC 
77

    
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
88

    
89
EOF
90
  fi
91
    
92
fi
93

    
94

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

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

    
105
ifup -i $INTERFACES -a