routing revision 117032
11638Srgrimes#!/bin/sh
21638Srgrimes#
31638Srgrimes# Configure routing and miscellaneous network tunables
41638Srgrimes#
51638Srgrimes# $FreeBSD: head/etc/rc.d/routing 117032 2003-06-29 17:59:09Z mtm $
61638Srgrimes#
71638Srgrimes
81638Srgrimes# PROVIDE: routing
91638Srgrimes# REQUIRE: netif ppp-user
101638Srgrimes# KEYWORD: FreeBSD
111638Srgrimes
121638Srgrimes. /etc/rc.subr
131638Srgrimes
141638Srgrimesname="routing"
151638Srgrimesstart_cmd="routing_start"
161638Srgrimesstop_cmd="routing_stop"
171638Srgrimesextra_commands="options static"
181638Srgrimesstatic_cmd="static_start"
191638Srgrimesoptions_cmd="options_start"
201638Srgrimes
211638Srgrimesrouting_start()
221638Srgrimes{
231638Srgrimes	static_start
241638Srgrimes	options_start
251638Srgrimes}
261638Srgrimes
271638Srgrimesrouting_stop()
281638Srgrimes{
291638Srgrimes	route -n flush
301638Srgrimes}
311638Srgrimes
321638Srgrimesstatic_start()
331638Srgrimes{
341638Srgrimes	case ${defaultrouter} in
351638Srgrimes	[Nn][Oo] | '')
361638Srgrimes		;;
371638Srgrimes	*)
381638Srgrimes		static_routes="default ${static_routes}"
391638Srgrimes		route_default="default ${defaultrouter}"
401638Srgrimes		;;
411638Srgrimes	esac
421638Srgrimes
431638Srgrimes	# Setup static routes. This should be done before router discovery.
441638Srgrimes	#
451638Srgrimes	if [ -n "${static_routes}" ]; then
461638Srgrimes		for i in ${static_routes}; do
471638Srgrimes			eval route_args=\$route_${i}
481638Srgrimes			route add ${route_args}
491638Srgrimes		done
501638Srgrimes	fi
511638Srgrimes}
521638Srgrimes
531638Srgrimesoptions_start()
541638Srgrimes{
551638Srgrimes	echo -n 'Additional routing options:'
561638Srgrimes	case ${tcp_extensions} in
571638Srgrimes	[Yy][Ee][Ss] | '')
581638Srgrimes		;;
591638Srgrimes	*)
601638Srgrimes		echo -n ' tcp extensions=NO'
611638Srgrimes		sysctl net.inet.tcp.rfc1323=0 >/dev/null
621638Srgrimes		;;
631638Srgrimes	esac
641638Srgrimes
651638Srgrimes	case ${icmp_bmcastecho} in
661638Srgrimes	[Yy][Ee][Ss])
671638Srgrimes		echo -n ' broadcast ping responses=YES'
681638Srgrimes		sysctl net.inet.icmp.bmcastecho=1 >/dev/null
691638Srgrimes		;;
701638Srgrimes	esac
711638Srgrimes
721638Srgrimes	case ${icmp_drop_redirect} in
731638Srgrimes	[Yy][Ee][Ss])
741638Srgrimes		echo -n ' ignore ICMP redirect=YES'
751638Srgrimes		sysctl net.inet.icmp.drop_redirect=1 >/dev/null
761638Srgrimes		;;
771638Srgrimes	esac
781638Srgrimes
791638Srgrimes	case ${icmp_log_redirect} in
801638Srgrimes	[Yy][Ee][Ss])
811638Srgrimes		echo -n ' log ICMP redirect=YES'
821638Srgrimes		sysctl net.inet.icmp.log_redirect=1 >/dev/null
831638Srgrimes		;;
841638Srgrimes	esac
851638Srgrimes
861638Srgrimes	case ${gateway_enable} in
871638Srgrimes	[Yy][Ee][Ss])
881638Srgrimes		echo -n ' IP gateway=YES'
891638Srgrimes		sysctl net.inet.ip.forwarding=1 >/dev/null
901638Srgrimes		;;
911638Srgrimes	esac
921638Srgrimes
931638Srgrimes	case ${forward_sourceroute} in
941638Srgrimes	[Yy][Ee][Ss])
951638Srgrimes		echo -n ' do source routing=YES'
961638Srgrimes		sysctl net.inet.ip.sourceroute=1 >/dev/null
971638Srgrimes		;;
981638Srgrimes	esac
991638Srgrimes
1001638Srgrimes	case ${accept_sourceroute} in
1011638Srgrimes	[Yy][Ee][Ss])
1021638Srgrimes		echo -n ' accept source routing=YES'
1031638Srgrimes		sysctl net.inet.ip.accept_sourceroute=1 >/dev/null
1041638Srgrimes		;;
1051638Srgrimes	esac
1061638Srgrimes
1071638Srgrimes	case ${tcp_keepalive} in
1081638Srgrimes	[Nn][Oo])
1091638Srgrimes		echo -n ' TCP keepalive=NO'
1101638Srgrimes		sysctl net.inet.tcp.always_keepalive=0 >/dev/null
1111638Srgrimes		;;
1121638Srgrimes	esac
1131638Srgrimes
1141638Srgrimes	case ${tcp_drop_synfin} in
1151638Srgrimes	[Yy][Ee][Ss])
1161638Srgrimes		echo -n ' drop SYN+FIN packets=YES'
1171638Srgrimes		sysctl net.inet.tcp.drop_synfin=1 >/dev/null
1181638Srgrimes		;;
1191638Srgrimes	esac
1201638Srgrimes
1211638Srgrimes	case ${ipxgateway_enable} in
1221638Srgrimes	[Yy][Ee][Ss])
1231638Srgrimes		echo -n ' IPX gateway=YES'
1241638Srgrimes		sysctl net.ipx.ipx.ipxforwarding=1 >/dev/null
1251638Srgrimes		;;
1261638Srgrimes	esac
1271638Srgrimes
1281638Srgrimes	case ${arpproxy_all} in
1291638Srgrimes	[Yy][Ee][Ss])
1301638Srgrimes		echo -n ' ARP proxyall=YES'
1311638Srgrimes		sysctl net.link.ether.inet.proxyall=1 >/dev/null
1321638Srgrimes		;;
1331638Srgrimes	esac
1341638Srgrimes
1351638Srgrimes	case ${ip_portrange_first} in
1361638Srgrimes	[Nn][Oo] | '')
1371638Srgrimes		;;
1381638Srgrimes	*)
1391638Srgrimes		echo -n " ip_portrange_first=$ip_portrange_first"
1401638Srgrimes		sysctl net.inet.ip.portrange.first=$ip_portrange_first >/dev/null
1411638Srgrimes		;;
1421638Srgrimes	esac
1431638Srgrimes
1441638Srgrimes	case ${ip_portrange_last} in
1451638Srgrimes	[Nn][Oo] | '')
1461638Srgrimes		;;
1471638Srgrimes	*)
1481638Srgrimes		echo -n " ip_portrange_last=$ip_portrange_last"
1491638Srgrimes		sysctl net.inet.ip.portrange.last=$ip_portrange_last >/dev/null
1501638Srgrimes		;;
1511638Srgrimes	esac
1521638Srgrimes
1531638Srgrimes	echo '.'
1541638Srgrimes}
1551638Srgrimes
1561638Srgrimesload_rc_config $name
1571638Srgrimesrun_rc_command "$1"
1581638Srgrimes