Return to BSD News archive
#! rnews 6227 sserve.cc.adfa.oz.au
Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!simtel!swidir.switch.ch!newsfeed.ACO.net!Austria.EU.net!EU.net!howland.reston.ans.net!agate!news.mindlink.net!vanbc.wimsey.com!news.rmii.com!rainbow!davidm
From: davidm@rainbow.rmii.com (David Martin)
Newsgroups: comp.unix.bsd.bsdi.misc
Subject: Dynamic slip/ppp works/problem
Date: 12 Jul 1995 16:37:00 GMT
Organization: Rocky Mountain Internet Inc.
Lines: 198
Message-ID: <3u0tnc$q1f@natasha.rmii.com>
NNTP-Posting-Host: rainbow.rmii.com
X-Newsreader: TIN [version 1.2 PL2]
I am working on the problem of getting BSDI to handle dynamic slip as
well as dynamic ppp connections. I have solved the problem of dynamic
slip, but have been unsuccesfull at getting dynamic ppp working. I have
included my slip solution for everyone's benefit as well as my almost
working ppp solution for suggestions on how to make it work.
The problem with ppp is the "route add" command. Since I am tring to get
this to work on the same subnet as the ethernet, the route command adds
the route to the ethernet and not the ppp[0-7] device :-( When I
hardwire the src and dest ip's in /etc/ppp.sys everything works fine.
Any ideas?
The programs "dynamicslip" and "dynamicppp" are the login shells assigned
to a user. This way I can echo to the tty what the src and dest ip's are
before the slip/ppp programs take over the tty. This works great for
chat scripts to parse out the ip's (like Trumpet Winsock).
Note: I have changed the class C ip address to 222.222.222 as well as the
ARP address for these examples.
----PPP STUFF----
---begin /etc/netscripts/dynamicppp---
#!/bin/sh
# dynamicppp
# Author: David Martin (davidm@large.com)
# A stub program to allow dynamicly assigned IP's under BSDI Unix. The
# other part of this is /etc/sliphome/slip.login.
localaddr=222.222.222.1
unit=`tty`
case $unit in
/dev/ttyA00 ) remoteaddr=222.222.222.166 ;;
/dev/ttyA01 ) remoteaddr=222.222.222.167 ;;
/dev/ttyA02 ) remoteaddr=222.222.222.168 ;;
/dev/ttyA03 ) remoteaddr=222.222.222.169 ;;
/dev/ttyA04 ) remoteaddr=222.222.222.170 ;;
/dev/ttyA05 ) remoteaddr=222.222.222.171 ;;
/dev/ttyA06 ) remoteaddr=222.222.222.172 ;;
/dev/ttyA07 ) remoteaddr=222.222.222.173 ;;
esac
echo "PPP session from ($localaddr) TO $remoteaddr beginning...."
exec /usr/bin/ppp
----begin /etc/ppp.sys
Puser:\
:di:\
:li=/etc/netscripts/ppp.login:\
:lu=/etc/netscripts/ppp.up:\
:ld=/etc/netscripts/ppp.down:
----begin /etc/netscripts/ppp.login----
#!/bin/sh
# ppp.login
# Author: David Martin (davidm@large.com)
login=$1
pppunit=$2
localaddr=222.222.222.1
netmask=255.255.255.0
case $pppunit in
ppp0 ) remoteaddr=222.222.222.166 ;;
ppp1 ) remoteaddr=222.222.222.167 ;;
ppp2 ) remoteaddr=222.222.222.168 ;;
ppp3 ) remoteaddr=222.222.222.169 ;;
ppp4 ) remoteaddr=222.222.222.170 ;;
ppp5 ) remoteaddr=222.222.222.171 ;;
ppp6 ) remoteaddr=222.222.222.172 ;;
ppp7 ) remoteaddr=222.222.222.173 ;;
esac
/sbin/ifconfig $pppunit inet $localaddr $remoteaddr netmask $netmask up
logger -s -t ppp "Attached unit $pppunit for $login (remoteaddr: $remoteaddr) (speed: $speed) (args: $opt_args)"
exit 0
----begin /etc/netscripts/ppp.up----
#!/bin/sh
PATH=/sbin:/usr/sbin:/bin:/usr/bin
SYSTEM=$1 # System
INTERFACE=$2 # Interface
LOCAL=$3 # Local address
REMOTE=$4 # Remote address
if [ "$REMOTE" ] ; then
route add $REMOTE $LOCAL
fi
----begin /etc/netscripts/ppp.down----
#!/bin/sh
PATH=/sbin:/usr/sbin:/bin:/usr/bin
SYSTEM=$1 # System
INTERFACE=$2 # Interface
LOCAL=$3 # Local address
REMOTE=$4 # Remote address
if [ "$REMOTE" ] ; then
route delete $REMOTE
fi
if [ "$LOCAL" ] ; then
ifconfig $INTERFACE -alias $LOCAL down
route delete $LOCAL 127.0.0.1
fi
----SLIP STUFF, THIS WORKS GREAT!----
----begin dynamicslip----
#!/bin/sh
# dynamicslip
# Author: David Martin (davidm@large.com)
# A stub program to allow dynamicly assigned IP's under BSDI Unix. The
# other part of this is /etc/sliphome/slip.login.
localaddr=222.222.222.1
unit=`tty`
case $unit in
/dev/ttyA00 ) remoteaddr=222.222.222.66 ;;
/dev/ttyA01 ) remoteaddr=222.222.222.67 ;;
/dev/ttyA02 ) remoteaddr=222.222.222.68 ;;
/dev/ttyA03 ) remoteaddr=222.222.222.69 ;;
/dev/ttyA04 ) remoteaddr=222.222.222.70 ;;
/dev/ttyA05 ) remoteaddr=222.222.222.71 ;;
/dev/ttyA06 ) remoteaddr=222.222.222.72 ;;
/dev/ttyA07 ) remoteaddr=222.222.222.73 ;;
esac
echo "SL/IP session from ($localaddr) TO $remoteaddr beginning...."
exec /usr/sbin/sliplogin
----begin /etc/sliphome/slip.hosts----
#
# SLIP Hosts initialization file
#
# login localaddr remoteaddr netmask opt_args
#------- --------- ---------- ------- --------
Suser 222.222.222.1 DYNAMIC 255.255.255.0 normal
----begin /etc/sliphome/slip.login----
#!/bin/sh
# slip.login
# Author: David Martin (davidm@large.com)
# Called by /usr/sbin/sliplogin. See /etc/sliphome/dynamicslip
slipunit=$1; shift
speed=$1; shift
login=$1; shift
localaddr=$1; shift
remoteaddr=$1; shift
netmask=$1; shift
opt_args=$*;
if [ "$remoteaddr" = "DYNAMIC" ]
then
case $slipunit in
0 ) remoteaddr=222.222.222.66 ;;
1 ) remoteaddr=222.222.222.67 ;;
2 ) remoteaddr=222.222.222.68 ;;
3 ) remoteaddr=222.222.222.69 ;;
4 ) remoteaddr=222.222.222.70 ;;
5 ) remoteaddr=222.222.222.71 ;;
6 ) remoteaddr=222.222.222.72 ;;
7 ) remoteaddr=222.222.222.73 ;;
esac
fi
/sbin/ifconfig sl${slipunit} inet $localaddr $remoteaddr netmask $netmask up
/usr/sbin/arp -s $remoteaddr c0:80:cd:80 # made up for this example add yours
logger -s -t slip "Attached unit $slipunit for $login (remoteaddr: $remoteaddr) (speed: $speed) (args: $opt_args)"
exit 0
----begin /etc/sliphome/slip.logout----
#!/bin/sh
slipunit=$1; shift
speed=$1; shift
login=$1; shift
localaddr=$1; shift
remoteaddr=$1; shift
netmask=$1; shift
opt_args=$*;
logger -s -t slip "Detached unit $slipunit from $login"
route delete $remoteaddr $localaddr
/usr/sbin/arp -d $remoteaddr
exit 0
--
--
David F. Martin | Consultants @ Large
davidm@large.com | 4026 S. Parker Rd., suite 112
My other system is a Linux system. | Aurora, CO. 80014
So is my main one :-) | (303) 680-8207 Fax: Please Call