>> Сначала поднимаются все физические интерфейсы, после чего у меня поднимаются все логические
>> типа tun. А точнее те интерфейсы у которых в конфигурации определена
>> переменная DEVICE.
>> После чего поднимаются vlan bridge dsl ipsec.
> Очень странно - у меня в ifcfg-ipsec0 отсутсвует переменная DEVICE, а в
> ifcfg-tun0 присутсвует и поднимаются - сначала ipsec затем tunСейчас сам проверить не могу т.к. боевые сервера не охото ковырять, но вроде такой порядок загрузки я понял их файла /etc/init.d/network
для того что бы проверить можно поменять в нем строки action на echo и проверить.
вот скрипт с основными циклами
#!/bin/bash
cd /etc/sysconfig/network-scripts
interfaces=$(ls ifcfg* | \
LANG=C sed -e "$__sed_discard_ignored_files" \
-e '/\(ifcfg-lo\|:\|ifcfg-.*-range\)/d' \
-e '/ifcfg-[A-Za-z0-9\._-]\+$/ { s/^ifcfg-//g;s/[0-9]/ &/}' | \
LANG=C sort -k 1,1 -k 2n | \
LANG=C sed 's/ //')
vlaninterfaces=""
vpninterfaces=""
xdslinterfaces=""
bridgeinterfaces=""
for i in $interfaces; do
unset DEVICE TYPE SLAVE
eval $(LANG=C fgrep "DEVICE=" ifcfg-$i)
eval $(LANG=C fgrep "TYPE=" ifcfg-$i)
eval $(LANG=C fgrep "SLAVE=" ifcfg-$i)
if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi
if [ "${DEVICE##cipcb}" != "$DEVICE" ] ; then
vpninterfaces="$vpninterfaces $i"
continue
fi
if [ "$TYPE" = "xDSL" ]; then
xdslinterfaces="$xdslinterfaces $i"
continue
fi
if [ "$TYPE" = "Bridge" ]; then
bridgeinterfaces="$bridgeinterfaces $i"
continue
fi
if [ "$TYPE" = "IPSEC" ]; then
vpninterfaces="$vpninterfaces $i"
continue
fi
if [ "${DEVICE%%.*}" != "$DEVICE" -o "${DEVICE##vlan}" != "$DEVICE" ] ; then
vlaninterfaces="$vlaninterfaces $i"
continue
fi
if [ "$SLAVE" = "yes" ]; then
continue
fi
# if LANG=C egrep -L "^ONBOOT=['\"]?[Nn][Oo]['\"]?" ifcfg-$i > /dev/null ; then
# # this loads the module, to preserve ordering
# is_available $i
# continue
# fi
# If we're in confirmation mode, get user confirmation.
if [ -f /var/run/confirm ]; then
confirm $i
test $? = 1 && continue
fi
# action $"Bringing up interface $i: " ./ifup $i boot
# rc=$((rc+$?))
echo ""Bringing up interface $i: ""
done
echo "vlan - $vlaninterfaces"
echo "bridge - $bridgeinterfaces"
echo "dsl - $xdslinterfaces"
echo "vpn - $vpninterfaces"
# Bring up xDSL and VPN interfaces
for i in $vlaninterfaces $bridgeinterfaces $xdslinterfaces $vpninterfaces ; do
if ! LANG=C egrep -L "^ONBOOT=['\"]?[Nn][Oo]['\"]?" ifcfg-$i >/dev/null 2>&1 ; then
# If we're in confirmation mode, get user confirmation.
if [ -f /var/run/confirm ]; then
confirm $i
test $? = 1 && continue
fi
# action $"Bringing up interface $i: " ./ifup $i boot
# rc=$((rc+$?))
echo ""Bringing up interface $i: ""
fi
done