====== SDF Dial-up via //pppconfig// and //pon|poff|plog// on Ubuntu ======
===== Introduction: =====
There are several ways to setup a PPP-based dial-up network connection on Linux. This tutorial illustrates setting up such a connection using **pppconfig** on //Ubuntu// Linux. Once set up, regular users can start, stop and monitor the network connection via **pon**, **poff** and **plog**. All of these tools are console-based and the initial setup requires the user to invoke superuser privileges via the **sudo** command.
Verify that the modem is installed correctly and that **pppconfig**, **pon**, **poff** and **plog** are present on your system (all should be part of the base Ubuntu install). The **which** command is useful for this: ie. "which pppconfig" should return "/usr/sbin/pppconfig". Also have your SDF Dial-up account information at hand: username, password, local access number. See [[http://sdf.org/?faq?DIALUP|FAQ>DIALUP]] for details.
A word about modems: most internal modems are "WinModems" (MS Windows only) and will not likely work with Linux; the best option is an external "hardware modem" that connects via a serial or USB port. Such modems contain their own controller chip (hence the term "hardware modem") and do not rely on special drivers to function. That said, if all you have is a WinModem it is possible that someone has created a Linux driver for it; check at [[http://linmodems.org/| linmodems.org]] to see if yours is supported.
**pppconfig** should launch ; it's a curses-based application that uses the TAB and Up/Down Arrows to move between fields, SPACE to toggle fields on/off and ENTER to select. The following screens show an account call //SDF_dialup// being set up for a 56K external modem installed on serial port ///dev/ttyS1// for fictional SDF user //mr_retro// authenticating via PAP to //tenex.org// (the SDF radius server):
{{tutorials/images/dialup_ubuntu01.png}}
{{tutorials/images/dialup_ubuntu02.png}}
{{tutorials/images/dialup_ubuntu03.png}}
{{tutorials/images/dialup_ubuntu04.png}}
{{tutorials/images/dialup_ubuntu05.png}}
{{tutorials/images/dialup_ubuntu06.png}}
{{tutorials/images/dialup_ubuntu07.png}}
{{tutorials/images/dialup_ubuntu08.png}}
{{tutorials/images/dialup_ubuntu09.png}}
{{tutorials/images/dialup_ubuntu10.png}}
{{tutorials/images/dialup_ubuntu11.png}}
If you made a mistake anywhere you can re-start **pppconfig** and edit your newly created account. Use the "Advanced Options" for making tweaks to your modem's initialization settings.
===== Starting, Stopping and Monitoring the Dial-up Network Connection: =====
==== Startup: ====
**pon** gets your dial-up network connection going:
# mr_retro@rustbucket:~$ pon SDF_dialup
You should hear the modem initiating the handshake. If all goes well you should be connected; use **ping** to test:
# mr_retro@rustbucket:~$ ping -c1 sdf.org
PING sdf.org (192.94.73.15) 56(84) bytes of data.
64 bytes from SDF.ORG (192.94.73.15): icmp_seq=1 ttl=248 time=72.7 ms
--- sdf.org ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 72.726/72.726/72.726/0.000 ms
==== Monitoring: ====
**plog** provides a simple PPP log file interface. It accepts the same options as **tail(1)** ; use //-f// to provide an on-going dump of events in a separate terminal:
# mr_retro@rustbucket:~$ plog -f
Jan 12 15:16:05 rustbucket pppd[2039]: pppd 2.4.5 started by mr_retro, uid 1001
Jan 12 15:16:06 rustbucket chat[2042]: abort on (BUSY)
Jan 12 15:16:06 rustbucket chat[2042]: abort on (NO CARRIER)
Jan 12 15:16:06 rustbucket chat[2042]: abort on (VOICE)
Jan 12 15:16:06 rustbucket chat[2042]: abort on (NO DIALTONE)
Jan 12 15:16:06 rustbucket chat[2042]: abort on (NO DIAL TONE)
Jan 12 15:16:06 rustbucket chat[2042]: abort on (NO ANSWER)
Jan 12 15:16:06 rustbucket chat[2042]: abort on (DELAYED)
Jan 12 15:16:06 rustbucket chat[2042]: send (ATZ^M)
Jan 12 15:16:06 rustbucket chat[2042]: expect (OK)
Jan 12 15:16:08 rustbucket chat[2042]: ATZ^M^M
Jan 12 15:16:08 rustbucket chat[2042]: OK
Jan 12 15:16:08 rustbucket chat[2042]: -- got it
Jan 12 15:16:08 rustbucket chat[2042]: send (ATDT5551234567^M)
Jan 12 15:16:08 rustbucket chat[2042]: expect (CONNECT)
Jan 12 15:16:08 rustbucket chat[2042]: ^M
Jan 12 15:16:41 rustbucket chat[2042]: ATDT5551234567^M^M