View | Details | Raw Unified | Return to bug 35105
Collapse All | Expand All

(-)handbook/ppp-and-slip/chapter.sgml (-129 / +234 lines)
Lines 73-82 Link Here
73
73
74
    <itemizedlist>
74
    <itemizedlist>
75
      <listitem>
75
      <listitem>
76
	<para>be familiar with basic network terminology.</para>
76
	<para>Be familiar with basic network terminology.</para>
77
      </listitem>
77
      </listitem>
78
      <listitem>
78
      <listitem>
79
	<para>understand the basics and purpose of a dialup connection
79
	<para>Understand the basics and purpose of a dialup connection
80
	  and PPP and/or SLIP.</para>
80
	  and PPP and/or SLIP.</para>
81
      </listitem>
81
      </listitem>
82
    </itemizedlist>
82
    </itemizedlist>
Lines 103-108 Link Here
103
    <sect1info>
103
    <sect1info>
104
      <authorgroup>
104
      <authorgroup>
105
        <author>
105
        <author>
106
          <firstname>Tom</firstname>
107
          <surname>Rhodes</surname>
108
          <contrib>Updated and enhanced by </contrib>
109
        </author>
110
      </authorgroup>
111
      <authorgroup>
112
        <author>
106
          <firstname>Brian</firstname>
113
          <firstname>Brian</firstname>
107
          <surname>Somers</surname>
114
          <surname>Somers</surname>
108
	  <contrib>Originally contributed by </contrib>
115
	  <contrib>Originally contributed by </contrib>
Lines 186-193 Link Here
186
	      Normally, you will be given two IP addresses by your ISP to
193
	      Normally, you will be given two IP addresses by your ISP to
187
	      use for this.  If they have not given you at least one, then
194
	      use for this.  If they have not given you at least one, then
188
	      you can use the <command>enable dns</command> command in
195
	      you can use the <command>enable dns</command> command in
189
	      your <filename>ppp.conf</filename> file to tell
196
	      your <filename>ppp.conf</filename> file to have
190
	      <application>ppp</application> to set the name servers for
197
	      <application>ppp</application> set the name servers for
191
	      you.  This feature depends on your ISPs PPP implementation
198
	      you.  This feature depends on your ISPs PPP implementation
192
              supporting DNS negotiation.</para>
199
              supporting DNS negotiation.</para>
193
	  </listitem>
200
	  </listitem>
Lines 228-234 Link Here
228
	<para>If you do not have any of the required information, contact
235
	<para>If you do not have any of the required information, contact
229
	  your ISP.</para>
236
	  your ISP.</para>
230
237
231
232
	<note>
238
	<note>
233
	  <para>Throughout this section, many of the examples showing
239
	  <para>Throughout this section, many of the examples showing
234
	    the contents of configuration files are numbered by line.
240
	    the contents of configuration files are numbered by line.
Lines 271-277 Link Here
271
          the existence of the <devicename>tun0</devicename> device should
277
          the existence of the <devicename>tun0</devicename> device should
272
          be verified (this is not necessary if DEVFS is enabled as device
278
          be verified (this is not necessary if DEVFS is enabled as device
273
          nodes will be created on demand).</para>
279
          nodes will be created on demand).</para>
274
          
280
275
	<para>The easiest way to make sure that the
281
	<para>The easiest way to make sure that the
276
	  <devicename>tun0</devicename> device is configured correctly
282
	  <devicename>tun0</devicename> device is configured correctly
277
	  is to remake the device.  To remake the device, do the
283
	  is to remake the device.  To remake the device, do the
Lines 286-422 Link Here
286
292
287
	<screen>&prompt.root; <userinput>cd /dev</userinput>
293
	<screen>&prompt.root; <userinput>cd /dev</userinput>
288
&prompt.root; <userinput>sh MAKEDEV tun15</userinput></screen>
294
&prompt.root; <userinput>sh MAKEDEV tun15</userinput></screen>
289
      </sect3>
290
295
291
      <sect3>
296
        <sect4>
292
	<title>Name Resolution Configuration</title>
297
          <title>Check the Modem</title>
298
            <para>If you reconfigured your <filename>kernel</filename>
299
              then you should recall the <devicename>sio</devicename>
300
              device.  If your modem acts like a standard serial port
301
              then you most likely only need to make the serial device.
302
              You can do this by changing your directory to
303
              <filename>/dev</filename> and running the <filename>MAKEDEV</filename>
304
              script like above.  Now make the serial device with
305
<screen>&prompt.root; <userinput>sh MAKEDEV cuaa</userinput></screen>
306
              which will create the serial devices for your system.
307
              If your modem is on <devicename>sio1</devicename> or
308
              <acronym>COM2</acronym> if you are in dos, then your
309
              modem device would be <devicename>/dev/cuaa1</devicename>.
310
            </para>
311
          </sect4>
312
        </sect3>
293
313
294
	<indexterm id="ppp-resolver">
314
      <sect3>
295
	  <primary>resolver</primary>
315
        <title>Manual Connections</title>
296
	</indexterm>
316
          <para>Connecting to the internet by manually controlling
297
	<indexterm id="ppp-hostname">
317
            <command>ppp</command> is quick, easy, and a great way
298
	  <primary><command>hostname</command></primary>
318
            to debug a connection or just get information on how your
299
	</indexterm>
319
            <acronym>ISP</acronym> handles connections.  Lets start
300
	<indexterm id="ppp-hosts">
320
            <application>PPP</application> from the command line,
301
	  <primary><filename>hosts</filename></primary>
321
            note that, in all of our examples we will use <emphasis>localhost</emphasis>
302
	</indexterm>
322
            as the hostname of the machine running <application>PPP</application>.
303
	<para>The resolver is the part of the system that looks up IP
323
            You start <command>ppp</command> by just typing <command>ppp</command>:
304
	  addresses into hostnames and vice versa.  It can be configured
324
305
	  to look for maps that describe IP to hostname mappings in one of
325
<screen>&prompt.root; <userinput>ppp</userinput></screen>
306
	  two places.  The first is a file called
326
307
	  <filename>/etc/hosts</filename>.  Read &man.hosts.5; for more
327
        <para>We have now started <command>ppp</command></para>
308
	  information.  The second is the Internet Domain Name Service
328
309
	  (DNS), a distributed data base.  For more information on DNS
329
<screen>ppp ON example&gt; set device <devicename>/dev/cuaa1</devicename></screen>
310
	  and DNS services, refer to <xref linkend="dns">.</para>
330
311
331
        <para>We set our modem device, in this case it is
312
	<para>The resolver is a set of system calls that perform the name
332
          <devicename>cuaa1</devicename></para>
313
	  mappings, but you have to tell it where to find the
333
314
	  information.  For versions of FreeBSD prior to 5.0.  This is done by
334
<screen>ppp ON example&gt; set speed 115200</screen>
315
          editing the file <filename>/etc/host.conf</filename>.
335
316
          FreeBSD 5.0 uses the <filename>/etc/nsswitch.conf</filename> file.</para>
336
        <para>Set the connection speed, in this case we
317
337
          are using 115,200 <acronym>kbps</acronym></para>
318
	<sect4>
338
319
	  <title>Edit <filename>/etc/host.conf</filename></title>
339
<screen>ppp ON example&gt; enable dns</screen>
320
340
321
	  <para>For versions of FreeBSD prior to 5.0, this file should
341
        <para>Tell <command>ppp</command> to configure our
322
            contain the following two lines (in this order):</para>
342
          resolver and add the nameserver lines to
323
343
          <filename>/etc/resolv.conf</filename>.  If we <command>ppp</command>
324
	  <programlisting>hosts
344
          cannot determine our hostname, we can set one manually later
325
bind</programlisting>
345
        </para>
326
346
327
	  <para>This instructs the resolver to first look in the file
347
<screen>ppp ON example&gt; term</screen>
328
	    <filename>/etc/hosts</filename>, and to then consult the DNS
348
329
	    if the name was not found.</para>
349
        <para>Switch to "terminal" mode so that we can manually
330
	</sect4>
350
          control the modem</para>
331
351
332
	<sect4>
352
<programlisting>
333
	  <title>Edit <filename>/etc/nsswitch.conf</filename></title>
353
deflink: Entering terminal mode on <devicename>/dev/cuaa1</devicename>
334
354
type '~h' for help</programlisting>
335
	  <para>For FreeBSD version 5.0 or above, this file should
355
336
            contain at least the following line:</para>
356
<screen><userinput>at</userinput>
337
357
OK
338
	  <programlisting>hosts: files, dns</programlisting>
358
<userinput>atdt<replaceable>123456789</replaceable></userinput></screen>
339
359
340
	  <para>This instructs the resolver to first look in the file
360
        <para>Use <command>at</command> to initialize the modem,
341
	    <filename>/etc/hosts</filename>, and to then consult DNS
361
          then use <command>atdt</command> and the number for your
342
	    if the name was not found.</para>
362
          <acronym>ISP</acronym> to begin the dial in process</para>
343
	</sect4>
363
344
      
364
<screen>CONNECT</screen>
345
	<sect4>
365
346
	  <title>Edit <filename>/etc/hosts</filename></title>
366
        <para>Confirmation of the connection, if we are going to have
347
367
          any connection problems, unrelated to hardware, here is where
348
	  <para>This file may contain the IP addresses and names of
368
          we will attempt to resolve them.</para>
349
	    machines on your local network.  At a bare minimum it should
369
350
	    contain
370
<screen>ISP Login:<userinput>myusername</userinput></screen>
351
	    entries for the machine which will be running ppp.  Assuming
371
352
	    that your machine is called <hostid
372
        <para>Here you are prompted for a username, return the
353
	    role="fqdn">foo.example.com</hostid> with the IP address <hostid
373
          prompt with the username that was provided by the
354
	    role="ipaddr">10.0.0.1</hostid>,
374
          <acronym>ISP</acronym></para>
355
	    <filename>/etc/hosts</filename> should contain:</para>
375
356
376
<screen>ISP Pass:<userinput>mypassword</userinput></screen>
357
	  <programlisting>127.0.0.1	localhost.example.com	localhost
377
358
::1	localhost.example.com	localhost
378
        <para>This time we are prompted for a password, just
359
10.0.0.1	foo.example.com		foo</programlisting>
379
          reply with the password that was provided by the
360
380
          <acronym>ISP</acronym>.  Just like when logging into
361
	  <para>The first two lines define the alias
381
          FreeBSD, the password will not echo.</para>
362
	    <hostid>localhost</hostid> as a synonym for the current
382
363
	    machine.  Regardless of your own IP address, the IP addresses
383
<screen>Shell or PPP:<userinput>ppp</userinput></screen>
364
	    for these lines should always be <hostid
384
365
	    role="ipaddr">127.0.0.1</hostid> and <hostid
385
        <para>Depending on your <acronym>ISP</acronym> this prompt
366
            role="ipaddr">::1</hostid>.  The last line maps
386
          may never appear.  Here we are being asked if we wish to
367
	    the name <hostid role="fqdn">foo.example.com</hostid> (and the
387
          use a shell on the provider, or to start
368
	    shorthand <hostid>foo</hostid>) to the IP address <hostid
388
          <command>ppp</command>.  In this example, we have chosen
369
	    role="ipaddr">10.0.0.1</hostid>.</para>
389
          to use <command>ppp</command> as we want an internet
370
390
          connection.</para>
371
	  <note>
391
372
	    <para><hostid role="ipaddr">127.0.0.1</hostid> and
392
<screen>Ppp ON example&gt;</screen>
373
		<hostid>localhost</hostid> are known as loopback
393
374
		addresses, which loopback to the local machine.</para>
394
        <para>Notice that in this example the first <option>p</option>
375
	  </note>
395
          has been capitalized.  This shows that we have successfully
376
396
          connected to the <acronym>ISP</acronym>.</para>
377
	  <para>If your provider allocates you a static IP address and
397
378
	    name, and you are not using that as your host name, add this
398
<screen>PPp ON example&gt;</screen>
379
            to the <filename>/etc/hosts</filename> too.</para>
399
380
	</sect4>
400
        <para>We have successfully authenticated with our
381
401
          <acronym>ISP</acronym> and are waiting for the
382
	<sect4>
402
          assigned <acronym>IP</acronym> address.</para>
383
	  <title>Edit <filename>/etc/resolv.conf</filename></title>
403
384
404
<screen>PPP ON example&gt;</screen>
385
	  <para>The <filename>/etc/resolv.conf</filename> file tells the
405
386
	    resolver how to behave.  Normally, you will need to enter
406
        <para>We have made an agreement on an <acronym>IP</acronym>
387
	    the following line(s):</para>
407
          address and successfully completed our connection</para>
408
409
<screen>PPP ON example&gt;add default HISADDR</screen>
410
411
        <para>Here we add our default route, we need to do this
412
          before we can talk to the outside world as currently the
413
          only established connection is with the peer.  If this
414
          fails due to existing routes you can put a bang character
415
          <emphasis>!</emphasis> in front of the <option>add</option>.
416
          Alternatively, you can set this before making the actual connection
417
          and it will negotiate a new route accordingly.</para>
418
419
          <para>If everything went good we should now have an active
420
            connection to the internet, which could be thrown into
421
            the background using
422
            <keycombo action="simul"><keycap>CTRL</keycap> <keycap>z</keycap></keycombo>
423
            If you notice the <command>PPP</command> return to
424
            <command>ppp</command> then we have lost our connection.
425
            This is good to know because it shows our connection status.
426
            Capital P's show that we have a connection to the
427
            <acronym>ISP</acronym> and lowercase p's show that the
428
            connection has been lost for whatever reason.
429
            <command>ppp</command> only has these 2 states.
430
          </para>
431
432
          <sect4>
433
            <title>Troubleshooting Manual Connections</title>
434
              <para>Like everything else, once in awhile a problem or
435
                may occur.  <application>PPP</application> is no
436
                exemption to this theory.  If <command>ppp</command>
437
                would happen to stop responding there are some things
438
                we can try.</para>
439
440
              <para>If you have a direct line and cannot seem to make a
441
                connection, then turn hardware flow <acronym>CTS/RTS</acronym>
442
                to off with the <option>set ctsrts off</option>.  This is
443
                mainly the case if you are connected to some
444
                <application>PPP</application> capable terminal servers,
445
                where <application>PPP</application> hangs when it tries
446
                to write data to your communication link, so it would
447
                would be waiting for a <acronym>CTS</acronym>, or Clear
448
                To Send signal which may never come.  If you use this
449
                option however, you should also use the <option>set accmap</option>
450
                option, which may be required to defeat hardware dependent on
451
                passing certain characters from end to end, most of the time
452
                XON/XOFF.  See the &man.ppp.8; man page for more information
453
                on this option, and how it is used.</para>
454
455
              <para>If you have an older modem, you may need to use the
456
                <option>set parity even</option>.  Parity is set at none
457
                be default, but is used for error checking (with a large
458
                increase in traffic) on older modems and some
459
                <acronym>ISP</acronym>s.  You may need this option for
460
                the Compuserve ISP.</para>
461
462
              <para><application>PPP</application> may not return to the
463
                command mode, which is usually a negotiation error where
464
                the <acronym>ISP</acronym> is waiting for your side to start
465
                negotiating.  At this point, using the <command>~p</command>
466
                command will force ppp to start sending the configuration
467
                information.</para>
468
469
              <para>If you never obtain a login prompt, then most likely you
470
                you need to use <acronym>PAP</acronym> or <acronym>CHAP</acronym>
471
                authentication instead of the Unix-style in the example above.  To
472
                use <acronym>PAP</acronym> or <acronym>CHAP</acronym> just add the
473
                following options to <application>PPP</application> before going
474
                into terminal mode:</para>
475
476
<screen>ppp ON localhost&gt; <userinput>set authname <replaceable>myusername</replaceable></userinput></screen>
477
478
        <para>Where <replaceable>myusername</replaceable> should be replaced with
479
          the username that was assigned by the <acronym>ISP</acronym>.</para>
480
481
<screen>ppp ON localhost&gt; <userinput>set authkey <replaceable>mypassword</replaceable></userinput></screen>
482
483
        <para>Where <replaceable>mypassword</replaceable> should be replaced with
484
          the password that was assigned by the <acronym>ISP</acronym>.</para>
485
486
        <para>If you connect fine, but cannot seem to find any domain name, try to
487
          use &man.ping.8; with an <acronym>IP</acronym> address and see if you
488
          can get any return information.  If you experience 100 percent (100%)
489
          packet loss, then its most likely that you were not assigned a default
490
          route.  Double check that the option <option>add default HISADDR</option>
491
          was set during the connection.  If you can connect to a remote
492
          <acronym>IP</acronym> address then it is possible that a resolver address
493
          has not been added to the <filename>/etc/resolv.conf</filename>.  This
494
          file should look like:</para>
388
495
389
	  <programlisting>domain <replaceable>example.com</replaceable>
496
	  <programlisting>domain <replaceable>example.com</replaceable>
390
nameserver <replaceable>x.x.x.x</replaceable>
497
nameserver <replaceable>x.x.x.x</replaceable>
391
nameserver <replaceable>y.y.y.y</replaceable></programlisting>
498
nameserver <replaceable>y.y.y.y</replaceable></programlisting>
392
499
393
	  <para>The <hostid
500
        <para>Where <replaceable>x.x.x.x</replaceable> and
394
	    role="ipaddr"><replaceable>x.x.x.x</replaceable></hostid> and 
501
          <replaceable>y.y.y.y</replaceable> should be replaced with the
395
	    <hostid role="ipaddr"><replaceable>y.y.y.y</replaceable></hostid>
502
          <acronym>IP</acronym> address of your <acronym>ISP</acronym>'s DNS servers.
396
	    addresses are those given to you by your ISP.  Add as many
503
          This information may or may not have been provided when you signed up, but
397
	    <literal>nameserver</literal> lines as your ISP provides.  The
504
          a quick call to your <acronym>ISP</acronym> should remedy that.</para>
398
	    <literal>domain</literal> line is set to your hosts
505
399
	    domain name.  Refer to the &man.resolv.conf.5; manual page for
506
              <para>You could also have &man.syslog.3; provide a logging function
400
            details of other possible entries in this file.</para>
507
                for your <application>PPP</application> connection.  Just add:</para>
401
508
402
	  <para>If you are running a local name server, replace the
509
        <programlisting>
403
            above nameserver lines with:</para>
510
        !ppp
404
511
        *.*     /var/log/ppp.log</programlisting>
405
	  <programlisting>nameserver <replaceable>0.0.0.0</replaceable></programlisting>
512
406
513
              <para>to <filename>/etc/syslog.conf</filename>.  In most cases, this
407
	  <indexterm><primary>PPP</primary></indexterm>
514
                functionality already exists.</para>
408
	  <indexterm><primary>ISP</primary></indexterm>
515
409
	  <para>The <command>enable dns</command> command (entered in the
516
        </sect4>
410
            <filename>/etc/ppp/ppp.conf</filename> file - see below) will
411
            tell PPP to request that your ISP confirms the nameserver values.
412
            If your ISP supplies different addresses (or if there are no
413
            nameserver lines in <filename>/etc/resolv.conf</filename>), PPP
414
            will rewrite the file with the ISP-supplied values.</para>
415
	</sect4>
416
      </sect3>
517
      </sect3>
417
518
418
      <sect3>
519
      <sect3>
419
        <title><application>PPP</application> Configuration</title>
520
        <title>Automatic <application>PPP</application> Configuration</title>
420
521
421
	<indexterm><primary>PPP</primary><secondary>configuration</secondary></indexterm>
522
	<indexterm><primary>PPP</primary><secondary>configuration</secondary></indexterm>
422
	<para>Both <command>ppp</command> and <command>pppd</command>
523
	<para>Both <command>ppp</command> and <command>pppd</command>
Lines 444-450 Link Here
444
	    <para>Lines that end in a <literal>:</literal> start in
545
	    <para>Lines that end in a <literal>:</literal> start in
445
	      the first column (beginning of the line)&mdash; all other
546
	      the first column (beginning of the line)&mdash; all other
446
	      lines should be indented as shown using spaces or
547
	      lines should be indented as shown using spaces or
447
	      tabs.</para>
548
	      tabs.  Most of the information you need to provide here
549
              was shown to us by doing the manual dial above.</para>
448
	  </note>
550
	  </note>
449
551
450
	  <programlisting>1     default:
552
	  <programlisting>1     default:
Lines 574-580 Link Here
574
676
575
	      <listitem>
677
	      <listitem>
576
		<para>Identifies an entry for a provider called
678
		<para>Identifies an entry for a provider called
577
		  <quote>provider</quote>.</para>
679
		  <quote>provider</quote>.  This could be changed
680
                    to the name of your <acronym>ISP</acronym> so
681
                    that later you can use the <option>load ISP</option>
682
                    to start the connection.</para>
578
	      </listitem>
683
	      </listitem>
579
	    </varlistentry>
684
	    </varlistentry>

Return to bug 35105