xref: /dragonfly/etc/rc.d/routing (revision 35e996c9)
1#!/bin/sh
2#
3# Configure routing and miscellaneous network tunables
4#
5# $FreeBSD: src/etc/rc.d/routing,v 1.138 2003/06/29 17:59:09 mtm Exp $
6#
7
8# PROVIDE: routing
9# REQUIRE: netif ppp
10# BEFORE:  NETWORKING
11
12. /etc/rc.subr
13
14name="routing"
15start_cmd="routing_start"
16stop_cmd="routing_stop"
17extra_commands="options static change"
18static_cmd="static_start"
19change_cmd="change_start"
20options_cmd="options_start"
21
22routing_start()
23{
24	static_start
25	change_start
26	options_start
27}
28
29routing_stop()
30{
31	route -n flush
32}
33
34static_start()
35{
36	case ${defaultrouter} in
37	[Nn][Oo] | '')
38		;;
39	*)
40		static_routes="default ${static_routes}"
41		route_default="default ${defaultrouter}"
42		;;
43	esac
44
45	# Setup static routes. This should be done before router discovery.
46	#
47	if [ -n "${static_routes}" ]; then
48		for i in ${static_routes}; do
49			eval route_args=\$route_${i}
50			route add ${route_args}
51		done
52	fi
53}
54
55change_start()
56{
57	# Change routes. This should be done before router discovery.
58	#
59	if [ -n "${change_routes}" ]; then
60		for i in ${change_routes}; do
61			eval route_args=\$change_route_${i}
62			route change ${route_args}
63		done
64	fi
65}
66
67options_start()
68{
69	echo -n 'Additional routing options:'
70	case ${tcp_extensions} in
71	[Yy][Ee][Ss] | '')
72		;;
73	*)
74		echo -n ' tcp extensions=NO'
75		${SYSCTL_W} net.inet.tcp.rfc1323=0 >/dev/null
76		;;
77	esac
78
79	case ${icmp_bmcastecho} in
80	[Yy][Ee][Ss])
81		echo -n ' broadcast ping responses=YES'
82		${SYSCTL_W} net.inet.icmp.bmcastecho=1 >/dev/null
83		;;
84	esac
85
86	case ${icmp_drop_redirect} in
87	[Yy][Ee][Ss])
88		echo -n ' ignore ICMP redirect=YES'
89		${SYSCTL_W} net.inet.icmp.drop_redirect=1 >/dev/null
90		;;
91	esac
92
93	case ${icmp_log_redirect} in
94	[Yy][Ee][Ss])
95		echo -n ' log ICMP redirect=YES'
96		${SYSCTL_W} net.inet.icmp.log_redirect=1 >/dev/null
97		;;
98	esac
99
100	case ${gateway_enable} in
101	[Yy][Ee][Ss])
102		echo -n ' IP gateway=YES'
103		${SYSCTL_W} net.inet.ip.forwarding=1 >/dev/null
104		;;
105	esac
106
107	case ${forward_sourceroute} in
108	[Yy][Ee][Ss])
109		echo -n ' do source routing=YES'
110		${SYSCTL_W} net.inet.ip.sourceroute=1 >/dev/null
111		;;
112	esac
113
114	case ${accept_sourceroute} in
115	[Yy][Ee][Ss])
116		echo -n ' accept source routing=YES'
117		${SYSCTL_W} net.inet.ip.accept_sourceroute=1 >/dev/null
118		;;
119	esac
120
121	case ${tcp_keepalive} in
122	[Nn][Oo])
123		echo -n ' TCP keepalive=NO'
124		${SYSCTL_W} net.inet.tcp.always_keepalive=0 >/dev/null
125		;;
126	esac
127
128	case ${tcp_drop_synfin} in
129	[Yy][Ee][Ss])
130		echo -n ' drop SYN+FIN packets=YES'
131		${SYSCTL_W} net.inet.tcp.drop_synfin=1 >/dev/null
132		;;
133	esac
134
135	case ${arpproxy_all} in
136	[Yy][Ee][Ss])
137		echo -n ' ARP proxyall=YES'
138		${SYSCTL_W} net.link.ether.inet.proxyall=1 >/dev/null
139		;;
140	esac
141
142	case ${ip_portrange_first} in
143	[Nn][Oo] | '')
144		;;
145	*)
146		echo -n " ip_portrange_first=$ip_portrange_first"
147		${SYSCTL_W} net.inet.ip.portrange.first=$ip_portrange_first >/dev/null
148		;;
149	esac
150
151	case ${ip_portrange_last} in
152	[Nn][Oo] | '')
153		;;
154	*)
155		echo -n " ip_portrange_last=$ip_portrange_last"
156		${SYSCTL_W} net.inet.ip.portrange.last=$ip_portrange_last >/dev/null
157		;;
158	esac
159
160	echo '.'
161}
162
163load_rc_config $name
164run_rc_command "$1"
165