defaultroute revision 64731
125184Sjkh#!/bin/sh - 225184Sjkh# 350472Speter# $FreeBSD: head/etc/rc.d/routing 64731 2000-08-16 23:08:28Z jhb $ 425184Sjkh# From: @(#)netstart 5.9 (Berkeley) 3/30/91 525184Sjkh 651231Ssheldonh# Note that almost all of the user-configurable behavior is no longer in 751231Ssheldonh# this file, but rather in /etc/defaults/rc.conf. Please check that file 825184Sjkh# first before contemplating any changes here. If you do need to change 925184Sjkh# this file for some reason, we would like to know about it. 1025184Sjkh 1125184Sjkh# First pass startup stuff. 1251231Ssheldonh# 1325184Sjkhnetwork_pass1() { 1451231Ssheldonh echo -n 'Doing initial network setup:' 1525184Sjkh 1651231Ssheldonh # Set the host name if it is not already set 1751231Ssheldonh # 1851231Ssheldonh if [ -z "`hostname -s`" ]; then 1951231Ssheldonh hostname ${hostname} 2051231Ssheldonh echo -n ' hostname' 2151231Ssheldonh fi 2225184Sjkh 2351231Ssheldonh # Set the domainname if we're using NIS 2451231Ssheldonh # 2551231Ssheldonh case ${nisdomainname} in 2651231Ssheldonh [Nn][Oo] | '') 2751231Ssheldonh ;; 2851231Ssheldonh *) 2951231Ssheldonh domainname ${nisdomainname} 3051231Ssheldonh echo -n ' domain' 3151231Ssheldonh ;; 3251231Ssheldonh esac 3340006Sphk 3451231Ssheldonh echo '.' 3542621Shm 3651231Ssheldonh # Initial ATM interface configuration 3751231Ssheldonh # 3851231Ssheldonh case ${atm_enable} in 3951231Ssheldonh [Yy][Ee][Ss]) 4051231Ssheldonh if [ -r /etc/rc.atm ]; then 4151231Ssheldonh . /etc/rc.atm 4251231Ssheldonh atm_pass1 4351231Ssheldonh fi 4451231Ssheldonh ;; 4551231Ssheldonh esac 4642627Sjoerg 4751231Ssheldonh # Special options for sppp(4) interfaces go here. These need 4851231Ssheldonh # to go _before_ the general ifconfig section, since in the case 4951231Ssheldonh # of hardwired (no link1 flag) but required authentication, you 5051231Ssheldonh # cannot pass auth parameters down to the already running interface. 5151231Ssheldonh # 5251231Ssheldonh for ifn in ${sppp_interfaces}; do 5351231Ssheldonh eval spppcontrol_args=\$spppconfig_${ifn} 5451231Ssheldonh if [ -n "${spppcontrol_args}" ]; then 5551231Ssheldonh # The auth secrets might contain spaces; in order 5651231Ssheldonh # to retain the quotation, we need to eval them 5751231Ssheldonh # here. 5851231Ssheldonh eval spppcontrol ${ifn} ${spppcontrol_args} 5951231Ssheldonh fi 6051231Ssheldonh done 6149122Sbrian 6251231Ssheldonh # Set up all the network interfaces, calling startup scripts if needed 6351231Ssheldonh # 6451231Ssheldonh case ${network_interfaces} in 6551231Ssheldonh [Aa][Uu][Tt][Oo]) 6651231Ssheldonh network_interfaces="`ifconfig -l`" 6751231Ssheldonh ;; 6851231Ssheldonh esac 6949122Sbrian 7054458Sobrien dhcp_interfaces="" 7151231Ssheldonh for ifn in ${network_interfaces}; do 7251231Ssheldonh if [ -r /etc/start_if.${ifn} ]; then 7351231Ssheldonh . /etc/start_if.${ifn} 7454458Sobrien eval showstat_$ifn=1 7551231Ssheldonh fi 7649122Sbrian 7751231Ssheldonh # Do the primary ifconfig if specified 7851231Ssheldonh # 7951231Ssheldonh eval ifconfig_args=\$ifconfig_${ifn} 8029300Sdanny 8151231Ssheldonh case ${ifconfig_args} in 8251231Ssheldonh '') 8351231Ssheldonh ;; 8451231Ssheldonh [Dd][Hh][Cc][Pp]) 8554458Sobrien # DHCP inits are done all in one go below 8654458Sobrien dhcp_interfaces="$dhcp_interfaces $ifn" 8754458Sobrien eval showstat_$ifn=1 8851231Ssheldonh ;; 8951231Ssheldonh *) 9051231Ssheldonh ifconfig ${ifn} ${ifconfig_args} 9154458Sobrien eval showstat_$ifn=1 9251231Ssheldonh ;; 9351231Ssheldonh esac 9454458Sobrien done 9551231Ssheldonh 9654458Sobrien if [ ! -z "${dhcp_interfaces}" ]; then 9754458Sobrien ${dhcp_program:-/sbin/dhclient} ${dhcp_flags} ${dhcp_interfaces} 9854458Sobrien fi 9954458Sobrien 10054458Sobrien for ifn in ${network_interfaces}; do 10151231Ssheldonh # Check to see if aliases need to be added 10251231Ssheldonh # 10351231Ssheldonh alias=0 10451231Ssheldonh while : ; do 10551231Ssheldonh eval ifconfig_args=\$ifconfig_${ifn}_alias${alias} 10651231Ssheldonh if [ -n "${ifconfig_args}" ]; then 10751231Ssheldonh ifconfig ${ifn} ${ifconfig_args} alias 10854458Sobrien eval showstat_$ifn=1 10951231Ssheldonh alias=`expr ${alias} + 1` 11051231Ssheldonh else 11151231Ssheldonh break; 11251231Ssheldonh fi 11351231Ssheldonh done 11451231Ssheldonh 11551231Ssheldonh # Do ipx address if specified 11651231Ssheldonh # 11751231Ssheldonh eval ifconfig_args=\$ifconfig_${ifn}_ipx 11851231Ssheldonh if [ -n "${ifconfig_args}" ]; then 11951231Ssheldonh ifconfig ${ifn} ${ifconfig_args} 12054458Sobrien eval showstat_$ifn=1 12151231Ssheldonh fi 12254458Sobrien done 12351231Ssheldonh 12454458Sobrien for ifn in ${network_interfaces}; do 12554458Sobrien eval showstat=\$showstat_${ifn} 12654458Sobrien if [ ! -z ${showstat} ]; then 12751231Ssheldonh ifconfig ${ifn} 12854458Sobrien fi 12951231Ssheldonh done 13051231Ssheldonh 13157012Shm # ISDN subsystem startup 13257012Shm # 13357012Shm case ${isdn_enable} in 13457012Shm [Yy][Ee][Ss]) 13557012Shm if [ -r /etc/rc.isdn ]; then 13657012Shm . /etc/rc.isdn 13757012Shm fi 13857012Shm ;; 13957012Shm esac 14057012Shm 14164471Sbrian # Start user ppp if required. This must happen before natd. 14251231Ssheldonh # 14351231Ssheldonh case ${ppp_enable} in 14451231Ssheldonh [Yy][Ee][Ss]) 14551231Ssheldonh # Establish ppp mode. 14651231Ssheldonh # 14751231Ssheldonh if [ "${ppp_mode}" != "ddial" -a "${ppp_mode}" != "direct" \ 14851231Ssheldonh -a "${ppp_mode}" != "dedicated" \ 14951231Ssheldonh -a "${ppp_mode}" != "background" ]; then 15064471Sbrian ppp_mode="auto" 15151231Ssheldonh fi 15251231Ssheldonh 15364471Sbrian ppp_command="/usr/sbin/ppp -quiet -${ppp_mode}" 15451231Ssheldonh 15564471Sbrian # Switch on NAT mode? 15651231Ssheldonh # 15751231Ssheldonh case ${ppp_nat} in 15851231Ssheldonh [Yy][Ee][Ss]) 15964471Sbrian ppp_command="${ppp_command} -nat" 16051231Ssheldonh ;; 16151231Ssheldonh esac 16251231Ssheldonh 16364471Sbrian ppp_command="${ppp_command} ${ppp_profile}" 16464471Sbrian 16564471Sbrian echo -n "Starting ppp as \"${ppp_user}\"" 16664471Sbrian su ${ppp_user} -c "exec ${ppp_command}" 16751231Ssheldonh ;; 16851231Ssheldonh esac 16951231Ssheldonh 17051231Ssheldonh # Initialize IP filtering using ipfw 17151231Ssheldonh # 17251231Ssheldonh if /sbin/ipfw -q flush > /dev/null 2>&1; then 17351231Ssheldonh firewall_in_kernel=1 17429300Sdanny else 17551231Ssheldonh firewall_in_kernel=0 17629300Sdanny fi 17729300Sdanny 17851231Ssheldonh case ${firewall_enable} in 17951231Ssheldonh [Yy][Ee][Ss]) 18051231Ssheldonh if [ "${firewall_in_kernel}" -eq 0 ] && kldload ipfw; then 18151231Ssheldonh firewall_in_kernel=1 18251231Ssheldonh echo "Kernel firewall module loaded." 18351231Ssheldonh elif [ "${firewall_in_kernel}" -eq 0 ]; then 18451231Ssheldonh echo "Warning: firewall kernel module failed to load." 18551231Ssheldonh fi 18651231Ssheldonh ;; 18751231Ssheldonh esac 18844992Sbrian 18951231Ssheldonh # Load the filters if required 19051231Ssheldonh # 19151231Ssheldonh case ${firewall_in_kernel} in 19251231Ssheldonh 1) 19351231Ssheldonh if [ -z "${firewall_script}" ]; then 19451231Ssheldonh firewall_script=/etc/rc.firewall 19544992Sbrian fi 19651231Ssheldonh 19751231Ssheldonh case ${firewall_enable} in 19851231Ssheldonh [Yy][Ee][Ss]) 19951426Sgreen if [ -r "${firewall_script}" ]; then 20051426Sgreen . "${firewall_script}" 20151231Ssheldonh echo -n 'Firewall rules loaded, starting divert daemons:' 20251231Ssheldonh 20351231Ssheldonh # Network Address Translation daemon 20451231Ssheldonh # 20551231Ssheldonh case ${natd_enable} in 20651231Ssheldonh [Yy][Ee][Ss]) 20751231Ssheldonh if [ -n "${natd_interface}" ]; then 20851231Ssheldonh if echo ${natd_interface} | \ 20951231Ssheldonh grep -q -E '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$'; then 21051231Ssheldonh natd_ifarg="-a ${natd_interface}" 21151231Ssheldonh else 21251231Ssheldonh natd_ifarg="-n ${natd_interface}" 21351231Ssheldonh fi 21451231Ssheldonh 21551231Ssheldonh echo -n ' natd'; ${natd_program:-/sbin/natd} ${natd_flags} ${natd_ifarg} 21651231Ssheldonh fi 21751231Ssheldonh ;; 21851231Ssheldonh esac 21951231Ssheldonh 22051231Ssheldonh echo '.' 22151231Ssheldonh 22251231Ssheldonh elif [ "`ipfw l 65535`" = "65535 deny ip from any to any" ]; then 22351231Ssheldonh echo -n "Warning: kernel has firewall functionality, " 22451231Ssheldonh echo "but firewall rules are not enabled." 22551231Ssheldonh echo " All ip services are disabled." 22651231Ssheldonh fi 22760103Sache 22860103Sache case ${firewall_logging} in 22960103Sache [Yy][Ee][Ss] | '') 23060103Sache echo 'Firewall logging=YES' 23160103Sache sysctl -w net.inet.ip.fw.verbose=1 >/dev/null 23260103Sache ;; 23360103Sache *) 23460103Sache ;; 23560103Sache esac 23660103Sache 23751231Ssheldonh ;; 23851231Ssheldonh esac 23951231Ssheldonh ;; 24051231Ssheldonh esac 24151231Ssheldonh 24251231Ssheldonh # Additional ATM interface configuration 24351231Ssheldonh # 24451231Ssheldonh if [ -n "${atm_pass1_done}" ]; then 24551231Ssheldonh atm_pass2 24629300Sdanny fi 24725184Sjkh 24851231Ssheldonh # Configure routing 24951231Ssheldonh # 25051231Ssheldonh case ${defaultrouter} in 25151231Ssheldonh [Nn][Oo] | '') 25251231Ssheldonh ;; 25351231Ssheldonh *) 25451231Ssheldonh static_routes="default ${static_routes}" 25551231Ssheldonh route_default="default ${defaultrouter}" 25651231Ssheldonh ;; 25751231Ssheldonh esac 25840006Sphk 25951231Ssheldonh # Set up any static routes. This should be done before router discovery. 26051231Ssheldonh # 26151231Ssheldonh if [ -n "${static_routes}" ]; then 26251231Ssheldonh for i in ${static_routes}; do 26351231Ssheldonh eval route_args=\$route_${i} 26451231Ssheldonh route add ${route_args} 26551231Ssheldonh done 26651231Ssheldonh fi 26729300Sdanny 26851231Ssheldonh echo -n 'Additional routing options:' 26951231Ssheldonh case ${tcp_extensions} in 27051231Ssheldonh [Yy][Ee][Ss] | '') 27151231Ssheldonh ;; 27251231Ssheldonh *) 27351231Ssheldonh echo -n ' tcp extensions=NO' 27451231Ssheldonh sysctl -w net.inet.tcp.rfc1323=0 >/dev/null 27551231Ssheldonh ;; 27651231Ssheldonh esac 27725184Sjkh 27851231Ssheldonh case ${icmp_bmcastecho} in 27951231Ssheldonh [Yy][Ee][Ss]) 28051231Ssheldonh echo -n ' broadcast ping responses=YES' 28151231Ssheldonh sysctl -w net.inet.icmp.bmcastecho=1 >/dev/null 28251231Ssheldonh ;; 28351231Ssheldonh esac 28445096Simp 28551231Ssheldonh case ${icmp_drop_redirect} in 28651231Ssheldonh [Yy][Ee][Ss]) 28751231Ssheldonh echo -n ' ignore ICMP redirect=YES' 28851231Ssheldonh sysctl -w net.inet.icmp.drop_redirect=1 >/dev/null 28951231Ssheldonh ;; 29051231Ssheldonh esac 29139267Sjkoshy 29251231Ssheldonh case ${icmp_log_redirect} in 29351231Ssheldonh [Yy][Ee][Ss]) 29451231Ssheldonh echo -n ' log ICMP redirect=YES' 29551231Ssheldonh sysctl -w net.inet.icmp.log_redirect=1 >/dev/null 29651231Ssheldonh ;; 29751231Ssheldonh esac 29833439Sguido 29951231Ssheldonh case ${gateway_enable} in 30051231Ssheldonh [Yy][Ee][Ss]) 30151231Ssheldonh echo -n ' IP gateway=YES' 30251231Ssheldonh sysctl -w net.inet.ip.forwarding=1 >/dev/null 30351231Ssheldonh ;; 30451231Ssheldonh esac 30533439Sguido 30651231Ssheldonh case ${forward_sourceroute} in 30751231Ssheldonh [Yy][Ee][Ss]) 30851231Ssheldonh echo -n ' do source routing=YES' 30951231Ssheldonh sysctl -w net.inet.ip.sourceroute=1 >/dev/null 31051231Ssheldonh ;; 31151231Ssheldonh esac 31247752Sphk 31351231Ssheldonh case ${accept_sourceroute} in 31451231Ssheldonh [Yy][Ee][Ss]) 31551231Ssheldonh echo -n ' accept source routing=YES' 31651231Ssheldonh sysctl -w net.inet.ip.accept_sourceroute=1 >/dev/null 31751231Ssheldonh ;; 31851231Ssheldonh esac 31951209Sdes 32051231Ssheldonh case ${tcp_keepalive} in 32151231Ssheldonh [Yy][Ee][Ss]) 32251231Ssheldonh echo -n ' TCP keepalive=YES' 32351231Ssheldonh sysctl -w net.inet.tcp.always_keepalive=1 >/dev/null 32451231Ssheldonh ;; 32551231Ssheldonh esac 32651209Sdes 32751231Ssheldonh case ${tcp_restrict_rst} in 32851231Ssheldonh [Yy][Ee][Ss]) 32951231Ssheldonh echo -n ' restrict TCP reset=YES' 33051231Ssheldonh sysctl -w net.inet.tcp.restrict_rst=1 >/dev/null 33151231Ssheldonh ;; 33251231Ssheldonh esac 33336174Sjkh 33451231Ssheldonh case ${tcp_drop_synfin} in 33551231Ssheldonh [Yy][Ee][Ss]) 33651231Ssheldonh echo -n ' drop SYN+FIN packets=YES' 33751231Ssheldonh sysctl -w net.inet.tcp.drop_synfin=1 >/dev/null 33851231Ssheldonh ;; 33951231Ssheldonh esac 34036174Sjkh 34151231Ssheldonh case ${ipxgateway_enable} in 34251231Ssheldonh [Yy][Ee][Ss]) 34351231Ssheldonh echo -n ' IPX gateway=YES' 34451231Ssheldonh sysctl -w net.ipx.ipx.ipxforwarding=1 >/dev/null 34551231Ssheldonh ;; 34651231Ssheldonh esac 34751231Ssheldonh 34851231Ssheldonh case ${arpproxy_all} in 34951231Ssheldonh [Yy][Ee][Ss]) 35051231Ssheldonh echo -n ' ARP proxyall=YES' 35151231Ssheldonh sysctl -w net.link.ether.inet.proxyall=1 >/dev/null 35251231Ssheldonh ;; 35351231Ssheldonh esac 35461961Sdillon 35561961Sdillon case ${ip_portrange_first} in 35661961Sdillon [Nn][Oo] | '') 35761961Sdillon ;; 35861961Sdillon *) 35961961Sdillon echo -n ' ip_portrange_first=$ip_portrange_first' 36061961Sdillon sysctl -w net.inet.ip.portrange.first=$ip_portrange_first >/dev/null 36161961Sdillon ;; 36261961Sdillon esac 36361961Sdillon 36461961Sdillon case ${ip_portrange_last} in 36561961Sdillon [Nn][Oo] | '') 36664731Sjhb ;; 36761961Sdillon *) 36861961Sdillon echo -n ' ip_portrange_last=$ip_portrange_last' 36961961Sdillon sysctl -w net.inet.ip.portrange.last=$ip_portrange_last >/dev/null 37061961Sdillon ;; 37161961Sdillon esac 37261961Sdillon 37351231Ssheldonh echo '.' 37451231Ssheldonh 37560628Sdillon case ${ipsec_enable} in 37660628Sdillon [Yy][Ee][Ss]) 37760628Sdillon if [ -f ${ipsec_file} ]; then 37860628Sdillon echo ' ipsec: enabled' 37960628Sdillon setkey -f ${ipsec_file} 38060628Sdillon else 38160628Sdillon echo ' ipsec: file not found' 38260628Sdillon fi 38360628Sdillon ;; 38460628Sdillon esac 38560628Sdillon 38651231Ssheldonh echo -n 'routing daemons:' 38751231Ssheldonh case ${router_enable} in 38851231Ssheldonh [Yy][Ee][Ss]) 38951231Ssheldonh echo -n " ${router}"; ${router} ${router_flags} 39051231Ssheldonh ;; 39151231Ssheldonh esac 39251231Ssheldonh 39351231Ssheldonh case ${ipxrouted_enable} in 39451231Ssheldonh [Yy][Ee][Ss]) 39551231Ssheldonh echo -n ' IPXrouted' 39651231Ssheldonh IPXrouted ${ipxrouted_flags} > /dev/null 2>&1 39751231Ssheldonh ;; 39851231Ssheldonh esac 39951231Ssheldonh 40051231Ssheldonh case ${mrouted_enable} in 40151231Ssheldonh [Yy][Ee][Ss]) 40251231Ssheldonh echo -n ' mrouted'; mrouted ${mrouted_flags} 40351231Ssheldonh ;; 40451231Ssheldonh esac 40551231Ssheldonh 40651231Ssheldonh case ${rarpd_enable} in 40751231Ssheldonh [Yy][Ee][Ss]) 40851231Ssheldonh echo -n ' rarpd'; rarpd ${rarpd_flags} 40951231Ssheldonh ;; 41051231Ssheldonh esac 41151231Ssheldonh echo '.' 41251231Ssheldonh 41351231Ssheldonh # Let future generations know we made it. 41451231Ssheldonh # 41551231Ssheldonh network_pass1_done=YES 41625184Sjkh} 41725184Sjkh 41825184Sjkhnetwork_pass2() { 41951231Ssheldonh echo -n 'Doing additional network setup:' 42051231Ssheldonh case ${named_enable} in 42151231Ssheldonh [Yy][Ee][Ss]) 42251231Ssheldonh echo -n ' named'; ${named_program:-named} ${named_flags} 42351231Ssheldonh ;; 42451231Ssheldonh esac 42525184Sjkh 42651231Ssheldonh case ${ntpdate_enable} in 42751231Ssheldonh [Yy][Ee][Ss]) 42851231Ssheldonh echo -n ' ntpdate' 42951231Ssheldonh ${ntpdate_program:-ntpdate} ${ntpdate_flags} >/dev/null 2>&1 43051231Ssheldonh ;; 43151231Ssheldonh esac 43225184Sjkh 43351231Ssheldonh case ${xntpd_enable} in 43451231Ssheldonh [Yy][Ee][Ss]) 43554739Sroberto echo -n ' ntpd'; ${xntpd_program:-ntpd} ${xntpd_flags} 43651231Ssheldonh ;; 43751231Ssheldonh esac 43825184Sjkh 43951231Ssheldonh case ${timed_enable} in 44051231Ssheldonh [Yy][Ee][Ss]) 44151231Ssheldonh echo -n ' timed'; timed ${timed_flags} 44251231Ssheldonh ;; 44351231Ssheldonh esac 44425184Sjkh 44551231Ssheldonh case ${portmap_enable} in 44651231Ssheldonh [Yy][Ee][Ss]) 44751231Ssheldonh echo -n ' portmap'; ${portmap_program:-/usr/sbin/portmap} ${portmap_flags} 44851231Ssheldonh ;; 44951231Ssheldonh esac 45025184Sjkh 45151231Ssheldonh # Start ypserv if we're an NIS server. 45251231Ssheldonh # Run rpc.ypxfrd and rpc.yppasswdd only on the NIS master server. 45351231Ssheldonh # 45451231Ssheldonh case ${nis_server_enable} in 45551231Ssheldonh [Yy][Ee][Ss]) 45651231Ssheldonh echo -n ' ypserv'; ypserv ${nis_server_flags} 45725184Sjkh 45851231Ssheldonh case ${nis_ypxfrd_enable} in 45951231Ssheldonh [Yy][Ee][Ss]) 46051231Ssheldonh echo -n ' rpc.ypxfrd' 46151231Ssheldonh rpc.ypxfrd ${nis_ypxfrd_flags} 46251231Ssheldonh ;; 46351231Ssheldonh esac 46425184Sjkh 46551231Ssheldonh case ${nis_yppasswdd_enable} in 46651231Ssheldonh [Yy][Ee][Ss]) 46751231Ssheldonh echo -n ' rpc.yppasswdd' 46851231Ssheldonh rpc.yppasswdd ${nis_yppasswdd_flags} 46951231Ssheldonh ;; 47051231Ssheldonh esac 47151231Ssheldonh ;; 47251231Ssheldonh esac 47335149Smarkm 47451231Ssheldonh # Start ypbind if we're an NIS client 47551231Ssheldonh # 47651231Ssheldonh case ${nis_client_enable} in 47751231Ssheldonh [Yy][Ee][Ss]) 47851231Ssheldonh echo -n ' ypbind'; ypbind ${nis_client_flags} 47951231Ssheldonh case ${nis_ypset_enable} in 48051231Ssheldonh [Yy][Ee][Ss]) 48151231Ssheldonh echo -n ' ypset'; ypset ${nis_ypset_flags} 48251231Ssheldonh ;; 48351231Ssheldonh esac 48451231Ssheldonh ;; 48551231Ssheldonh esac 48640006Sphk 48751231Ssheldonh # Start keyserv if we are running Secure RPC 48851231Ssheldonh # 48951231Ssheldonh case ${keyserv_enable} in 49051231Ssheldonh [Yy][Ee][Ss]) 49151231Ssheldonh echo -n ' keyserv'; keyserv ${keyserv_flags} 49251231Ssheldonh ;; 49351231Ssheldonh esac 49451231Ssheldonh 49551231Ssheldonh # Start ypupdated if we are running Secure RPC and we are NIS master 49651231Ssheldonh # 49751231Ssheldonh case ${rpc_ypupdated_enable} in 49851231Ssheldonh [Yy][Ee][Ss]) 49951231Ssheldonh echo -n ' rpc.ypupdated'; rpc.ypupdated 50051231Ssheldonh ;; 50151231Ssheldonh esac 50251231Ssheldonh 50351231Ssheldonh # Start ATM daemons 50451231Ssheldonh if [ -n "${atm_pass2_done}" ]; then 50551231Ssheldonh atm_pass3 50651231Ssheldonh fi 50751231Ssheldonh 50851231Ssheldonh echo '.' 50951231Ssheldonh network_pass2_done=YES 51025184Sjkh} 51125184Sjkh 51225184Sjkhnetwork_pass3() { 51351231Ssheldonh echo -n 'Starting final network daemons:' 51425184Sjkh 51551231Ssheldonh case ${nfs_server_enable} in 51651231Ssheldonh [Yy][Ee][Ss]) 51751231Ssheldonh if [ -r /etc/exports ]; then 51851231Ssheldonh echo -n ' mountd' 51951231Ssheldonh 52051231Ssheldonh case ${weak_mountd_authentication} in 52151231Ssheldonh [Yy][Ee][Ss]) 52263147Snbm mountd_flags="${mountd_flags} -n" 52351231Ssheldonh ;; 52451231Ssheldonh esac 52551231Ssheldonh 52651231Ssheldonh mountd ${mountd_flags} 52751231Ssheldonh 52851231Ssheldonh case ${nfs_reserved_port_only} in 52951231Ssheldonh [Yy][Ee][Ss]) 53051231Ssheldonh echo -n ' NFS on reserved port only=YES' 53151231Ssheldonh sysctl -w vfs.nfs.nfs_privport=1 >/dev/null 53251231Ssheldonh ;; 53351231Ssheldonh esac 53451231Ssheldonh 53551231Ssheldonh echo -n ' nfsd'; nfsd ${nfs_server_flags} 53651231Ssheldonh 53758710Sdillon if [ -n "${nfs_bufpackets}" ]; then 53858710Sdillon sysctl -w vfs.nfs.bufpackets=${nfs_bufpackets} \ 53958710Sdillon > /dev/null 54058710Sdillon fi 54158710Sdillon 54251231Ssheldonh case ${rpc_lockd_enable} in 54351231Ssheldonh [Yy][Ee][Ss]) 54451231Ssheldonh echo -n ' rpc.lockd'; rpc.lockd 54551231Ssheldonh ;; 54651231Ssheldonh esac 54751231Ssheldonh 54851231Ssheldonh case ${rpc_statd_enable} in 54951231Ssheldonh [Yy][Ee][Ss]) 55051231Ssheldonh echo -n ' rpc.statd'; rpc.statd 55151231Ssheldonh ;; 55251231Ssheldonh esac 55351231Ssheldonh fi 55451231Ssheldonh ;; 55553158Sache *) 55653158Sache case ${single_mountd_enable} in 55753158Sache [Yy][Ee][Ss]) 55853158Sache if [ -r /etc/exports ]; then 55953158Sache echo -n ' mountd' 56053158Sache 56153158Sache case ${weak_mountd_authentication} in 56253158Sache [Yy][Ee][Ss]) 56353158Sache mountd_flags="-n" 56453158Sache ;; 56553158Sache esac 56653158Sache 56753158Sache mountd ${mountd_flags} 56853158Sache fi 56953158Sache ;; 57053158Sache esac 57153158Sache ;; 57251231Ssheldonh esac 57351231Ssheldonh 57451231Ssheldonh case ${nfs_client_enable} in 57551231Ssheldonh [Yy][Ee][Ss]) 57651231Ssheldonh echo -n ' nfsiod'; nfsiod ${nfs_client_flags} 57751231Ssheldonh if [ -n "${nfs_access_cache}" ]; then 57847755Sbde echo -n " NFS access cache time=${nfs_access_cache}" 57941371Sjkoshy sysctl -w vfs.nfs.access_cache_timeout=${nfs_access_cache} \ 58051231Ssheldonh >/dev/null 58151231Ssheldonh fi 58251231Ssheldonh ;; 58351231Ssheldonh esac 58425184Sjkh 58556038Sgreen # If /var/db/mounttab exists, some nfs-server has not been 58656038Sgreen # sucessfully notified about a previous client shutdown. 58756038Sgreen # If there is no /var/db/mounttab, we do nothing. 58856038Sgreen if [ -f /var/db/mounttab ]; then 58956038Sgreen rpc.umntall -k 59056038Sgreen fi 59156038Sgreen 59251231Ssheldonh case ${amd_enable} in 59351231Ssheldonh [Yy][Ee][Ss]) 59451231Ssheldonh echo -n ' amd' 59551231Ssheldonh case ${amd_map_program} in 59651231Ssheldonh [Nn][Oo] | '') 59751231Ssheldonh ;; 59851231Ssheldonh *) 59951231Ssheldonh amd_flags="${amd_flags} `eval ${amd_map_program}`" 60051231Ssheldonh ;; 60151231Ssheldonh esac 60225184Sjkh 60351231Ssheldonh if [ -n "${amd_flags}" ]; then 60451231Ssheldonh amd -p ${amd_flags} > /var/run/amd.pid 2> /dev/null 60551231Ssheldonh else 60651231Ssheldonh amd 2> /dev/null 60751231Ssheldonh fi 60851231Ssheldonh ;; 60951231Ssheldonh esac 61025184Sjkh 61151231Ssheldonh case ${rwhod_enable} in 61251231Ssheldonh [Yy][Ee][Ss]) 61351231Ssheldonh echo -n ' rwhod'; rwhod ${rwhod_flags} 61451231Ssheldonh ;; 61551231Ssheldonh esac 61651231Ssheldonh 61751231Ssheldonh # Kerberos runs ONLY on the Kerberos server machine 61851231Ssheldonh case ${kerberos_server_enable} in 61951231Ssheldonh [Yy][Ee][Ss]) 62051231Ssheldonh case ${kerberos_stash} in 62151231Ssheldonh [Yy][Ee][Ss]) 62251231Ssheldonh stash_flag=-n 62351231Ssheldonh ;; 62451231Ssheldonh *) 62551231Ssheldonh stash_flag= 62651231Ssheldonh ;; 62751231Ssheldonh esac 62851231Ssheldonh 62951231Ssheldonh echo -n ' kerberos' 63038316Sphk kerberos ${stash_flag} >> /var/log/kerberos.log & 63151231Ssheldonh 63251231Ssheldonh case ${kadmind_server_enable} in 63351231Ssheldonh [Yy][Ee][Ss]) 63451231Ssheldonh echo -n ' kadmind' 63551231Ssheldonh (sleep 20; kadmind ${stash_flag} >/dev/null 2>&1 &) & 63651231Ssheldonh ;; 63751231Ssheldonh esac 63851231Ssheldonh unset stash_flag 63951231Ssheldonh ;; 64051231Ssheldonh esac 64151231Ssheldonh 64253611Sbrian case ${pppoed_enable} in 64353611Sbrian [Yy][Ee][Ss]) 64453613Sbrian if [ -n "${pppoed_provider}" ]; then 64553611Sbrian pppoed_flags="${pppoed_flags} -p ${pppoed_provider}" 64653611Sbrian fi 64753611Sbrian echo -n ' pppoed'; 64853611Sbrian /usr/libexec/pppoed ${pppoed_flags} ${pppoed_interface} 64953611Sbrian ;; 65053611Sbrian esac 65153611Sbrian 65257459Smarkm case ${sshd_enable} in 65357459Smarkm [Yy][Ee][Ss]) 65457567Sjkh if [ ! -f /etc/ssh/ssh_host_key ]; then 65560578Skris echo ' creating ssh RSA host key'; 65657567Sjkh /usr/bin/ssh-keygen -N "" -f /etc/ssh/ssh_host_key 65757567Sjkh fi 65860578Skris if [ ! -f /etc/ssh/ssh_host_dsa_key ]; then 65960578Skris echo ' creating ssh DSA host key'; 66060578Skris /usr/bin/ssh-keygen -d -N "" -f /etc/ssh/ssh_host_dsa_key 66160578Skris fi 66260578Skris ;; 66357459Smarkm esac 66457459Smarkm 66551231Ssheldonh echo '.' 66651231Ssheldonh network_pass3_done=YES 66725184Sjkh} 66853314Sache 66953314Sachenetwork_pass4() { 67053314Sache echo -n 'Additional TCP options:' 67153314Sache case ${log_in_vain} in 67253314Sache [Nn][Oo] | '') 67353314Sache ;; 67453314Sache *) 67553314Sache echo -n ' log_in_vain=YES' 67653314Sache sysctl -w net.inet.tcp.log_in_vain=1 >/dev/null 67753314Sache sysctl -w net.inet.udp.log_in_vain=1 >/dev/null 67853314Sache ;; 67953314Sache esac 68053314Sache 68153314Sache echo '.' 68253314Sache network_pass4_done=YES 68353314Sache} 684