To configure PPP correctly, you should check the
PPP-HOWTO.
I try to explain it briefly, but if you have any questions or
problems, read the HOWTO very carefully.
Now, you need to have the ppp-package installed (check this by typing
pppd --version), make sure you have a recent
one. Then you have to make sure you've got these files:
/usr/local/bin/ppp
#!/bin/sh
case $1 in
(on|start)
TELEPHONE='555-1212' # The telephone number for the connection
ACCOUNT='your_login' # The account name for logon (as in 'George Burns')
PASSWORD='your_pass' # The password for this account (and 'Gracie Allen')
INITSTRING='AT&F&C1&D2Z'# Modem initstring
IPLOCAL=0.0.0.0 # Local IP address if known. Dynamic = 0.0.0.0
IPREMOTE=0.0.0.0 # Remote IP address if desired. Normally 0.0.0.0
DEVICE=/dev/ttyS1 # Serial Device com1=ttyS0, com2=ttyS1,...
SPEED=57600 # 19200, 38400 or 57600 (don't try something different)
export TELEPHONE ACCOUNT PASSWORD INITSTRING
exec /usr/sbin/pppd $DEVICE $SPEED $IPLOCAL:$IPREMOTE \
user $ACCOUNT connect /etc/ppp/ppp-on-dialer
;;
(off|stop)
if [ -r /var/run/ppp0.pid ]; then
kill -INT `cat /var/run/ppp0.pid`
if [ ! "$?" = "0" ]; then
rm -f /var/run/ppp0.pid
echo "ERROR: Removed stale pid file"
exit 1
fi
exit 0
fi
echo "ERROR: PPP link is not active on ppp0"
exit 1
;;
(info|status)
/usr/sbin/pppstats
;;
(*)
echo "Usage: ppp on|off|info|start|stop|status";
esac |
/etc/ppp/ppp-on-dialer
#!/bin/sh
exec /usr/sbin/chat -v \
REPORT CONNECTION \
REPORT CARRIER \
TIMEOUT 10 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nNO CARRIER\r' \
ABORT '\nNO DIALTONE\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
ABORT 'Invalid Login' \
ABORT 'Login incorrect' \
'' "\r$INITSTRING\r" \
'OK-+++\c-OK' 'ATH0' \
TIMEOUT 45 \
OK "ATDT$TELEPHONE" \
CONNECT '\d\c' \
ogin:--ogin: "$ACCOUNT" \
ord: "$PASSWORD" |
You can remove the
-v once everything looks
normal.
The pppd command uses /etc/ppp/options to list
its options, change these options to whatever fits. These defaults
normally work in most cases.
asyncmap 20a0000
crtscts
debug
default-mru
defaultroute
detach
escape 11,13,ff
hide-password
ipcp-accept-local
ipcp-accept-remote
lcp-echo-failure 4
lcp-echo-interval 400
lock
modem
mtu 1500
netmask 255.255.255.0
noipdefault
passive
#idle 300
#kdebug 0
#-vj |
Once dialing in works like a charm, you can leave
debug out.
 | It is important to emphasize that every special
character, thus every character that is not [a-ZA-Z0-9] and '_',
should be escaped by preceding it with a '\'-character.
Thus "e!b$l+" would become "e\!b\$l\+".
Try it if you are having troubles !
|
Contributed by Christophe Lambin <clambin@skynet.be>
This section does not aim to be a definitive guide on ISDN for Linux.
For a more detailed discussion on the topic, see
Paul Slootman's ISDN4Linux HOWTO
and ISDN4Linux-FAQ.
With the tools installed and configured, write a script to configure
the interface, to be used for the ISDN connection.
As always in Linux, there's no one correct way of doing this. I've
put these in a script
/etc/rc.d/rc.isdn:
#!/bin/sh
MSNREMOTE='555-1212' # Phone number of ISP
MSNLOCAL='555-1313' # my number, without 0, with areacode
ACCOUNT='george' # The account for logon (as 'George Burns')
IPLOCAL=10.0.0.2 # my fixed IP (use 10.0.0.2 if no fixed)
IPREMOTE=0.0.0.0 # IP number of ISP
INTERFACE=ippp0
/sbin/modprobe hisax type=11 protocol=2
/sbin/isdnctrl verbose 3 system on
/sbin/isdnctrl addif $IF
/sbin/isdnctrl secure $IF on
/sbin/isdnctrl addphone $IF out $MSNREMOTE
/sbin/isdnctrl eaz $IF $MSNLOCAL
/sbin/isdnctrl huptimeout $IF 300
/sbin/isdnctrl l2_prot $IF hdlc
/sbin/isdnctrl l3_prot $IF trans
/sbin/isdnctrl encap $IF syncppp
/sbin/isdnctrl dialmode $IF auto
/sbin/ifconfig $IF $IPLOCAL pointopoint $IPREMOTE -arp -broadcast
/sbin/ipppd /dev/ippp0 user $ACCOUNT $IPLOCAL:$IPREMOTE |
To start this at boot time, make it executable and append the
following to /etc/rc.d/rc.local:
if [ -x /etc/rc.d/rc.isdn ]; then
. /etc/rc.d/rc.isdn
fi |
The ipppd command gets its parameters passed
through a file, /etc/ppp/ioptions:
-ac
-bsdcomp
debug
defaultroute
ipcp-accept-local
ipcp-accept-remote
mru 1524
mtu 1500
noipdefault
-pc
useifip
-vj
-vjccomp
#idle 360
#persistent |
 | Do NOT specify +pap or +chap in this file. This
specifies the authentication that ipppd should use for an INCOMING
client. If you were to use this to connect to your ISP, ipppd would
wait for the ISP to authenticate itself using the specified protocol.
|
 | It is important to emphasize that every special
character, thus every character that is not [a-ZA-Z0-9] and '_'
should be escaped by preceding it with a '\'-character. Thus 'e!b$l+'
would become 'e\!b\$l\+'. Try it if you are having troubles !
|
Finally, create /etc/ppp/ip-down.local to handle
the shutdown of the interface:
#!/bin/sh
/sbin/ifconfig $1 down
sleep 1
/sbin/ifconfig $1 10.0.0.2 pointopoint |
 | Note! |
---|
| This is to handle some problems with routes on
shutdowns. Anyone know of a clean(er) solution ?
|