setting up your network interfaces
Jan. 5th, 2002 08:44 pmHere is the script I am using to setup the outside network interfaces... it could use a little work but it does what it needs to do. edit it as you need to.
#!/bin/bash
INTERFACE_1=rl0
INTERFACE_2=rl1
IP_1=[ip address]
IP_2=[ip address]
NETMASK_1=[subnetmask]
NETMASK_2=[subnetmask]
DROUTE=[default route for address 1]
# list aliases addresses, seperate with a space
I1_ALIASES=""
I2_ALIASES=""
# IP redirection is setup as [primary outside]:[secoundary outside]:[inside]
IP_REDIRECT=""
# port redirection is setup as [inside]:[port]:[outside]:[port]
PORT_REDIRECT=""
#######
# end of user variables
#######
setup_nat()
{
for IP_ADDY in `echo $IP_REDIRECT`; do
IP_OUTSIDE=`echo $IP_ADDY | awk -F : '{ print $1 }'`
IP_INSIDE=`echo $IP_ADDY | awk -F : '{ print $3 }'`
REDIRECT="$REDIRECT -redirect_address $IP_INSIDE $IP_OUTSIDE"
done
for PORT_ADDY in `echo $PORT_REDIRECT`; do
IP_OUTSIDE=`echo $PORT_ADDY | awk -F : '{ print $3":"$4 }'`
IP_INSIDE=`echo $PORT_ADDY | awk -F : '{ print $1":"$2 }'`
REDIRECT="$REDIRECT -redirect_port tcp $IP_INSIDE $IP_OUTSIDE"
done
}
interface1()
{
ifconfig $INTERFACE_1 $IP_1 netmask $NETMASK_1
for ALIAS in $I1_ALIASES; do
ifconfig $INTERFACE_1 alias $ALIAS netmask $NETMASK_1
done
}
interface2()
{
ifconfig $INTERFACE_2 $IP_2 netmask $NETMASK_2
for ALIAS in $I2_ALIASES; do
ifconfig $INTERFACE_2 alias $ALIAS netmask $NETMASK_2
done
}
case $1 in
start)
interface1; interface2
ifconfig $INTERFACE_1
ifconfig $INTERFACE_2
route add default $DROUTE
if [ -f /var/run/natd.pid ]; then
kill -TERM `cat /var/run/natd.pid`
fi
setup_nat
natd -n $INTERFACE_1 $REDIRECT;;
stop)
for IP in `ifconfig $INTERFACE_1 | grep "inet"`; do
ifconfig $INTERFACE_1 delete $IP > /dev/null 2> /dev/null
done
for IP in `ifconfig $INTERFACE_2 | grep "inet"`; do
ifconfig $INTERFACE_2 delete $IP > /dev/null 2> /dev/null
done;;
$INTERFACE_1)
interface1;;
$INTERFACE_2)
interface2;;
*)
echo
echo "usage: network_interfaces [start, stop, interface]";;
esac