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 |