-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I have configured a DACHSTIEN CD firewall which I am using at home with a
dialup system
and it works very well and now have several deployed around Australia on
remote sites for
the company I work for.   The latter of these units are connected by modem
to Bigpond
Direct and have proven themselves to be very reliable.   My problem occurs
when I updated
the main office firewall to DACHSTIEN CD.   This firewall currently is
running Eigerstien
with 2 ISDN channels and working very reliably but I wanted to upgrade to
take advantage
of the latest security features and additions.

On the Eigerstien version, the routes are:

# ip route
203.47.153.64/26 dev eth1  proto kernel  scope link  src 203.47.153.65
192.168.45.0/24 dev eth0  proto kernel  scope link  src 192.168.45.1
139.130.0.0/16 dev ippp0  proto kernel  scope link  src 139.130.195.30
default dev ippp0  scope link

This has been working well.   To get ISDN support for the DACHSTIEN CD
version, I found
the files where the devices are created and added the appropriate text to
the files,
/var/lib/lrpkg/root.dev.mk /var/lib/lrpkg/root.dev.mod and
/var/lib/lrpkg/root.dev.own,
copying the exact text to each file that had been used in the Eigerstien
version I am
currently running.   The interface devices were created in /dev and all
appear to run
correctly except for the routing when the firewall starts.   The routes on
this machine
are:

# ip route
139.130.195.1 dev ippp0  proto kernel  scope link  src 139.130.195.30
203.47.153.64/26 dev eth1  proto kernel  scope link  src 203.47.153.65
192.168.45.0/24 dev eth0  proto kernel  scope link  src 192.168.45.1
default dev ippp0  scope link

The address 139.130.195.1 is the peer address of the box when connected to
the Bigpond
Direct point of presence.   The additions to the network.conf shown below
were typed in
exactly as they were in the previous version, so this may be part of the
problem if some
of the functions act differently in the DACHSTIEN CD version.   The
firewall, when
tested, dialled and connected both channels in multilink configuration to
the ISP but is
only able to access ip addresses in the 139.130.0.0/16 address range.
These are only
within our ISP's internal network and therefore do not allow access to the
internet at
large.

Any assistance would be greatly appreciated as I have been tearing my hair
out for the
last three weeks in my attempt to find the problem myself.

Interfaces:
# Interfaces to start on boot go here - ie "ppp0 eth0"
# Do NOT include interfaces configured by dhcp!
IF_AUTO="ippp0 eth0 eth1"

# List of all configured interfaces, manual start and boot start
IF_LIST="$IF_AUTO"

Device settings:
############################################################################
###
# ISDN Link - the isdn.lrp is required for this to work. (External
Interface)
############################################################################
###
ippp0_IPADDR=139.130.195.30     # My IP Address, only set if not dynamic.
ippp0_PTPADDR=139.130.195.1     # Their IP Address, again only if not dynamic.
ippp0_MYMSN=38049800            # My telephone Number
ippp0_REMMSN=30073300           # Their telephone number (The ISP)
ippp0_IP_SPOOF=YES
ippp0_IP_KRNL_LOGMARTIANS=NO
# Simple QOS support, Options are same as ethernet above.
ippp0_FAIRQ=YES
ippp0_TXQLEN=64
ippp0_BNDWIDTH=64kbit           # Device Bandwidth
ippp0_HNHL=3                    # Queue Handle - must be unique
ippp0_IABURST=25                # Interactive Burst
ippp0_IARATE=30Kbit             # Interactive Rate
ippp0_PXMTU=1500                # Physical MTU - includes Link Layer Header

ippp1_IPADDR=139.130.195.30     # My IP Address, only set if not dynamic.
ippp1_PTPADDR=139.130.195.1     # Their IP Address, again only if not dynamic.
ippp1_MYMSN=38049800            # My telephone Number
ippp1_REMMSN=30073300           # Their telephone number (The ISP)
ippp1_IP_SPOOF=YES
ippp1_IP_KRNL_LOGMARTIANS=NO
# Simple QOS support, Options are same as ethernet above.
ippp1_FAIRQ=YES
ippp1_TXQLEN=64
ippp1_BNDWIDTH=64kbit           # Device Bandwidth
ippp1_HNHL=4                    # Queue Handle - must be unique
ippp1_IABURST=25                # Interactive Burst
ippp1_IARATE=30Kbit             # Interactive Rate
ippp1_PXMTU=1500                # Physical MTU - includes Link Layer Header

Interface Activation Section:
if_up () {
        local ADDR

        # sort out a few things to make life easier - here so that you
        # can see what is done and so that you can add anything if needed
        eval local IPADDR=\${"$1"_IPADDR:-""}     # I am also a good genius
        eval local MASKLEN=\${"$1"_MASKLEN:-""}
        eval local BROADCAST=\${"$1"_BROADCAST:-""}
        eval local MYMSN=\${"$1"_MYMSN:-""}
        eval local REMMSN=\${"$1"_REMMSN:-""}
        eval local PTPADDR=\${"$1"_PTPADDR:-""}
        eval local PXMTU=\${"$1"_PXMTU:-""}
        eval local DEFAULT_GW=\${"$1"_DEFAULT_GW:-""}
        eval local IP_EXTRA_ADDRS=\${"$1"_IP_EXTRA_ADDRS:-""}
        eval local ROUTES=\${"$1"_ROUTES:-""}
        eval local FAIRQ=\${"$1"_FAIRQ:-""}
        eval local TXQLEN=\${"$1"_TXQLEN:-""}
        eval local IP_SPOOF=\${"$1"_IP_SPOOF:-""}
        eval local IP_KRNL_LOGMARTIANS=\${"$1"_IP_KRNL_LOGMARTIANS:-""}
        eval local IP_SHARED_MEDIA=\${"$1"_IP_SHARED_MEDIA:-""}
        eval local BRIDGE=\${"$1"_BRIDGE:-""}
        eval local PROXY_ARP=\${"$1"_PROXY_ARP:-""}
        if [ -n "$BROADCAST" ] ; then
                IFCFG_BROADCAST="broadcast $BROADCAST"
        fi

        # Do dee global bridge stuff
        brg_global

        # Set default interface flags here - used for PPP and WAN interfaces
        if_setproc default rp_filter $DEF_IP_SPOOF
        if_setproc default log_martians $DEF_IP_KRNL_LOGMARTIANS
        if_setproc all accept_redirects $ALLIF_ACCEPT_REDIRECTS

        # Set up each interface
        case $1 in
        ppp0)
                pppd call provider
                ;;
        ippp*)
              # Get ppp user
              USER=`cat /etc/ppp/pap-secrets | grep ^[a-zA-Z0-9] | sed 's/\*.*//'`

              # Set up the ISDN interface
              isdnctrl verbose 3                        #>/dev/null
              isdnctrl system on                        #>/dev/null
              isdnctrl addif $1                         #>/dev/null
              isdnctrl pppbind $1 0                     #>/dev/null
              isdnctrl addphone $1 out $REMMSN          #>/dev/null
              isdnctrl eaz $1 $MYMSN                    #>/dev/null
              isdnctrl l2_prot $1 hdlc                  #>/dev/null
              isdnctrl l3_prot $1 trans                 #>/dev/null
              isdnctrl encap $1 syncppp                 #>/dev/null
              isdnctrl huptimeout $1 43200              #>/dev/null
              isdnctrl dialmode $1 auto                 #>/dev/null

              # Set up second chanel on ISDN card as a slave to the first.
              isdnctrl addslave $1 ippp1
              isdnctrl addphone ippp1 out $REMMSN       #>/dev/null
              isdnctrl eaz ippp1 $MYMSN                 #>/dev/null
              isdnctrl l2_prot ippp1 hdlc               #>/dev/null
              isdnctrl l3_prot ippp1 trans              #>/dev/null
              isdnctrl encap ippp1 syncppp              #>/dev/null
              isdnctrl huptimeout ippp1 43200           #>/dev/null
              isdnctrl dialmode ippp1 auto              #>/dev/null

              if [ -z "$IPADDR" ] ; then
                    echo 1 >/proc/sys/net/ipv4/ip_dynaddr
                    ip link set $1 dynamic on
              else
                    ip addr add $IPADDR peer $PTPADDR dev $1
              fi
              ip link set $1 arp off multicast off
              ip link set $1 up

              # Debugging - Remove if you like
              echo Local Address $IPADDR
              echo Peer Address  $PTPADDR

              if [ -z "$IPADDR" ] ; then
                    /usr/sbin/ipppd mru 1500 mtu $PXMTU ipcp-accept-local
ipcp-accept-remote
lcp-restart 1 name $USER noipdefault +mp /dev/$1 /dev/ippp1 &
              else
                    /usr/sbin/ipppd mru 1500 mtu $PXMTU lcp-restart 1 name $USER
$IPADDR:$PTPADDR +mp /dev/$1 /dev/ippp1 &
              fi
              ip route add default dev $1
              # Fair queuing - this can be selected for any interface
              ip_frQoS $1
              ;;
        fr*)
                wanconfig card wanpipe1 dev $1 start
                ip addr add $IPADDR peer $PTPADDR dev $1
                ip link set $1 up
                # Fair queuing - this can be selected for any interface
                ip_frQoS $1
                ;;
        nat*)
                eval local BASE_PRI=\${"$1"_BASE_PRI:-""}
                walk_list $1_PAIR $INIT_INDEX do_nat add $BASE_PRI
                ;;
        *)      # default interface startup
                brg_iface $1 up $BRIDGE
                [ -n "$IPADDR" ] \
                        && ip addr add $IPADDR/$MASKLEN $IFCFG_BROADCAST dev $1
                for ADDR in $IP_EXTRA_ADDRS; do
                        ip addr add $ADDR dev $1
                done

                ip link set $1 up

                case "$PROXY_ARP" in
                YES|Yes|yes)
                        ip route flush dev $1
                        ;;
                *)
                        ;;
                esac

                # Fair queuing - this can be selected for any interface
                ip_QoS $1
                ;;
        esac

        for route in $ROUTES; do
echo Route: $route
                ip route add `echo_rtepfx $route` dev $1 `echo_rteargs $route`
        done

        # Do universal interface config items here
        # Default route support
        [ -n "$DEFAULT_GW" ] \
                && ip route replace default nexthop via $DEFAULT_GW dev $1
        # Set the TX Queue Length
        [ -n "$TXQLEN" ] \
                && ip link set $1 txqlen $TXQLEN
        # Spoof protection
        if_setproc $1 rp_filter $IP_SPOOF
        # Kernel logging of martians on this interface
        if_setproc $1 log_martians $IP_KRNL_LOGMARTIANS
        # Shared Media stuff
        if_setproc $1 shared_media $IP_SHARED_MEDIA
        # Proxy ARP support
        if_setproc $1 proxy_arp $PROXY_ARP

        return 0
}

if_down () {

        # Do Dee global bridge stuff
        brg_global

        case $1 in
        ppp*)
                [ -f /var/run/$1.pid ] && qt kill `cat /var/run/$1.pid`
                sleep 5        # Wait for pppd to die
                ;;
        ippp*)
                isdnctrl hangup $1
                sleep 1
                kill `cat /var/run/ipppd.pid`
                ip route del dev $1
                ip link set $1 down
                isdnctrl delif $1
                ;;
        fr*)
                qt ip link set $1 down
                qt ip addr flush dev $1
                qt wanconfig card wanpipe1 dev $1 stop
                ;;
        nat*)
                eval local BASE_PRI=\${"$1"_BASE_PRI:-""}
                walk_list $1_PAIR $INIT_INDEX do_nat del $BASE_PRI
                ;;
        *)      # default action
                brg_iface $1 down
                ip link set $1 down    # This also kills any routes
                qt ip addr flush dev $1
                ;;
        esac

        # Clean up any QoS/fair queuing stuff
        ip_QoSclear $1

        true

}       #END if_down

Andrew GRAY
System Administrator / Senior Technician
Operations
VQA Australasia

Phone:  (07) 3804 9822
Fax:    (07) 3807 8633
Mob:    0418 734 078

-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 7.0.3 for non-commercial use <http://www.pgp.com>

iQA/AwUBPLuNzSfv/7x7n0CPEQIm9QCg1gPjJgkVg6C8wU5PZfe/ZUosq5oAoO+G
lG5riUuq9wyqWvaHlxaa3CbL
=Edev
-----END PGP SIGNATURE-----


_______________________________________________
Leaf-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-user

Reply via email to