|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /proc/21571/root/etc/sysconfig/network-scripts/ |
Upload File : |
#!/bin/sh
#
# init.ipv6-global
#
#
# Taken from: init.ipv6-global
# (P) & (C) 2001-2005 by Peter Bieringer <pb@bieringer.de>
#
# You will find more information on the initscripts-ipv6 homepage at
# http://www.deepspace6.net/projects/initscripts-ipv6.html
#
# RHL integration assistance by Pekka Savola <pekkas@netcore.fi>
#
# Version: 2005-01-04
#
# Calling parameters:
# $1: action (currently supported: start|stop|showsysctl)
# $2: position for start|stop (currently supported: pre|post)
#
# Called by hooks from /etc/[rc.d/]init.d/network
#
# Uses following information from /etc/sysconfig/network:
# NETWORKING_IPV6=yes|no: controls global IPv6 initialization (default: no)
# IPV6FORWARDING=yes|no: controls global IPv6 forwarding (default: no)
# IPV6_AUTOCONF=yes|no: controls global automatic IPv6 configuration
# (default: yes if IPV6FORWARDING=no, no if IPV6FORWARDING=yes)
# IPV6_AUTOTUNNEL=yes|no: controls automatic IPv6 tunneling (default: no)
# IPV6_DEFAULTGW=<ipv6address[%interface]> [optional]
# IPV6_DEFAULTDEV=<interface> [optional]
#
. /etc/sysconfig/network
cd /etc/sysconfig/network-scripts
. ./network-functions
# Get action and hook position
ACTION="$1"
POSITION="$2"
# Test whether IPv6 should be configured, else stop
[ "${NETWORKING_IPV6}" = "yes" ] || exit 0
[ -f /etc/sysconfig/network-scripts/network-functions-ipv6 ] || exit 1
. /etc/sysconfig/network-scripts/network-functions-ipv6
# Initialize IPv6, depending on caller option
case $ACTION in
start)
case $POSITION in
pre)
# IPv6 test, module loaded, exit if system is not IPv6-ready
ipv6_test || exit 1
if [ "$IPV6FORWARDING" = "yes" ]; then
ipv6_global_forwarding=1
ipv6_global_auto=0
else
ipv6_global_forwarding=0
if [ "$IPV6_AUTOCONF" = "no" ]; then
ipv6_global_auto=0
else
ipv6_global_auto=1
fi
fi
# Reset IPv6 sysctl switches for "all", "default" and still existing devices
sysctl -a | grep "^net\.ipv6\.conf\." | awk -F. '{ print $4 }' | sort -u | while read interface; do
# Host/Router behaviour for the interface
ipv6_exec_sysctl -w net.ipv6.conf.$interface.forwarding=$ipv6_global_forwarding >/dev/null 2>&1
# Autoconfiguration and redirect handling for Hosts
ipv6_exec_sysctl -w net.ipv6.conf.$interface.accept_ra=$ipv6_global_auto >/dev/null 2>&1
ipv6_exec_sysctl -w net.ipv6.conf.$interface.accept_redirects=$ipv6_global_auto >/dev/null 2>&1
done
;;
post)
# IPv6 test, module loaded, exit if system is not IPv6-ready
ipv6_test || exit 1
if [ "$IPV6_AUTOTUNNEL" = "yes" ]; then
ipv6_enable_autotunnel
# autotunnel interface doesn't require a MTU setup
fi
## Add some routes which should never appear on the wire
# Unreachable IPv4-only addresses, normally blocked by source address selection
ipv6_exec_ip route add unreach ::ffff:0.0.0.0/96
# Unreachable IPv4-mapped addresses
ipv6_exec_ip route add unreach ::0.0.0.0/96
# Unreachable 6to4: IPv4 multicast, reserved, limited broadcast
ipv6_exec_ip route add unreach 2002:e000::/19
# Unreachable 6to4: IPv4 loopback
ipv6_exec_ip route add unreach 2002:7f00::/24
# Unreachable 6to4: IPv4 private (RFC 1918)
ipv6_exec_ip route add unreach 2002:0a00::/24
ipv6_exec_ip route add unreach 2002:ac10::/28
ipv6_exec_ip route add unreach 2002:c0a8::/32
# Unreachable 6to4: IPv4 private (APIPA / DHCP link-local)
ipv6_exec_ip route add unreach 2002:a9fe::/32
# Unreachable IPv6: 6bone test addresses
ipv6_exec_ip route add unreach 3ffe:ffff::/32
# Set default route for autotunnel, if specified
if [ "$IPV6_DEFAULTDEV" = "sit0" -a "$IPV6_AUTOTUNNEL" = "yes" ]; then
if [ -n "$IPV6_DEFAULTGW" ]; then
ipv6_set_default_route $IPV6_DEFAULTGW $IPV6_DEFAULTDEV sit0
elif [ -n "$IPV6_DEFAULTDEV" ]; then
ipv6_set_default_route "" $IPV6_DEFAULTDEV sit0
fi
fi
;;
*)
echo "Usage: $0 $1 {pre|post}"
;;
esac
;;
stop)
case $POSITION in
pre)
# IPv6 test, no module loaded, exit if system is not IPv6-ready
ipv6_test testonly || exit 0
;;
post)
# IPv6 test, no module loaded, exit if system is not IPv6-ready
ipv6_test testonly || exit 0
sysctl -a | grep "^net\.ipv6\.conf\." | awk -F. '{ print $4 }' | sort -u | while read interface; do
# Assume Host behaviour
ipv6_exec_sysctl -w net.ipv6.conf.$interface.forwarding=0 >/dev/null 2>&1
# Disable autoconfiguration and redirects
ipv6_exec_sysctl -w net.ipv6.conf.$interface.accept_ra=0 >/dev/null 2>&1
ipv6_exec_sysctl -w net.ipv6.conf.$interface.accept_redirects=0 >/dev/null 2>&1
done
# Cleanup still existing tunnel devices
ipv6_cleanup_tunnel_devices
# Shut down generic tunnel interface now
ipv6_exec_ip link set sit0 down
;;
*)
echo "Usage: $0 $1 {pre|post}"
;;
esac
;;
restart|reload)
# do nothing, will be handled by main script
;;
showsysctl)
# Run only basic tests, no module is loaded, if not ok, skip IPv6 initialization
ipv6_test testonly || exit 0
# Show sysctl switches
sysctl -a | grep "^net\.ipv6\.conf\.default\." | awk -F. '{ print $5 }' | awk -F= '{ print $1 }' | sed 's/ //g' | while read switch; do
sysctl -a | grep "^net\.ipv6\.conf\." | awk -F. '{ print $4 }' | sort -u | while read interface; do
sysctl net.ipv6.conf.$interface.$switch
done
echo
done
;;
*)
echo $"Usage: $0 {start|stop|reload|restart|showsysctl}"
exit 1
;;
esac