ipnat revision 121964
178344Sobrien#!/bin/sh 278344Sobrien# 398184Sgordon# $NetBSD: ipnat,v 1.6 2000/09/19 13:04:38 lukem Exp $ 498184Sgordon# $FreeBSD: head/etc/rc.d/ipnat 121964 2003-11-03 17:03:01Z mux $ 578344Sobrien# 678344Sobrien 778344Sobrien# PROVIDE: ipnat 8113959Smtm# REQUIRE: ipfilter 9113959Smtm# BEFORE: DAEMON netif 1098184Sgordon# KEYWORD: FreeBSD NetBSD 1178344Sobrien 1278344Sobrien. /etc/rc.subr 1378344Sobrien 1478344Sobrienname="ipnat" 1598184Sgordonrcvar=`set_rcvar` 16113959Smtmload_rc_config $name 1798184Sgordon 18103019Sgordoncase ${OSTYPE} in 1998184SgordonNetBSD) 20113959Smtm ipnat_flags= 21113959Smtm ipnat_rules="/etc/ipnat.conf" 22113959Smtm ipnat_program="/usr/sbin/ipnat" 2398184Sgordon ;; 2498184Sgordonesac 2598184Sgordon 26113959Smtmstart_precmd="ipnat_precmd" 2778344Sobrienstart_cmd="ipnat_start" 28113959Smtmstop_cmd="${ipnat_program} -F -C" 29113959Smtmreload_cmd="${ipnat_program} -F -C -f ${ipnat_rules}" 3078344Sobrienextra_commands="reload" 3178344Sobrien 3298184Sgordonipnat_precmd() 3378344Sobrien{ 34113959Smtm case ${OSTYPE} in 35113959Smtm NetBSD) 36121067Sdougb if ! checkyesno ipfilter || [ ! -f /etc/ipf.conf ]; then 37113959Smtm echo "Enabling ipfilter for NAT." 38113959Smtm /sbin/ipf -E -Fa 39113959Smtm fi 40113959Smtm return 0 41113959Smtm ;; 42113959Smtm esac 43113959Smtm 4498184Sgordon # Make sure ipfilter is loaded before continuing 45104980Sschweikh if ! ${SYSCTL} net.inet.ipf.fr_pass >/dev/null 2>&1; then 46113959Smtm if kldload ipl; then 47114271Smtm info 'IP-filter module loaded.' 48113959Smtm else 49113959Smtm err 1 'IP-filter module failed to load.' 50113959Smtm fi 5178344Sobrien fi 5298184Sgordon return 0 5378344Sobrien} 5478344Sobrien 5598184Sgordonipnat_start() 5698184Sgordon{ 57113959Smtm if [ ! -f ${ipnat_rules} ]; then 58114271Smtm warn 'NO IPNAT RULES' 59113959Smtm return 0 60113959Smtm fi 61121964Smux echo "Installing NAT rules." 62113978Smtm ${ipnat_program} -CF -f ${ipnat_rules} ${ipnat_flags} 6398184Sgordon} 6498184Sgordon 6578344Sobrienrun_rc_command "$1" 66