root / snf-network-reconfigure @ 6e257ba8
History | View | Annotate | Download (1.6 kB)
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 |