[INLINE] [an error occurred while processing this directive] HOW TO CONNECT TO TOTALNET WITH A PPP ACCOUNT USING LINUX Disclaimer: Totalnet offers no support for the Linux operating system or any other unix platform. This document is provided as is and in no way obliges Totalnet to any further assistance of any kind. Changes made to your system as a result of this document are your sole responsibility. As a precautionary measure, it is suggested that any files that are to be changed are backed up. This document is based largely on the ppp "how-to" which is distributed with most releases of Linux. It covers only selected sections of the how-to, however, and has been modified for use with Totalnet. Chapters of the how-to not pertinent to logging in have been omitted. More information on the most recent release of the PPP how-to can be found at ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/other-formats http://sunsite.unc.edu/mdw/linux.html#howto Thanks to Robert Hart for the original PPP how-to without which this document could never have been written. As the PPP how-to will be updated more frequently then this document it is suggested that you keep up to date with it. Thanks to Oliver for proofreading the original document and making it presentable. Note: This document has been tested on Redhat Linux 4.0 and 4.1 using kernel 2.0.27 or higher. PRECIS This document only covers how to login and setup a Totalnet connection using a PAP login. The PAP login is the only type of connection used by Totalnet. Other types of login are not covered in this document, nor are they supported for Totalnet connections. Information on chap/scripted logins can be found in the how-to documents mentioned previously. This document offers only minimal information on recompiling your kernel. Should you need to recompile your kernel to include support for PPP, a kernel how-to can be found at the Sunsite. This document does not cover IP masquerading or any other method of routing multiple machines through a single dial-up connection. If you are running a Local Area Network (LAN) or have multiple machines connected through other means, information on connections can be found on the appropriate manual pages as well as the various how-tos. Chapters 1. This chapter will verify that all necessary components and configurations are setup correctly for a basic internet connection. 2. This chapter will cover information pertinent to your Totalnet hook-up, such as login type, username, password, name servers, etc. as well as covering some basic terminology used throughout the document. 3. This chapter will cover setting up DNS name servers and host files 4. This chapter covers making and editing scripts and PPP files. 5. This chapter covers PAP authentication and it's advantages 6. This chapter covers login scripts 7. This chapter covers the testing and automating of your connection. Chapter 1 There are two parts to Linux PPP operations: the PPP deamon (pppd) and the kernel support for PPP. Many, but not all, versions of Linux provide PPP support in their default installation. To check whether your version supports PPP already, look for the following or similar lines: PPP Dynamic channel allocation code copyright 1995 Caldera inc. PPP line discipline registered If you see these lines you already have ppp support compiled into your kernel. To recompile your Linux kernel to include PPP support you will need all of your Linux sources. These should be put in the /usr/src/Linux directory. If you don't have them they can be downloaded from the Sunsite or one of it's mirror sites. If you are upgrading your kernel, old sources should be copied to the /old directory as a precuation. Old sources should also be removed from /usr/src/Linux before putting in new ones. After unzipping and untarring the sources into the previously mentioned directory you can proceed with the task of recompiling your kernel. Should you need it, the /usr/src/linux directory contains a readme file that contains information on compiling your kernel. In addition, you will need to know what kind of hardware/cards/devices are in your computer in order to be able to successfully recompile your kernel. This will include such things as the irq/io settings for some devices such as the modem, network cards and so on. In order to start the configuration process type the following line in the /usr/.src/linux directory: make config ((You can also use 'make menuconfig', a menu driven interface that allows you to go back if you make a mistake. There is also a highly recommended Xwindow based configuration interface: make xconfig) If you want to have PPP support as a loadable module you must answer yes to the following question: Enable loadable module support (CONFIG_MODULES) [Y/n?] Y To add PPP kernel support answer yes to the following question: PPP (point-to-point) support (CONFIG_PPP) [m/N/Y/?] If you want PPP support available as a loadable module answer m instead of yes. Note: if you are using PPP2.2 you will find a side effect of the 'on the fly creation of PPP devices' is that no devices show up if you look in .proc.net file system until a device is created by starting up pppd. Setting up your modem: Firstly, ou should make sure that your modem is correctly setup and that you know which serial port it is on. This can be done as shown below. Dos com1 = /dev/cua0 in Linux Dos com2 = /dev/cua1 in Linux And so on … Don't forget cua0 and cua2 or cua1 and cua3 use the same IRQ's so if you have some devices using the same irq as your modem you are most likely going to have problems. This can be verified by typing cat /proc/interrupts. Care should be taken if you are going to play with your irq's as you will need to know what you are doing especially if you have a dual boot system running Linux and windows/os2. By changing settings under one operating system (OS) you may mess up the settings in the other. Once you have setup your modem using the setserial -b /dev/ttySx IRQ xx (ttysX is the same as cuaX) you will need to find the right initialization string for your modem. Most modem manuals will specify a recommended initialization string for your modem. If you are uncertain, use: at&f&c1&d2e1 for Rockwell chip based modems and at&f&c1&d2&k3e1 for other chipsets. US robotics modems usually work well with at&f1. If you cannot find anything in your manual or on your manufacturer's website, or if the previously mentioned generic ones do not work, you can contact Totalnet technical support and they will provide you with an initialization string for your modem. You can also consult http://www.in.net/info/modems/index.html You can verify if your modem works correctly by using Linux's minicom to dial into Totalnet's Bulletin Board Sevice (BBS ) at 514-481-5386. If you can connect then the modem should be working. Chapter 2 Certain terminology will be used throughout the document in order to simplify meanings. Although PPP is a peer to peer protocol and there is no server or client, we will refer to your system as the client and the peer you log in to as the server (Totalnet). Before proceeding with setting up a PPP connection we will need certain information. The following will be used throughout this document: Domain: total.net Phone number: Montreal: 4813998 Toronto: 8140140 Quebec City: 5278664 Granby: 3278000 Name Servers: 205.205.159.2 205.205.159.3 Username: yourusername ( This should be the username that was chosen when the Totalnet account was created)) Password: yourpassword ( This should be the password that was chosen when the Totalnet account was created) Type of login : PAP IP address: dynamically allocated Netmask: 255.255.255.0 Chapter 3 The next step is the setup of the name to address resolution. This is the IP address of the machines that are going to turn the literal names into numbers so that your machine can actually take you where you want to go. First, make sure that the order of resolving is proper in /etc/host.conf. This file contains info on the order in which things are resolved, DNS servers or your own host file. The file should look something like this: _________________________ order hosts,bind multi on _________________________ This means that if you have a private LAN and have entered all of its members into the host file it will be queried first if you don't, hosts is probably empty or has one entry for your machine, so the name resolution will be passed on to the Totalnet DNS servers automatically. The hosts file should look like this ____________________________________ 127.0.0.1 localhost localhost.localdomain 0.0.0.0 yourusername ____________________________________ Note: The second line here is not absolutely necessary. It will allow for your own machine to see itself as yourusername.total.net. This may be useful at times but DO NOT FORGET THIS WORKS ONLY FROM YOUR MACHINE, EVERYONE ELSE IN THE INTERNET WILL NOT BE ABLE TO REFER TO YOUR MACHINE IN THAT WAY (they must use your IP address). For the domain name servers you should edit the /etc/resolv.conf file as follows: search total.net nameserver 205.205.159.2 nameserver 205.205.159.3 The first line will allow you to search the Totalnet domain without specifying it. For example, if you want to get to www.total.net all you have to type is www and the machine will add the total.net automatically. Of course, if you do specify www.total.net, it will get you there as well. The line is arbitrary. Note: in order to use PPP you need to have root privileges in order to setup the network devices and so on, therefore PPPD should be made available to other users by setting permissions as shown bellow. If users other than root will not be accessing the PPP then it shouldn't matter. Simply make sure they do not have any privileges for the PPP files since they contain all your information. -rwsr-xr-x 1 root root 95225 Jul 11 00:27 /usr/sbin/pppd These can be set by typing: chmod u+s /usr/sbin/pppd This will make PPPD run with root privileges even if a regular user calls it. It should be noted that these are potential security holes and extreme care should be taken in using them. Permissions can also be taken away from others and group access permitted. This can be done be creating a new group, PPP, as root and making pppd suid root owned by user root and group PPP with other permissions empty. Then it should look something like this: -rwsr-x--- 1 root PPP 95225 Jul 11 00:27 /usr/sbin/pppd Chapter 4 Now we are ready to proceed with setting up the necessary scripts and options files. You will need to be logged in as root to create the necessary directories and edit the files needed to set up PPP, even if you want PPP to be accessible to all users. PPP uses a number of files to connect and set up a PPP connection. The names and locations will differ between PPP 2.1.2 and PPP 2.2. For PPP 2.1.2 the files are: ______________________________________________________________________ /usr/sbin/pppd # the PPP binary /usr/sbin/ppp-on # the dialer/connection script /usr/sbin/ppp-off # the disconnection script /etc/ppp/options # the options pppd uses for all connections /etc/ppp/options.ttyXX # the options specific to a connection on this port ______________________________________________________________________ For PPP 2.2 the files are:- ______________________________________________________________________ /usr/sbin/pppd # the PPP binary /etc/ppp/scripts/ppp-on # the dialer/connection script /etc/ppp/scripts/ppp-on-dialer # part 1 of the dialer script /etc/ppp/scripts/ppp-off # the actual chat script itself /etc/ppp/options # the options pppd uses for all connections /etc/ppp/options.ttyXX # the options specific to a connection on this port ______________________________________________________________________ The standard Red Hat 4.X installation places these scripts in /usr/doc/ppp-2.2.0f-2/scripts. Your /etc directory should contain a PPP directory: drwxrwxr-x 2 root root 1024 Oct 9 11:01 ppp If it does not exist create it with these ownership and permissions. If the directory already existed, it should contain a template options file called options.tpl. This file is included below in the event that it does not. It is suggested that it be printed as it contains an explanation of nearly all the PPP options (these are useful to read in conjunction with the pppd man pages). While you can use this file as the basis of your /etc/PPP/options file, it is probably better to create your own options file, without all of the comments in the template as it will be much shorter and easier to read or maintain. /etc/PPP/options file, it is probably better to create your own options file that does not include all the comments in the template - it will be much shorter and easier to read/maintain. However, for a single PPP connection, you can use the /etc/ppp/options file. Alternatively, you can put all the options as arguments in the pppd command itself (which is what we are going to do here). If you have multiple connections you may want to put the options in a file so as to have easier access to them. Chapter 5 Pap authentication and the pap-secrets file Password Authentication Protocal (PAP) is far superior to a simple terminal login. It is more secure, dynamic, and in every way an advancement over the terminal login. The pap-secrets file will contain the username and password used to authenticate you with the PAP. Do not give read or write permissions to anyone but yourself, and execute permissions to very selective groups. The file pap-secrets is located in /etc/ppp/pap-secrets Its should contain: ________________________________________ yourusername yourpassword ________________________________________ These are the values that will be used for username and password while the authentication is in progress. The actual ways the pap-secrets are entered in the file are the following. The /etc/ppp/pap-secrets should look like this ______________________________________________________________________ # Secrets for authentication using PAP # client server secret acceptable_local_IP_addresses ______________________________________________________________________ The four fields are white space delimited and the last one can be blank (which is what you want for a dynamic IP allocation from your ISP). This would, in our case give us the following: username * password Which is another way of doing what we did previously. Chapter 6 The next step is setting up all the necessary scripts that will be used to login to Totalnet. * 6.1 IP-up and adding a default gateway In order to get anywhere once we are connected we will need to tell the machine to make use of the connection by making it the default gateway. Without this, the connection will not get anywhere. The following line will need to be entered in the IP-up file: ________________________________________ #!/bin/sh /sbin/route add default gw $5 ________________________________________ TThis will automatically setup a default gateway once we connect and get an IP. The IP-up script is run every time a PPP connection is established. It is a shell script. There are 5 strings imported into it and they are: $1 --- the interface name used by pppd ( i.e. ppp0) $2 --- the tty device name $3 --- the tty device speed $4 --- the local ip address for the interface $5 --- the remote IP address ( this is our server address and our gateway) $6 --- the parameter specified by the ‘ipparam’ option in pppd The only string we will be using in here is $5 because it is all that is necessary. However, if more complex scripting is needed, refer to the original PPP how-to document. More complex scripting is often needed when you have more than one PPP account. In this case, the default gateway is taken down automatically as the PPP shuts down. You may need to remove the gateway upon disconnection by inverting this command in the script IP-down. * 6.2 ppp-on-dialer Next we will need to setup the ppp-on-dialer script to connect before it launches PPP. Usually there are 2 scripts; ppp-on and ppp-on-dialer. The first contains the parameters such as the username, password, telephone number, etc. It exports them to the second script, which launches the chat and executes the commands with the ppp-on parameters. This allows for more flexibility as well as multi user configurations. For the sake of clarity we will enter the parameters directly in to the ppp-on-dialer script and will not use ppp-on at all. This part, if needed in your setup, is left to you. The script should look like this: _______________________________________________________________________ #!/bin/sh # This is part 2 of the ppp-on script. It will perform the connection # protocol for the desired connection. # exec chat -v \ TIMEOUT 3 \ ABORT '\nBUSY\r' \ ABORT '\nNO ANSWER\r' \ ABORT '\nRINGING\r\n\r\nRINGING\r' \ '' \rAT \ 'OK-+++\c-OK' ATH0 \ TIMEOUT 60 \ OK ATZ \ OK ‘AT&F&C1&D2&K3\\N3’ \ OK ‘ATS11=30S95=47S7=255’ \ OK ‘ATDT*70,4813998’ \ CONNECT # ogin username \ # assword: password \ NOTE: Since the two last lines in the script are for a scripted login and the Totalnet connection uses a PAP login, they were remarked out. NOTE2: The line containing ATZ and the two following lines are the initialization string lines. Several things should be noted. Firstly, the init string containing invalid characters [which are in fact commands in a shell script (the ampersand symbol)] must be under single quotes. Otherwise the script will fail at that point. Secondly if your initialization contains a \n3 (mnp5 compression enabled) then you must put in \\n3 (note the double backslash) or the script will not send it as it should be, even if under single quotes. NOTE3: Finally if you need to dial *70 to disable call waiting, there are two options: do not put quotes and dial *70w4813998, or put quotes and dial *70,4813998. The coma will need quotes for the same reason as the ampersand sign, and I have found the coma has better timing (it is much shorter and generally more effective) in actual practice. Ase either method will work, it is up to you to choose which one you prefer. The timeout 30 line represents the timeout, in seconds, of the remote modem before the call is abandoned. A reasonable value can be anywhere between 30 and 120. While 30 may be a reasonable setting, if you notice that your connection is timing out too often for your liking, try raising the limit to 60 or higher. The most time lost is on the sending of the initialization string(s) and on the actual ringing. Choose a timeout that you are comfortable with. Also, you may want to try ate1v1 in case of problems. It will log verbose all things that are happening in the messages log file so that you can more easily troubleshoot it. PPPD command and parameters The only thing left to do is the actual pppd executable command. It will be shown here in full form, although you can either setup an alias or actually put it in a file, name it Totalnet, and then give it executable permissions. It should look like this: pppd passive +ua /etc/ppp/pap-secrets debug lock modem crtscts /dev/modem 38400 connect /etc/p pp/scripts/ppp-on-dialer Here are explanations pppd passive - try to initiate negotiation of the PPP once if nothing happens wait for the remote server to initiate. +ua - accept to authenticate using PAP /etc/ppp/pap-secrets – this is where it will find secrets the server will ask for debug – all will be logged in the log file of your system ( tail –f /var/log/messages) lock – use uucp style locks to ensure exclusive access to the serial device modem - use the modem control lines crtscts – use hardware flow control /dev/modem - tells which device to use to dial 38400- baud rate of the modem ( use appropriate ones 38400 for 28800 modems and 19200 for 14400 modems ) connect /etc/ppp/scripts/ppp-on-dialer – this is the dialing script Configuration specific parameters may be added to the command line, however, it should be sufficient as it is. If your configuration requires something specific it can simply be added to the script. The command line can now be put into a file that will be easy to edit and change In our case I am root and I will write a text file with pico containing all the parameters in ONE LINE in the root home directory. Then I will save it with the name Totalnet and give it executable permissions (chmod 700 Totalnet). Chapter 7 The connection can now be tried by typing in ~root/totalnet. Watch what is happening carefully in your log file it may be helpful for further troubleshooting. In order to do that before launching pppd, go into another terminal (alt Fx), login, and tail the log file ( tail -f /var/log/messages). Then go back into the original terminal, launch pppd, and then go back to the log terminal. This is approximately what you should see if everything goes according to plan: Aug 3 16:24:56 beast kernel: PPP: version 2.2.0 (dynamic channel allocation) Aug 3 16:24:56 beast kernel: PPP Dynamic channel allocation code copyright 1995 Caldera, Inc. Aug 3 16:24:56 beast kernel: PPP line discipline registered. Aug 3 16:24:56 beast kernel: registered device ppp0 Aug 3 16:24:56 beast pppd[415]: pppd 2.2.0 started by root, uid 0 Aug 3 16:24:57 beast chat[416]: timeout set to 3 seconds Aug 3 16:24:57 beast chat[416]: abort on (\nBUSY\r) Aug 3 16:24:57 beast chat[416]: abort on (\nNO ANSWER\r) Aug 3 16:24:57 beast chat[416]: abort on (\nRINGING\r\n\r\nRINGING\r) Aug 3 16:24:57 beast chat[416]: send (rAT^M) Aug 3 16:24:57 beast chat[416]: expect (OK) Aug 3 16:24:57 beast chat[416]: rAT^M^M Aug 3 16:24:57 beast chat[416]: OK -- got it Aug 3 16:24:57 beast chat[416]: send (ATH0^M) Aug 3 16:24:57 beast chat[416]: timeout set to 30 seconds Aug 3 16:24:57 beast chat[416]: expect (OK) Aug 3 16:24:57 beast chat[416]: ^M Aug 3 16:24:57 beast chat[416]: ATH0^M^M Aug 3 16:24:57 beast chat[416]: OK -- got it Aug 3 16:24:57 beast chat[416]: send (ATZ^M) Aug 3 16:24:58 beast chat[416]: expect (OK) Aug 3 16:24:58 beast chat[416]: ^M Aug 3 16:24:59 beast chat[416]: ATZ^M^M Aug 3 16:24:59 beast chat[416]: OK -- got it Aug 3 16:24:59 beast chat[416]: send (AT&fE1v1&c1&d1s95=47s0=0^M) Aug 3 16:24:59 beast chat[416]: expect (OK) Aug 3 16:24:59 beast chat[416]: ^M Aug 3 16:24:59 beast chat[416]: AT&fE1v1&c1&d1s95=47s0=0^M^M Aug 3 16:24:59 beast chat[416]: OK -- got it Aug 3 16:24:59 beast chat[416]: send (ATs7=255s11=30^M) Aug 3 16:25:00 beast chat[416]: expect (OK) Aug 3 16:25:00 beast chat[416]: ^M Aug 3 16:25:00 beast chat[416]: ATs7=255s11=30^M^M Aug 3 16:25:00 beast chat[416]: OK -- got it Aug 3 16:25:00 beast chat[416]: send (ATL1M1\\n3%C&K3B1N1X4^M) Aug 3 16:25:00 beast chat[416]: expect (OK) Aug 3 16:25:00 beast chat[416]: ^M Aug 3 16:25:00 beast chat[416]: ATL1M1\n3%C&K3B1N1X4^M^M Aug 3 16:25:00 beast chat[416]: OK -- got it Aug 3 16:25:00 beast chat[416]: send (ATDT*70,4813998^M) Aug 3 16:25:01 beast chat[416]: expect (CONNECT) Aug 3 16:25:01 beast chat[416]: ^M Aug 3 16:25:21 beast chat[416]: ATDT*70,4813998^M^M Aug 3 16:25:21 beast chat[416]: CARRIER 28800^M Aug 3 16:25:21 beast chat[416]: ^M Aug 3 16:25:21 beast pppd[415]: Serial connection established. Aug 3 16:25:21 beast chat[416]: PROTOCOL: LAP-M^M Aug 3 16:25:21 beast chat[416]: ^M Aug 3 16:25:21 beast chat[416]: COMPRESSION: NONE^M Aug 3 16:25:21 beast chat[416]: ^M Aug 3 16:25:21 beast chat[416]: CONNECT -- got it Aug 3 16:25:22 beast pppd[415]: Using interface ppp0 Aug 3 16:25:22 beast pppd[415]: Connect: ppp0 <--> /dev/modem Aug 3 16:25:26 beast pppd[415]: Remote message: Aug 3 16:25:29 beast pppd[415]: local IP address 205.205.162.81 Aug 3 16:25:29 beast pppd[415]: remote IP address 205.205.162.10 If you did get an IP address your PPP interface can be verified by typing ifconfig. You should get something like this for a PPP device ______________________________________________________________________ ppp0 Link encap:Point-Point Protocol inet addr:205.205.86.55 P-t-P:205.205.86.33 Mask:255.255.255.0 UP POINTOPOINT RUNNING MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0 ______________________________________________________________________ That will indicate that everything is ok Your IP is the inet addr and your server is p-t-p addrr The routing tables should be verified at this point to see if the ip-up has done its job: ______________________________________________________________________ route -n ______________________________________________________________________ You should see something like: ______________________________________________________________________ Kernel routing table Destination Gateway Genmask Flags MSS Window Use Iface 205.205.86.33 * 255.255.255.255 UH 1500 0 1 ppp0 127.0.0.0 * 255.0.0.0 U 3584 0 11 lo 10.0.0.0 * 255.0.0.0 U 1500 0 35 eth0 default 205.205.86.33 * UG 1500 0 5 ppp0 ______________________________________________________________________ Note that there are TWO entries pointing to the PPP interface. The first is a HOST route (indicated by the H flag) which allows us to see the host to which we are connected - but no further. The second is the default route (established by giving pppd the option defaultroute. This is the route that tells our Linux PC to send any packets NOT destined for the local Ethernet(s) - to which we have specific network routes - to the PPP server itself. The PPP server then is responsible for routing packets onto the Internet and routing return packets back. If the routing table does not have two entries, there is something wrong. If your syslog shows a message telling you the pppd is not replacing an existing default route then you have a default route pointing at your Ethernet interface - which MUST be replaced by a specific network route: THERE CAN ONLY BE ONE DEFAULT ROUTE. You will need to explore your system initialization files to find out where this default route is being set up (it will use a route add default...command). This command should be changed to something like route add net... At this point the link should be tested by 'pinging' the server at its IP number as reported by the ifconfig output, i.e. ______________________________________________________________________ ping 205.205.86.33 ______________________________________________________________________ You should receive output like this: ______________________________________________________________________ PING 205.205.86.33 (205.205.86.33): 56 data bytes 64 bytes from 205.205.86.33: icmp_seq=0 ttl=255 time=328.3 ms 64 bytes from 205.205.86.33: icmp_seq=1 ttl=255 time=190.5 ms 64 bytes from 205.205.86.33: icmp_seq=2 ttl=255 time=187.5 ms 64 bytes from 205.205.86.33: icmp_seq=3 ttl=255 time=170.7 ms ______________________________________________________________________ This listing will go on for ever - to stop it press CTRL C, at which point you will receive some more information :- ______________________________________________________________________ --- 205.205.86.33 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 170.7/219.2/328.3 ms ______________________________________________________________________ So far so good. Next, try pinging a host by name (not the name of the PPP server itself) but a host at another site that you are fairly certain is going to be up and running...). For example ______________________________________________________________________ ping sunsite.unc.edu ______________________________________________________________________ There will be a bit of a pause as Linux obtains the IP number for the fully qualified host name you have 'pinged' from the DNS you specified in /etc/resolv.conf - you should see your modem lights flashing. Shortly you will receive output like this: ______________________________________________________________________ PING sunsite.unc.edu (152.2.254.81): 56 data bytes 64 bytes from 152.2.254.81: icmp_seq=0 ttl=254 time=190.1 ms 64 bytes from 152.2.254.81: icmp_seq=1 ttl=254 time=180.6 ms 64 bytes from 152.2.254.81: icmp_seq=2 ttl=254 time=169.8 ms 64 bytes from 152.2.254.81: icmp_seq=3 ttl=254 time=170.6 ms 64 bytes from 152.2.254.81: icmp_seq=4 ttl=254 time=170.6 ms ______________________________________________________________________ Again, stop the output by pressing CTRL C and get the statistics... ______________________________________________________________________ --- sunsite.unc.edu ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 169.8/176.3/190.1 ms ______________________________________________________________________ If there is no response, try pinging the IP address of Totalnet's DNS server. If you get a result from this, then it looks like there is a problem with the /etc/resolv.conf. If this doesn't work, there is a routing problem. Check the routing table as shown above. If everything works, shut down the connection by typing: ______________________________________________________________________ ppp-off ______________________________________________________________________ After a short pause, the modem should hang itself up. If you have more than one PPP interface you will have to specify it (i.e. ppp-off ppp1). If that does not work, either turn off your modem or turn on your communications software and interrupt the modem with +++, then hang up with ATH0 when you receive the modem's OK prompt. The lock file created by the pppd may also need to be verified and pared down. rm -f /var/lock/LCK..ttySx You should now have a fully functional automated connection to Totalnet. [an error occurred while processing this directive]