hugme: (Default)
[personal profile] hugme
Here 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

Profile

hugme: (Default)
hugme

April 2011

S M T W T F S
     12
3456789
10111213141516
17 181920212223
24252627282930

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 8th, 2026 02:55 pm
Powered by Dreamwidth Studios