#!/bin/bash

EXTERNAL_IF="eth0"
# check where we want to NAT to
if ( /sbin/ip link show ppp0 >/dev/null 2>&1 ); then 
    # we're using dial up
    EXTERNAL_IF="ppp0"
elif ! ( /sbin/ip a show eth0 2>/dev/null | grep -q inet ) && ( /sbin/ip link show eth1 >/dev/null 2>&1 ); then
    # no IP address on the primary interface - maybe I'm using the secondary interface 
    EXTERNAL_IF="eth1"
fi

IFNAME=$1
network=$(( 100 + ${IFNAME:3} ))
if ! ( /sbin/ip a show $IFNAME | grep ${network}.1 -q ); then
    /sbin/ip a add 192.168.${network}.1/24 dev $IFNAME 
    /sbin/ip link set $IFNAME up
    ( /sbin/iptables -L -vn -t nat | grep -q MASQUERADE ) || /sbin/iptables -t nat -A POSTROUTING -o $EXTERNAL_IF -j MASQUERADE
fi
