routing revision 151806
1198160Srrs#!/bin/sh
2198160Srrs#
3198160Srrs# Configure routing and miscellaneous network tunables
4198160Srrs#
5198160Srrs# $FreeBSD: head/etc/rc.d/routing 151806 2005-10-28 16:07:52Z yar $
6198160Srrs#
7198160Srrs
8198160Srrs# PROVIDE: routing
9198160Srrs# REQUIRE: netif ppp
10198160Srrs# KEYWORD: nojail
11198160Srrs
12198160Srrs. /etc/rc.subr
13198160Srrs
14198160Srrsname="routing"
15198160Srrsstart_cmd="routing_start"
16198160Srrsstop_cmd="routing_stop"
17198160Srrsextra_commands="options static"
18198160Srrsstatic_cmd="static_start"
19198160Srrsoptions_cmd="options_start"
20198160Srrs
21198160Srrsrouting_start()
22198160Srrs{
23198160Srrs	static_start
24198160Srrs	options_start
25198160Srrs}
26198160Srrs
27198160Srrsrouting_stop()
28198160Srrs{
29198160Srrs	route -n flush
30198160Srrs}
31198160Srrs
32198160Srrsstatic_start()
33198625Srrs{
34198160Srrs	case ${defaultrouter} in
35198160Srrs	[Nn][Oo] | '')
36198625Srrs		;;
37198160Srrs	*)
38198160Srrs		static_routes="default ${static_routes}"
39198160Srrs		route_default="default ${defaultrouter}"
40198625Srrs		;;
41198625Srrs	esac
42198625Srrs
43198625Srrs	# Setup static routes. This should be done before router discovery.
44198625Srrs	#
45198625Srrs	if [ -n "${static_routes}" ]; then
46198625Srrs		for i in ${static_routes}; do
47198625Srrs			eval route_args=\$route_${i}
48198625Srrs			route add ${route_args}
49198625Srrs		done
50198625Srrs	fi
51198625Srrs	# Now ATM static routes
52198625Srrs	#
53198625Srrs	if [ -n "${natm_static_routes}" ]; then
54198625Srrs		for i in ${natm_static_routes}; do
55198625Srrs			eval route_args=\$route_${i}
56198160Srrs			atmconfig natm add ${route_args}
57198160Srrs		done
58198160Srrs	fi
59198160Srrs}
60198160Srrs
61198625Srrsoptions_start()
62198625Srrs{
63198625Srrs	echo -n 'Additional routing options:'
64198625Srrs	case ${tcp_extensions} in
65198625Srrs	[Yy][Ee][Ss] | '')
66198625Srrs		;;
67198625Srrs	*)
68198625Srrs		echo -n ' tcp extensions=NO'
69198625Srrs		sysctl net.inet.tcp.rfc1323=0 >/dev/null
70198625Srrs		;;
71198625Srrs	esac
72198625Srrs
73198625Srrs	case ${icmp_bmcastecho} in
74198625Srrs	[Yy][Ee][Ss])
75198625Srrs		echo -n ' broadcast ping responses=YES'
76198625Srrs		sysctl net.inet.icmp.bmcastecho=1 >/dev/null
77198625Srrs		;;
78198625Srrs	esac
79198160Srrs
80198160Srrs	case ${icmp_drop_redirect} in
81198625Srrs	[Yy][Ee][Ss])
82198625Srrs		echo -n ' ignore ICMP redirect=YES'
83198625Srrs		sysctl net.inet.icmp.drop_redirect=1 >/dev/null
84198625Srrs		;;
85198625Srrs	esac
86198625Srrs
87198625Srrs	case ${icmp_log_redirect} in
88198625Srrs	[Yy][Ee][Ss])
89198625Srrs		echo -n ' log ICMP redirect=YES'
90198625Srrs		sysctl net.inet.icmp.log_redirect=1 >/dev/null
91198625Srrs		;;
92198625Srrs	esac
93198625Srrs
94198625Srrs	case ${gateway_enable} in
95198625Srrs	[Yy][Ee][Ss])
96198625Srrs		echo -n ' IP gateway=YES'
97198625Srrs		sysctl net.inet.ip.forwarding=1 >/dev/null
98198625Srrs		;;
99198160Srrs	esac
100198160Srrs
101198625Srrs	case ${forward_sourceroute} in
102198625Srrs	[Yy][Ee][Ss])
103198625Srrs		echo -n ' do source routing=YES'
104198625Srrs		sysctl net.inet.ip.sourceroute=1 >/dev/null
105198625Srrs		;;
106198625Srrs	esac
107198625Srrs
108198625Srrs	case ${accept_sourceroute} in
109198625Srrs	[Yy][Ee][Ss])
110198625Srrs		echo -n ' accept source routing=YES'
111198625Srrs		sysctl net.inet.ip.accept_sourceroute=1 >/dev/null
112198625Srrs		;;
113198625Srrs	esac
114198625Srrs
115198625Srrs	case ${tcp_keepalive} in
116198625Srrs	[Nn][Oo])
117198625Srrs		echo -n ' TCP keepalive=NO'
118198625Srrs		sysctl net.inet.tcp.always_keepalive=0 >/dev/null
119198160Srrs		;;
120198160Srrs	esac
121198625Srrs
122198625Srrs	case ${tcp_drop_synfin} in
123198625Srrs	[Yy][Ee][Ss])
124198625Srrs		echo -n ' drop SYN+FIN packets=YES'
125198625Srrs		sysctl net.inet.tcp.drop_synfin=1 >/dev/null
126198625Srrs		;;
127198625Srrs	esac
128198625Srrs
129198625Srrs	case ${ipxgateway_enable} in
130198625Srrs	[Yy][Ee][Ss])
131198625Srrs		echo -n ' IPX gateway=YES'
132198625Srrs		sysctl net.ipx.ipx.ipxforwarding=1 >/dev/null
133198625Srrs		;;
134198625Srrs	esac
135198625Srrs
136198625Srrs	case ${arpproxy_all} in
137198625Srrs	[Yy][Ee][Ss])
138198625Srrs		echo -n ' ARP proxyall=YES'
139198160Srrs		sysctl net.link.ether.inet.proxyall=1 >/dev/null
140198160Srrs		;;
141198625Srrs	esac
142198625Srrs
143198625Srrs	case ${ip_portrange_first} in
144198625Srrs	[Nn][Oo] | '')
145198625Srrs		;;
146198625Srrs	*)
147198625Srrs		echo -n " ip_portrange_first=$ip_portrange_first"
148198625Srrs		sysctl net.inet.ip.portrange.first=$ip_portrange_first >/dev/null
149198625Srrs		;;
150198625Srrs	esac
151198625Srrs
152198625Srrs	case ${ip_portrange_last} in
153198625Srrs	[Nn][Oo] | '')
154198625Srrs		;;
155198625Srrs	*)
156198625Srrs		echo -n " ip_portrange_last=$ip_portrange_last"
157198625Srrs		sysctl net.inet.ip.portrange.last=$ip_portrange_last >/dev/null
158198625Srrs		;;
159198160Srrs	esac
160198160Srrs
161198625Srrs	echo '.'
162198625Srrs}
163198625Srrs
164198625Srrsload_rc_config $name
165198625Srrsrun_rc_command "$1"
166198625Srrs