source: archive/ppp.xml@ dfd51cd7

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since dfd51cd7 was 586d056, checked in by Bruce Dubbs <bdubbs@…>, 11 years ago

Move ppp to archive
Tag some applications for LFS-7.2

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@10808 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 20.7 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY ppp-download-http "http://samba.org/ftp/ppp/ppp-&ppp-version;.tar.gz">
8 <!ENTITY ppp-download-ftp "&gentoo-ftp-repo;/ppp-&ppp-version;.tar.gz">
9 <!ENTITY ppp-md5sum "4621bc56167b6953ec4071043fe0ec57">
10 <!ENTITY ppp-size "920 KB">
11 <!ENTITY ppp-buildsize "6.4 MB">
12 <!ENTITY ppp-time "0.1 SBU">
13]>
14
15<sect1 id="ppp" xreflabel="PPP-&ppp-version;">
16 <?dbhtml filename="ppp.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>PPP-&ppp-version;</title>
24
25 <indexterm zone="ppp">
26 <primary sortas="a-PPP">PPP</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to PPP</title>
31
32 <para>The <application>PPP</application> package contains the
33 <command>pppd</command> daemon and the <command>chat</command>
34 program. This is used for connecting to other machines; often for connecting to
35 the Internet via a dial-up or PPPoE connection to an ISP.</para>
36
37 &lfs70_checked;
38
39 <bridgehead renderas="sect3">Package Information</bridgehead>
40 <itemizedlist spacing="compact">
41 <listitem>
42 <para>Download (HTTP): <ulink url="&ppp-download-http;"/></para>
43 </listitem>
44 <listitem>
45 <para>Download (FTP): <ulink url="&ppp-download-ftp;"/></para>
46 </listitem>
47 <listitem>
48 <para>Download MD5 sum: &ppp-md5sum;</para>
49 </listitem>
50 <listitem>
51 <para>Download size: &ppp-size;</para>
52 </listitem>
53 <listitem>
54 <para>Estimated disk space required: &ppp-buildsize;</para>
55 </listitem>
56 <listitem>
57 <para>Estimated build time: &ppp-time;</para>
58 </listitem>
59 </itemizedlist>
60
61 <bridgehead renderas="sect3">PPP Dependencies</bridgehead>
62
63 <bridgehead renderas="sect4">Optional</bridgehead>
64 <para role="optional"><xref linkend="libpcap"/> (needed to do PPP filtering)
65 and <xref linkend="linux-pam"/> (to authenticate incoming calls using PAM -
66 only needed by ISPs).
67 </para>
68
69 <para condition="html" role="usernotes">User Notes:
70 <ulink url="&blfs-wiki;/PPP"/></para>
71
72 </sect2>
73
74 <sect2 role="installation">
75 <title>Installation of PPP</title>
76
77 <note id="ppp-kernel">
78 <para><application>PPP</application> support (CONFIG_PPP),
79 the asynchronous line discipline (CONFIG_PPP_ASYNC), the
80 driver for your serial port device and/or the PPP over Ethernet
81 (PPPoE) protocol driver (CONGIG_PPPOE) must be compiled into the
82 kernel or loaded as kernel modules.
83 Udev doesn't load the ppp_generic and pppoe modules automatically. If you
84 compiled them as modules they can be loaded by the modules bootscript if
85 they are mentioned in <filename>/etc/sysconfig/modules</filename>
86 file.</para>
87 </note>
88
89 <indexterm zone="ppp ppp-kernel">
90 <primary sortas="d-PPP-support">PPP support</primary>
91 </indexterm>
92
93 <para>Create (as <systemitem class="username">root</systemitem>)
94 the group for users who may run <application>PPP</application>:</para>
95
96<screen role="root"><userinput>groupadd -g 52 pppusers</userinput></screen>
97
98 <para>Compile <application>PPP</application> by running the
99 following commands:</para>
100
101<screen><userinput>rm include/linux/if_pppol2tp.h &amp;&amp;
102./configure --prefix=/usr &amp;&amp;
103make</userinput></screen>
104
105 <para>This package does not come with a test suite.</para>
106
107 <para>Now, as the <systemitem class="username">root</systemitem> user:</para>
108
109<screen role='root'><userinput>make install &amp;&amp;
110install -d /etc/ppp/peers</userinput></screen>
111
112 </sect2>
113
114 <sect2 role="commands">
115 <title>Command Explanations</title>
116
117 <para><command>rm include/linux/if_pppol2tp.h</command>:
118 <application>PPP-&ppp-version;</application> contains an out of date copy
119 of the kernel header <filename>linux/if_pppol2tp.h</filename>. This needs to
120 be removed to <emphasis>force</emphasis> it to use the one installed in
121 <filename class="directory">/usr</filename>. If you don't remove this file
122 the build will still succeed (thanks to a poorly written
123 <filename>Makefile</filename>) but it will fail to compile the
124 <filename class="libraryfile">openl2tp.so</filename>,
125 <filename class="libraryfile">pppol2tp.so</filename>,
126 and <filename class="libraryfile">rp-pppoe.so</filename> plugins:</para>
127
128 <para><command>install -d /etc/ppp/peers</command>: This command creates
129 a directory for PPP peer configuration files.</para>
130
131<!-- FIXME: the three options below are taken from pppd/Makefile.linux file.
132 They have not been tested. There are other options, such as USE_SRP=y,
133 that cannot work (in this case, because libsrp is not available from
134 anywhere) - Alexander E. Patrakov -->
135
136 <para><parameter>USE_PAM=y</parameter>: Add this argument to the
137 <command>make</command> command to compile in support for PAM, usually
138 needed for authenticating inbound calls against a central database.</para>
139
140 <para><parameter>HAVE_INET6=y</parameter>: Add this argument to the
141 <command>make</command> command to compile in support for IPv6.</para>
142
143 <para><parameter>CBCP=y</parameter>: Add this argument to the
144 <command>make</command> command to compile in support for the
145 Microsoft proprietary Callback Control Protocol.</para>
146
147 </sect2>
148
149 <sect2 role="configuration">
150 <title>Configuring PPP</title>
151
152 <sect3 id="ppp-config">
153 <title>Config Files</title>
154
155 <para><filename>/etc/ppp/*</filename></para>
156
157 <indexterm zone="ppp ppp-config">
158 <primary sortas="e-etc-ppp-star">/etc/ppp/*</primary>
159 </indexterm>
160
161 </sect3>
162
163 <sect3>
164 <title>Configuration Information</title>
165
166 <para>Add the users who may run <application>PPP</application> to the
167 <systemitem class="groupname">pppusers</systemitem> group:</para>
168
169<screen role="root"><userinput>usermod -a -G pppusers <replaceable>&lt;username&gt;</replaceable></userinput></screen>
170
171 <para>Most internet service providers that use ppp give you a username
172 and password for you to use to authenticate yourself when you connect to
173 their servers. These secrets are kept in the files
174 <filename>/etc/ppp/pap-secrets</filename> or
175 <filename>/etc/ppp/chap-secrets</filename>. If you don't know whether
176 your ISP uses CHAP or PAP then create both files and put the same content
177 in both files.</para>
178
179 <para>If you have more than one ISP account the second column
180 (remotename) is used to identify between the different
181 usernames/passwords needed for the different ISPs. If you only have one
182 ISP account an asterisk will work fine in the second column.</para>
183
184 <para>In this example the username given by the ISP is
185 <quote>jdoe</quote>, the password is <quote>guessit</quote>, the ISP uses
186 PAP and the user wants to give this account the remotename
187 <quote>dialup</quote> in order to distinguish it from other PPP
188 accounts:</para>
189
190<screen role="root"><userinput>cat &gt;&gt;/etc/ppp/pap-secrets &lt;&lt;"EOF"</userinput>
191<literal># username remotename password
192jdoe dialup guessit</literal>
193<userinput>EOF
194chmod 600 /etc/ppp/pap-secrets</userinput></screen>
195
196 <sect4>
197 <title>DNS Server Configuration</title>
198
199 <para>If you don't run your own caching DNS server (like
200 <xref linkend="bind"/>) <command>pppd</command> can ask your ISP for its
201 domain name servers and put them in <filename>/etc/ppp/resolv.conf</filename>.
202 If you want to use their domain name servers:</para>
203
204<screen role="root"><userinput>mv /etc/resolv.conf{,.orig}
205ln -s ppp/resolv.conf /etc</userinput></screen>
206
207 </sect4>
208
209 <sect4>
210 <title>PPPoE connections</title>
211
212 <para>In order to configure a PPPoE connection, create a peer file that
213 contains the connection details:</para>
214<screen role="root"><userinput>cat &gt;/etc/ppp/peers/<replaceable>peername</replaceable> &lt;&lt;"EOF"</userinput>
215<literal>plugin rp-pppoe.so <replaceable>eth0</replaceable>
216
217# Your username at the ISP. This is the same as the first
218# column in /etc/ppp/*-secrets:
219user "<replaceable>jdoe</replaceable>"
220
221# remotename is not needed if you only have one ISP account and
222# hence an asterisk in the second column in pap or chap-secrets:
223# remotename "<replaceable>adsl</replaceable>"
224
225# If it's not working and you want pppd to be
226# more verbose in /var/log/sys.log, add debug:
227# debug
228
229# If you have a static IP address (eg, 12.34.56.78) you
230# can specify it by following it with a colon:
231# 12.34.56.78:
232
233# Otherwise accept whatever IP address the ISP gives you:
234noipdefault
235
236# The settings below usually don't need to be changed
237noauth
238hide-password
239updetach
240defaultroute
241# create /etc/ppp/resolv.conf:
242usepeerdns
243
244### For more details (and more options)
245### read man pppd</literal>
246<userinput>EOF
247chmod 600 /etc/ppp/peers/<replaceable>peername</replaceable></userinput></screen>
248 </sect4>
249
250 <sect4>
251 <title>PPPoATM connections</title>
252
253 <para>PPPoA connections are very similar to PPPoE, the main differences
254 are that you use the pppoatm.so plugin instead of rp-pppoe.so, you don't
255 specify the ethernet interface (it uses ppp0) and you need to VP/VC
256 numbers that are used by your ISP (there is a list of VP/VC numbers
257 <ulink url="http://www.linux-usb.org/SpeedTouch/faq/index.html#q12">here
258 </ulink>)</para>
259
260<screen role="root"><userinput>cat &gt;/etc/ppp/peers/<replaceable>peername</replaceable> &lt;&lt;"EOF"</userinput>
261<literal>plugin pppoatm.so
262
263# Your VP/VC numbers. eg, in Britain it is 0.38, in
264# France they use 8.35. Google is your friend :)
2650.38
266
267# Your username at the ISP. This is the same as the
268# first column in /etc/ppp/*-secrets:
269user "<replaceable>jdoe</replaceable>"
270
271# remotename is not needed if you only have one ISP account and
272# hence an asterisk in the second column in pap or chap-secrets:
273# remotename "<replaceable>adsl</replaceable>"
274
275# If it's not working and you want pppd to be
276# more verbose in /var/log/sys.log, add debug:
277# debug
278
279# If you have a static IP address (eg, 12.34.56.78) you
280# can specify it by following it with a colon:
281# 12.34.56.78:
282
283# Otherwise accept whatever IP address the ISP gives you:
284noipdefault
285
286# The settings below usually don't need to be changed
287noauth
288hide-password
289updetach
290defaultroute
291# create /etc/ppp/resolv.conf:
292usepeerdns
293
294### For more details (and more options)
295### read man pppd</literal>
296<userinput>EOF
297chmod 600 /etc/ppp/peers/<replaceable>peername</replaceable></userinput></screen>
298
299 </sect4>
300
301 <sect4>
302 <title>Dialup Modem Connection</title>
303
304<!-- This section has been tested with various ISPs in Yekaterinburg,
305 Russia using Lucent WinModem. I cannot test it anymore, because
306 there is no free PCI slot for the modem in my new computer. However,
307 it is similar enough to GPRS for me to be sure that it still works,
308 and nobody complained about non-working dialup on the LFS LiveCD.
309 - Alexander E. Patrakov -->
310
311 <para>Dialup connections are established with the help of a modem
312 connected to a computer and the telephone line. The modem dials a
313 telephone number of the ISP's modem, and they exchange data using
314 the signal frequencies 300-4000 Hz. Typical data transfer
315 rate is 40-50 kilobits per second, and the gateway ping time
316 (latency) is up to 300-400 ms. In order to configure the
317 dialup connection, it is required to know the telephone number of
318 the ISP's modem pool, the username and the password.</para>
319
320 <para>In order to configure a dialup connection, two files have to
321 be created: a chat script that automates the connection procedure
322 (common for all dialup accounts), and a peer file that provides
323 configuration information about a specific connection to
324 <command>pppd</command>:</para>
325<screen role="root"><userinput>cat &gt;/etc/ppp/dialup.chat &lt;&lt;"EOF"</userinput>
326<literal>ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE'
327ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
328ABORT ERROR ABORT BLACKLISTED
329
330TIMEOUT 5
331'' AT
332# \T is the phone number, passed from /etc/ppp/peers/<replaceable>dialup</replaceable>
333OK-+++\dATH0-OK ATD\T
334TIMEOUT 75
335CONNECT \d\c</literal>
336<userinput>EOF
337
338cat &gt;/etc/ppp/peers/<replaceable>dialup</replaceable> &lt;&lt;"EOF"</userinput>
339<literal># Your username at the ISP
340user "<replaceable>jdoe</replaceable>"
341# What should be in the second column in /etc/ppp/*-secrets
342remotename "<replaceable>dialup</replaceable>"
343# Replace <replaceable>TTTTTTT</replaceable> with the ISP phone number
344connect "/usr/sbin/chat -T <replaceable>TTTTTTT</replaceable> -f /etc/ppp/dialup.chat"
345
346# Specify your modem serial port and speed below
347<replaceable>/dev/ttyS0</replaceable>
348<replaceable>115200</replaceable>
349
350# The settings below usually don't need to be changed
351updetach
352noauth
353hide-password
354debug
355lock
356defaultroute
357noipdefault
358usepeerdns</literal>
359<userinput>EOF</userinput></screen>
360
361 <para>The first three lines of the
362 <filename>/etc/ppp/dialup.chat</filename> file abort the script when
363 it receives an indication of an error from the modem. Then the timeout
364 is set to 5 seconds and the script checks that the modem responds to
365 the dummy AT command. If not, measures are taken to dewedge it
366 (by interrupting the data transfer and going on hook). Then the
367 telephone number is dialed, and the script waits for the answer for
368 75 seconds. The serial connection is considered established when the
369 modem sends the string CONNECT.</para>
370
371 </sect4>
372
373 <sect4>
374 <title>GPRS and EDGE Connections</title>
375
376<!-- This section has been tested with GPRS service from MOTIV in
377 Yekaterinburg, Russia. According to forum messages, the procedure
378 also works with EDGE, but my cellular phone (Motorola C350) does not
379 support EDGE. - Alexander E. Patrakov -->
380
381 <para>GPRS and EDGE connections are established with the help of a
382 cellular phone connected to a computer via serial, USB, or Bluetooth.
383 The phone exchanges data packets with the nearest base station,
384 which can be up to 35 kilometers away.
385
386 <!-- FIXME: watch for new standards! SkyLink is already offering
387 3.1 megabits per second with CDMA mobile phones, and
388 the configuration below doesn't work. It is reported that
389 a regular dialup setup with the telephone number "#777",
390 username "mobile" and password "internet" works with SkyLink. -->
391
392 The maximum possible data transfer rate is 170 kilobits per second
393 for GPRS and 474 kilobits per second for EDGE, but many cellular
394 operators impose lower limits, such as 64 kilobits per second. The
395 gateway ping time is 900 ms for GPRS, which makes playing many online
396 games impossible and causes connection to ICQ to be unreliable.
397 In order to configure a GPRS or EDGE connection,
398 it is required to know the access point name (APN) and, rarely, the
399 username and the password.
400 In most cases, billing is based on the telephone number, and the
401 username/password pair is not needed, as assumed in the example
402 below.</para>
403
404 <para>In order to configure a GPRS connection, two files have to
405 be created: a chat script that automates the connection procedure
406 (common for all GPRS accounts), and a peer file that provides
407 configuration information about a specific connection to
408 <command>pppd</command>:</para>
409<screen role="root"><userinput>cat &gt;/etc/ppp/gprs.chat &lt;&lt;"EOF"</userinput>
410<literal>ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE'
411ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
412ABORT ERROR ABORT BLACKLISTED
413
414TIMEOUT 5
415'' AT
416OK-+++\dATH0-OK ATZ
417# \T is the APN, passed from /etc/ppp/peers/<replaceable>gprs</replaceable>
418# This example stores the APN as profile #1 in the phone.
419# The "telephone number", *99***&lt;profile_number&gt;#, is always the same.
420# If you want to store this as profile #2, change 1 to 2 in the
421# following two lines.
422OK AT+CGDCONT=<replaceable>1</replaceable>,"IP","\T"
423OK "ATD*99***<replaceable>1</replaceable>#"
424CONNECT \d\c</literal>
425<userinput>EOF
426
427cat &gt;/etc/ppp/peers/<replaceable>gprs</replaceable> &lt;&lt;"EOF"</userinput>
428<literal># Replace <replaceable>inet.example.com</replaceable> with the proper APN for your provider
429connect "/usr/sbin/chat -T <replaceable>inet.example.com</replaceable> -f /etc/ppp/gprs.chat"
430
431# Specify your cellphone serial port and speed below
432# Note: you must manually send some vendor-specific AT commands
433# to certain old cellular phones (such as Sony-Ericsson T200)
434# in order to achieve connection speed more than 9600 bits per second.
435<replaceable>/dev/ttyS1</replaceable>
436<replaceable>115200</replaceable>
437
438# The settings below usually don't need to be changed
439noccp
440noauth
441updetach
442debug
443lock
444defaultroute
445noipdefault
446usepeerdns</literal>
447<userinput>EOF</userinput></screen>
448 </sect4>
449
450 <sect4>
451 <title>Establishing the connection manually</title>
452
453 <para>In order to establish a PPP connection described by the
454 <filename>/etc/ppp/peers/<replaceable>peername</replaceable></filename>
455 file run (as <systemitem class="username">root</systemitem> or as a member
456 of the <systemitem class="groupname">pppusers</systemitem> group):</para>
457<screen><userinput>pppd call <replaceable>peername</replaceable></userinput></screen>
458
459 <para>In order to stop the connection, run:</para>
460<screen><userinput>killall pppd</userinput></screen>
461
462 <!-- There are an infinite number of ways that computers can be
463 connected together. Trying to write a bootscript that can cope with every
464 possible network configuration is the road to madness. Andrew Benton -->
465
466 <para>Writing a bootscript that brings up the connection during the boot
467 process is left as an exercise for the reader ;)</para>
468
469 </sect4>
470
471 </sect3>
472
473 </sect2>
474 <sect2 role="content">
475 <title>Contents</title>
476
477 <segmentedlist>
478 <segtitle>Installed Programs</segtitle>
479 <segtitle>Installed Libraries</segtitle>
480 <segtitle>Installed Directories</segtitle>
481
482 <seglistitem>
483 <seg>chat, pppd, pppdump, pppoe-discovery and pppstats</seg>
484 <seg>Several plugin modules installed in
485 <filename class='directory'>/usr/lib/pppd/&ppp-version;</filename></seg>
486 <seg>/etc/ppp, /usr/include/pppd and /usr/lib/pppd</seg>
487 </seglistitem>
488 </segmentedlist>
489
490 <variablelist>
491 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
492 <?dbfo list-presentation="list"?>
493 <?dbhtml list-presentation="table"?>
494
495 <varlistentry id="chat">
496 <term><command>chat</command></term>
497 <listitem>
498 <para>defines a conversational exchange between the computer and the
499 modem. Its primary purpose is to establish the connection between the
500 Point-to-Point Protocol Daemon (PPPD) and the remote
501 <command>pppd</command> process.</para>
502 <indexterm zone="ppp chat">
503 <primary sortas="b-chat">chat</primary>
504 </indexterm>
505 </listitem>
506 </varlistentry>
507
508 <varlistentry id="pppd">
509 <term><command>pppd</command></term>
510 <listitem>
511 <para>is the Point to Point Protocol daemon.</para>
512 <indexterm zone="ppp pppd">
513 <primary sortas="b-pppd">pppd</primary>
514 </indexterm>
515 </listitem>
516 </varlistentry>
517
518 <varlistentry id="pppdump">
519 <term><command>pppdump</command></term>
520 <listitem>
521 <para>is used to convert
522 <application>PPP</application> record files to a readable
523 format.</para>
524 <indexterm zone="ppp pppdump">
525 <primary sortas="b-pppdump">pppdump</primary>
526 </indexterm>
527 </listitem>
528 </varlistentry>
529
530 <varlistentry id="pppoe-discovery">
531 <term><command>pppoe-discovery</command></term>
532 <listitem>
533 <para>performs the same discovery process as the pppoe plugin, but
534 does not initiate a <application>PPP</application> session.</para>
535 <indexterm zone="ppp pppoe-discovery">
536 <primary sortas="b-pppoe-discovery">pppoe-discovery</primary>
537 </indexterm>
538 </listitem>
539 </varlistentry>
540
541 <varlistentry id="pppstats">
542 <term><command>pppstats</command></term>
543 <listitem>
544 <para>is used to print
545 <application>PPP</application> statistics.</para>
546 <indexterm zone="ppp pppstats">
547 <primary sortas="b-pppstats">pppstats</primary>
548 </indexterm>
549 </listitem>
550 </varlistentry>
551
552 </variablelist>
553
554 </sect2>
555
556</sect1>
Note: See TracBrowser for help on using the repository browser.