diff options
Diffstat (limited to 'etc/rc.d/rtadvd')
-rwxr-xr-x | etc/rc.d/rtadvd | 64 |
1 files changed, 60 insertions, 4 deletions
diff --git a/etc/rc.d/rtadvd b/etc/rc.d/rtadvd index 7347035..8317e33 100755 --- a/etc/rc.d/rtadvd +++ b/etc/rc.d/rtadvd @@ -1,25 +1,81 @@ #!/bin/sh # -# $NetBSD: rtadvd,v 1.3 2000/05/13 08:45:09 lukem Exp $ +# $NetBSD: rtadvd,v 1.5 2002/03/22 04:34:00 thorpej Exp $ +# $FreeBSD$ # # PROVIDE: rtadvd # REQUIRE: DAEMON +# BEFORE: LOGIN +# KEYWORD: FreeBSD NetBSD . /etc/rc.subr name="rtadvd" -rcvar=$name +rcvar=`set_rcvar` command="/usr/sbin/${name}" start_precmd="rtadvd_precmd" +case `${CMD_OSTYPE}` in +FreeBSD) + IS_GATEWAY="checkyesno ipv6_gateway_enable" + ;; +NetBSD) + IS_GATEWAY="eval [ \"$ip6mode\" = \"router\" ]" + ;; +esac + rtadvd_precmd() { - if [ "$ip6mode" != "router" ]; then + if ! ${IS_GATEWAY} ; then warn \ - "${name} cannot be used on IPv6 host, only on an IPv6 router." + "${name} cannot be used on IPv6 host, only on an IPv6 router." return 1 fi + + # This should be enabled with a great care. + # You may want to fine-tune /etc/rtadvd.conf. + # + # And if you wish your rtadvd to receive and process + # router renumbering messages, specify your Router Renumbering + # security policy by -R option. + # + # See `man 3 ipsec_set_policy` for IPsec policy specification + # details. + # (CAUTION: This enables your routers prefix renumbering + # from another machine, so if you enable this, do it with + # enough care.) + # + case `${CMD_OSTYPE}` in + FreeBSD) + # If specific interfaces haven't been specified, + # get a list of interfaces and enable it on them + # + case ${rtadvd_interfaces} in + '') + for i in `ifconfig -l` ; do + case $i in + lo0|gif[0-9]*|stf[0-9]*|faith[0-9]*|lp[0-9]*|sl[0-9]*|tun[0-9]*) + continue + ;; + *) + rtadvd_interfaces="${rtadvd_interfaces} ${i}" + ;; + esac + done + ;; + esac + command_args="${rtadvd_interfaces}" + + # Enable Router Renumbering, unicast case + # (use correct src/dst addr) + # rtadvd -R "in ipsec ah/transport/fec0:0:0:1::1-fec0:0:0:10::1/require" ${ipv6_network_interfaces} + # Enable Router Renumbering, multicast case + # (use correct src addr) + # rtadvd -R "in ipsec ah/transport/ff05::2-fec0:0:0:10::1/require" ${ipv6_network_interfaces} + ;; + esac + return 0 } load_rc_config $name |