178344Sobrien#!/bin/sh 278344Sobrien# 398184Sgordon# $FreeBSD$ 478344Sobrien# 578344Sobrien 678344Sobrien# PROVIDE: rtadvd 778344Sobrien# REQUIRE: DAEMON 898184Sgordon# BEFORE: LOGIN 9180564Sdougb# KEYWORD: nojail shutdown 1078344Sobrien 1178344Sobrien. /etc/rc.subr 12197146Shrs. /etc/network.subr 1378344Sobrien 1478344Sobrienname="rtadvd" 15298514Slmedesc="Router advertisement daemon" 16230099Sdougbrcvar="rtadvd_enable" 1778344Sobriencommand="/usr/sbin/${name}" 18256878Sdesextra_commands="reload" 19256878Sdesreload_cmd="rtadvd_reload" 2078344Sobrienstart_precmd="rtadvd_precmd" 2178344Sobrien 2278344Sobrienrtadvd_precmd() 2378344Sobrien{ 24104980Sschweikh # This should be enabled with a great care. 25104980Sschweikh # You may want to fine-tune /etc/rtadvd.conf. 26104980Sschweikh # 27104980Sschweikh # And if you wish your rtadvd to receive and process 28104980Sschweikh # router renumbering messages, specify your Router Renumbering 29104980Sschweikh # security policy by -R option. 30104980Sschweikh # 31104980Sschweikh # See `man 3 ipsec_set_policy` for IPsec policy specification 32104980Sschweikh # details. 33104980Sschweikh # (CAUTION: This enables your routers prefix renumbering 34104980Sschweikh # from another machine, so if you enable this, do it with 35104980Sschweikh # enough care.) 36104980Sschweikh # 37124622Smtm # If specific interfaces haven't been specified, 38124622Smtm # get a list of interfaces and enable it on them 39124622Smtm # 40124622Smtm case ${rtadvd_interfaces} in 41197140Shrs [Aa][Uu][Tt][Oo]|'') 42242074Sbrian command_args= 43222997Shrs for i in `list_net_interfaces`; do 44197528Shrs case $i in 45197528Shrs lo0) continue ;; 46197528Shrs esac 47197528Shrs if ipv6if $i; then 48242074Sbrian command_args="${command_args} ${i}" 49197146Shrs fi 50124622Smtm done 5198184Sgordon ;; 52247271Sdes [Nn][Oo][Nn][Ee]) 53247271Sdes ;; 54242074Sbrian *) 55242074Sbrian command_args="${rtadvd_interfaces}" 56242074Sbrian ;; 5798184Sgordon esac 58124622Smtm 59124622Smtm # Enable Router Renumbering, unicast case 60124622Smtm # (use correct src/dst addr) 61124622Smtm # rtadvd -R "in ipsec ah/transport/fec0:0:0:1::1-fec0:0:0:10::1/require" ${ipv6_network_interfaces} 62124622Smtm # Enable Router Renumbering, multicast case 63124622Smtm # (use correct src addr) 64124622Smtm # rtadvd -R "in ipsec ah/transport/ff05::2-fec0:0:0:10::1/require" ${ipv6_network_interfaces} 6598184Sgordon return 0 6678344Sobrien} 6778344Sobrien 68256878Sdesrtadvd_reload() { 69256878Sdes /usr/sbin/rtadvctl reload 70256878Sdes} 71256878Sdes 7278344Sobrienload_rc_config $name 7378344Sobrienrun_rc_command "$1" 74