[1108] | 1 | #!/bin/sh |
---|
| 2 | # |
---|
| 3 | # ipv6-up |
---|
| 4 | # |
---|
| 5 | # Called by pppd after IPV6CP/up was finished |
---|
| 6 | # |
---|
| 7 | # This file should not be modified -- make local changes to |
---|
| 8 | # /etc/ppp/ipv6-up.local instead |
---|
| 9 | # |
---|
| 10 | # Taken from: |
---|
| 11 | # (P) & (C) 2001-2006 by Peter Bieringer <pb@bieringer.de> |
---|
| 12 | # |
---|
| 13 | # You will find more information on the initscripts-ipv6 homepage at |
---|
| 14 | # http://www.deepspace6.net/projects/initscripts-ipv6.html |
---|
| 15 | # |
---|
| 16 | # RHL integration assistance by Pekka Savola <pekkas@netcore.fi> |
---|
| 17 | # |
---|
| 18 | # Calling parameters: |
---|
| 19 | # $1: interface name |
---|
| 20 | # $6: logical interface name (set by pppd option ipparam) |
---|
| 21 | # |
---|
| 22 | # |
---|
| 23 | # Version: 2006-08-02 |
---|
| 24 | # |
---|
| 25 | # Uses following information from "/etc/sysconfig/network": |
---|
| 26 | # IPV6_DEFAULTDEV=<device>: controls default route (optional) |
---|
| 27 | # |
---|
| 28 | # Uses following information from "/etc/sysconfig/network-scripts/ifcfg-$1": |
---|
| 29 | # IPV6INIT=yes|no: controls IPv6 configuration for this interface |
---|
| 30 | # IPV6ADDR=<IPv6 address>[/<prefix length>]: specify primary static IPv6 address |
---|
| 31 | # IPV6ADDR_SECONDARIES="<IPv6 address>[/<prefix length>] ..." (optional) |
---|
| 32 | # IPV6_MTU=<MTU for IPv6>: controls IPv6 MTU for this link (optional) |
---|
| 33 | # |
---|
| 34 | |
---|
| 35 | |
---|
| 36 | PATH=/sbin:/usr/sbin:/bin:/usr/bin |
---|
| 37 | export PATH |
---|
| 38 | |
---|
| 39 | LOGDEVICE=$6 |
---|
| 40 | REALDEVICE=$1 |
---|
| 41 | |
---|
| 42 | [ -f /etc/sysconfig/network ] || exit 0 |
---|
| 43 | . /etc/sysconfig/network |
---|
| 44 | |
---|
| 45 | cd /etc/sysconfig/network-scripts |
---|
| 46 | . ./network-functions |
---|
| 47 | . ./network-functions-ipv6 |
---|
| 48 | |
---|
| 49 | CONFIG=$LOGDEVICE |
---|
| 50 | [ -f "$CONFIG" ] || CONFIG=ifcfg-$CONFIG |
---|
| 51 | source_config |
---|
| 52 | |
---|
| 53 | # Test whether IPv6 configuration is enabled for this interface, else stop |
---|
| 54 | [ "$IPV6INIT" = "yes" ] || exit 0 |
---|
| 55 | |
---|
| 56 | [ -f /etc/sysconfig/network-scripts/network-functions-ipv6 ] || exit 1 |
---|
| 57 | . /etc/sysconfig/network-scripts/network-functions-ipv6 |
---|
| 58 | |
---|
| 59 | # IPv6 test, module loaded, exit if system is not IPv6-ready |
---|
| 60 | ipv6_test || exit 1 |
---|
| 61 | |
---|
| 62 | # Test device status |
---|
| 63 | ipv6_test_device_status $REALDEVICE |
---|
| 64 | if [ $? != 0 -a $? != 11 ]; then |
---|
| 65 | # device doesn't exist or other problem occurs |
---|
| 66 | exit 1 |
---|
| 67 | fi |
---|
| 68 | |
---|
| 69 | # Setup IPv6 address on specified interface |
---|
| 70 | if [ -n "$IPV6ADDR" ]; then |
---|
| 71 | ipv6_add_addr_on_device $REALDEVICE $IPV6ADDR || exit 1 |
---|
| 72 | fi |
---|
| 73 | |
---|
| 74 | # Set IPv6 MTU, if given |
---|
| 75 | if [ -n "$IPV6_MTU" ]; then |
---|
| 76 | ipv6_set_mtu $REALDEVICE $IPV6_MTU |
---|
| 77 | fi |
---|
| 78 | |
---|
| 79 | # Setup additional IPv6 addresses from list, if given |
---|
| 80 | if [ -n "$IPV6ADDR_SECONDARIES" ]; then |
---|
| 81 | for ipv6addr in $IPV6ADDR_SECONDARIES; do |
---|
| 82 | ipv6_add_addr_on_device $REALDEVICE $ipv6addr |
---|
| 83 | done |
---|
| 84 | fi |
---|
| 85 | |
---|
| 86 | # Setup default IPv6 route through device |
---|
| 87 | if [ "$IPV6_DEFAULTDEV" = "$LOGDEVICE" ]; then |
---|
| 88 | ipv6_set_default_route "" "$REALDEVICE" "$REALDEVICE" |
---|
| 89 | fi |
---|
| 90 | |
---|
| 91 | # Setup additional static IPv6 routes on specified interface, if given |
---|
| 92 | if [ -f /etc/sysconfig/static-routes-ipv6 ]; then |
---|
| 93 | LC_ALL=C grep -w "^$LOGDEVICE" /etc/sysconfig/static-routes-ipv6 | while read device args; do |
---|
| 94 | ipv6_add_route $args $REALDEVICE |
---|
| 95 | done |
---|
| 96 | fi |
---|
| 97 | |
---|
| 98 | # Setup additional static IPv6 routes (newer config style) |
---|
| 99 | if [ -f "/etc/sysconfig/network-scripts/route6-$DEVICE" ]; then |
---|
| 100 | cat "/etc/sysconfig/network-scripts/route6-$DEVICE" | sed 's/#.*//g' | grep -v '^[[:space:]]*$' | while read line; do |
---|
| 101 | ipv6_exec_ip -6 route add $line |
---|
| 102 | done |
---|
| 103 | fi |
---|
| 104 | |
---|
| 105 | if [ "$IPV6_CONTROL_RADVD" = "yes" ]; then |
---|
| 106 | # Control running radvd |
---|
| 107 | ipv6_trigger_radvd up "$IPV6_RADVD_TRIGGER_ACTION" $IPV6_RADVD_PIDFILE |
---|
| 108 | fi |
---|
| 109 | |
---|
| 110 | [ -x /etc/ppp/ipv6-up.local ] && /etc/ppp/ipv6-up.local "$@" |
---|
| 111 | |
---|
| 112 | exit 0 |
---|