ipnat revision 121964
1156952Sume#!/bin/sh 2156952Sume# 3156952Sume# $NetBSD: ipnat,v 1.6 2000/09/19 13:04:38 lukem Exp $ 4156952Sume# $FreeBSD: head/etc/rc.d/ipnat 121964 2003-11-03 17:03:01Z mux $ 5156952Sume# 6156952Sume 7156952Sume# PROVIDE: ipnat 8156952Sume# REQUIRE: ipfilter 9156952Sume# BEFORE: DAEMON netif 10156952Sume# KEYWORD: FreeBSD NetBSD 11156952Sume 12156952Sume. /etc/rc.subr 13156952Sume 14156952Sumename="ipnat" 15156952Sumercvar=`set_rcvar` 16156952Sumeload_rc_config $name 17156952Sume 18156952Sumecase ${OSTYPE} in 19156952SumeNetBSD) 20156952Sume ipnat_flags= 21156952Sume ipnat_rules="/etc/ipnat.conf" 22156952Sume ipnat_program="/usr/sbin/ipnat" 23156952Sume ;; 24156952Sumeesac 25156952Sume 26156952Sumestart_precmd="ipnat_precmd" 27156952Sumestart_cmd="ipnat_start" 28156952Sumestop_cmd="${ipnat_program} -F -C" 29156952Sumereload_cmd="${ipnat_program} -F -C -f ${ipnat_rules}" 30156952Sumeextra_commands="reload" 31156952Sume 32156952Sumeipnat_precmd() 33156952Sume{ 34156952Sume case ${OSTYPE} in 35156952Sume NetBSD) 36156952Sume if ! checkyesno ipfilter || [ ! -f /etc/ipf.conf ]; then 37156952Sume echo "Enabling ipfilter for NAT." 38156952Sume /sbin/ipf -E -Fa 39156952Sume fi 40156952Sume return 0 41156952Sume ;; 42156952Sume esac 43156952Sume 44156952Sume # Make sure ipfilter is loaded before continuing 45156952Sume if ! ${SYSCTL} net.inet.ipf.fr_pass >/dev/null 2>&1; then 46156952Sume if kldload ipl; then 47156952Sume info 'IP-filter module loaded.' 48156952Sume else 49170244Sume err 1 'IP-filter module failed to load.' 50156952Sume fi 51156956Sume fi 52156956Sume return 0 53156952Sume} 54156952Sume 55156952Sumeipnat_start() 56156956Sume{ 57156952Sume if [ ! -f ${ipnat_rules} ]; then 58156952Sume warn 'NO IPNAT RULES' 59156952Sume return 0 60156952Sume fi 61156952Sume echo "Installing NAT rules." 62156952Sume ${ipnat_program} -CF -f ${ipnat_rules} ${ipnat_flags} 63156952Sume} 64156952Sume 65156952Sumerun_rc_command "$1" 66156952Sume