<!--
     The FreeBSD Documentation Project

     $FreeBSD$
-->

<chapter id="ppp-and-slip">
  <chapterinfo>
    <authorgroup>
      <author>
	<firstname>Jim</firstname>
	<surname>Mock</surname>
	<contrib>Reestructurado, reorganizado, y actualizado por </contrib>
	<!-- 1 Mar 2000 -->
      </author>
    </authorgroup>
  </chapterinfo>

  <title>PPP y SLIP</title>

  <sect1>
    <title>Sin&oacute;psis</title>
    <indexterm id="ppp-ppp">
      <primary>PPP</primary>
    </indexterm>
    <indexterm id="ppp-slip">
      <primary>SLIP</primary>
    </indexterm>

    <para>FreeBSD cuenta con un gran numero de formas para conectar una 
      computadora a otra.  Para establecer una red o una conecci&oacute;n a
      Internet por medio de un m&oacute;dem, o bien, permitir a otras
      computadoras conectarse por medio de este, se requiere del uso de 
      PPP o SLIP.  Este cap&iacute;tulo describe en detalle como configurar 
      los servicios de comunicaci&oacute;n para llevar esto a cabo.</para>

    <para>Una vez que haya leido este cap&iacute;tulo, usted sabr&aacute;:</para>

    <itemizedlist>
    	<listitem>
      <para>Como configurar User PPP.</para>
    	</listitem>
    	<listitem>
      <para>Como configurar Kernel PPP.</para>
    	</listitem>
    	<listitem>
   	  <para>Como configurar <acronym>PPPoE</acronym> (PPP over Ethernet*).
    	</para>
    	</listitem>
    	<listitem>
      <para>Como configurar <acronym>PPPoA</acronym> (PPP over ATM*).</para>
    	</listitem>
    	<listitem>
      <para>Como instalar y configurar un cliente y servidor SLIP.</para>	
    	</listitem>
    </itemizedlist>

    <para>N. de T.: En estricto sentido esto se refiere a
      contar con la conexi&oacute;n por medio de un dispositivo Ethernet,
      o bien ATM, pero debido a que usted encontrar&aacute; estos
      metodos en su sistema, como PPPoE o bien PPPoA, se han
      dejado los conceptos <quote>literales</quote> del documento original. 
      Espero que no sea un problema.</para>

    <para>Antes de leer este cap&iacute;tulo, usted debiese:</para>

    <itemizedlist>
      <listitem>
    <para>Estar familiarizado con la terminolog&iacute;a b&aacute;sica de
      redes.</para>
      </listitem>
      <listitem>
    <para>Comprender lo b&aacute;sico y el prop&oacute;sito de una 
      conecci&oacute;n por m&oacute;dem SLIP y/o PPP.</para>
      </listitem>
    </itemizedlist>

    <para>Puede ser que usted se pregunte cual es la principal diferencia
      entre User PPP y kernel PPP. La respuesta es sencilla; el m&eacute;todo
      User PPP procesa la entrada y salida de datos en userland (ver nota
      siguiente) en lugar de hacerlo en el kernel.
      Esto es algo desgastante, en t&eacute;rminos del manejo de datos
      entre userland y el kernel, pero permite, por mucho, un mejor
      desempe&ntilde;o e implementaci&oacute;n de PPP.
      User PPP utiliza el dispositivo <devicename>tun</devicename> para
      comunicarse con el mundo exterior, mientras que kernel&mdash;ppp,
      utiliza el dispositivo <devicename>ppp</devicename>.

    <para>En el desarrollo de este cap&iacute;tulo, se har&aacute; referencia
      a User PPP, simplemente como <emphasis>ppp</emphasis>, a menos de que
      sea necesaria hacer una distinci&oacute;n entre este y otro software
      de PPP, como es el caso de <command>pppd</command>. As&iacute; mismo,
      si en el desarrollo del cap&iacute;tulo no se se&ntilde;ala lo
      contrario, todos los comandos explicados, deber&aacute;n ser ejecutados
      como <username>root</username>.</para>

    <para>N. de T. : Cuando se habla de "userland"
      se hace referencia a todo aquello que *no* forma parte del kernel y que
      en el caso de c&oacute;digo de programa, se ejecuta en modo usuario, ya
      que el c&oacute;digo del kernel se ejecuta en modo kernel, supervisor,
      o bien en modo privilegiado de ejecuci&oacute;n. En lo sucesivo este
      t&eacute;rmino ser&aacute; utilizado tal cual.</para>
  </sect1>

  <sect1 id="userppp">
    <sect1info>
      <authorgroup>
        <author>
          <firstname>Brian</firstname>
          <surname>Somers</surname>
	  <contrib>Originalmente contribuido por </contrib>
        </author>
      </authorgroup>
      <authorgroup>
	<author>
	  <firstname>Nik</firstname>
	  <surname>Clayton</surname>
	  <contrib>Con apoyo de </contrib>
        </author>
        <author>
	  <firstname>Dirk</firstname>
          <surname>Fr&ouml;mberg</surname>
        </author>
        <author>
          <firstname>Peter</firstname>
          <surname>Childs</surname>
        </author>
        <author>
          <firstname>Tom</firstname>
          <surname>Rhodes</surname>
          <contrib>Actualizado y reestructurado por</contrib>
        </author>
      </authorgroup>
    </sect1info>

    <title>Uso de User PPP</title>

    <sect2>
      <title>User PPP</title>

      <sect3>
	<title>Aclaraciones</title>

	<para>Este documento asume que usted cuenta con lo siguiente:</para>

	<itemizedlist>
	  <indexterm id="ppp-isp">
	    <primary>ISP</primary>
	  </indexterm>
	  <indexterm id="ppp-ppp2">
	    <primary>PPP</primary>
	  </indexterm>
	  <listitem>
	    <para>Una cuenta activa con un Proveedor del Servicio de Internet
          (ISP&mdash;por sus siglas en ingl&eacute;es), que usted
          utliza para conectarse.</para>
	  </listitem>

	  <listitem>
	    <para>Adicionalmente, un m&oacute;dem o alg&uacute;n otro
          dispositivo, conectado a su sistema, y configurado
          correctamente, que le permite realizar la conexi&oacute;n
          con su ISP.</para>
	  </listitem>

	  <listitem>
	    <para>El n&uacute;mero telef&oacute;nico de su proveedor.</para>
	  </listitem>

	  <indexterm id="ppp-pap">
	    <primary>PAP</primary>
	  </indexterm>
	  <indexterm id="ppp-chap">
	    <primary>CHAP</primary>
	  </indexterm>
	  <indexterm id="ppp-unix">
	    <primary>Unix</primary>
	  </indexterm>
	  <indexterm id="ppp-login">
	    <primary>login name</primary>
	  </indexterm>
	  <indexterm id="ppp-password">
	    <primary>password</primary>
	  </indexterm>
	  <listitem>
	    <para>Su nombre de usuario y contrase&ntilde;a. (Ya sea un nombre
          de usuario y/o contrase&ntilde;a estilo UNIX, o bien para uso
          por medio de PAP o CHAP)</para>
	  </listitem>

	  <indexterm id="ppp-nameserver">
	    <primary>Servidor DNS</primary>
	  </indexterm>
	  <listitem>
	    <para>La direcci&oacute;n IP de uno o m&aacute;s servidores
          de nombres (DNS). Normalmente, estos ser&aacute;n provistos
          por su proveedor de Internet. Si su proveedor no le ha
          dado esta informaci&oacute;n, puede utilizar la opci&oacute;n
          <command>enable dns</command> en su fichero
          <filename>ppp.conf</filename>, para indicarle a
          <application>ppp</application> que configure el DNS por
          usted. Esta caracter&iacute;stica depende del sistema de
          negociaci&oacute;n de DNS que mantenga su proveedor de
          Internet.</para>
	  </listitem>
	</itemizedlist>

	<para>La siguiente informaci&oacute;n puede ser que haya sido
      provista por su proveedor de servicios de internet, pero
      no es completamente necesaria:</para>

	<itemizedlist>
	  <listitem>
	    <para>La direcci&oacute;n IP del gateway (pasarela de salida)
          de su PSI. El gateway es la m&aacute;quina a la cual usted
          se conectar&aacute; y ser&aacute; la
          <emphasis>ruta por default</emphasis>. Si usted no cuenta
          con esta informaci&oacute;n, puede inventar uno y al intentar
          conectarse, el servidor de su PSI, este nos indicar&aacute;
          cual es el valor correcto.</para>

	    <para>Esta direcci&oacute;n IP, es referida por
          <application>ppp</application> como
	      <literal>HISADDR</literal>.</para>
	  </listitem>

	  <listitem>
	    <para>La mascara de red (netmask) que debe utilizar. Si su PSI no
          le ha provisto de una, puede utilizar sin problema <hostid
	      role="netmask">255.255.255.255</hostid>.</para>
	  </listitem>

	  <indexterm id="ppp-statis-ip">
	    <primary>Direcci&oacute;n IP est&aacute;tica</primary>
	  </indexterm>
	  <listitem>
	    <para>Si su PSI, le ha provisto de una direcci&oacute;n de IP
          est&aacute;tica y un nombre de host, puede capturarla. De otra
          forma podemos dejar que el servidor asigne cualquier IP que
          corresponda.</para>
	  </listitem>
	</itemizedlist>

	<para>Si usted no cuenta con alguna de la informaci&oacute;n que hemos
      comentado, le recomendamos contactar con su PSI para requerirla.</para>

	<note>
	  <para>En el transcurso de la presente secci&oacute;n, algunos
        ejemplos muestran el contenido de archivos de configuraci&oacute;n
        los cuales presentan una numeraci&oacute;n. Estos n&uacute;meros
        sirven como ayuda y referencia a cada l&iacute;nea, pero estos no
        deben de estar presentes en el archivo original. Una sangr&iacute;a
        adecuada, as&iacute; como espacios adecuados, tambi&eacute;n son
        de suma importancia.</para>
	</note>

      </sect3>

      <sect3>
	<title>Preparando el Kernel</title>

        <para>Como se comento anteriormente, la aplicaci&oacute;n
          <application>ppp</application> utiliza el dispositivo
          <devicename>tun</devicename>. Si este dispositivo no ha sido
          compilado dentro del kernel, <application>ppp</application>
          lo cargar&aacute; como m&oacute;dulo cuando sea requerido. El
          dispositivo tun es din&aacute;mico, de tal forma que se
          generara de acuerdo a la demanda que tenga (usted no esta
          limitado por el kernel).</para>

	<note><para>Vale la pena hacer notar que el controlador tun, crea los
      dispositivos de acuerdo a sus necesidades, por lo que el comando
      <command>ifconfig -a</command>, no necesariamente mostrar&aacute;
      los dispositivos <devicename>tun</devicename>.</para></note>

      </sect3>

      <sect3>
	<title>Verificando el dispositivo <devicename>tun</devicename></title>

	<para>Bajo circunstancias normales, la mayor&iacute;a de los usuarios
      s&oacute;lo utilizaran un dispositivo <devicename>tun</devicename>
	  (<devicename>/dev/tun0</devicename>).  En lo sucesivo podemos hacer
      referencia a <devicename>tun0</devicename> con la expresi&oacute;n
	  <devicename>tunN</devicename> donde  <literal>N</literal>
	  es el n&uacute;mero que corresponde en su sistema.</para>

    <para>Para instalaciones de FreeBSD que no tienen el habilitado el DEVFS
      la existencia de <devicename>tun0</devicename> debe ser verificada
      (esto no es necesario si se cuenta habilitada la opci&oacute;n DEVFS
      ya que los nodos de dispositivos se&aacute;n creados en funci&oacute;n
      a las necesidades).</para>

	<para>La forma m&aacute;s sencilla de verificar si el dispositivo
      <devicename>tun0</devicename> se encuentra configurado
      correctamente, es la de rehacer el dispositivo. Para hacer esto
      simplemente siga los siguientes pasos:</para>

	<screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>sh MAKEDEV tun0</userinput></screen>

	<para>Si usted necesita 16 dispositivos tun en su kernel, deber&aacute;
      crearlos. Esto puede hacerse de la siguiente manera:</para>

	<screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>sh MAKEDEV tun15</userinput></screen>
      </sect3>

      <sect3>
	<title>Configuraci&oacute;n de la Resoluci&oacute;n de Nombres</title>

	<indexterm id="ppp-resolver">
	  <primary>resolver</primary>
	</indexterm>
	<indexterm id="ppp-hostname">
	  <primary><command>hostname</command></primary>
	</indexterm>
	<indexterm id="ppp-hosts">
	  <primary><filename>hosts</filename></primary>
	</indexterm>
	<para>La resoluci&oacute;n es la parte del sistema que busca una
	  direcci&oacute;n IP en los nombres de servidores (host) y
	  viceversa. Puede ser configurado para que busque en "mapas" que
	  describen la IP del servidor en uno de dos lugares, el primero
	  es un archivo llamado <filename>/etc/hosts</filename>.
	  Lea &man.hosts.5; para m&aacute;s informaci&oacute;n al
	  respecto. El segundo es el Servicio de Nombres de Dominio de
	  Internet (DNS-Internet Domain Name Service), el cual es una
	  base de datos de distribuci&oacute;n. Para mayor informaci&oacute;n
	  con respecto a los DNS, referirse a dns.</para>

	<para>La resoluci&oacute;n de nombres es un sistema que por medio de
	  llamadas, realiza el mapeo de nombres, pero es necesario inidicarle donde
	  debe buscar la informaci&oacute;n. Para versiones de FreeBSD anteriores
	  a la 5.0, esto es hecho al editar el archivo <filename>/etc/host.conf</filename>.
	  La versi&oacute;n 5.0 de FreeBSD utiliza el archivo <filename>/etc/nsswitch.conf</filename>.
	  
	<sect4>
	  <title>Edici&oacute;n del archivo <filename>/etc/host.conf</filename></title>

	  <para>Para versiones de FreeBSD anteriores a la 5.0, este archivo
	    debe contener las siguientes dos l&iacute;neas (en este orden):</para>

	  <programlisting>hosts
bind</programlisting>

	  <para>Esto le indica a la resoluci&oacute;n que busque en primer
	    t&eacute;rmino en el archivo <filename>/etc/hosts</filename>, y
	    posteriormente en el DNS, si el nombre no fu&eacute; localizado</para>
	</sect4>

	<sect4>
	  <title>Editando el archivo <filename>/etc/nsswitch.conf</filename>

	  <para>Para versiones de FreeBSD 5.0 y posteriores, este archivo debe
	    contener, al menos, la siguiente l&iacute;nea:</para>

	  <programlisting>hosts: files, dns</programlisting>

	  <para>Esto le indica a la resoluci&oacute;n de nombres, que
	    busque en primer lugar en el archivo <filename>/etc/hosts</filename>,
	    y en caso de que el nombre no haya sido localizado, busque en
	    el DNS.</para>
	</sect4>
      
	<sect4>
	  <title>Editando el archivo <filename>/etc/hosts</filename></title>

	  <para>Este archivo puede contener direcciones IP, as&iacute; como
	    el nombre de las m&aacute;quinas de su red local. Como m&iacute;nimo
	    debe contar con la informaci&oacute;n de la m&aacute;quina que
	    correr&aacute; ppp. Asumiendo que su ordenador se llama
	    <hostid role="fqdn">foo.bar.com</hostid> con la direcci&oacute;n
	    IP <hostid
        role="ipaddr">10.0.0.1</hostid>, el archivo
	    <filename>/etc/hosts</filename> debiese contener:</para>

	  <programlisting>127.0.0.1	localhost.bar.com	localhost
::1	localhost.bar.com	localhost
10.0.0.1	foo.bar.com		foo</programlisting>

	  <para>Las primeras dos l&iacute;neas definen el alias del
	    <hostid>localhost</hostid>, como sin&oacute;nimo de la maquina
	    actual. Independientemente de su propia direcci&oacute;n IP, la
	    direcci&oacute;n IP en estas l&iacute;neas siempre debe ser <hostid
	    role="ipaddr">127.0.0.1</hostid> y <hostid role="ipaddr">::1</hostid>.
	    La &uacute;ltima l&iacute;nea especifica el nombre <hostid role="fqdn">
	    foo.bar.com</hostid> (asi como <hostid>foo</hostid> para acortarlo), para
	    la direcci&oacute;n <hostid role="ipaddr">10.0.0.1</hostid>.</para>
	    
	  <note>
	    <para>La direcci&oacute;n <hostid role="ipaddr">127.0.0.1</hostid> y el nombre 
		<hostid>localhost</hostid> son conocidos como direcciones "loopback"
		las cuales hacen un "loopback" (salto de regreso) a la maquina local.</para>
	  </note>

	  <para>Si su proveedor de Internet, le asigna una direcci&oacute;n IP
	    fija, as&iacute;n como un nombre, y usted no lo utiliza como nombre
	    del host, a&ntilde;ada esto tambi&eacute;n al archivo
	    <filename>/etc/hosts</filename>.</para>
	</sect4>

	<sect4>
	  <title>Editando el archivo <filename>/etc/resolv.conf</filename></title>

	  <para>El archivo <filename>/etc/resolv.conf</filename>, le indica a la
	    resoluci&oacute;n de nombres, como comportarse. Normalmente deber&aacute;
	    de incluir la(s) siguiente(s) l&iacute;nea(s):</para>

	  <programlisting>domain <replaceable>ejemplo.com</replaceable>
nameserver <replaceable>x.x.x.x</replaceable>
nameserver <replaceable>y.y.y.y</replaceable></programlisting>

	  <para>Donde <replaceable>x.x.x.x</replaceable> y 
	    <replaceable>y.y.y.y</replaceable> deben reemplazarse con las direcciones
	    <acronym>IP</acronym> de los servidores DNS, de su 
	    <acronym>ISP</acronym>.  Puede ser que esta informaci&oacute;n se la 
	    hayan entregado al suscribirse o no, pero una r&aacute;pida llamada a su
	    <acronym>ISP</acronym> debe resolver esto.</para>

	  <para>Tambi&eacute; puede configurar su sistema, de tal forma que 
	    &man.syslog.3; provee de un login para su conecci&oacute;n por
	    <application>PPP</application>.  S&oacute;lo a&ntilde;ada:</para>

	  <programlisting>
	  !ppp
	  *.*        /var/log/ppp.log</programlisting>

	  <para>al fichero <filename>/etc/syslog.conf</filename>.  En la 
	    mayor&iacute;a de los casos esto funciona bien.</para>

	</sect4>
      </sect3>

      <sect3>
        <title>Configuraci&oacute;n Autom&aacute;tica de 
          <application>PPP</application></title>

	<indexterm><primary>PPP</primary><secondary>configuraci&oacute;n</secondary></indexterm>
	<para>Ambos, <command>ppp</command> as&iacute; como <command>pppd</command>
	  (la implementaci&oacute;n del kernel para PPP), utilizan la
	  configuraci&oacute;n de los archivos localizados en el directorio
	  <filename>/etc/ppp</filename>.
	  Ejemplos para ppp, pueden encontrarse en:
	  <filename>/usr/share/examples/ppp/</filename>.</para>

	<para>Para efecto de configurar correctamente <command>ppp</command>, es
	  necesario editar varios ficheros, dependiendo de sus necesidades. La
	  manera en que edite dichos archivos, depende en la forma que utilice su
	  PSI (Proveedor de Servicios de Internet) para brindarle conexi&oacute;n,
	  ya sea por medio de una direcci&oacute;n IP est&aacute;tica o bien una IP
	  din&aacute;mica (ya sea que cada vez que se conecta obtiene una nueva
	  direcci&oacute;n).</para>

	<sect4 id="userppp-staticIP">
	  <title>PPP y direcciones de IP est&aacute;ticas (fijas)</title>

	  <indexterm><primary>PPP</primary><secondary> con direcci&oacute;n IP fija</secondary></indexterm>
	  <para>Ser&aacute; necesario editar el archivo de configuraci&oacute;n;
	  <filename>/etc/ppp/ppp.conf</filename>. Y deber&aacute; quedar de una
	  manera similar al ejemplo que se describe a continuaci&oacute;n.</para>

	  <note>
	    <para>Las l&iacute;neas que terminan con <literal>:</literal>, deben
	      comenzar en la primer columna del archivo &mdash; el resto de las
	      l&iacute;neas deber&aacute;n utilizar sangr&iacute;a como se muestra,
	      utilizando espacios o bien el tabulador.  La mayor parte de la 
	      informaci&oacute;n que requiere ingresar aqui, se mostro en el
	      marcado manual anterior.</para>
	  </note>

	  <programlisting>1     default:
2       set log Phase Chat LCP IPCP CCP tun command
3       ident user-ppp VERSION (built COMPILATIONDATE)
4       set device /dev/cuaa0
5       set speed 115200
6       set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
7                 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
8       set timeout 180
9       enable dns
10
11    provider:
12      set phone "(123) 456 7890"
13      set authname foo
14      set authkey bar
15      set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp"
16      set timeout 300
17      set ifaddr <replaceable>x.x.x.x</replaceable> <replaceable>y.y.y.y</replaceable> 255.255.255.255 0.0.0.0
18      add default HISADDR</programlisting>

	  <variablelist>
	    <varlistentry>
	      <term>L&iacute;nea 1:</term>

	      <listitem>
		<para>Identifica la entrada por omisi&oacute;n a utilizar.
		  Los comandos descritos en esta parte, ser&aacute;n ejecutados de
		  manera autom&aacute;tica cuando se ejecute ppp.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;nea 2:</term>

	      <listitem>
		<para>Habilita los par&acute;metros de acceso. Cuando la
		  configuraci&oacute;n trabaja sin problemas, esta l&iacute;nea
		  deber&aacute; quedar de la siguiente forma:
		  
	          <programlisting>set log phase tun</programlisting>

			  para efecto de evitar avisos masivos del sistema (logs).</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;nea 3:</term>

	      <listitem>
		<para>Esta l&iacute;nea le indica a PPP como identificarse ante el puerto.
		  PPP se identifica, si tiene algun problema para efecto de establecer
		  la conexi&oacute;n, en esta identificaci&oacute;n, PPP provee de
		  cierta informaci&oacute;n que puede resultar util para detectar el
		  probelma.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;nea 4:</term>

	      <listitem>
		<para>Le indica a PPP cual es el dispositivo a utilizar para realizar
		  la conexi&oacute;n, o bien al que esta conectado el m&oacute;dem.
		  El dispositivo <devicename>COM1</devicename> es
		  <devicename>/dev/cuaa0</devicename> y 
		  <devicename>COM2</devicename> es
		  <devicename>/dev/cuaa1</devicename>.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;nea 5:</term>

	      <listitem>
		<para>Establece la velocidad a utilizar en la conexi&oacute;n.
		  Si la velocidad de 115200 no trabaja correctamente (la cual
		  deberia con cualquier m&oacute;dem normal), intente con una
		  velocidad inferior, como puede ser 38400.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;neas 6 y 7:</term>

	      <indexterm><primary>PPP</primary><secondary>user PPP</secondary></indexterm>
	      <listitem>
		<para>La cadena de inicializaci&oacute;n. El modo User PPP, utiliza
		  y espera enviar-recibir, la informaci&oacute;n utilizando una
		  sintaxis similar a la descrita en el programa &man.chat.8;. Favor
		  de consultar la p&aacute;gina de ayuda para conocer las opciones
		  de este lenguaje.</para>

		<para>Nota: Este comando continua en la siguiente l&iacute;nea, para
		  facilitar su lectura. Cualquier comando en el archivo
		  <filename>ppp.conf</filename> puede utilizar este formato, siempre
		  y cuando el &uacute;ltimo caracter de la l&iacute;nea sea una
		  diagonal invertida "\".</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;nea 8:</term>

	      <listitem>
		<para>Establece el tiempo de espera que debe tratar de realizar la
		  conexi&oacute;n. Por omisi&oacute;n se establecen 180 segundos, por
		  lo que esta l&iacute;nea se deja por pura est&eacute;tica.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;nea 9:</term>

	      <listitem>
		<para>Esta l&iacute;nea le indica a PPP, que solicite confirmaci&oacute;n
		  al puerto, sobre la configuraci&oacute;n de la resoluci&oacute;n local.
		  Si usted esta corriendo un servidor local de nombres, deber&aacute;
		  comentar o eliminar esta l&iacute;nea.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;nea 10:</term>

	      <listitem>
		<para>Una l&iacute;nea en blanco, para facilitar la lectura. Las
		  l&iacute;neas en blanco son ignoradas por PPP.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;nea 11:</term>

	      <listitem>
		<para>Identifica el incio de datos para un <quote>proveedor</quote>
		  determinado, de servicios de internet.  Este podr&aacute; ser cambiado
		  por el nombre de su <acronym>ISP</acronym>, de tal forma que en lo
		  sucesivo utilice la opci&oacute;n <option>load ISP</option>, para
		  iniciar una sesi&oacute;n.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;nea 12:</term>

	      <listitem>
		<para>Indica el numero telef&oacute;nico del proveedor.
		  Pueden indicarse varios numeros a utilizar, utilizando el signo
		  de dos puntos (<literal>:</literal>) o bien la barra
		  (<literal>|</literal>) como separador. La diferencia entre
		  estos dos separadores, es detallada en el &man.ppp.8;. Pero
		  en resumen, se puede decir que si se desean utilizar varios
		  numeros de manera aleatoria se debe utilizar los dos puntos,
		  pero si se desea siempre utilizar el primer numero y en caso
		  de falla el siguiente y as&iacute; sucesivamente, se debe utilizar
		  la barra. Es importante que todo lo que se refiere a numeros
		  telefonicos, este entre comillas como se muestra.  Es
		  importante que si piensa usar espacios en los numeros, haga
		  uso de estas comillas (<literal>"</literal>).  La falta de 
		  estas pueden ocasionar un simple error.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;neas 13 y 14:</term>

	      <listitem>
		<para>Identifica el nombre de usuario y su contrase&ntilde;a. Cuando
		  uno se conecta utilizando un login de tipo Unix, estos valores hacen
		  referencia al comando <command>set login</command>, utilizando las
		  variables \U y \P. Cuando la conexi&oacute;n es utilizando alg&uacute;n
		  metodo como PAP o CHAP, estos valores, son utilizados al momento de la
		  autentificaci&oacute;n.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;nea 15:</term>

	      <listitem>
		<indexterm><primary>PAP</primary></indexterm>
		<indexterm><primary>CHAP</primary></indexterm>
		<para>Si usted esta utilizando el metodo PAP o CHAP, no habr&aacute;
		  un login en este punto, y esta l&iacute;nea deber&aacute; ser
		  comentada (utilizando el s&iacute;mbolo <literal>#</literal> al
		  principio de la l&iacute;nea) o bien eliminada por completo.
		  Vea la parte 
		  <link linkend="userppp-PAPnCHAP">Autentificaci&oacute;n con PAP y CHAP
		  </link> para m&aacute;s detalles.</para>

        <para>La cadena de acceso (login), utiliza la misma sint&aacute;xis que
          se utiliza en la cadena de marcado. En este ejemplo, la cadena sirve
          para un servicio, en el cual el inicio de sesi&oacute;n se ve algo
          as&iacute; como lo siguiente:</para>

		<screen>Proveedor de servicios X
login: <replaceable>foo</replaceable>
password: <replaceable>bar</replaceable>
protocol: ppp</screen>

		<para>Es recomendable editar el script, para que se ajuste a sus propias
		  necesidades. Cuando cree este script por primera vez, asegurese de
		  haber habilitado la parte que se refiere a al acceso por medio de
		  <quote>chat</quote>, para efecto de poder dar seguimiento al curso de
		  la conexi&oacute;n y la resoluci&oacute;n de la misma.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;nea 16:</term>

	      <indexterm><primary>timeout</primary></indexterm>
	      <listitem>
		<para>Establece el tiempo por defecto en el que se perder&aacute; la
		  conexi&oacute;n (en segundos). En este caso la conexi&oacute;n
		  ser&aacute; cortada de forma autom&aacute;tica, despu&eacute;s de
		  300 segundos de inactividad. Si no desea habilitar esta funci&oacute;n
		  establezca este valor en cero o bien utilice el comando en l&iacute;nea
		  <option>-ddial</option>.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;nea 17:</term>
	      <indexterm><primary>ISP</primary></indexterm>
	      <listitem>
		<para>Indica la direcci&oacute;n de la interfaz. La cadena que aparece
		  como <replaceable>x.x.x.x.</replaceable>, debe se cambiada por la
		  direcci&oacute;n asignada por su PSI. La l&iacute;nea que aparece como
		  <replaceable>y.y.y.y.</replaceable>, debe se substituida por la
		  direcci&oacute; IP especificada por su PSI, como servidor de salida o
		  pasarela (gateway)(la maquina a la cual se va a conectar). Si su PSI
		  no le ha indicado una direcci&oacute;n de este tipo, puede utilizar
		  <hostid role="netmask">10.0.0.2/0</hostid>. Si usted necesita utilizar
		  una direcci&oacute;n <quote>aleatoria</quote>, asegurese de crear el
		  fichero <filename>/etc/ppp/ppp.linkup</filename>, siguiendo las
		  instrucciones de <link linkend="userppp-dynamicIP">PPP y las
		  direcciones de IP Din&aacute;micas</link>, para su llenado. Si esta
		  l&iacute;nea es omitida, <command>ppp</command>, no podr&aacute;
		  ejecutarse en el modo <option>-auto</option>.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;nea 18:</term>

	      <listitem>
		<para>A&ntilde;ade una ruta por omisi&oacute;n al servidor de salida
		  de su PSI. La palabra especial <literal>HISADDR</literal> se 
		  reemplaza con la direcci&oacute;n del gateway indicado por su PSI,
		  que esta en la l&iacute;nea 9, de otra forma <literal>HISADDR</literal>
		  no ser&aacute; inicializado.</para>

		<para>Si no desea ejecutar <command>ppp</command> en modo
		  <option>-auto</option>, esta l&iacute;nea deber&aacute; pasar al
		  archivo <filename>ppp.linkup</filename>.</para>
	      </listitem>
	    </varlistentry>
	  </variablelist>

	  <para>No hay necesidad de editar el archivo <filename>ppp.linkup</filename>
	    si usted cuenta con una direcci&oacute;n IP est&aacute;tica y se esta
	    ejecutando ppp en modo <option>-auto</option>, en virtud de que para
	    efecto de realizar la conexi&oacute;n sus mapas de ruteo debe estar
	    correctas. De cualquier forma puede ser que usted desee ejecutar
	    algun programa/comando, posterior a la conexi&oacute;n. Este es
	    explicado con m&aacute;s detalle posteriormente, cuando se vea el
	    ejemplo de sendmail.</para>

	  <para>Ejemplo de los archivos de configuraci&oacute;n, se pueden
	    encontrar en el directorio; <filename>/usr/share/examples/ppp</filename>.
	    </para>
	</sect4>

	<sect4 id="userppp-dynamicIP">
	  <title>PPP y direcciones de IP Din&aacute;micas (Variables)</title>
	  <indexterm>
	  <primary>PPP</primary>
	  <secondary>con direcciones IP din&aacute;mica</secondary>
	  </indexterm>
	  <indexterm>
	  <primary>IPCP</primary>
	  </indexterm>
	  <para>Si su proveedor de servicios, no le asigna una direcci&oacute;n de IP
	    fija, ser&aacute; necesario configurar a <command>ppp</command>, de tal
	    forma que al momento de realizar la conexi&oacute;n, negocie tanto la
	    direcci&oacute;n local, como la remota. Esto se lleva a cabo al
	    <quote>adivinar</quote> una direcci&oacute;n IP y permitiendo a
	    <command>ppp</command> que la establezca correctamente, usando el
	    Protocolo de Configuraci&oacute;n de IP (IPCP), una vez que se ha
	    conectado. La configuraci&oacute;n que debe tener el archivo
	    <filename>ppp.conf</filename>, es la misma que la utilizada en
	    <link linkend="userppp-staticIP">PPP y direcciones de IP fijas</link>,
	    salvo el siguiente cambio:</para>

	  <programlisting>17      set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255</programlisting>

	  <para>Una vez m&aacute;s, no debe incluir el numero de l&iacute;nea, este
	    s&oacute;lo es una referencia. As&iacute; mismo deber&aacute; existir
	    sangrado, de cuando menos 1 espacio.</para>

	  <variablelist>
	    <varlistentry>
	      <term>L&iacute;nea 17:</term>

	      <listitem>
		<para>El numero siguiente a la diagonal (<literal>/</literal>), es el
		  numero de bits de la direcci&oacute;n en la cual ppp insistir&aacute;
		  en conectarse. Puede ser que usted desee utilizar numeros de IP que
		  sean m&aacute;s apropiados, para ajustar a sus necesiadades, pero el
		  ejemplo descrito anteriormente siempre podr&aacute; utilizarse.</para>
		
		<para>El &uacute;ltimo argumento (<literal>0.0.0.0</literal>), le
		  indica a PPP, que inicie las negociaciones, utilizando como
		  direcci&oacute;n <hostid role="ipaddr">0.0.0.0</hostid>, en lugar de
		  que utilice <hostid role="ipaddr">10.0.0.1</hostid>, lo cual es
		  necesario con algunos proveedores. No utilice la direcci&oacute;n
		  <literal>0.0.0.0</literal> como el primer argumento, para el comando
		  <command>set ifaddr</command>, ya que impide que PPP configure de
		  forma correcta el sistema, cuando se utiliza en modo 
		  <option>-auto</option>.</para>
	      </listitem>
	    </varlistentry>
	  </variablelist>

	  <para>Si usted no esta ejecutando PPP en modo <option>-auto</option>,
	    deber&aacute; editar su archivo <filename>/etc/ppp/ppp.linkup</filename>.
	    El archivo <filename>ppp.linkup</filename>, es utilizado una vez que se
	    ha realizado la conexi&oacute;n. En este punto, <command>ppp</command>
	    habr&aacute; negociado una direcci&oacute;n de interfaz, y ser&aacute;
	    posible ahora, a&ntilde;adir las entradas para la las tablas de ruteo:
	    </para>

	  <programlisting>1     provider:
2      add default HISADDR</programlisting>

	  <variablelist>
	    <varlistentry>
	      <term>L&iacute;nea 1:</term>

	      <listitem>
		<para>Al establecer (<command>ppp</command>) una conexi&oacute;n,
		  buscar&aacute; en <filename>ppp.linkup</filename> una entrada, de
		  acuerdo a las siguientes reglas. Primero, tratar de encontrar una
		  entrada que sea igual a la utilizada en el archivo
		  <filename>ppp.conf</filename>. Si esto falla, buscar una IP con la
		  direcci&oacute;n de nuestro gateway. Esta entrada es una etiqueta
		  de tipo IP, de cuatro-octetos. Si aun despu&eacute;s de esto no se
		  ha detectado la entrada correcta, buscar la entrada
		  <literal>MYADDR</literal>.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;nea 2:</term>

	      <listitem>
		<para>Esta l&iacute;nea le indica a <command>ppp</command> que
		  a&ntilde;ada una ruta por omisi&oacute;n, que este dirigida hacia
		  <literal>HISADDR</literal>.
		  <literal>HISADDR</literal> ser&aacute; reemplazada, con la IP del
		  gateway, como se negocio por IPCP.</para>
	      </listitem>
	    </varlistentry>
	  </variablelist>

	  <para>Para ver un detalle m&aacute;s preciso de esto, puede consultar
	    la entrada de <literal>pmdemand</literal> en los archivos de ejemplo
	    <filename>/usr/share/examples/ppp/ppp.conf.sample</filename> as&iacute;
	    como <filename>/usr/share/examples/ppp/ppp.linkup.sample</filename>.
	</sect4>

	<sect4>
	  <title>Recibiendo Llamadas Externas</title>
	  <indexterm><primary>PPP</primary><secondary>recibiendo
	  llamdas externas</secondary></indexterm>
	  <para>Cuando se configure <application>ppp</application>, para recibir
	    llamadas externas, en una maquina conectada a un LAN (Red de Area Local),
	    debe decidir si se va a permitir el env&iacute;o de paquetes a la LAN. Si
	    es as&iacute;, debe asignar un numero de IP de su red local y utilizar el
	    comando <command>enable proxy</command> en el archivo de configuracion
	    <filename>/etc/ppp/ppp.conf</filename>. Tambi&eacute;n deber&aacute;
	    asegurarse que en su archivo <filename>/etc/rc.conf</filename> cuente
	    con la l&iacute;nea:

	  <programlisting>gateway_enable="YES"</programlisting>

	  <sect5>
	    <title>&iquest;Qu&eacute; getty utilizar?</title>

	    <para>El enlace 
	      Configurando FreeBSD para Servicios de Marcado provee de una buena 
              descripci&oacute;, sobre la configuraci&oacute;n de estos servicios, 
              basado en &man.getty.8;.</para>
	      
	    <para>Una alternativa para el comando <command>getty</command>
	      es <ulink url="http://www.leo.org/~doering/mgetty/index.html">mgetty
	      </ulink>, el cual es una versi&oacute;n m&aacute;s inteligente de getty
	      dise&ntilde;ada para servicios de marcado telefonico.</para>

	    <para>Una de las principales ventajas de <command>mgetty</command> es
	      que, de hecho <emphasis>platica</emphasis> con los modems, esto es,
	      significativo, ya que si el puerto esta desactivado en su
	      <filename>/etc/ttys</filename> el modem no responder&aacute; el
	      llamado.</para>

	    <para>Las &uacute;ltimas versiones de <command>mgetty</command>
	      (de la 0.99beta y sucesivas), tambi&eacute;n cuentan con soporte
	      para la detecci&oacute;n autom&aacute;tica de llamados de PPP,
	      permitiendo el acceso a servidores de una manera m&aacute;s sencilla
	      (sin uso de tanto scripts).</para>

	    <para>Puede referirse a <link linkend="userppp-mgetty">Mgetty y 
	      AutoPPP</link> para m&aacute;s informaci&oacute;n con respecto
	      al comando <command>mgetty</command>.</para>
	  </sect5>

	  <sect5>
	    <title>Permisos de <application>PPP</application></title>

	    <para>El comando <command>ppp</command> normalmente debe ser ejecutado
	      por root (superusuario). Si de cualquier forma, usted desea permitir
	      que <command>ppp</command> pueda ser ejecutado en modo servidor, por
	      un usuario regular, como se describe a continuaci&oacute;n,
	      deber&aacute; otorgar los permisos necesarios a ese usuario al
	      a&ntilde;adirlo al grupo <username>network</username>, en el fichero
	      <filename>/etc/groups</filename>.</para>
	      
	    <para>Tambi&eacute;n ser&aacute; necesario darle acceso a una o
	      m&aacute;s partes del archivo de configuraci&oacute;n, haciendo
	      uso del comando <command>allow</command>, como se ve
	      a continuaci&oacute;n:</para>

	    <programlisting>allow users fred mary</programlisting>

	    <para>Si el comando es utilizado en la secci&oacute;n
	      <literal>default</literal>, esto le dar&aacute; a el(los)
	      usuario(s) especificado(s),  acceso a todo.</para>
	  </sect5>

	  <sect5>
	    <title>Shells  de PPP para Usuarios de IP Din&aacute;mica</title>
	    <indexterm><primary>PPP shells</primary></indexterm>

	    <para>Cree un fichero llamado: 
	      <filename>/etc/ppp/ppp-shell</filename> y que contenga
	      lo siguiente:</para>

	    <programlisting>#!/bin/sh
IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'`
CALLEDAS="$IDENT"
TTY=`tty`

if [ x$IDENT = xdialup ]; then
        IDENT=`basename $TTY`
fi

echo "PPP for $CALLEDAS on $TTY"
echo "Starting PPP for $IDENT"

exec /usr/sbin/ppp -direct $IDENT</programlisting>

	    <para>Este script deber&aacute; ser ejecutable. Ahora cree un
	      enl&aacute;ce simb&oacute;lico llamado <filename>ppp-dialup</filename>
	      a este script, utilizando los siguientes comandos:</para>

	    <screen>&prompt.root; <userinput>ln -s ppp-shell /etc/ppp/ppp-dialup</userinput></screen>

	    <para>Deber&aacute; utilizar este script como
	      <emphasis>shell</emphasis> para todos los usuarios que realicen
	      conexi&oacute;n.
		  Este es un ejemplo del fichero <filename>/etc/password</filename>
		  para un usuario con acceso a PPP, con nombre de usuario
		  <username>pchilds</username> (recuerde no editar directamente el
		  fichero password, utilice <command>vipw</command>).</para>

	    <programlisting>pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup</programlisting>

	    <para>Cree un directorio llamado <filename>/home/ppp</filename> que
	      contenga los siguentes archivos de 0 bytes:</para>

	    <screen>-r--r--r--   1 root     wheel           0 May 27 02:23 .hushlogin
-r--r--r--   1 root     wheel           0 May 27 02:22 .rhosts</screen>

	    <para>los cuales impiden que <filename>/etc/motd</filename> sea
	      desplegado.</para>
	  </sect5>

	  <sect5>
	    <title>Shells de PPP para Usuarios de IP Est&aacute;tica</title>
	    <indexterm><primary>PPP shells</primary></indexterm>

	    <para>Cree el fichero <filename>ppp-shell</filename> al igual
	      que el mencionado con anterioridad, y por cada cuenta donde
	      se tenga asignada una IP est&aacute;tica, cree un enlace
	      simb&oacute;lico al fichero <filename>ppp-shell</filename>.</para>
	    
	    <para>Por ejemplo, si usted cuenta con tres usuarios que utilicen
	      este servicio; <username>fred</username>, <username>sam</username>
	      y <username>mary</username>, los cuales redirecciona a una red de
	      clase C, habria que hacer lo siguiente:</para>

	    <screen>&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred</userinput>
&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam</userinput>
&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary</userinput></screen>

	    <para>Cada uno de los usuarios se&ntilde;alados, deber&aacute;n
	      de contar con el enlace a su shell-script como se indic&oacute;
	      (por ejemplo, el usuario <username>mary</username>, debe contar
	      con su enlace al fichero <filename>/etc/ppp/ppp-mary</filename>).</para>
	  </sect5>

	  <sect5>
	    <title>Configurando <filename>ppp.conf</filename> para Usuarios 
	      de IP-Din&aacute;mica</title>
	  
	    <para>El archivo <filename>/etc/ppp/ppp.conf</filename> deber&aacute;
	      contener algo similar a lo siguiente:</para>
	  
	    <programlisting>default:
  set debug phase lcp chat
  set timeout 0

ttyd0:
  set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
  enable proxy

ttyd1:
  set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
  enable proxy</programlisting>

	    <note>
	      <para>Tomar en cuenta el sangrado, ya que es importante.</para>
	    </note>

	    <para>La secci&oacute;n <literal>default:</literal> es cargada
	      para cada sesi&oacute;n. Para cada l&iacute;nea que exista y
	      habilite el marcado, en el fichero <filename>/etc/ttys</filename>,
	      se deber&aacute; crear una entrada similar a la l&iacute;nea
	      <literal>ttyd0:</literal> mencionada arriba. Cada l&iacute;nea
	      debera contar con su propia direcci&oacute;n IP, de sus direcciones
	      IP disponibles para asignar din&aacute;micamente.</para>
	  </sect5>

	  <sect5>
	    <title>Configurando <filename>ppp.conf</filename> para Usuarios
	      de IP Est&aacute;tica</title>

	    <para>Junto con el contenido del fichero de ejemplo
	      <filename>/usr/share/examples/ppp/ppp.conf</filename> mencionado
	      anteriormente, deber&aacute; agregar una secci&oacute;n para cada
	      usuario asignado est&aacute;ticamente.
	      Continuaremos con nuestro ejemplo con los usuarios
	      <username>fred</username>, <username>sam</username> y
	      <username>mary</username>.</para>

	    <programlisting>fred:
  set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255

sam:
  set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255

mary:
  set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255</programlisting>

	    <para>El archivo <filename>/etc/ppp/ppp.linkup</filename>
	      deber&aacute; de contener tambi&eacute;n informaci&oacute;n
	      del ruteo, para cada IP est&aacute;tica, si es necesario. Las
	      l&iacute;neas a continuaci&oacute;n a&ntilde;adir&aacute;n una
	      ruta a la direcci&oacute;n <hostid role="ipaddr">203.14.101.0</hostid>
	      de clase C, por medio del ppp link del cliente.</para>

	    <programlisting>fred:
  add 203.14.101.0 netmask 255.255.255.0 HISADDR

sam:
  add 203.14.102.0 netmask 255.255.255.0 HISADDR

mary:
  add 203.14.103.0 netmask 255.255.255.0 HISADDR</programlisting>
	  </sect5>
	</sect4>

	<sect4>
	  <title>Algo m&aacute;s de <command>mgetty</command>, AutoPPP, y 
	    Extensiones MS</title>

	  <sect5 id="userppp-mgetty">
	    <title><command>mgetty</command> y AutoPPP</title>
	    <indexterm>
        <primary><command>mgetty</command></primary>
      </indexterm>
	    <indexterm><primary>AutoPPP</primary></indexterm>
	    <indexterm><primary>LCP</primary></indexterm>

	    <para>Configurando y compilando <command>mgetty</command> con 
	      la opci&oacute;n <literal>AUTO_PPP</literal> habilitada, permite
	      a <command>mgetty</command> detectar la fase LCP de conexiones PPP
	      y autom&aacute;ticamente enviarlo a un shel de ppp. Aun con esto,
	      y debido a que no se ingresa el nombre de usuario y contrase&ntilde;a,
	      es necesario autntificarse por medio de PAP o CHAP.</para>
	      
	    <para>Esta secci&oacute;n asume que el usuaio ha configurado,
	      compilado e instalado correctamente una versi&oacute;n de
	      <command>mgetty</command>, con la opci&oacute;n
	      <literal>Auto_PPP</literal> (v0.99beta o posterior).</para>

	    <para>Asegurese de que su fichero
	      <filename>/usr/local/etc/mgetty+sendfax/login.conf</filename>
	      contiene la siguiente l&iacute;nea en &eacute;l:</para> 

	    <programlisting>/AutoPPP/ -     -		      /etc/ppp/ppp-pap-dialup</programlisting>

	    <para>Esto le indicar&aacute; a <command>mgetty</command> que ejecute
	      el script <filename>ppp-pap-dialup</filename>, para efecto de detectar
	      conexiones de tipo PPP.</para>

	    <para>Cree un fichero llamado 
	      <filename>/etc/ppp/ppp-pap-dialup</filename> que contenga
	      las siguientes l&iacute;neas (el fichero deber&aacute; 
	      ser ejecutable):</para>
	      

	    <programlisting>#!/bin/sh
exec /usr/sbin/ppp -direct pap$IDENT</programlisting>

	    <para>Para cada l&iacute;nea de marcado habilitada en
	      <filename>/etc/ttys</filename>, cree la entrada
	      correspondiente en <filename>/etc/ppp/ppp.conf</filename>.
	      Esto co-existir&aacute; pac&iacute;ficamente con las
	      definiciaones que se hayan hecho, de acuerdo a lo mostrado
	      en la parte de arriba.</para>

	    <programlisting>pap:
  enable pap	      
  set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
  enable proxy</programlisting>

	    <para>Cada usuario que ingrese al sistema utilizando este
	      metodo, deber&aacute; de contar con su clave de usuario,
	      as&iacute; como su contrase&ntilde;a, en el archivo
	      <filename>/etc/ppp/ppp.secret</filename>, o bien agrege
	      la siguiente opci&oacute;n, para efecto de que se pueda realizar
	      la autentificaci&oacute;n por medio de PAP, directamente
	      del fichero <filename>/etc/password</filename>.</para>
	      
	    <programlisting>enable passwdauth</programlisting>

	    <para>Si desea asignar una direcci&oacute;n IP fija a
	      algunos usuarios, puede especificar el n&uacute;mero como
	      un tercer argumento en el fichero
	      <filename>/etc/ppp/ppp.secrets</filename>. Vea el archivo
	      <filename>/usr/share/examples/ppp/ppp.secret.sample</filename>
	      para obtener ejemplos m&aacute;s detallados de esto.</para>
	  </sect5>

	  <sect5>
	    <title>Extensiones de MS</title>
	    <indexterm><primary>DNS</primary></indexterm>    
	    <indexterm><primary>NetBIOS</primary></indexterm>
	    <indexterm><primary>PPP</primary><secondary>Extensiones Microsoft</secondary></indexterm>
	    <para>Es posible configurar PPP, para efecto de que 
	      brinde a DNS y a NetBIOS, direcciones de servidores
	      de nombres de forma autom&aacute;tica.</para>

	    <para>Para efecto de habilitar estas extensiones con PPP
	      versi&oacute;n 1.x, las siguientes l&iacute;neas
	      deber&aacute;n a&ntilde;adirse a la secci&oacute;n relevante
	      de <filename>/etc/ppp/ppp.conf</filename>.</para>

	    <programlisting>enable msext
set ns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5</programlisting>

	    <para>Y para versiones de PPP 2 y posteriores:</para>

	    <programlisting>accept dns
set dns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5</programlisting>

	    <para>Esto le indicar&aacute; a los clientes, las direcciones
	      del servidor primario y secundario y el servidor-host para
	      NetBIOS.</para>

	    <para>Si la l&iacute;nea <literal>set dns</literal>, es omitida
	      en versiones 2 y posteriores, PPP utilizar&aacute; los valores
	      que encuentre en <filename>/etc/resolv.conf</filename>.</para>
	  </sect5>
	</sect4>

        <sect4 id="userppp-PAPnCHAP">
	  <title>Autentificaci&oacute;n por medio de PAP y CHAP</title>
	  <indexterm><primary>PAP</primary></indexterm>	    
	  <indexterm><primary>CHAP</primary></indexterm>	    
	  <para>Algunos proveedores de internet tienen su sistema
	    configurado para que cada usuario al conecatrse sean
	    autentificados por medio de PAP o CHAP. Si este es el caso,
	    al momento de realizar la conexion, no aparecer&aacute;
	    un <prompt>login:</prompt>, sino que comenzar&aacute; a
	    comunicarse PPP inmediatamente.</para>
	    
	  <para>El metodo PAP es menos seguro que CHAP, pero la seguridad
	    normalmente no se toma mucho en cuenta en este tipo de
	    conexiones, en funcion de que al enviarse la informaci&oacute;n
	    de contrase&ntilde;a en texto plano, por medio de una
	    l&iacute;nea serial, no deja mucho espacio para que los
	    crackers <quote>husmeen</quote>.</para>

	  <para>Haciendo referencia a lo que vimos de
	    <link linkend="userppp-staticIP">PPP y Direcciones de IP
	    Fijas</link> o bien <link linkend="userppp-dynamicIP">PPP y Direcciones
	    de IP Din&aacute;micas</link>, habr&iacute;a que aplicar los
	    siguientes cambios:</para>

	  <programlisting>7       set login
&hellip;
12      set authname <replaceable>MiNombreDeUsuario</replaceable>
13      set authkey <replaceable>MiContrase&ntilde;a</replaceable></programlisting>

	  <variablelist>
	    <varlistentry>
	      <term>L&iacute;nea 7:</term>

	      <listitem>
		<para>Su PSI normalmente requerir&aacute; que usted ingrese
		  al sistema, cuando se utiliza PAP o CHAP. Por esta
		  raz&oacute;n debemos deshabilitar la l&iacute;nea que
		  corresponde a <quote>set login</quote>.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;nea 12:</term>

	      <listitem>
		<para>Esta l&iacute;nea especif&iacute;ca a PAP/CHAP su nombre
		  de usuario. Usted deber&aacute; cambiar el valor a quedar el
		  nombre correcto en el campo; 
		  <replaceable>MiNombreDeUsuario</replaceable>.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term>L&iacute;nea 13:</term>
	      <indexterm><primary>MiContrase&ntilde;a</primary></indexterm>
	      <listitem>
		<para>Esta l&iacute;nea especif&iacute;ca su contrase&ntilde;a
		  de PAP/CHAP. Es necesario que usted cambie el valor a quedar
		  el dato correcto, en el campo;
		  <replaceable>MiContrase&ntilde;a</replaceable>. Quiz&aacute;s
		  sea recomendable que a&ntilde;ada una l&iacute;nea a quedar:</para>
		    
		<programlisting>15      accept PAP</programlisting>

		<para>o</para>

		<programlisting>15      accept CHAP</programlisting>

		<para>la intenci&oacute;n de esto es para hacerlo obvio,
		  aunque en realidad PAP y CHAP son aceptadas por 
		  omisi&oacute;n.</para>
	      </listitem>
	    </varlistentry>
	  </variablelist>
	</sect4>

	<sect4>
	  <title>Cambiando la configuraci&oacute;n de <command>ppp</command> 
	    sobre la marcha (al vuelo)</title>

	  <para>Es posible hablar con el programa <command>ppp</command>
	    mientras se esta ejecutando en segundo plano, pero s&oacute;lo
	    si se ha habilitado un puerto de diagn&oacute;stico. Para
	    hacer esto, a&ntilde;ada lo siguiente a su
	    configuraci&oacute;n:</para>

	  <programlisting>set server /var/run/ppp-tun<replaceable>%d</replaceable> DiagnosticPassword 0177</programlisting>

	  <para>Esto le indicar&aacute; a PPP que preste
	    atenci&oacute;n al socket del dominio-Unix, solicitando a
	    los usuarios su contrase&ntilde;a, antes de permitir el acceso.
	    La variable <literal>%d</literal> deber&aacute; ser reemplazada
	    por el numero de dispositivo <devicename>tun</devicename> que
	    este utilizando (ej. <devicename>tun0</devicename>).</para>

	  <para>Una vez que se a configurado el socket, se puede utilizar
	    &man.pppctl.8; en scripts que deseen manipular el programa.
	    </para>
	</sect4>
      </sect3>

      <sect3 id="userppp-final">
	<title>Configuraci&oacute;n Final del Sistema</title>
	<indexterm><primary>PPP</primary><secondary>configuraci&oacute;n</secondary></indexterm>

	<para>Ahora usted cuenta con un <command>ppp</command> configurado,
	  pero es necesario hacer algunas cosas, antes de que este disponible
	  para trabajar. Todas ellas giran entorno a la edici&oacute;n del
	  fichero <filename>/etc/rc.conf</filename>.</para>

	<para>En primer lugar es importante que se asegure que ha asignado
	  un nombre a su maquina. Esto se hace asignandolo en la l&iacute;nea
	  de <literal>hostname=</literal>, por ejemplo:</para>

	<programlisting>hostname="foo.ejemplo.com"</programlisting>

	<para>Si su Proveedor de Servicios de Internet (PSI), le ha
	  provisto de una direcci&oacute;n fija y un nombre de host, es
	  recomendable que utilice este como su 
	  <literal>hostname</literal>.</para>

	<para>Localice la l&iacute;nea que se refiera a sus dispositivos
	  de red, la cual es <literal>network_interfaces</literal>.
      Si desea configurar su sistema para marcar a su PSI a petici&oacute;n,
      asegurese de que el dispositivo <devicename>tun0</devicename> este
      en la lista, de otra forma eliminelo.</para>

	<programlisting>network_interfaces="lo0 tun0" ifconfig_tun0=</programlisting>

	<note>
	  <para>La variable <literal>ifconfig_tun0</literal> debe permanecer
	    en blanco (vacia), y deber&aacute; crearse un fichero llamado
	    <filename>/etc/start_if.tun0</filename> que contenga la siguiente
	    l&iacute;nea:</para>

	  <programlisting>ppp -auto MiSistema</programlisting>

	  <para>Este script se ejecuta cuando se esta configurando la red,
	    inicializando el demonio de ppp de modo autom&aacute;tico. Si
	    usted cuenta con una LAN (red de &aacute;rea local), de la cual
	    esta maquina sea la pasarela (gateway), es tambien recomendable
	    que utilice la opci&oacute;n <option>-alias</option>. Referirse
	    a la p&aacute;gina de ayuda (man) para mayores detalles.</para>
	</note>

	<para>Especifique el programa router a <literal>NO</literal>, con
	  la siguiente l&iacute;nea en su fichero
	  <filename>/etc/rc.conf</filename>:</para>

	<programlisting>router_enable="NO"</programlisting>

	<indexterm>
    <primary><application>routed</application></primary>
  </indexterm>
	<para>Es importante que el demonio <command>routed</command>
	  no se inicialice por default, en virtud de que
	  <command>routed</command> tiende a eliminar las variables
	  creadas por <command>ppp</command>.</para>

	<para>Probablemente valga la pena asegurarse de que la
	  l&iacute;nea <literal>sendmail_flags</literal>, no incluya
	  la opci&oacute;n <option>-q</option>, ya que de ser as&iacute;
	  <command>sendmail</command> intentar&aacute; localizar los
	  par&aacute;metros de la red de vex en cuando, ocasionando que realice
	  llamados al exterior. Puede intentar esto:</para>

	<programlisting>sendmail_flags="-bd"</programlisting>

	<indexterm>
    <primary><application>sendmail</application></primary>
  </indexterm>
	<para>La parte negativa de esta conifguraci&oacute;n es que tiene
	  que forzar a <command>sendmail</command> a re-examinar los llamados
	  del servidor de correo, cada vez que <command>ppp</command> realiza
	  una conexi&oacute;n, con el siguiente comando:</para>

	<screen>&prompt.root; <userinput>/usr/sbin/sendmail -q</userinput></screen>

	<para>Puede utilizar el comando <command>!bg</command> en el fichero
	  <filename>ppp.linkup</filename> para hacer esto de manera
	  autom&aacute;tica:</para>

	<programlisting>1     provider:
2       delete ALL
3       add 0 0 HISADDR
4       !bg sendmail -bd -q30m</programlisting>

        <indexterm><primary>SMTP</primary></indexterm>
	<para>Si usted no desea hacer esto, es posible establecer un
	  <quote>dfilter</quote> (filtro), para bloquear el tr&aacute;fico al
	  servidor de salida de correo (SMTP). Favor de referirse a los archivos
	  de ejemplos para mayor detalle al respecto.</para>

	<para>Ahora lo &uacute;nico que queda pendiente de hacerse es
	  reiniciar el equipo. Una vez reiniciado el equipo, puede teclear:</para>

	<screen>&prompt.root; <userinput>ppp</userinput></screen>

	<para>y posteriormente <command>dial proveedor</command> para iniciar
	  la sesi&oacute;n, o bien si desea que <command>ppp</command> inicie la
	  sesi&oacute;n autom&aacute;ticamente, cuando haya una petición de salida
	  (y no haya creado el fichero <filename>start_if.tun0</filename>), puede
	  teclear:</para>

	<screen>&prompt.root; <userinput>ppp -auto proveedor</userinput></screen>
      </sect3>

      <sect3>
	<title>Summario</title>

	<para>A manera de recapitulaci&oacute;n, podemos decir que para
	  configurar ppp por primera ocasi&oacute;n, debemos:</para>

	<para>Por parte del Cliente:</para>

	<procedure>
	  <step>
	    <para>Asegurese de que existe el dispositivo <devicename>tun</devicename>
	      dentro de su kernel.</para>
	  </step>

	  <step>
	    <para>Asegurses de que el dispositivo 
	      <devicename>tun<replaceable>X</replaceable></devicename>, se encuentra
	      disponible, bajo el directorio <filename>/dev</filename>.</para>
	  </step>

	  <step>
	    <para>Cree una entrada en su fichero
	      <filename>/etc/ppp/ppp.conf</filename>. Con el fichero de ejemplo 
	      <filename>pmdemand</filename> debe ser suficiente para la mayoria de
	      proveedores.</para>
	  </step>

	  <step>
	    <para>Si cuenta con una direcci&oacute;n de IP din&aacute;mica, cree
	      una entrada en el fichero <filename>/etc/ppp/ppp.linkup</filename>
	      .</para>
	  </step>

	  <step>
	    <para>Actualice su fichero <filename>/etc/rc.conf</filename>.</para>
	  </step>

	  <step>
	    <para>Cree un archivo script llamado <filename>start_if.tun0</filename>
	      si requiere servicio de conexi&oacute;n a solicitud.</para>
	  </step>
	</procedure>

	<para>Por parte del Servidor:</para>

	<procedure>
	  <step>
	    <para>Asegurese de que dentro de su kernel exista el dispositivo
	      <devicename>tun</devicename>.</para>
	  </step>

      <step>
	    <para>Asegurses de que el dispositivo 
	      <devicename>tun<replaceable>X</replaceable></devicename>, se encuentra
	      disponible, bajo el directorio <filename>/dev</filename>.</para>
	  </step>
	  
	  <step>
	    <para>Cree una entrada en el fichero <filename>/etc/passwd</filename>
	      (usando el programa &man.vipw.8;).</para>
	  </step>

	  <step>
	    <para>Cree un perfil en el directorio home de este usuario, que ejecute
	      <command>ppp -direct direct-server</command> o algo
	      similar.</para>
	  </step>

	  <step>
	    <para>Cree una entrada en el fichero
	      <filename>/etc/ppp/ppp.conf</filename>. El fichero de ejemplo
	      <filename>direct-server</filename> debe ser suficiente para
	      darse una idea.</para>
	  </step>

	  <step>
	    <para>Cree una entrada en el fichero 
	      <filename>/etc/ppp/ppp.linkup</filename>.</para>
	  </step>

	  <step>
	    <para>Actualice su fichero <filename>/etc/rc.conf</filename>.</para>
	  </step>
	</procedure>
      </sect3>
    </sect2>
  </sect1>

  <sect1 id="ppp">
    <sect1info>
      <authorgroup>
        <author>
          <firstname>Gennady B.</firstname>
          <surname>Sorokopud</surname>
          <contrib>Partes originalmente desarrolladas por  </contrib>
        </author>
        <author>
          <firstname>Robert</firstname>
          <surname>Huff</surname>
        </author>
      </authorgroup>
    </sect1info>

    <title>Uso de Kernel PPP</title>

    <sect2>
      <title>Configurando Kernel PPP</title>
      <indexterm><primary>PPP</primary><secondary>kernel PPP</secondary></indexterm>

      <para>Antes de comenzar a configurar PPP en su maquina,
        asegurese de <command>pppd</command> se localiza en 
        <filename>/usr/sbin</filename> y de que existe el directorio
        <filename>/etc/ppp</filename>.</para>

		<para><command>pppd</command> puede trabajar de dos maneras</para>
		
      <orderedlist>
	<listitem>
	  <para>Como un <quote>cliente</quote> &mdash; cuando desea conectar
	    su maquina al mundo exterior utilizando PPP, por medio de una
	    conexi&oacute;n serial o bien una l&iacute;nea de modem.</para>
	</listitem>

        <indexterm><primary>PPP</primary><secondary>servidor</secondary></indexterm>
	<listitem>
	  <para>como un <quote>servidor</quote> &mdash; cuando su maquina esta
	    conectada a una red y es utilizada para que otras maquinas se
	    conecten utilizando ppp.</para>
	</listitem>
      </orderedlist>

      <para>En ambos casos, ser&aacute; necesario configurar un
        fichero de opciones (<filename>/etc/ppp/options</filename> o bien
        <filename>~/.ppprc</filename> si se cuenta con m&aacute;s de un
        usuario que utilizar&aacute; ppp en la misma maquina.</para>

      <para>Tambi&eacute;n deber&aacute; de contar con un software para
        hacer la conexi&oacute;n por medio de m&oacute;dem (de
        preferencia kermit), de manera que pueda hacer la conexi&oacute;n
        con un host remoto.</para>
    </sect2>

    <sect2>
      <sect2info>
	<authorgroup>
	  <author>
	    <firstname>Trev</firstname>
	    <surname>Roydhouse</surname>
	    <contrib>Basedo en informaci&oacute;n provista por </contrib>
	    <!-- Trev.Roydhouse@f401.n711.z3.fidonet.org -->
	  </author>
	</authorgroup>
      </sect2info>
	    
      <title>Uso de <command>pppd</command> como Cliente</title>
      <indexterm><primary>PPP</primary><secondary>cliente</secondary></indexterm>
      <indexterm><primary>Cisco</primary></indexterm>
      <para>El siguiente archivo de configuraci&oacute;n
        <filename>/etc/ppp/options</filename> puede utilizarse para
        realizar la conexi&oacute;n a una terminal CISCO, por medio
        de PPP.</para>

      <programlisting>crtscts         # habilita el flujo de controls de hardware
modem           # l&iacute;nea de control del modem
noipdefault     # el servidor PPP remoto asignar&aacute; la direcci&oacute;n IP
                # si el servidor no envia una direcci&oacute;n IP durante IPCP
                # remueva esta opci&oacute;n. 
passive         # espere por los paquetes LCP
domain ppp.foo.com      # escriba su nombre de dominio aqui 

:&lt;remote_ip&gt;    # escriba la IP del host remoto aqui
                # este ser&aacute; utilizado para el ruteo de paquetes por medio
                # de PPP, si no especifica esta opci&oacute;n, cambie la
                # l&iacute;nea a quedar  &lt;local_ip&gt;:&lt;remote_ip&gt;

defaultroute    # establezca esta opci&oacute;n si el servidor su ruteador
                # por default</programlisting>

      <para>Para conectarse:</para>

      <indexterm><primary>kermit</primary></indexterm>
      <indexterm><primary>modem</primary></indexterm>
      <procedure>
	<step>
	  <para>Realice el llamado al host remoto, utilizando kermit
	    (o cualquier otra aplicaci&oacute;n de este tipo), ingrese su
	    nombre de usuario y contrase&ntilde;a (o cualquier info que
	    sea necesaria para habilitar PPP en el host remoto).</para>
	</step>

	<step>
	  <para>Salga de kermit (sin colgar la l&iacute;nea).</para>
	</step>

	<step>
	  <para>Ingrese lo siguiente:</para>

	  <screen>&prompt.root; <userinput>/usr/src/usr.sbin/pppd.new/pppd <replaceable>/dev/tty01</replaceable> <replaceable>19200</replaceable></userinput></screen>

	  <para>Asegurese de utilizar el dispositivo y la velocidad adecuados.</para>
	</step>
      </procedure>

      <para>Ahora su computadora esta conectada por medio de PPP. Si la
        conexi&oacute;n falla, puede a&ntilde;adir la opci&oacute;n
        <option>debug</option> en el fichero <filename>/etc/ppp/options</filename>
        de tal forma que pueda verificar la que esta ocurriendo y pueda
        resolver el problema.</para>

      <para>El siguiente script; <filename>/etc/ppp/pppup</filename>
        realizar&aacute; los 3 pasos de forma autom&aacute;tica:</para>

      <programlisting>#!/bin/sh
ps ax |grep pppd |grep -v grep
pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
        echo 'killing pppd, PID=' ${pid}
        kill ${pid}
fi
ps ax |grep kermit |grep -v grep
pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
        echo 'killing kermit, PID=' ${pid}
        kill -9 ${pid}
fi

ifconfig ppp0 down
ifconfig ppp0 delete

kermit -y /etc/ppp/kermit.dial
pppd /dev/tty01 19200</programlisting>

      <indexterm><primary>kermit</primary></indexterm>
      <para>El fichero <filename>/etc/ppp/kermit.dial</filename> es un
        script de kermit, uqe realiza el marcado y negocia la
        autorizaci&oacute;n necesaria con el host remoto (un ejemplo de
        este script se encuentra al final de este documento).</para>

      <para>Utilice el siguiente script, llamado 
        <filename>/etc/ppp/pppdown</filename> para desconectar la
        l&iacute;nea PPP:</para>

      <programlisting>#!/bin/sh
pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
if [ X${pid} != "X" ] ; then
        echo 'killing pppd, PID=' ${pid}
        kill -TERM ${pid}
fi

ps ax |grep kermit |grep -v grep
pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
        echo 'killing kermit, PID=' ${pid}
        kill -9 ${pid}
fi

/sbin/ifconfig ppp0 down
/sbin/ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.hup
/etc/ppp/ppptest</programlisting>

      <para>Verifique que su PPP aun se esta ejecutando, por medio de
	    <filename>/usr/etc/ppp/ppptest</filename>, que deber&aacute; verse
	    algo similar a esto:</para>

      <programlisting>#!/bin/sh
pid=`ps ax| grep pppd |grep -v grep|awk '{print $1;}'`
if [ X${pid} != "X" ] ; then
        echo 'pppd running: PID=' ${pid-NONE}
else
        echo 'No pppd running.'
fi
set -x
netstat -n -I ppp0
ifconfig ppp0</programlisting>

      <para>Para colgar el m&oacute;dem, ejecute
	<filename>/etc/ppp/kermit.hup</filename>, que deber&aacute; 
	contener:</para>

      <programlisting>set line /dev/tty01	; aqui va el dispositivo del modem 
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none

pau 1
out +++
inp 5 OK
out ATH0\13
echo \13
exit</programlisting>

      <para>He aqui un metodo alterno, donde se utiliza <command>chat</command>
	    en lugar de utilizar <command>kermit</command>.</para>

      <para>Los siguientes dos ficheros deben ser suficiente, para realizar
        una conexi&oacute;n por medio de <command>pppd</command>.</para> 

      <programlisting>/dev/cuaa1 115200

crtscts		# habilita el control de flujo por medio de hardware 
modem		# l&iacute;nea de control del m&oacute;dem
connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
noipdefault	# el servidor remoto debe asignar la direcci&oacute;n IP.
	        # si el servidor no asigna una IP durante la negociaci&oacute;n
                # IPCP , remueva esta l&iacute;nea y espere por los
passive         # paquetes LCP
domain &lt;your.domain&gt;	# aqui va su dominio

:		# escriba la IP del host remoto aqui
                # si no ha especificado la opci&oacute;n noipdefault
                # cambie esta l&iacute;nea a quedar &lt;local_ip&gt;:&lt;remote_ip&gt;

defaultroute	# escriba esto, si desea que el servidor PPP sea su
	            # router por default</programlisting>

      <para><filename>/etc/ppp/login.chat.script</filename>:</para>

      <note>
	<para>Lo siguiente debe ir en una sola l&iacute;nea.</para>
      </note>

      <programlisting>ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT&lt;numero.de.telefono&gt;
  CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: &lt;nombre.usuario&gt;
  TIMEOUT 5 sword: &lt;contrase&ntilde;a&gt;</programlisting>

      <para>Una vez que estos ficheros han sido modificados correctamente e
        instalados, todo lo que necesita es ejecutar el comando
	    <command>pppd</command>, algo como:</para>

      <screen>&prompt.root; <userinput>pppd</userinput></screen>
    </sect2>

    <sect2>
      <title>Uso de <command>pppd</command> como Servidor</title>

      <para>El fichero <filename>/etc/ppp/options</filename> debe
        contener algo similar a lo siguiente:</para>

      <programlisting>crtscts   # control de flujo por Hardware
netmask 255.255.255.0           # mascara de red (no es requisito) 
192.114.208.20:192.114.208.165  # direcciones ip del host local y remoto
                                # la direcci&oacute;n ip local debe ser 
                                # diferente a la que le haya asignado a su
                                # dispositivo de red ethernet (u otro)
                                # la direcci&oacute;n ip remota que ser&aacute;
                                # asignada a la maquina remota 
domain ppp.foo.com              # su dominio
passive                         # espera por LCP
modem                           # l&iacute;nea de modem</programlisting>

      <para>El siguiengte script, llamado <filename>/etc/ppp/pppserv</filename>
        habilitar&aacute; <application>pppd</application>, para que actue como
        servidor:</para>

      <programlisting>#!/bin/sh 
ps ax |grep pppd |grep -v grep
pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
        echo 'killing pppd, PID=' ${pid}
        kill ${pid}
fi
ps ax |grep kermit |grep -v grep
pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
        echo 'killing kermit, PID=' ${pid}
        kill -9 ${pid}
fi

# reset ppp interface
ifconfig ppp0 down
ifconfig ppp0 delete

# enable autoanswer mode
kermit -y /etc/ppp/kermit.ans

# run ppp
pppd /dev/tty01 19200</programlisting>

      <para>Utilice el script <filename>/etc/ppp/pppservdown</filename>
        para detener el servidor:</para>

      <programlisting>#!/bin/sh 
ps ax |grep pppd |grep -v grep
pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
        echo 'killing pppd, PID=' ${pid}
        kill ${pid}
fi
ps ax |grep kermit |grep -v grep
pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
        echo 'killing kermit, PID=' ${pid}
        kill -9 ${pid}
fi
ifconfig ppp0 down
ifconfig ppp0 delete

kermit -y /etc/ppp/kermit.noans</programlisting>

      <para>El siguiente script de kermit
	    (<filename>/etc/ppp/kermit.ans</filename>) habilita/deshabilita
	    el modo de autorespuesta en su m&oacute;dem. Y debe verse algo similar
	    a lo siguiente:</para>

      <programlisting>set line /dev/tty01
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none

pau 1
out +++
inp 5 OK
out ATH0\13
inp 5 OK
echo \13
out ATS0=1\13   ; cambiar esto a quedar out ATS0=0\13 si desea deshabilitar el modo 
                ; de autorespuesta
inp 5 OK
echo \13
exit</programlisting>

      <para>Un script llamado <filename>/etc/ppp/kermit.dial</filename> es
        utilizado para llamar y autentificarse en un host remoto. Es
        necesario que edite este fichero, de acuerdo a sus necesidades.
        Escriba su nombre de usuario (login) y contrase&ntilde;a (password)
        en este fichero, tambi&eacute;n ser&aacute; necesario cambiar su
        metodo de conexi&oacute;n, de acuerdo a lo que se ajuste a sus
        necesidades.</para>
        
      <programlisting>;
; ingrese el dispositivo que esta apuntando a su m&oacute;dem:
;
set line /dev/tty01
;
; escriba la velocidad del m&oacute;dem:
;
set speed 19200
set file type binary            ; full 8 bit file xfer
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
set modem hayes
set dial hangup off
set carrier auto                ; Posteriormente SET CARRIER si es necesario 
set dial display on             ; despues SET DIAL si es necesario
set input echo on
set input timeout proceed
set input case ignore
def \%x 0                       
goto slhup

:slcmd                          ; cambio a modo de comando
echo Put the modem in command mode.
clear                           ; Limpieza del buffer de entrada 
pause 1
output +++     
input 1 OK\13\10                ; esperar para OK
if success goto slhup
output \13
pause 1
output at\13
input 1 OK\13\10
if fail goto slcmd              ; si el modem no responde Ok, intentar de nuevo 

:slhup                          ; colgar el tel&eacute;fono
clear                           ; Limpieza del buffer de entrada
pause 1
echo Hanging up the phone.
output ath0\13 
input 2 OK\13\10
if fail goto slcmd              ; si no hay un OK como respuesta, poner el modem en modo de comando

:sldial                         ; marcar el numero telefonico 
pause 1
echo Dialing.
output atdt9,550311\13\10               ; escriba el numero de telefono
assign \%x 0                    ; asignar cero al contador 

:look
clear                           ; Limpieza del buffer de entrada
increment \%x                   ; Conteo de segundos 
input 1 {CONNECT }
if success goto sllogin
reinput 1 {NO CARRIER\13\10}
if success goto sldial
reinput 1 {NO DIALTONE\13\10}
if success goto slnodial
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if < \%x 60 goto look
else goto slhup

:sllogin                        ; login
assign \%x 0                    ; asignar cero al contador
pause 1
echo Looking for login prompt.

:slloop
increment \%x                   ; Conteo de segundos 
clear                           ; Limpieza del buffer de entrada
output \13
;
; escriba su login prompt aqui:
;
input 1 {Username: }
if success goto sluid
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if < \%x 10 goto slloop         ; intentar 10 veces para obtener un login
else goto slhup                 ; colgar y empezar de nuevo si a la decima falla 

:sluid
;
; escriba su nombre de usuario:
;
output ppp-login\13
input 1 {Password: }
;
; escriba su contrase&ntilde;a:
;
output ppp-password\13
input 1 {Entering SLIP mode.}
echo
quit

:slnodial
echo \7No dialtone.  Check the telephone line!\7
exit 1

; local variables:
; mode: csh
; comment-start: "; "
; comment-start-skip: "; "
; end:</programlisting>
    </sect2>
  </sect1>

  <sect1 id="pppoe">
    <sect1info>
      <authorgroup>
        <author>
          <firstname>Jim</firstname>
          <surname>Mock</surname>
          <contrib>Contribuido (tomado de http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html) por </contrib>
	</author>
      </authorgroup>
      <!-- 10 Jan 2000 -->
    </sect1info>

    <title>Uso de <application>PPP</application> sobre Ethernet (PPPoE)</title>
    <indexterm><primary>PPP</primary><secondary>sobre Ethernet</secondary></indexterm>
    <indexterm>
      <primary>PPPoE</primary>
      <see>PPP, sobre Ethernet</see>
    </indexterm>

    <para>En esta secci&oacute;n veremos como configurar PPP
      sobre una red Ethernet (<acronym>PPPoE</acronym>).</para>

    <sect2>
      <title>Configurando el kernel</title>

      <para>Ya no es necesario realizar una configuraci&oacute;n especial
        para que nuestro kernel cuente con soporte para PPPoE. Siempre y
        cuando el soporte de redes necesario se encuentre en &eacute;l, 
        <application>ppp</application> se encargar&aacute; de cargarlo
        de una manera din&aacute;mica.</para>
    </sect2>

    <sect2>
      <title>Editando el fichero <filename>ppp.conf</filename></title>

      <para>He aqui un ejemplo de un fichero de configuraci&oacute;n
        <filename>ppp.conf</filename> completamente funcional:</para>

      <programlisting>default:
  set log Phase tun command # puede a&ntilde;adir m&aacute;s dispositivos si lo desea
  set ifaddr 10.0.0.1/0 10.0.0.2/0

nombre_del_proveedor_del_servicio_de_internet:
  set device PPPoE:<replaceable>xl1</replaceable> # sustituya xl1 con su dispositivo ethernet 
  set authname SuNombreDeUsuario
  set authkey SuContrase&ntilde;a 
  set dial
  set login
  add default HISADDR</programlisting>

    </sect2>

    <sect2>
      <title>Ejecutando  <application>PPP</application></title>

      <para>Estando en modo <username>superusuario</username> (root) 
        puede ejecutar:</para>

      <screen>&prompt.root; <userinput>ppp -ddial nombre_del_proveedor_de_inet</userinput></screen>

    </sect2>

    <sect2>
      <title>Ejecutando <application>PPP</application> al inicio de sesi&oacute;n</title>

      <para>A&ntilde;ada las siguientes l&iacute;neas a su archivo 
        <filename>/etc/rc.conf</filename>:</para>

      <programlisting>ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"	# siempre y cuando desee habilitar nat para su red local
ppp_profile="nombre_del_proveedor_de_inet"</programlisting>
    </sect2>

    <sect2>
      <title>Diferenciando el uso del Servicio de PPPoE</title>

      <para>En ocasiones es necesario utilizar una peque&ntilde;a marca para
        diferenciar el servicio que vamos a utilizar para establecer la
        conexi&oacute;n.  Las marcas (<quote>tags</quote>)de servicio son
        utilizadas para distinguir entre diferentes servidores de una red,
        a los que nos podemos conectar utilizando PPPoE.</para>

      <para>Su proveedor de internet debe haberle provisto de la
        informaci&oacute;n necesaria para crear esta marca. Si esto
        no fu&eacute; as&iacute;, puede solicitar a su proveedor que
        le brinde esta informaci&oacute;n.</para>

      <para>Como &uacute;ltimo recurso, puede intentar el m&eacute;todo
        sugerido por el programa 
        <ulink url="http://www.roaringpenguin.com/pppoe/">Roarging Penguin 
        PPPoE</ulink>, que puede encontrarse en la 
        <link linkend="ports"> colecci&oacute;n de ports</link>. Al
        utilizar este programa debe tener en mente, que este puede
        desconfigurar su m&oacute;dem por completo, por esta raz&oacute;n
        piense biena antes de utilizarlo. Simplemente instale el programa
        controlador del m&oacute;dem, provisto por su porveedor. 
        Posteriormente, debe acceder al men&uacute; de <literal>Sistema</literal>
         del programa. El nombre de su perfil debe aparecer listado. Que
         normalmente es <emphasis>ISP</emphasis>.</para>
        
      <para>El nombre del perfil (marca del servicio) ser&aacute; utilizada por
        la configuraci&oacute;n de PPPoE en el fichero de configuraci&oacute;n
        <filename>ppp.conf</filename> como el proveedor para la opci&oacute;n
        del comando <command>set device</command> (puede ver la p&aacute;gina de
        ayuda &man.ppp.8; para m&aacute;s detalles). Esto debe verse algo
        similar a lo siguiente:</para>

      <programlisting>set device PPPoE:<replaceable>xl1</replaceable>:<replaceable>ISP</replaceable></programlisting>

      <para>No olvide cambiar <replaceable>x11</replaceable> por el
        dispositivo Ethernet que este utilizando.</para>
      <para>No olvide cambiar <replaceable>ISP</replaceable> por el nombre
        del perfil que le fu&eacute; descrito anteriormente (por lo general
        el nombre de su Proveedor de Servicio de Internet).</para>

      <para>Para informaci&oacute;n adicional consulte:</para>

      <itemizedlist>
	<listitem>
	  <para><ulink
	    url="http://renaud.waldura.com/doc/freebsd/pppoe/">Cheaper
	    Broadband with FreeBSD on DSL</ulink> por Renauld Waldura.<para>
	</listitem>
      </itemizedlist>
    </sect2>

    <sect2 id="ppp-3com">

      <title>Uso de PPPoE en Casa con un Modem Dual ADSL 3Com</title>

      <para>Este m&oacute;dem no sigue el estandar establecido en el <ulink
	    url="http://www.faqs.org/rfcs/rfc2516.html">RFC 2516</ulink>
	    (<emphasis>Un metodo que describe el uso de PPP por medio de un
	    dispositivo Ethernet (PPoE)</emphasis>, escrito por L. Mamakos, K. Lidl, 
	    J. Evarts, D. Carrel, D. Simone y R. Wheeler). En su lugar, el
	    c&oacute;digo de diferentes tipos de paquetes ha sido utilizado
	    para el manejo del entorno Ethernet. Si cree que esto es incorrecto
	    y que se debiera ajustar a las especificaciones de PPPoE, por favor
	    comentelo en <ulink url="http://www.3com.com/">3Com</ulink>.</para>
	    
      <para>Para poder hacer que FreeBSD sea capaz de comunicarse con
        este dispositivo, se debe establecer un control de sistema (sysctl). 
        Esto puede hacerse de forma autom&aacute;tica al momento del
        arranque, editando el fichero <filename>/etc/sysctl.conf</filename>:
        </para>

	<programlisting>net.graph.nonstandard_pppoe=1</programlisting>

      <para>o bien pude hacerse desde la l&iacute;nea de comandos, para un
        efecto inmediato, por medio del comando
	    <command>sysctl -w net.graph.nonstandard_pppoe=1</command>.</para>

      <para>Desafortunadamente y dado que esto implica una
        configuraci&oacute;n general del sistema, por lo que no es 
        posible comunicarnos con un dispositivo cliente &mdash; servidor 
        que utilice PPPoE y con un m&oacute;dem casero 3Com 
        ADSL, al mismo tiempo.</para>

    </sect2>
  </sect1>

  <sect1 id="pppoa">
    <title>Uso de <application>PPP</application> sobre ATM (PPPoA)</title>
    <indexterm><primary>PPP</primary><secondary>sobre ATM</secondary></indexterm>
    <indexterm>
      <primary>PPPoA</primary>
      <see>PPP, sobre ATM</see>
    </indexterm>

    <para>Lo siguiente describe como configurar PPP utilizando ATM, alias 
      PPPoA.  PPPoA es una alternativa muy com&uacute;n entre proveedores de
      DSL en Europa.</para>

    <sect2>
      <title>Uso de PPPoA con un Alcatel Speedtouch USB</title>

      <para>El soporte bajo FreeBSD para este dispositivo se puede encontrar 
        como un port, por que el firmware es distribuido bajo <ulink
        url="http://www.alcatel.com/consumer/dsl/disclaimer_lx.htm">
        la licencia de Alcatel</ulink>.</para>

      <para>Para instalar este software, simplemente utilice la
        <link linkend="ports">colecci&oacute;n de ports</link>.  Instale el
        port <filename role="package">net/pppoa</filename> y siga las 
        instrucciones provistas por el port.</para>
    </sect2>

    <sect2>
       <title>Uso de mpd</title>
 
       <para>Puede usar <application>mpd</application> para conectarse a una gran
         variedad de servicios, en particular servicios pptp.  Puede encontrar
         <application>mpd</application> en la colecci&oacute;n de ports, bajo
         <filename role="package">net/mpd</filename>.</para>
 
       <para>Primero debe instalar el port, y posteriormente configurar
         <application>mpd</application> para que se ajuste a sus necesidades y
         a la configuraci&oacute;n del proveedor.  El port instala un conjunto
         de ficheros de configuraci&oacute;n de ejemplo, que estan bien
         documentados en 
         <filename><replaceable>PREFIX</replaceable>/etc/mpd/</filename>. Note 
         que <emphasis>PREFIX</emphasis> se refiere al directorio donde sus
         ports son instalados, que normalmente es en 
         <filename>/usr/local</filename>.  Una gu&iacute;a completa en formato
         HTML, esta disponible una vez que se ha instalado el port.  Esta se 
         localiza en 
         <filename><replaceable>PREFIX</replaceable>/share/mpd/</filename>.  
         Aqui tenemos un ejemplo simple de configuraci&oacute;n para conectarse
         a un servicio ADSL con <application>mpd</application>.  La 
         configuraci&oacute;n se divide en dos ficheros, primero tenemos el
         fichero <filename>mpd.conf</filename>.</para>

       <programlisting>default:
     load adsl
 
 adsl:
     new -i ng0 adsl adsl
     set bundle authname <replaceable>usuario</replaceable> <co
     id="co-mpd-ex-user">
     set bundle password <replaceable>contrase&ntilde;a</replaceable> <co
     id="co-mpd-ex-pass">
     set bundle disable multilink
     
     set link no pap actcomp protocomp
     set link disable chap
     set link accept chap
     set link keep-alive 30 10
     
     set ipcp no vjcomp
     set ipcp ranges 0.0.0.0/0 0.0.0.0/0
     
     set iface route default
     set iface disable on-demand
     set iface enable proxy-arp
     set iface idle 0
 
     open</programlisting>

  <calloutlist>
       <callout arearefs="co-mpd-ex-user">
         <para>El nombre de usuario para autentificar con su proveedor.</para>
       </callout>
       <callout arearefs="co-mpd-ex-pass">
         <para>La contrase&ntilde;a para autentificar con su proveedor.</para>
       </callout>
     </calloutlist>
 
     <para>El fichero <filename>mpd.links</filename> contiene informaci&oacute;n
       a cerca de la, o las conecciones, que desee establecer.  Un ejemplo de
       <filename>mpd.links</filename> y que sea acompa&ntilde;ante del ejemplo
       anterior, se muestra a continuaci&oacute;n.</para>
 
     <programlisting>adsl:
     set link type pptp
     set pptp mode active
     set pptp enable originate incoming outcall
     set pptp self 10.0.0.140
     set pptp peer 10.0.0.138</programlisting>
 
     <para>La conexi&oacute;n es f&aacute;cil de inicializarla, al ingresar los
       siguientes comandos como <username>root</username>.</para>
 
     <screen>&prompt.root; <userinput>mpd -b</userinput> <replaceable>adsl</replaceable></screen>
 
     <para>El estatus de la conexi&oacute;n la puede ver con el comando.</para>
 
     <screen>&prompt.user; <userinput>ifconfig <replaceable>ng0</replaceable></userinput>
 : flags=88d1&lt;UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST&gt; mtu 1500
      inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff</screen>
     
     <para>Usar <application>mpd</application> es la forma recomendada para 
       conectarse con servicios ADSL con &os;.</para>
     </sect2>

     <sect2>
       <title>Uso de pptpclient</title>
 	  
       <para>Tambi&eacute;n es posible usar FreeBSD para conectarse a otros 
         servicios PPPoA por medio de <filename 
         role="package">net/pptpclient</filename>.</para>
 	  
       <para>Para conectarse por medio de  <filename 
         role="package">net/pptpclient</filename> a un servicio DSL, instale el 
         port o paquete y edite el fichero 
         <filename>/etc/ppp/ppp.conf</filename>.  Debe ser 
         <username>root</username> para hacer estas operaciones.  Un ejemplo de
         la secci&oacute;n de <filename>ppp.conf</filename>, se muestra a
         continuaci&oacute;n.  Para mayor informaci&oacute;n sobre las 
         opciones de <filename>ppp.conf</filename>, consulte la p&aacute;gina de
         ayuda de <application>ppp</application>; &man.ppp.8;.</para>
 
       <programlisting>adsl:
  set log phase chat lcp ipcp ccp tun command
  set timeout 0
  enable dns
  set authname <replaceable>usuario</replaceable> <co id="co-pptp-ex-user">
  set authkey <replaceable>contrase&ntilde;a</replaceable> <co id="co-pptp-ex-pass">
  set ifaddr 0 0
  add default HISADDR</programlisting>
 
    <calloutlist>
      <callout arearefs="co-pptp-ex-user">
 	   <para>Nombre de usuario de la cuenta DSL.</para>
 	 </callout>
 	 <callout arearefs="co-pptp-ex-pass">
 	   <para>La contrase&ntilde;a de su cuenta.</para>
 	 </callout>
    </calloutlist>
 
    <warning>
      <para>Debido a que debe poner su contrase&ntilde;a en el fichero
 	    <filename>ppp.conf</filename> en texto plano, debe asegurarse que nadie
 	    tenga acceso de lectura a este fichero.  Los siguientes comandos se 
 	    aseguran de que el fichero solo pueda se leido por 
 	    <username>root</username>.  Ve las p&aacute;ginas de ayuda &man.chmod.1;
 	    y &man.chown.8; para mayor informaci&oacute;n.</para>
 	    
 	 <screen>&prompt.root; <userinput>chown root:wheel /etc/ppp/ppp.conf</userinput>
 &prompt.root; <userinput>chmod 600 <filename>/etc/ppp/ppp.conf</filename></userinput></screen>
    </warning>
 
       <para>Esto abrir&aacute; una sesion por medio de PPP con su ruteador DSL. 
         Los m&oacute;dems Ethernet DSL cuentan con una direcci&oacute;n IP de
         LAN preconfigurada a la cual se puede conectar.  En el caso del Alcatel
         Speedtouch, esta direcci&oacute;n es <hostid
         role="ipaddr">10.0.0.138</hostid>.  La documentaci&oacute;n de su equipo
         debe indicarle que direcci&oacute;n utiliza.  Para abrir el 
         <quote>tunel</quote> e iniciar la sesi&oacute;n 
         <application>ppp</application>, ejecute el siguiente comando.</para>
 
       <screen>&prompt.root; <userinput>pptp <replaceable>direcci&oacute;n</replaceable> <replaceable>proveedor</replaceable></userinput></screen>
 
       <tip>
 	<para>Puede a&ntilde;adir un s&iacute;mbolo de ampersand 
 	  (<quote>&amp;</quote>) al final de este comando, ya que 
 	  <application>pptp</application> no retorna al shell por default.</para>
       </tip>
 	  
       <para>Un dispositivo virtual <devicename>tun</devicename> ser&aacute; 
         creado, para interactuar con los procesos de 
         <application>pptp</application> y <application>ppp</application>.  
         Una vez que regrese al shell puede examinar la conexi&oacute;n por
         medio del siguiente comando.</para>
 
       <screen>&prompt.user; <userinput>ifconfig <replaceable>tun0</replaceable></userinput>
 tun0: flags=8051&lt;UP,POINTOPOINT,RUNNING,MULTICAST&gt; mtu 1500
         inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00 
         Opened by PID 918</screen>
 
       <para>Si no le es posible conectarse, verifique la configuraci&oacute;n de
         su ruteador, que normalmente es accesible por medio de 
 	     <application>telnet</application> o de su navegador web. Si aun no puede
 	     conectarse examine la salida que da el comando 
 	     <application>pptp</application> y el contenido del fichero de registro
 	     (log) de <application>ppp</application>; 
 	     <filename>/var/log/ppp.log</filename>.</para>
 	</sect2>
  </sect1>

  <sect1 id="slip">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Satoshi</firstname>
	  <surname>Asami</surname>
	  <contrib>Contribuci&oacute;n Original por </contrib>
	</author>
      </authorgroup>
      <authorgroup>
	<author>
	  <firstname>Guy</firstname>
	  <surname>Helmer</surname>
	  <contrib>Con comentarios por </contrib>
	</author>
	<author>
	  <firstname>Piero</firstname>
          <surname>Serini</surname>
	</author>
      </authorgroup>
    </sect1info>

    <title>Uso de SLIP</title>
    <indexterm><primary>SLIP</primary></indexterm>

    <sect2 id="slipc">
      <title>Configurando un cliente SLIP</title>
      <indexterm><primary>SLIP</primary><secondary>cliente</secondary></indexterm>
      <para>Lo siguiente es una forma de configurar FreeBSD para que utilice
        SLIP, en un red con direcci&oacute;n est&aacute;tica. Para
        direcciones din&aacute;micas (esto es, donde su direcci&oacute;n
        cambia cada vez que se conecta), probablemente sea necesario
        realizar algunos ajustes que complican la configuraci&oacute;n.</para>

      <para>En primer t&eacute;rmino, es necesario determinar a que puerto
        serial esta conectado nuestro m&oacute;dem. Mucha gente opta por}
        contar con un enl&aacute;ce simb&oacute;lico, tal como
        <devicename>/dev//modem</devicename>, que apunta al nombre
        real del dispositivo,
        <devicename>/dev/cuaaN</devicename>. Esto permite abstenerse de
        usar el nombre real del dispositivo, en caso de que sea necesario 
        cambiar de puerto nuestro m&oacute;dem.  Lo cual puede ser de mucha
        ayuda, ya que puede ser un fastidio tener que editar un monton de 
        ficheros en <filename>/etc</filename> y ficheros de tipo
        <filename>.kermrc</filename> en todo el sistema!.</para>

      <note>
	<para><filename>/dev/cuaa0</filename> es
	  <devicename>COM1</devicename>, <filename>cuaa1</filename> es
	  <devicename>COM2</devicename>, etc.</para>
      </note>

      <para>Asegurese de contar con la siguiente opci&oacute;n en la 
        configuraci&oacute;n de su kernel:</para>
      
      <programlisting>pseudo-device   sl      1</programlisting>

      <para>Esta opci&oacute;n esta incluida en el archivo del kernel
        <filename>GENERIC</filename>, as&iacute; que no debe haber
        problema, claro esta, a menos que lo haya borrado 
        intencionalmente.</para>

      <sect3>
	<title>Cosas Que Tiene Que Hacer Solo Una Vez</title>

	<procedure>
	  <step>
	    <para>A&ntilde;ada el nombre de su maquina, gateway, servidores
	      de nombre a su fichero <filename>/etc/hosts</filename>. Este es
	      un ejemplo de mi fichero:</para>

	    <programlisting>127.0.0.1               localhost loghost
136.152.64.181          water.CS.Example.EDU water.CS water
136.152.64.1            inr-3.CS.Example.EDU inr-3 slip-gateway
128.32.136.9            ns1.Example.EDU ns1
128.32.136.12           ns2.Example.EDU ns2</programlisting>
	  </step>

	  <step>
	    <para>Asegurese de que cuenta con la opci&oacute;n <option>hosts</option> 
	      antes de la opci&oacute;n <option>bind</option>, en su fichero 
	      <filename>/etc/host.conf</filename>.  De lo contrario pueden ocurrir
	      cosas graciosas en su sistema.</para>
	  </step>

	  <step>
	    <para>Edite el fichero <filename>/etc/rc.conf</filename>.</para>

	    <orderedlist>
	      <listitem>
		<para>Especifique su nombre host al editar la l&iacute;nea que dice:
		  </para>
	      
		<programlisting>hostname=<quote>minombre.mi.dominio</quote></programlisting>

		<para>El nombre completo de su sistema para internet, debe ser
		  escrito en este punto.</para>
	      </listitem>

	      <listitem>
		<para>A&ntilde;ada el dispositivo <devicename>sl0</devicename> a la
		  lista de dispositivos de red, al cambiar la l&iacute;nea que dice:</para>

		<programlisting>network_interfaces="lo0"</programlisting>

		<para>a quedar:</para>

		<programlisting>network_interfaces=<quote>lo0 sl0</quote></programlisting>
	      </listitem>

	      <listitem>
		<para>A&ntilde;ada los par&aacute;metros de inicializaci&oacute;n
		  del dispositivo sl0, al a&ntilde;adir la l&iacute;nea:</para>

		<programlisting>ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up"</programlisting>
	      </listitem>

	      <indexterm><primary>default route</primary></indexterm>
	      <listitem>
		<para>Especificque cual ser&aacute; su ruteador por omisi&oacute;n
		  al editar la l&iacute;nea:</para>

		<programlisting>defaultrouter=<quote>NO</quote></programlisting>

		<para>a quedar:</para>

		<programlisting>defaultrouter=<quote>slip-gateway</quote></programlisting>
	      </listitem>
	    </orderedlist>
	  </step>

	  <step>
	    <para>Edite su fichero <filename>/etc/resolv.conf</filename> (si no existe
	      debe crearlo), a que contenga lo siguiente:</para>

	    <programlisting>domain CS.Ejemplo.EDU
nameserver 128.32.136.9
nameserver 128.32.136.12</programlisting>

	    <indexterm><primary>nameserver</primary></indexterm>
	    <indexterm><primary>domain (nombre de dominio)</primary></indexterm>
	    <para>Como puede ver, lo anterior define el nombre de host, de su 
	      servidor de nombres. Claro esta, el nombre de dominio y las 
	      direcciones IP, dependen de su sistema espec&iacute;fico.</para>
	  </step>

	  <step>
	    <para>Establezca la contrase&ntilde;a del superusuario
	      <username>root</username> y de su s&iacute;mil
	      <username>toor</username> (y de cualquier otro usuario
	      que aun no cuente con la misma).</para>
	  </step>

	  <step>
	    <para>Reinicie su sistema y asegurese que cuenta con el
	      nombre de host (hostname) correcto.</para>
	  </step>
	</procedure>
      </sect3>

      <sect3>
	<title>Haciendo una Conexi&oacute;n con SLIP</title>
	<indexterm><primary>SLIP</primary><secondary>conectando con</secondary></indexterm>
	<procedure>
	  <step>
	    <para>Marque el n&uacute;mero, teclee en el signo de comando
	      <command>slip</command>, ingrese el nombre y la contrase&ntilde;a.
	      Lo que se requiere ingresar, depende de su sistema. Si utiliza 
	      <application>kermit</application>, puede utilizar un script similar
	      al siguiente:</para>
	      
	    <programlisting># kermit setup
set modem hayes
set line /dev/modem
set speed 115200
set parity none
set flow rts/cts
set terminal bytesize 8
set file type binary
# El siguiente macro se encarga de llamar e ingresar al sistema
define slip dial 643-9600, input 10 =&gt;, if failure stop, -
output slip\x0d, input 10 Username:, if failure stop, -
output silvia\x0d, input 10 Password:, if failure stop, -
output ***\x0d, echo \x0aCONNECTED\x0a</programlisting>

	    <para>Claro esta, que debe cambiar el nombre y contrase&ntilde;
	      a quedar de acuerdo a sus necesidades. Despu&eacute;s de hacer
	      esto, puede simplemente teclear <command>slip</command> en el
	      s&iacute;mbolo de sistema (prompt) de kermit, para realizar
	      la conexi&oacute;n.</para>

	    <note>
	      <para>El dejar su contrase&ntilde;a en texto plano, en
	        cualquier parte del sistema, generalmente es una
	        <emphasis>mala</emphasis> idea. H&aacute;galo bajo su
	        propio riesgo.</para>
	    </note>
	  </step>

	  <step>
	    <para>Dej&eacute; a kermit en ese punto trabajando (puede
	      suspenderlo tecleando
	      <keycombo>
		<keycap>Ctrl</keycap>
		<keycap>z</keycap>
	      </keycombo>) y como <username>root</username>, teclee:</para>

	    <screen>&prompt.root; <userinput>slattach -h -c -s 115200 /dev/modem</userinput></screen>

	    <para>Si puede hacer <command>ping</command> a cualquier host
	      que se encuentre del otro lado del ruteador, usted esta
	      conectado!. Si esto no funciona, puede intentar como 
	      argumento del comando <command>slattach</command>, la 
	      opci&oacute;n <option>-a</option> en lugar de utilizar la
	      optci&oacute;n <option>-c</option>.</para>
	  </step>
	</procedure>
      </sect3>

      <sect3>
	<title>Como Terminar la Conexi&oacute;n</title>

	<para>Para terminar la conexi&oacute;n haga lo siguiente:</para>

	<screen>&prompt.root; <userinput>kill -INT `cat /var/run/slattach.modem.pid`</userinput></screen>

	<para>esto terminara&aacute;  <command>slattach</command>.  Recuerde que 
	  para hacer esto, usted debe estar firmado como superusuario (root).
	  Posteriormente dirijase a kermit (puede hacer esto con 
	  <command>fg</command> si lo envio a segundo plano) y salga (tecleando
	  <command>q</command>).</para>

	<para>La p&aacute;gina de ayuda de <command>slattach</command> indica que
	  debe utilizar el comando <command>ifconfig sl0 down</command>, para 
	  marcar como terminado el uso del dispositivo, pero tal parece que 
	  esto no hace una gran diferencia para mi.
	  (<command>ifconfig sl0</command> da el mismo resultado.)</para>

	<para>En algunas ocasiones, puede que su m&oacute;dem se niegue a
	  cortar la comunicaci&oacute;n (el mio lo hace a veces). Si ese es
	  el caso, simplemente inicie de nuevo kermit y vuelva a salir.
	  Normalmente en el segundo intento hay exito.</para>
      </sect3>

      <sect3>
	<title>Problemas Comunes</title>

	<para>Si esto no funciona, sientase libre de preguntarme. Lo siguiente es
	  una recapitulaci&oacute;n de los problemas que m&aacute;s comunmente
	  se presentan:</para>

	<itemizedlist>
	  <listitem>
	    <para>El no utilizar la opci&oacute;n <option>-c</option> o 
	      <option>-a</option> con el comando
	      <command>slattach</command> (Esto debiera se fatal, pero algunos
	      usuarios han reportado que esto ha solucionado sus problemas.</para>
	  </listitem>

	  <listitem>
	    <para>Usar la opci&oacute;n <option>s10</option> en vez de usar la
	      opci&oacute;n <option>sl0</option> (puede ser dif&iacute;cil ver la
	      diferencia con algunos tipos de letras).</para>
	  </listitem>

	  <listitem>
	    <para>Intente  <command>ifconfig sl0</command> para visualizar
	      el estatus de sus dispositivos de red. Por ejemplo, puede ser que
	      obtenga algo similiar a lo siguiente:</para>

	    <screen>&prompt.root; <userinput>ifconfig sl0</userinput>
sl0: flags=10&lt;POINTOPOINT&gt;
        inet 136.152.64.181 --&gt; 136.152.64.1 netmask ffffff00</screen>
	  </listitem>

	  <listitem>
	    <para>Tambi&eacute;n el comando <command>netstat -r</command> le
	      mostrar&aacute; la tabla de ruteo, en caso de que obtenga el
	      mensaje <quote>no route to te host</quote>, al hacer
	      <command>ping</command>. Un ejemplo de esto se muestra
	      a continuaci&oacute;n:</para>

	    <screen>&prompt.root; <userinput>netstat -r</userinput>
Routing tables
Destination      Gateway            Flags     Refs     Use  IfaceMTU    Rtt    Netmasks:

(root node)
(root node)

Route Tree for Protocol Family inet:
(root node) =&gt;
default          inr-3.Example.EDU  UG          8   224515  sl0 -      -
localhost.Exampl localhost.Example. UH          5    42127  lo0 -       0.438
inr-3.Example.ED water.CS.Example.E UH          1        0  sl0 -      -
water.CS.Example localhost.Example. UGH        34 47641234  lo0 -       0.438
(root node)</screen>

	    <para>Esto es despu&eacute;s de que el sistema ha estado conectado
	      por un tiempo. Los numeros pueden variar en su sistema.</para>
	  </listitem>
	</itemizedlist>
      </sect3>
    </sect2>

    <sect2 id="slips">
      <title>Estableciendo un Servidor SLIP</title>
      <indexterm><primary>SLIP</primary><secondary>servidor</secondary></indexterm>

      <para>Este documento provee sugerencias, para establecer un servidor
        de SLIP, bajo FreeBSD, lo que generalmente significa configurar su
        sistema, para que de manera autom&aacute;tica inicie los servicios, al
        firmarse usuarios&mdash;clientes remotos en su sistema.</para>

      <!-- 
      <note>El siguiente es un comentario de renuncia de responsabilidades, y
        debido a su importancia, se mantiene el texto original.</note>
      -->

      <!--Inicio de la traduccion
        Renuncia de responsabilidades, sin que necesariamente sea relevante
        <para> El autor ha escrito este documento, basado en sus experiencias,
          de cualquier forma, puediendo ser que las necesiadades de su sistema
          sean diferentes, puede ser que este documento no responda a todas
          sus preguntas, y el autor no es responsable si usted da&ntilde;a su
          sistema o bien, pierde informaci&oacute;n, al intentar lo descrito
          en este documento.</para>
        -->

       <!-- Inicia el documento original-->
        
      <!-- Disclaimer is not necessarily relevant
      <para> The author has written this document based
	on his experience; however, as your system and needs may be
	different, this document may not answer all of your questions, and
	the author cannot be responsible if you damage your system or lose
	data due to attempting to follow the suggestions here.</para>
      -->

      <sect3 id="slips-prereqs">
	<title>Prerequisitos</title>
	<indexterm><primary>redes TCP/IP</primary></indexterm>

	<para>Esta secci&oacute;n es de naturaleza muy t&eacute;cnica, as&iacute;
	  que contar con antecedentes sobre esto es requerido. Este documento
	  supone que usted cuenta con conocimientos sobre el protocolo de
	  redes TCP/IP, y particularmente, redes y direcciones de nodos, mascaras
	  de red, subneteo, ruteo y protocolos de ruteo, tal como RIP. El 
	  configurar servicios SLIP, en un servidor, requiere un conocimiento de
	  estos conceptos, y si usted no esta familiarizado con estos, puede
	  leer una copia, ya sea del libro de Craig Hunt; <emphasis>TCP/IP
	  Networking Administration</emphasis>, publicado por O'Reilly &amp;
	  Associates, Inc. (Numero ISBN 0-937175-82-X), o alguno de los libros
	  de Douglas Comer, sobre protocolos TCP/IP.</para>
	  
	<indexterm><primary>m&oacute;dem</primary></indexterm>

	<para>Se da por un hecho, que usted ha instalado y configurado
	  correctamente su(s) m&oacute;dem(s), as&iacute; como la 
	  configuraci&oacute;n de su sistema, para efecto de utilizar el
	  mismo para realizar la conexi&oacute;n. Si usted no lo ha hecho,
	  por favor lea el tutorial sobre configuraci&oacute;n de estos
      servicios; si cuenta con un navegador para la World-Wide Web, 
      puede ver los tutoriales disponibles en <ulink 
      url="../../../../index.html">http://www.FreeBSD.org/</ulink>.</para>

    <para>Puede ser que tambi&eacute;n desee revisar las p&aacute;ginas de
      ayuda (<emphasis>man</emphasis>), &man.sio.4; para informaci&oacute;n
      referente a los controladores de dispositivos de puertos en serie, y
      &man.ttys.5;, &man.gettytab.5;, &man.getty.8;, &amp; &man.init.8;, para
      ver informaci&oacute;n relevante, sobre la configuraci&oacute;n de su
      sistema, para efecto de que acepte  accesos (logins) por medio de un
      m&oacute;dem, y quiz&aacute;s &man.stty.1; para informaci&oacute;n 
      sobre los par&aacute;metros de configuraci&oacute;n de puertos en
      serie (tal como <literal>clocal</literal>, que se utiliza para 
      la conexi&oacute;n directa por medio de puertos seriales).</para>
      </sect3>

      <sect3>
	<title>Echemos un Vistazo</title>

	<para>En su configuraci&oacute;n t&iacute;pica, el desarrollo de
	  FreeBSD como un servidor SLIP, funciona de la siguiente manera:
	  un Usuario SLIP, se conecta del Servidor SLIP FreeBSD e ingresa al
	  sistema con una identificaci&oacute;n especial, que utiliza
	  <command>/usr/sbin/sliplogin</command> como shell del usuario. El
	  programa <command>sliplogin</command> busca en el fichero
	  <filename>/etc/sliphome/slip.hosts</filename> la l&iacute;nea que
	  haya sido creada especialmente para el usuario, conecta la 
	  l&iacute;nea serial a una interfaz SLIP disponible y posteriormente
	  ejecuta el script <filename>/etc/sliphome/slip.login</filename>, para
	  configurar la interfaz SLIP.</para>

        <sect4>
	  <title>Un Ejemplo de Acceso al Servidor SLIP</title>

	  <para>Por ejemplo si la clave de acceso de un usuario SLIP
	    fuese <username>Shelmerg</username>, la entrada del usuario
	    <username>Shelmerg</username>, en el fichero
	    <filename>/etc/master.passwd</filename> se vera algo similar
	    a lo siguiente:</para>
	    
	  <programlisting>Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin</programlisting>

	  <para>Cuando <username>Shelmerg</username> accese al sistema, el
	    comando <command>sliplogin</command>, buscar&aacute; en el
	    fichero <filename>/etc/sliphome/slip.hosts</filename>, una
	    l&iacute;nea, en la cual el ID (identificaci&oacute;n) del
	    usuario coincida, por ejemplo, puede ser que en el fichero
	    <filename>/etc/sliphome/slip.hosts</filename> exista una
	    l&iacute;nea simliar a la siguiente:</para>
	    
	  <programlisting>Shelmerg        dc-slip sl-helmer       0xfffffc00		  autocomp</programlisting>

	  <para>El comando <command>sliplogin</command> encontrar&aacute;
	    la l&iacute;nea que coincida, enganchar&aacute; la l&iacute;nea
	    serial a cualquier interfaz SLIP disponible y posteriormente
	    ejecutar&aacute; <filename>/etc/sliphome/slip.login</filename> 
	    de manera similar a:</para>
      
	  <programlisting>/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp</programlisting>

	  <para>Si todo marcha bien, <filename>/etc/sliphome/slip.login</filename>
	    crear&aacute; una configuraci&oacute;n, por medio de
	    <command>ifconfig</command>, para la interfaz SLIP, a la cual
	    <command>sliplogin</command> se ha adjuntado (la interfaz slip 0,
	    que era el primer par&aacute;metro dado en la lista de
	    <filename>slip.login</filename>), para establecer la
	    direcci&oacute;n local IP (<hostid>dc-slip</hostid>), la
	    interfaz de la direci&oacute;n IP Remota (<hostid>sl-helmer</hostid>),
	    la submascara de red para la interfaz SLIP (<hostid
	    role="netmask">0xfffffc00</hostid>) y cualquier otra opci&oacute;n
	    adicional (<literal>autocomp</literal>). Si algo no va del todo
	    bien, normalmente <command>sliplogin</command> guarda bastante
	    informaci&oacute;n para depurar, por medio del 
	    <literal>demonio</literal> (<literal>daemon</literal>) syslog, que
	    usualmente guarda dicha infomraci&oacute;n en
	    <filename>/var/log/messages</filename> (vea la p&aacute;gina de
	    ayuda &man.syslogd.8; as&iacute; como &man.syslog.conf.5; y quizas
	    el fichero <filename>/etc/syslog.conf</filename>, para ver que
	    es lo que <command>syslogd</command> esta almacenando y donde es
	    que lo almacena.</para>

	  <para>OK, basta de ejemplos &mdash; entremos de lleno en la
	    configuraci&oacute;n del sistema.</para>
	</sect4>
      </sect3>

      <sect3>
	<title>Configuraci&oacute;n del Kernel</title>
	<indexterm><primary>kernel</primary><secondary>configuraci&oacute;n</secondary></indexterm>
	<para>El kernel de FreeBSD, por omisi&oacute;n, cuenta con 2
	  dispositivos SLIP definidos (<devicename>sl0</devicename> y
	  <devicename>sl1</devicename>); usted puede utilizar
	  <command>netstat -i</command>, para verificar si estos
	  dispositivos se encuentran en el kernel de su sistema.</para>
	  
	<para>Un ejemplo del resultado de <command>netstat -i</command>:</para>

	<screen>Name  Mtu   Network     Address            Ipkts Ierrs    Opkts Oerrs  Coll
ed0   1500  &lt;Link&gt;0.0.c0.2c.5f.4a         291311     0   174209     0   133
ed0   1500  138.247.224 ivory             291311     0   174209     0   133
lo0   65535 &lt;Link&gt;                            79     0       79     0     0
lo0   65535 loop        localhost             79     0       79     0     0
sl0*  296   &lt;Link&gt;                             0     0        0     0     0
sl1*  296   &lt;Link&gt;                             0     0        0     0     0</screen>

	<para>En este ejemplo vemos que existen dos
	  dispositivos SLIP en el kernel, que son;
	  <devicename>sl0</devicename> y
	  <devicename>sl1</devicename> (el asterisco que aparece despu&eacute;s
	  de <literal>sl0</literal> y <literal>sl1</literal> indica
	  que los dispositivos no estan <quote>trabajando</quote>.)</para>

	<para>Aun cuando el kernel cuente con los dispositivos, por
	  omisi&oacute;n el kernel de FreeBSD, no viene configurado para
	  enviar paquetes (de hecho su sistema FreeBSD no trabajara como
	  ruteador, por default) esto en base a los requerimientos para
	  Internet, establecidos por los RFCs ( vea 1009 [Requerimentos para
	  Pasarelas (Gateway) en Internet], 1122 [Requerimientos para hosts
	  de Internet &mdash; Capas de comunicaci&oacute;n] y quiz&aacute;s
	  1127 [RFC sobre Una Perspectiva de los Requerimientos de Hosts]).
	  Si usted desea que su servidor SLIP sobre FreeBSD, opere como un
	  ruteador, ser&aacute; necesario que edite el fichero
	  <filename>/etc/rc.conf</filename> y cambie la opci&oacute;n
	  <literal>gateway_enable</literal>, a quedar <option>YES</option>,
	  esto habilitar&aacute; esta funci&oacute;n.</para>
	  
	<para>Ser&aacute; necesario que reinicie su sistema, para efecto de que
	  estos cambios surtan efecto.</para>

	<para>Al verificar su fichero de configuraci&oacute;n del kernel
	  (<filename>/sys/i386/conf/GENERIC</filename>), podr&aacute;
	  notar que cerca del final, hay una l&iacute;nea como la siguiente:</para>

	<programlisting>pseudo-device sl 2</programlisting>

	<indexterm><primary>SLIP</primary></indexterm>
	<para>Esta l&iacute;nea es la que define el numero de
	  dispositivos SLIP disponibles en el kernel; el numero al final
	  de la l&iacute;nea es el numero m&aacute;ximo de conecciones SLIP
	  que puede manejar el servidor simultaneamente.</para>

	<para>Para ayuda con relaci&oacute;n a la configuraci&oacute;n y
	  compilaci&oacute;n del kernel en su sistema FreeBSD, por favor
	  refierase <xref linkend="kernelconfig"> al apartado 
	  correspondiente.</para>
      </sect3>

      <sect3>
	<title>Configuraci&oacute;n de Sliplogin</title>

	<para>Como se menciono anteriormente, existen tres ficheros en el
	  directorio <filename>/etc/sliphome</filename>, que son parte de
	  la configuraci&oacute;n de <filename>/usr/sbin/sliplogin</filename>
      (vea la pagina de ayuda &man.sliplogin.8; de para ver la ayuda
      del comando <command>sliplogin</command>): 
      <filename>slip.hosts</filename>, que es el fichero que define a
      los usuarios SLIP, as&iacute; como sus direcciones IP
      correspondientes; <filename>slip.login</filename>, que
      normalmente es utilizado para configurar la interfaz de SLIP; y
      (opcionalmente) <filename>slip.logout</filename>, que hace lo opuesto a
      <filename>slip.login</filename>, cuando la conexi&oacute;n serial
      ha terminado.</para>
	  
        <sect4>
	  <title>Configuraci&oacute; de <filename>slip.hosts</filename></title>

	  <para>El fichero <filename>/etc/sliphome/slip.hosts</filename> 
	    contiene l&iacute;neas, que al menos cuentan con cuatro partes,
	    separadas por espacios en blanco:</para>

	  <itemizedlist>
	    <listitem>
	      <para>Identificador (nombre) del usuario SLIP</para>
	    </listitem>

	    <listitem>
	      <para>Direcci&oacute;n Local (local para el servidor SLIP) de la 
	        liga a SLIP</para>
	    </listitem>

	    <listitem>
	      <para>Direcci&oacute;n Remota de la liga a SLIP</para>
	    </listitem>

	    <listitem>
	      <para>Mascara de red</para>
	    </listitem>
	  </itemizedlist>

	  <para>Las direcciones local y remota, pueden ser nombres del host
	    (la resoluci&oacute;n de los mismos, es llevada a cabo, por medio de
	    <filename>/etc/hosts</filename> o por el servidor de nombres de
	    dominio (DNS), dependiendo de lo que haya especificado en el
	    fichero <filename>/etc/host.conf</filename>), y la mascara de red
	    puede ser un nombre, que puede ser resuelto revisando 
	    <filename>/etc/networks</filename>. En un sistema de ejemplo, el
	    fichero <filename>/etc/sliphome/slip.hosts</filename>, puede verse
	    as&iacute;:</para>

	  <programlisting>#
# login local-addr      remote-addr     mask            opt1    opt2 
#                                               (normal,compress,noicmp)
#
Shelmerg  dc-slip       sl-helmerg      0xfffffc00      autocomp</programlisting>

	  <para>Al final de la l&iacute;nea puede ver que existen
	    una o m&aacute;s opciones.</para>

	  <itemizedlist>
	    <listitem>
	      <para><option>normal</option> &mdash; sin compresi&oacute;n
	        de los encabezados.</para>
	    </listitem>

	    <listitem>
	      <para><option>compress</option> &mdash; compresi&oacute;n de
		   los encabezados.</para>
	    </listitem>

	    <listitem>
	      <para><option>autocomp</option> &mdash; compresi&oacute;n
	        autom&aacute;tica, si el host remoto lo permite.</para>
	    </listitem>

	    <listitem>
	      <para><option>noicmp</option> &mdash; deshabilitar los
	        paquetes ICMP (de tal forma que cualquier paquete enviado
	        por <quote>ping</quote> ser&aacute;a rechazado, en lugar de
	        ocupar de su ancho de banda).</para>
	    </listitem>
	  </itemizedlist>

  	  <indexterm><primary>SLIP</primary></indexterm>
  	  <indexterm><primary>Redes por TCP/IP</primary></indexterm>
	  <para>La elecci&oacute;n sobre la direcci&oacute;n local y remota
	    depende si usted va a utilizar una conexi&oacute;n TCP/IP dedicada
	    o bien si va a utilizar una conexi&oacute;n por medio de
	    <quote>proxy ARP</quote> en su servidor SLIP (no es correcto
	    <quote>proxy ARP</quote>, pero es la terminolog&iacute;a utilizada
	    en esta secci&oacute;n para describirlo). Si usted no esta seguro
	    que metodo manejar o como asignar la direcci&oacute;n IP, por favor
	    refierase a alguno de los libros sobre TCP/IP, que se
	    mencionan en los Prerequisitos de SLIP (<xref linkend="slips-prereqs">)
	    y/o consulte al administrador de IP de su red.</para>

  	  <indexterm>
        <primary><command>gated</command></primary>
      </indexterm>
	  <para>Si usted piensa subnetear para los diferentes clientes
	    SLIP, ser&aacute; necesario que la direcci&oacute;n de la
	    subred (subnet), salga de la direcci&oacute;n IP que tenga
	    asignada su red, y el numero de cada cliente, del numero que
	    asigne a su subred. Posteriormente puede que sea necesario, o
	    bien configurar una ruta est&aacute;tica a la subred SLIP, por
	    medio de su servidor SLIP en su ruteador m&aacute;s
	    cercano por IP.</para>
	   
  	  <indexterm><primary>Ethernet</primary></indexterm>
	  <para>De otra forma, si usted piensa utilizar un metodo
	    <quote>proxy ARP</quote>, ser&aacute; necesario que a sus
	    clientes SLIP, se les asigne una direcci&oacute;n IP, que se
	    encuentre dentro del rango que este utilizando para su
	    subred Ethernet, y tambi&eacute; ser&aacute; necesario que
	    haga algunos ajustes en los ficheros script 
	    <filename>/etc/sliphome/slip.login</filename> y en
	    <filename>/etc/sliphome/slip.logout</filename>, para que
	    usen &man.arp.8;, para que maneje la tabla ARP del servidor
	    SLIP y llamados del proxy-ARP.</para>
	</sect4>

	<sect4>
	  <title><filename>slip.login</filename> Configuraci&oacute;n</title>

	  <para>El t&iacute;pico fichero <filename>/etc/sliphome/slip.login</filename>
	    se ve de la siguiente manera:</para>

	  <programlisting>#!/bin/sh -
#
#       @(#)slip.login  5.1 (Berkeley) 7/1/90

#
# generic login file for a slip line.  sliplogin invokes this with
# the parameters:
#      1        2         3        4          5         6     7-n
#   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6</programlisting>

	  <para>This <filename>slip.login</filename> file merely runs
	    <command>ifconfig</command> for the appropriate SLIP interface
	    with the local and remote addresses and network mask of the
	    SLIP interface.</para>

	  <para>If you have decided to use the <quote>proxy ARP</quote>
	    method (instead of using a separate subnet for your SLIP
	    clients), your <filename>/etc/sliphome/slip.login</filename>
	    file will need to look something like this:</para>

	  <programlisting>#!/bin/sh -
#
#       @(#)slip.login  5.1 (Berkeley) 7/1/90

#
# generic login file for a slip line.  sliplogin invokes this with
# the parameters:
#      1        2         3        4          5         6     7-n
#   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6 
# Answer ARP requests for the SLIP client with our Ethernet addr
/usr/sbin/arp -s $5 00:11:22:33:44:55 pub</programlisting>

	  <para>La l&iacute;nea adicional, <command>arp -s &#36;5 00:11:22:33:44:55
	    pub</command> del script <filename>slip.login</filename>, crea una
	    entrada ARP en la tabla del servidor SLIP. Esta entrada le indica al
	    servidor SLIP que debe responder con la direcci&oacute;n MAC de su
	    dispositivo Ethernet, cuando cualquier otro nodo IP en la red,
	    solicite informaci&oacute;n a la IP del cliente SLIP.</para>

  	  <indexterm><primary>Ethernet</primary><secondary>direcci&oacute;n MAC</secondary></indexterm>
	  <para>Al tomar en cuenta el ejemplo anterior, es importante que
	    sustituya la direcci&oacute;n Ethernet MAC (<hostid
	    role="mac">00:11:22:33:44:55</hostid>), con la direcci&oacute;n
	    que corresponde a su tarjeta de red, o definitivamente su
	    <quote>proxy ARP</quote> no va a funcionar!. Para efecto de
	    conocer cual es la direcci&oacute;n MAC del dispositivo
	    Ethernet (tarjeta de red), de su servidor SLIP, puede ejecutar
	    el comando <command>netstat -i</command>, el cual tendr&aacute;
	    como resultado algo similar a lo siguiente:</para>
	    
	  <screen>ed0   1500  &lt;Link&gt;0.2.c1.28.5f.4a         191923	0   129457     0   116</screen>

	  <para>Esto indica que la direcci&oacute;n MAC de su 
	    dispositivo Ethernet, en este sistema es
	    <hostid role="mac">00:02:c1:28:5f:4a</hostid>
	    &mdash; los puntos que aparecen en la salida del comando
	    <command>netstat -i</command> deben cambiarse por dos puntos, 
	    as&iacute; mismo deber&aacute; de anteponerse un cero, a cada
	    d&iacute;gito hexadecimal que aparezca s&oacute;lo (no en pares),
	    de tal forma que convirtamos la direcci&oacute;n en lo que 
	    &man.arp.8; requiere para trabajar; vea la p&aacute;gina de ayuda
	    &man.arp.8;, para ver informaci&oacute;n completa sobre su
	    uso.</para>

	  <note>
	    <para>Recuerde que cuando cree los ficheros
	      <filename>/etc/sliphome/slip.login</filename> y
	      <filename>/etc/sliphome/slip.logout</filename>, deben
	      contar con permisos de ejecuci&oacute;n
	      (<command>chmod 755 /etc/sliphome/slip.login 
	      /etc/sliphome/slip.logout</command>), de otra forma
	      estos scripts no podr&aacute;n llevar a cabo su funci&oacute;n.</para>
	  </note>
	</sect4>

	<sect4>
	  <title>Configuraci&oacute;n de <filename>slip.logout</filename></title>

	  <para>El fichero <filename>/etc/sliphome/slip.logout</filename>
	    no es indispensable (a menos que vaya a utilizar
	    <quote>proxy ARP</quote>), pero si aun as&iacute; decide crearlo,
	    el siguiente es un ejemplo b&aacute;sico del script
	    <filename>slip.logout</filename> :</para>

	  <programlisting>#!/bin/sh -
#
#       slip.logout

#
# logout file for a slip line.  sliplogin invokes this with
# the parameters:
#      1        2         3        4          5         6     7-n
#   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 down</programlisting>

	  <para>Si usted esta utilizando <quote>proxy ARP</quote>, es
	    recomendable que le indique a 
	    <filename>/etc/sliphome/slip.logout</filename>, que desea
	    eliminar la entrada ARP, para el cliente SLIP:</para>
	  
	  <programlisting>#!/bin/sh -
#
#       @(#)slip.logout

#
# logout file for a slip line.  sliplogin invokes this with
# the parameters:
#      1        2         3        4          5         6     7-n
#   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 down
# Dejar de solicitar respuesta ARP al cliente SLIP
/usr/sbin/arp -d $5</programlisting>

	  <para>El comando <command>arp -d &#36;5</command>, elimina la
	    entrada ARP, que <filename>slip.login</filename> de 
	    <quote>proxy ARP</quote> a&ntilde;adi&oacute; al cliente SLIP
	    al ingresar al sistema.</para>

	  <para>Para esta m&aacute;s seguros: asegurese de que el fichero
	    <filename>/etc/sliphome/slip.logout</filename> cuenta con los
	    permisos adecuados para su ejecuci&oacute;n, una vez que lo ha
	    creado (ej. <command>chmod 755 /etc/sliphome/slip.logout</command>)
	    .</para>
	</sect4>
      </sect3>

      <sect3>
	<title>Consideraciones sobre el Enrutamiento</title>
	<indexterm>
    <primary>SLIP</primary>
    <secondary>enrutamiento</secondary>
  </indexterm>
	<para>Si usted no esta utilizando el metodo <quote>proxy ARP</quote>,
	  para efecto de rutear los paquetes entre sus clientes SLIP y el
	  resto de la red (y quiz&aacute;s Internet), deber&aacute; de
	  hacer una de las siguientes dos acciones, o bien a&ntilde;adir
	  direcciones est&aacute;ticas, a su(s) ruteador(es) m&aacute;s
	  cercanos, para que se reenvien los paquetes de la subred de sus 
	  clientes SLIP, por medio de su servidor SLIP, o bien tendr&aacute;
	  que instalar y configurar <command>gated</command> en su servidor
	  SLIP (que corre FreeBSD!), de tal forma que le indique a su(s)
	  ruteador(es), por medio del protocolo correcto, a cerca de su
	  subred SLIP.</para>

	<sect4>
	  <title>Direcciones de Enrutamiento Est&aacute;ticas</title>
	  <indexterm><primary>direcciones est&aacute;ticas</primary></indexterm>
	  <para>A&ntilde;adir direcciones est&aacute;ticas de enrutamiento puede
	    ser un problema (o imposible si usted no cuenta con la autoridad
	    para hacerlo...). Si usted cuenta con una red de ruteo-m&uacute;ltiple
	    en su organizaci&oacute;n, algunos ruteadores, tales como los
	    fabricados por Cisco y Proteon, puede ser que no sea suficiente
	    con el hecho de configurar las rutas est&aacute;ticas de su subred
	    SLIP, sino que sea necesario indicar que rutas utilizar para
	    informar a cerca de otras rutas, as&iacute; que algo de experiencia
	    as&iacute; como determinaci&oacute;n para la resoluci&oacute;n de
	    problemas ser&aacute;n necesarias para poner la ruta basada-en-
	    ruteo-est&aacute;tico a trabajar.</para>
	</sect4>

	<sect4>
	  <title>Ejecutando <command>gated</command></title>
	  <indexterm>
      <primary><application>gated</application></primary>
    </indexterm>
	  <para>Una alternativa para los dolores de cabeza que pueden dar
	    las redes con ruteo est&aacute;tico, es intalar
	    <command>gated</command> en su servidor SLIP bajo FreeBSD
        y configurarlo, para que utilice los protocolos de ruteo apropiados
        (RIP/OSPF/BGP/EGP) para informar a otros ruteadores, a cerca de su
        subred SLIP. Una vez que lo ha compilado e instalado, deber&aacute; 
        crear el fichero <filename>/etc/gated.conf</filename>, que 
        configurar&aacute; a <command>gated</command>; aqui hay un ejemplo, 
        similar al que el autor utiliz&oacute; en un servidor SLIP FreeBSD:
        </para>

    <note>
 	  <para><command>gated</command> es un software propietario y su 
 	    c&oacute;digo fuente no estar&aacute; disponible al p&uacute;blico
 	    m&aacute;s (m&aacute;s informaci&oacute;n en el sitio <ulink  
 	    url="http://www.gated.org/">gated</ulink>). Esta secci&oacute;n
 	    solo existe para asegurarse de la compatibilidad con aquellos que
 	    usan la versi&oacute; antigua.</para>
 	</note>
        
        
	  <programlisting>#
# gated configuration file for dc.dsu.edu; for gated version 3.5alpha5
# Only broadcast RIP information for xxx.xxx.yy out the ed Ethernet interface
#
#
# tracing options
#
traceoptions "/var/tmp/gated.output" replace size 100k files 2 general ;

rip yes {
  interface sl noripout noripin ;
  interface ed ripin ripout version 1 ;
  traceoptions route ;
} ;

#
# Turn on a bunch of tracing info for the interface to the kernel:
kernel {
  traceoptions remnants request routes info interface ;
} ;

#
# Propagate the route to xxx.xxx.yy out the Ethernet interface via RIP
#

export proto rip interface ed {
  proto direct {
      <replaceable>xxx.xxx.yy</replaceable> mask 255.255.252.0 metric 1; # SLIP connections
  } ;
} ;

#
# Accept routes from RIP via ed Ethernet interfaces
	      
import proto rip interface ed {
  all ;
} ;</programlisting>

          <indexterm><primary>RIP</primary></indexterm>
      <para>En el ejemplo anterior, el fichero de configuraci&oacute;n
        <filename>gated.conf</filename> transmite informaci&oacute;n sobre
        la subred SLIP <replaceable>xxx.xxx.yy</replaceable>, por medio
        de RIP al dispositivo Ethernet; si usted esta utilizando un
        dispositivo de red, diferente de <devicename>ed</devicename>, ser&aacute;
        necesario que modifique el par&aacute;metro <devicename>ed</devicename>
        por el correspondiente. En este ejemplo, el fichero tambi&eacute;n
        realiza una busqueda por el fichero 
        <filename>/var/tmp/gated.output</filename>, que es un fichero que nos
        sirve para depurar cualquier error que se presente en
        la actividad de <command>gated</command>; usted puede desactivar la
        opci&oacute;n de depuraci&oacute;n (debug), si es que
        <command>gated</command> esta funcionando correctamente. Ser&aacute;
        necesario que modifique <replaceable>xxx.xxx.yy.</replaceable>, a quedar
        con la direcci&oacute;n correcta de su subred SLIP (asegurese de
        modificar tambi&eacute;n la m&aacute;scara de red, en la cl&aacute;usula
        <literal>proto direct</literal> tambi&eacute;n).</para>

	  <para>Una vez que ha instalado y configurado <command>gated</command> en
	    su sistema, necesitar&aacute; indicarle a FreeBSD que al iniciar el
	    sistema, ejecute el script para <command>gated</command>, en lugar de
	    ejecutar <command>routed</command>. La forma m&aacute;s f&aacute;cil de
	    hacer esto, es editar las variables de <varname>route</varname> y
	    <varname>router_flags</varname>, en el fichero 
	    <filename>/etc/rc.conf</filename>. Por favor vea la p&aacute;gina de 
	    ayuda de <command>gated</command>, para ver informaci&oacute;n sobre
	    los par&aacute;metros de la l&iacute;nea&mdash;de&mdash;comandos.</para>
        </sect4>
      </sect3>
    </sect2>
  </sect1>
</chapter>

<!-- 
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->
