summaryrefslogtreecommitdiff
path: root/etc/rc.d/ipnat
blob: fc9f6b9d1396e0fe25c3cbe6f202638fba61671c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/sh
#
# $NetBSD: ipnat,v 1.10 2003/08/22 08:43:26 mrg Exp $
#

# PROVIDE: ipnat
# REQUIRE: ipfilter mountcritremote
# BEFORE:  SERVERS

. /etc/rc.subr

name="ipnat"
rcvar=$name
config="/etc/ipnat.conf"
start_cmd="ipnat_start"
stop_cmd="/usr/sbin/ipnat -F -C"
reload_cmd="/usr/sbin/ipnat -C -f ${config}"
restart_cmd="/usr/sbin/ipnat -F -C -f ${config}"
extra_commands="reload"

ipnat_start()
{
	if [ ! -f ${config} ]; then
		return 0
	fi
	if [ "`/sbin/sysctl -n net.inet.ip.forwarding`" = "0" ]; then
		logger -s -p daemon.warning -t ipnat \
			"WARNING: net.inet.ip.forwarding is 0"
	fi
	if ! checkyesno ipfilter || [ ! -f /etc/ipf.conf ]; then
		echo "Enabling ipfilter for NAT."
		/sbin/ipf -E -Fa
	fi
	echo -n "Installing NAT rules ... "
	/usr/sbin/ipnat -F -f ${config}
}

load_rc_config $name
run_rc_command "$1"