Revision 6e257ba8 snf-network-reconfigure
b/snf-network-reconfigure | ||
---|---|---|
4 | 4 |
|
5 | 5 |
source $CONF |
6 | 6 |
|
7 |
if [ $# -ne 1 ]; then |
|
8 |
echo Usage: $0 add/remove |
|
9 |
exit 1 |
|
10 |
fi |
|
11 |
|
|
12 |
|
|
13 |
ACTION=$1 |
|
14 | 7 |
NETWORKS="$(ls $SHAREDDIR/networks/)" |
15 | 8 |
|
16 | 9 |
HOSTNAME=$(hostname) |
17 | 10 |
|
18 |
if [ "$ACTION" == "add" ]; then |
|
19 |
snf-network-configure-interfaces |
|
20 |
fi |
|
11 |
INTERFACES=$SHAREDDIR/interfaces/$HOSTNAME |
|
21 | 12 |
|
22 |
for NETWORK in $NETWORKS; do
|
|
13 |
ifup -i $INTERFACES -a
|
|
23 | 14 |
|
24 |
NETFILE=$SHAREDDIR/networks/$NETWORK |
|
25 |
NODEMAPFILE=$SHAREDDIR/mappings/$NETWORK-$HOSTNAME |
|
26 |
NODEINFRAFILE=$SHAREDDIR/infra/$HOSTNAME |
|
27 |
|
|
28 |
RT_TABLES=/etc/iproute2/rt_tables |
|
15 |
for NETWORK in $NETWORKS; do |
|
29 | 16 |
|
30 |
source $NODEINFRAFILE |
|
31 |
source $NETFILE |
|
32 |
source $NODEMAPFILE |
|
17 |
NETFILE=$SHAREDDIR/networks/$NETWORK |
|
18 |
NODEMAPFILE=$SHAREDDIR/mappings/$NETWORK-$HOSTNAME |
|
19 |
NODEINFRAFILE=$SHAREDDIR/infra/$HOSTNAME |
|
20 |
CLUSTERINFRAFILE=$SHAREDDIR/infra/cluster |
|
33 | 21 |
|
22 |
RT_TABLES=/etc/iproute2/rt_tables |
|
34 | 23 |
|
24 |
source $NODEINFRAFILE |
|
25 |
source $CLUSTERINFRAFILE |
|
26 |
source $NETFILE |
|
35 | 27 |
|
36 |
if [ "$ACTION" == "add" ]; then |
|
37 | 28 |
if [ "$MODE" == "routed" ]; then |
38 | 29 |
VLAN=$LINK |
39 | 30 |
TABLE=rt_$NETWORK |
... | ... | |
64 | 55 |
|
65 | 56 |
if [ "$MODE" == "bridged" ]; then |
66 | 57 |
BRIDGE=$LINK |
67 |
if [ ! -z "$GATEWAY" ]; then |
|
58 |
if [ ! -z "$GATEWAY" -a $ENABLE_MASQ ]; then
|
|
68 | 59 |
if [ "$TYPE" == "private" ]; then |
69 | 60 |
if [ "$HOSTNAME" == "$ROUTER" ]; then |
70 | 61 |
NETMASK=$(ipcalc $SUBNET | grep Netmask | awk '{print $4}') |
... | ... | |
74 | 65 |
fi |
75 | 66 |
fi |
76 | 67 |
fi |
77 |
|
|
78 |
elif [ "$ACTION" == "remove" ]; then |
|
79 |
if [ ! -e "$NODEMAPFILE" ]; then |
|
80 |
exit 0; |
|
81 |
fi |
|
82 |
|
|
83 |
source $NODEMAPFILE |
|
84 |
|
|
85 |
if [ "$MODE" == "routed" ]; then |
|
86 |
VLAN=$LINK |
|
87 |
TABLE=rt_$NETWORK |
|
88 |
if [ "$TYPE" == "public" ]; then |
|
89 |
ARP_IP=$(ipcalc $SUBNET | grep HostMax | awk '{print $2}') |
|
90 |
|
|
91 |
arptables -D OUTPUT -o $VLAN --opcode request -j mangle --mangle-ip-s $ARP_IP |
|
92 |
|
|
93 |
ip route del default via $GATEWAY dev $VLAN table $TABLE |
|
94 |
ip route del $SUBNET dev $VLAN table $TABLE |
|
95 |
|
|
96 |
ip route del $SUBNET dev $VLAN table main |
|
97 |
|
|
98 |
ip rule del iif $VLAN table $TABLE |
|
99 |
|
|
100 |
sed -i 's/.*'"$TABLE"'$//' $RT_TABLES |
|
101 |
fi |
|
102 |
fi |
|
103 |
|
|
104 |
|
|
105 |
|
|
106 |
if [ "$MODE" == "bridged" ]; then |
|
107 |
BRIDGE=$LINK |
|
108 |
if [ ! -z "$GATEWAY" ]; then |
|
109 |
if [ "$TYPE" == "private" ]; then |
|
110 |
if [ "$HOSTNAME" == "$ROUTER" ]; then |
|
111 |
NETMASK=$(ipcalc $SUBNET | grep Netmask | awk '{print $4}') |
|
112 |
ip addr del $GATEWAY/$NETMASK dev $BRIDGE |
|
113 |
iptables -t nat -D POSTROUTING -s $SUBNET \! -d 192.168.0.0/16 -j MASQUERADE |
|
114 |
fi |
|
115 |
fi |
|
116 |
fi |
|
117 |
fi |
|
118 |
|
|
119 |
|
|
120 |
fi |
|
121 | 68 |
|
122 | 69 |
done |
123 |
|
|
124 |
if [ "$ACTION" == "remove" ]; then |
|
125 |
snf-network-unconfigure-interfaces |
|
126 |
fi |
Also available in: Unified diff