defaultroute revision 118908
1206274Srdivacky#!/bin/sh
2206274Srdivacky#
3206274Srdivacky# Configure routing and miscellaneous network tunables
4206274Srdivacky#
5206274Srdivacky# $FreeBSD: head/etc/rc.d/routing 118908 2003-08-14 15:27:32Z harti $
6206274Srdivacky#
7206274Srdivacky
8206274Srdivacky# PROVIDE: routing
9206274Srdivacky# REQUIRE: netif ppp-user
10206274Srdivacky# KEYWORD: FreeBSD
11206274Srdivacky
12206274Srdivacky. /etc/rc.subr
13206274Srdivacky
14206274Srdivackyname="routing"
15206274Srdivackystart_cmd="routing_start"
16249423Sdimstop_cmd="routing_stop"
17249423Sdimextra_commands="options static"
18249423Sdimstatic_cmd="static_start"
19206274Srdivackyoptions_cmd="options_start"
20206274Srdivacky
21249423Sdimrouting_start()
22249423Sdim{
23249423Sdim	static_start
24249423Sdim	options_start
25206274Srdivacky}
26206274Srdivacky
27224145Sdimrouting_stop()
28206274Srdivacky{
29226633Sdim	route -n flush
30206274Srdivacky}
31206274Srdivacky
32206274Srdivackystatic_start()
33226633Sdim{
34206274Srdivacky	case ${defaultrouter} in
35249423Sdim	[Nn][Oo] | '')
36206274Srdivacky		;;
37206274Srdivacky	*)
38218893Sdim		static_routes="default ${static_routes}"
39218893Sdim		route_default="default ${defaultrouter}"
40218893Sdim		;;
41218893Sdim	esac
42218893Sdim
43218893Sdim	# Setup static routes. This should be done before router discovery.
44218893Sdim	#
45218893Sdim	if [ -n "${static_routes}" ]; then
46243830Sdim		for i in ${static_routes}; do
47218893Sdim			eval route_args=\$route_${i}
48218893Sdim			route add ${route_args}
49243830Sdim		done
50218893Sdim	fi
51218893Sdim	# Now ATM static routes
52226633Sdim	#
53218893Sdim	if [ -n "${natm_static_routes}" ]; then
54218893Sdim		for i in ${natm_static_routes}; do
55218893Sdim			eval route_args=\$route_${i}
56218893Sdim			atmconfig natm add ${route_args}
57218893Sdim		done
58218893Sdim	fi
59218893Sdim}
60226633Sdim
61218893Sdimoptions_start()
62218893Sdim{
63218893Sdim	echo -n 'Additional routing options:'
64218893Sdim	case ${tcp_extensions} in
65218893Sdim	[Yy][Ee][Ss] | '')
66226633Sdim		;;
67218893Sdim	*)
68218893Sdim		echo -n ' tcp extensions=NO'
69218893Sdim		sysctl net.inet.tcp.rfc1323=0 >/dev/null
70206274Srdivacky		;;
71243830Sdim	esac
72243830Sdim
73206274Srdivacky	case ${icmp_bmcastecho} in
74218893Sdim	[Yy][Ee][Ss])
75206274Srdivacky		echo -n ' broadcast ping responses=YES'
76206274Srdivacky		sysctl net.inet.icmp.bmcastecho=1 >/dev/null
77206274Srdivacky		;;
78206274Srdivacky	esac
79218893Sdim
80206274Srdivacky	case ${icmp_drop_redirect} in
81206274Srdivacky	[Yy][Ee][Ss])
82206274Srdivacky		echo -n ' ignore ICMP redirect=YES'
83206274Srdivacky		sysctl net.inet.icmp.drop_redirect=1 >/dev/null
84206274Srdivacky		;;
85206274Srdivacky	esac
86206274Srdivacky
87218893Sdim	case ${icmp_log_redirect} in
88206274Srdivacky	[Yy][Ee][Ss])
89218893Sdim		echo -n ' log ICMP redirect=YES'
90218893Sdim		sysctl net.inet.icmp.log_redirect=1 >/dev/null
91206274Srdivacky		;;
92206274Srdivacky	esac
93206274Srdivacky
94218893Sdim	case ${gateway_enable} in
95243830Sdim	[Yy][Ee][Ss])
96218893Sdim		echo -n ' IP gateway=YES'
97218893Sdim		sysctl net.inet.ip.forwarding=1 >/dev/null
98218893Sdim		;;
99218893Sdim	esac
100243830Sdim
101206274Srdivacky	case ${forward_sourceroute} in
102206274Srdivacky	[Yy][Ee][Ss])
103218893Sdim		echo -n ' do source routing=YES'
104206274Srdivacky		sysctl net.inet.ip.sourceroute=1 >/dev/null
105206274Srdivacky		;;
106206274Srdivacky	esac
107206274Srdivacky
108206274Srdivacky	case ${accept_sourceroute} in
109206274Srdivacky	[Yy][Ee][Ss])
110206274Srdivacky		echo -n ' accept source routing=YES'
111206274Srdivacky		sysctl net.inet.ip.accept_sourceroute=1 >/dev/null
112218893Sdim		;;
113226633Sdim	esac
114212904Sdim
115212904Sdim	case ${tcp_keepalive} in
116224145Sdim	[Nn][Oo])
117224145Sdim		echo -n ' TCP keepalive=NO'
118224145Sdim		sysctl net.inet.tcp.always_keepalive=0 >/dev/null
119224145Sdim		;;
120224145Sdim	esac
121224145Sdim
122224145Sdim	case ${tcp_drop_synfin} in
123224145Sdim	[Yy][Ee][Ss])
124224145Sdim		echo -n ' drop SYN+FIN packets=YES'
125226633Sdim		sysctl net.inet.tcp.drop_synfin=1 >/dev/null
126263508Sdim		;;
127206274Srdivacky	esac
128207618Srdivacky
129207618Srdivacky	case ${ipxgateway_enable} in
130243830Sdim	[Yy][Ee][Ss])
131212904Sdim		echo -n ' IPX gateway=YES'
132206274Srdivacky		sysctl net.ipx.ipx.ipxforwarding=1 >/dev/null
133206274Srdivacky		;;
134212904Sdim	esac
135212904Sdim
136206274Srdivacky	case ${arpproxy_all} in
137207618Srdivacky	[Yy][Ee][Ss])
138206274Srdivacky		echo -n ' ARP proxyall=YES'
139206274Srdivacky		sysctl net.link.ether.inet.proxyall=1 >/dev/null
140243830Sdim		;;
141243830Sdim	esac
142243830Sdim
143243830Sdim	case ${ip_portrange_first} in
144243830Sdim	[Nn][Oo] | '')
145243830Sdim		;;
146206274Srdivacky	*)
147243830Sdim		echo -n " ip_portrange_first=$ip_portrange_first"
148206274Srdivacky		sysctl net.inet.ip.portrange.first=$ip_portrange_first >/dev/null
149218893Sdim		;;
150243830Sdim	esac
151243830Sdim
152243830Sdim	case ${ip_portrange_last} in
153243830Sdim	[Nn][Oo] | '')
154243830Sdim		;;
155243830Sdim	*)
156243830Sdim		echo -n " ip_portrange_last=$ip_portrange_last"
157243830Sdim		sysctl net.inet.ip.portrange.last=$ip_portrange_last >/dev/null
158218893Sdim		;;
159243830Sdim	esac
160243830Sdim
161243830Sdim	echo '.'
162243830Sdim}
163243830Sdim
164243830Sdimload_rc_config $name
165243830Sdimrun_rc_command "$1"
166243830Sdim