Add snf-network-reconfige
[snf-network] / snf-network-configure-interfaces
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=$SHAREDDIR/interfaces/$HOSTNAME
13 HOSTINFRA=$SHAREDDIR/infra/$HOSTNAME
14
15 if [ -e "$HOSTINFRA" ]; then
16   source $HOSTINFRA
17 fi
18
19 if [ -e /proc/sys/net/ipv4/conf/$PUBLIC_BRIDGE -o \
20      -e /proc/sys/net/ipv4/conf/$PUBLIC_VLAN  -o \ 
21      -e /proc/sys/net/ipv4/conf/$PRIVATE_VLAN -o \
22      -e /proc/sys/net/ipv4/conf/$PRIVATE_BRIDGE ]; then 
23   echo Interfaces already exist! Please check: 
24   echo $PUBLIC_BRIDGE for bridging TAPs with public IPs
25   echo $PUBLIC_VLAN for routing TAPs with public IPs
26   echo $PRIVATE_VLAN  bridged on $PRIVATE_BRIDGE for private LANs
27   exit 1
28 fi
29
30
31 PUBLIC_INTERFACE=$(ip route | grep default | awk '{print $5}')
32 PUBLIC_MAC=$(ip link show $PUBLIC_INTERFACE | grep link/ether | awk '{print $2}')
33
34
35 if [ -n "$PUBLIC_BRIDGE" -a -n "$PUBLIC_INTERFACE" ]; then
36   cat > $INTERFACES<<EOF
37 auto $PUBLIC_BRIDGE
38 iface $PUBLIC_BRIDGE inet manual
39   bridge_ports $PUBLIC_INTERFACE
40   bridge_stp off
41   bridge_fd 2
42   post-up ip link set $PUBLIC_BRIDGE address $PUBLIC_MAC 
43
44 EOF
45
46 else
47   if [ -n "$PUBLIC_VLAN" ]; then
48     cat >> $INTERFACES<<EOF
49 auto $PUBLIC_VLAN
50 iface $PUBLIC_VLAN inet manual
51
52 EOF
53
54   if [ -n "$PRIVATE_VLAN" -a -n "$PRIVATE_BRIDGE" ]; then
55     cat >> $INTERFACES<<EOF
56 auto $PRIVATE_VLAN
57 iface $PRIVATE_VLAN inet manual
58
59 auto $PRIVATE_BRIDGE
60 iface $PRIVATE_BRIDGE inet manual
61   bridge_ports $PRIVATE_VLAN
62   bridge_stp off
63   bridge_fd 2
64   post-up ip link set $PRIVATE_BRIDGE address $PUBLIC_MAC 
65
66 EOF
67
68   fi
69 fi
70
71 ifup -i $INTERFACES -a
72
73
74 echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
75 echo 1 > /proc/sys/net/ipv4/ip_forward