Lines 62-75
Link Here
|
62 |
eval dhcp=\" \$\{dhcp_${interface}\} \" |
62 |
eval dhcp=\" \$\{dhcp_${interface}\} \" |
63 |
if [[ ${dhcp} != *' nogateway '* ]]; then |
63 |
if [[ ${dhcp} != *' nogateway '* ]]; then |
64 |
# Configure our default route |
64 |
# Configure our default route |
65 |
x=$(ip route show | awk '{ if ($1 == "default") {print $3} }') |
|
|
66 |
for r in ${router}; do |
65 |
for r in ${router}; do |
67 |
# We can only have one default route! |
66 |
# We can only have one default route! |
68 |
if [[ -z ${x} ]]; then |
67 |
ip route replace default via ${r} dev ${interface} 2>/dev/null && break |
69 |
ip route add default via ${r} dev ${interface} 2>/dev/null && break |
68 |
done |
70 |
elif [[ ${x} != ${r} ]]; then |
69 |
fi |
71 |
ip route change default via ${r} dev ${interface} 2>/dev/null && break |
70 |
|
72 |
fi |
71 |
# Configure static routes |
|
|
72 |
if [[ "${cidrroute}" ]]; then |
73 |
cidrroute="${cidrroute} " |
74 |
# Work while cidrroute not empty |
75 |
while true; do |
76 |
# First go number of bits in mask |
77 |
bits=${cidrroute%% *} |
78 |
[[ -z ${bits} ]] && break |
79 |
cidrroute=${cidrroute#* } |
80 |
pref="" |
81 |
if [[ ${bits} == 0 ]]; then |
82 |
# We got 0/0 here |
83 |
pref="default" |
84 |
else |
85 |
# Calc how many bytes we need to get from cidrroute |
86 |
# And get them in prefix |
87 |
bytes=$(( (${bits} - 1) / 8 + 1 )) |
88 |
while [[ ${bytes} > 0 ]]; do |
89 |
byte=${cidrroute%% *} |
90 |
cidrroute=${cidrroute#* } |
91 |
pref="${pref}.${byte}" |
92 |
bytes=$(( ${bytes} - 1 )) |
93 |
done |
94 |
pref=${pref#.} |
95 |
pref="${pref}/${bits}" |
96 |
fi |
97 |
# We have subnet prefix now and need to get gateway same way |
98 |
bytes=4 |
99 |
gw="" |
100 |
while [[ ${bytes} > 0 ]]; do |
101 |
byte=${cidrroute%% *} |
102 |
cidrroute=${cidrroute#* } |
103 |
gw="${gw}.${byte}" |
104 |
bytes=$(( ${bytes} - 1 )) |
105 |
done |
106 |
gw=${gw#.} |
107 |
# And add the next route finally |
108 |
ip route replace ${pref} via ${gw} dev ${interface} 2>/dev/null |
73 |
done |
109 |
done |
74 |
fi |
110 |
fi |
75 |
|
111 |
|