In /etc/init.d/net.eth0, lines that say something like: aliasbcast="$(eval echo \$\{broadcast_${IFACE}\} \| awk \'\{ print \$${num} \}\')" ... aliasnmask="$(eval echo \$\{netmask_${IFACE}\} \| awk \' \{ print \$${num} \}\')" should actually be: aliasbcast="$(eval echo \$\{broadcast_${IFACE}\} \| awk \'\{ print \$${num+1} \}\')" ... aliasnmask="$(eval echo \$\{netmask_${IFACE}\} \| awk \' \{ print \$${num+1} \}\')" That is, 'num' should actually be 'num+1' since $0 == whole record in awk. Note that it works OK for a single alias since $0 == $1 in that case.
post to Bug 7407 ... they are still pondering how to implement it *** This bug has been marked as a duplicate of 7407 ***
Oops... typo alert. It should be $((num+1)) above in the fixed version.