|
rpm-build |
133ac4 |
#! /bin/bash
|
|
rpm-build |
133ac4 |
#
|
|
rpm-build |
133ac4 |
# network Bring up/down networking
|
|
rpm-build |
133ac4 |
#
|
|
rpm-build |
133ac4 |
# chkconfig: - 10 90
|
|
rpm-build |
133ac4 |
# description: Activates/Deactivates all network interfaces configured to \
|
|
rpm-build |
133ac4 |
# start at boot time.
|
|
rpm-build |
133ac4 |
#
|
|
rpm-build |
133ac4 |
### BEGIN INIT INFO
|
|
rpm-build |
133ac4 |
# Provides: $network
|
|
rpm-build |
133ac4 |
# Should-Start: iptables ip6tables NetworkManager-wait-online NetworkManager $network-pre
|
|
rpm-build |
133ac4 |
# Short-Description: Bring up/down networking
|
|
rpm-build |
133ac4 |
# Description: Bring up/down networking
|
|
rpm-build |
133ac4 |
### END INIT INFO
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
# Source function library.
|
|
rpm-build |
133ac4 |
. /etc/init.d/functions
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
if [ ! -f /etc/sysconfig/network ]; then
|
|
rpm-build |
133ac4 |
exit 6
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
. /etc/sysconfig/network
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
if [ -f /etc/sysconfig/pcmcia ]; then
|
|
rpm-build |
133ac4 |
. /etc/sysconfig/pcmcia
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
# Check that networking is up.
|
|
rpm-build |
133ac4 |
[ "${NETWORKING}" = "no" ] && exit 6
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
# if the ip configuration utility isn't around we can't function.
|
|
rpm-build |
133ac4 |
[ -x /sbin/ip ] || exit 1
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
CWD=$(pwd)
|
|
rpm-build |
133ac4 |
cd /etc/sysconfig/network-scripts
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
. ./network-functions
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
# find all the interfaces besides loopback.
|
|
rpm-build |
133ac4 |
# ignore aliases, alternative configurations, and editor backup files
|
|
rpm-build |
133ac4 |
interfaces=$(ls ifcfg-* | \
|
|
rpm-build |
133ac4 |
LC_ALL=C sed -e "$__sed_discard_ignored_files" \
|
|
rpm-build |
133ac4 |
-e '/\(ifcfg-lo$\|:\|ifcfg-.*-range\)/d' \
|
|
rpm-build |
133ac4 |
-e '{ s/^ifcfg-//g;s/[0-9]/ &/}' | \
|
|
rpm-build |
133ac4 |
LC_ALL=C sort -k 1,1 -k 2n | \
|
|
rpm-build |
133ac4 |
LC_ALL=C sed 's/ //')
|
|
rpm-build |
133ac4 |
rc=0
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
if ! [ -f /etc/sysconfig/disable-deprecation-warnings ]; then
|
|
rpm-build |
133ac4 |
net_log $"You are using 'network' service provided by 'network-scripts', which are now deprecated." warning network >&2
|
|
rpm-build |
133ac4 |
net_log $"'network-scripts' will be removed in one of the next major releases of RHEL." warning network >&2
|
|
rpm-build |
133ac4 |
net_log $"It is advised to switch to 'NetworkManager' instead for network management." warning network >&2
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
# This disables additional warnings during the boot process:
|
|
rpm-build |
133ac4 |
export DEPRECATION_WARNING_ISSUED='true'
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
# See how we were called.
|
|
rpm-build |
133ac4 |
case "$1" in
|
|
rpm-build |
133ac4 |
start)
|
|
rpm-build |
133ac4 |
[ "$EUID" != "0" ] && exit 4
|
|
rpm-build |
133ac4 |
rc=0
|
|
rpm-build |
133ac4 |
# IPv6 hook (pre IPv4 start)
|
|
rpm-build |
133ac4 |
if [ -x /etc/sysconfig/network-scripts/init.ipv6-global ]; then
|
|
rpm-build |
133ac4 |
/etc/sysconfig/network-scripts/init.ipv6-global start pre
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
apply_sysctl
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
#tell NM to reload its configuration
|
|
rpm-build |
133ac4 |
if [ "$(LANG=C nmcli -t --fields running general status 2>/dev/null)" = "running" ]; then
|
|
rpm-build |
133ac4 |
nmcli connection reload
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
# bring up loopback interface
|
|
rpm-build |
133ac4 |
action $"Bringing up loopback interface: " ./ifup ifcfg-lo
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
case "$VLAN" in
|
|
rpm-build |
133ac4 |
yes)
|
|
rpm-build |
133ac4 |
if [ ! -d /proc/net/vlan ] && ! modprobe 8021q >/dev/null 2>&1 ; then
|
|
rpm-build |
133ac4 |
net_log $"No 802.1Q VLAN support available in kernel."
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
;;
|
|
rpm-build |
133ac4 |
esac
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
vlaninterfaces=""
|
|
rpm-build |
133ac4 |
vpninterfaces=""
|
|
rpm-build |
133ac4 |
xdslinterfaces=""
|
|
rpm-build |
133ac4 |
bridgeinterfaces=""
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
# bring up all other interfaces configured to come up at boot time
|
|
rpm-build |
133ac4 |
for i in $interfaces; do
|
|
rpm-build |
133ac4 |
unset DEVICE TYPE SLAVE NM_CONTROLLED
|
|
rpm-build |
133ac4 |
eval $(LANG=C grep -F "DEVICE=" ifcfg-$i)
|
|
rpm-build |
133ac4 |
eval $(LANG=C grep -F "TYPE=" ifcfg-$i)
|
|
rpm-build |
133ac4 |
eval $(LANG=C grep -F "SLAVE=" ifcfg-$i)
|
|
rpm-build |
133ac4 |
eval $(LANG=C grep -F "NM_CONTROLLED=" ifcfg-$i)
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
if [ "$SLAVE" = "yes" ] && ( ! is_nm_running || is_false $NM_CONTROLLED ) ; then
|
|
rpm-build |
133ac4 |
continue
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
if [ "${DEVICE##cipcb}" != "$DEVICE" ] ; then
|
|
rpm-build |
133ac4 |
vpninterfaces="$vpninterfaces $i"
|
|
rpm-build |
133ac4 |
continue
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
if [ "$TYPE" = "xDSL" -o "$TYPE" = "Modem" ]; then
|
|
rpm-build |
133ac4 |
xdslinterfaces="$xdslinterfaces $i"
|
|
rpm-build |
133ac4 |
continue
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
if [ "$TYPE" = "Bridge" ]; then
|
|
rpm-build |
133ac4 |
bridgeinterfaces="$bridgeinterfaces $i"
|
|
rpm-build |
133ac4 |
continue
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
if [ "$TYPE" = "IPSEC" ] || [ "$TYPE" = "IPIP" ] || [ "$TYPE" = "GRE" ]; then
|
|
rpm-build |
133ac4 |
vpninterfaces="$vpninterfaces $i"
|
|
rpm-build |
133ac4 |
continue
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
if [ "${DEVICE%%.*}" != "$DEVICE" -o "${DEVICE##vlan}" != "$DEVICE" ] ; then
|
|
rpm-build |
133ac4 |
vlaninterfaces="$vlaninterfaces $i"
|
|
rpm-build |
133ac4 |
continue
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
if ( . ./ifcfg-"$i" ; is_false "$ONBOOT" ) ; then
|
|
rpm-build |
133ac4 |
# this loads the module, to preserve ordering
|
|
rpm-build |
133ac4 |
is_available $i
|
|
rpm-build |
133ac4 |
continue
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
action $"Bringing up interface $i: " ./ifup $i boot
|
|
rpm-build |
133ac4 |
[ $? -ne 0 ] && rc=1
|
|
rpm-build |
133ac4 |
done
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
# Bring up xDSL and VPN interfaces
|
|
rpm-build |
133ac4 |
for i in $vlaninterfaces $bridgeinterfaces $xdslinterfaces $vpninterfaces ; do
|
|
rpm-build |
133ac4 |
if ( . ./ifcfg-"$i" ; ! is_false "$ONBOOT" ) ; then
|
|
rpm-build |
133ac4 |
action $"Bringing up interface $i: " ./ifup $i boot
|
|
rpm-build |
133ac4 |
[ $? -ne 0 ] && rc=1
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
done
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
# Add non interface-specific static-routes.
|
|
rpm-build |
133ac4 |
if [ -f /etc/sysconfig/static-routes ]; then
|
|
rpm-build |
133ac4 |
if [ -x /sbin/route ]; then
|
|
rpm-build |
133ac4 |
grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
|
|
rpm-build |
133ac4 |
/sbin/route add -$args
|
|
rpm-build |
133ac4 |
done
|
|
rpm-build |
133ac4 |
else
|
|
rpm-build |
133ac4 |
net_log $"Legacy static-route support not available: /sbin/route not found"
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
# IPv6 hook (post IPv4 start)
|
|
rpm-build |
133ac4 |
if [ -x /etc/sysconfig/network-scripts/init.ipv6-global ]; then
|
|
rpm-build |
133ac4 |
/etc/sysconfig/network-scripts/init.ipv6-global start post
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
# Run this again to catch any interface-specific actions
|
|
rpm-build |
133ac4 |
apply_sysctl
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
touch /var/lock/subsys/network
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
[ -n "${NETWORKDELAY}" ] && /bin/sleep ${NETWORKDELAY}
|
|
rpm-build |
133ac4 |
;;
|
|
rpm-build |
133ac4 |
stop)
|
|
rpm-build |
133ac4 |
[ "$EUID" != "0" ] && exit 4
|
|
rpm-build |
133ac4 |
# Don't shut the network down if root or /usr is on NFS or a network
|
|
rpm-build |
133ac4 |
# block device.
|
|
rpm-build |
133ac4 |
if systemctl show --property=RequiredBy -- -.mount usr.mount | grep -q 'remote-fs.target' ; then
|
|
rpm-build |
133ac4 |
net_log $"rootfs or /usr is on network filesystem, leaving network up"
|
|
rpm-build |
133ac4 |
exit 1
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
# Don't shut the network down when shutting down the system if configured
|
|
rpm-build |
133ac4 |
# as such in sysconfig
|
|
rpm-build |
133ac4 |
if is_false "$IFDOWN_ON_SHUTDOWN"; then
|
|
rpm-build |
133ac4 |
if systemctl is-system-running | grep -q 'stopping'; then
|
|
rpm-build |
133ac4 |
net_log $"system is shutting down, leaving interfaces up as requested" info
|
|
rpm-build |
133ac4 |
exit 0
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
vlaninterfaces=""
|
|
rpm-build |
133ac4 |
vpninterfaces=""
|
|
rpm-build |
133ac4 |
xdslinterfaces=""
|
|
rpm-build |
133ac4 |
bridgeinterfaces=""
|
|
rpm-build |
133ac4 |
remaining=""
|
|
rpm-build |
133ac4 |
rc=0
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
# get list of bonding, vpn, and xdsl interfaces
|
|
rpm-build |
133ac4 |
for i in $interfaces; do
|
|
rpm-build |
133ac4 |
unset DEVICE TYPE
|
|
rpm-build |
133ac4 |
eval $(LANG=C grep -F "DEVICE=" ifcfg-$i)
|
|
rpm-build |
133ac4 |
eval $(LANG=C grep -F "TYPE=" ifcfg-$i)
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
if [ "${DEVICE##cipcb}" != "$DEVICE" ] ; then
|
|
rpm-build |
133ac4 |
vpninterfaces="$vpninterfaces $i"
|
|
rpm-build |
133ac4 |
continue
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
if [ "$TYPE" = "IPSEC" ] || [ "$TYPE" = "IPIP" ] || [ "$TYPE" = "GRE" ]; then
|
|
rpm-build |
133ac4 |
vpninterfaces="$vpninterfaces $i"
|
|
rpm-build |
133ac4 |
continue
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
if [ "$TYPE" = "Bridge" ]; then
|
|
rpm-build |
133ac4 |
bridgeinterfaces="$bridgeinterfaces $i"
|
|
rpm-build |
133ac4 |
continue
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
if [ "$TYPE" = "xDSL" -o "$TYPE" = "Modem" ]; then
|
|
rpm-build |
133ac4 |
xdslinterfaces="$xdslinterfaces $i"
|
|
rpm-build |
133ac4 |
continue
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
if [ "${DEVICE%%.*}" != "$DEVICE" -o "${DEVICE##vlan}" != "$DEVICE" ] ; then
|
|
rpm-build |
133ac4 |
vlaninterfaces="$vlaninterfaces $i"
|
|
rpm-build |
133ac4 |
continue
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
remaining="$remaining $i"
|
|
rpm-build |
133ac4 |
done
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
for i in $vpninterfaces $xdslinterfaces $bridgeinterfaces $vlaninterfaces $remaining; do
|
|
rpm-build |
133ac4 |
unset DEVICE TYPE
|
|
rpm-build |
133ac4 |
(. ./ifcfg-$i
|
|
rpm-build |
133ac4 |
if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
if ! check_device_down $DEVICE; then
|
|
rpm-build |
133ac4 |
action $"Shutting down interface $i: " ./ifdown $i boot
|
|
rpm-build |
133ac4 |
[ $? -ne 0 ] && rc=1
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
)
|
|
rpm-build |
133ac4 |
done
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
action $"Shutting down loopback interface: " ./ifdown ifcfg-lo
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
sysctl -w net.ipv4.ip_forward=0 > /dev/null 2>&1
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
# IPv6 hook (post IPv4 stop)
|
|
rpm-build |
133ac4 |
if [ -x /etc/sysconfig/network-scripts/init.ipv6-global ]; then
|
|
rpm-build |
133ac4 |
/etc/sysconfig/network-scripts/init.ipv6-global stop post
|
|
rpm-build |
133ac4 |
fi
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
rm -f /var/lock/subsys/network
|
|
rpm-build |
133ac4 |
;;
|
|
rpm-build |
133ac4 |
status)
|
|
rpm-build |
133ac4 |
echo $"Configured devices:"
|
|
rpm-build |
133ac4 |
echo lo $interfaces
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
echo $"Currently active devices:"
|
|
rpm-build |
133ac4 |
echo $(/sbin/ip -o link show up | awk -F ": " '{ print $2 }')
|
|
rpm-build |
133ac4 |
;;
|
|
rpm-build |
133ac4 |
restart|force-reload)
|
|
rpm-build |
133ac4 |
cd "$CWD"
|
|
rpm-build |
133ac4 |
$0 stop
|
|
rpm-build |
133ac4 |
$0 start
|
|
rpm-build |
133ac4 |
rc=$?
|
|
rpm-build |
133ac4 |
;;
|
|
rpm-build |
133ac4 |
*)
|
|
rpm-build |
133ac4 |
echo $"Usage: $0 {start|stop|status|restart|force-reload}"
|
|
rpm-build |
133ac4 |
exit 2
|
|
rpm-build |
133ac4 |
esac
|
|
rpm-build |
133ac4 |
|
|
rpm-build |
133ac4 |
exit $rc
|