<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//ES">
<HTML>
<HEAD>
 <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 <META NAME="GENERATOR" CONTENT="lfparser_2.9">
 <META NAME="LFCATEGORY" CONTENT="System Administration">
 <TITLE>lf192, System Administration: Usando distintos ISPs para su acceso a Internet</TITLE>
<!-- stylesheet added by lfparser: --> 
<style type="text/css">
<!--
 pre { font-familiy:monospace,Courier }
-->
</style>
 
</HEAD>
<BODY bgcolor="#ffffff" text="#000000">
 <!-- this is generated html code. NEVER use this file for your
 translation work. Instead get the file with the same article number
 and .meta.shtml in its name. Translate this meta file and then
 use lfparser program to generate the final article -->
 <!-- lfparser can be obtained from http://main.linuxfocus.org/~guido/dev/lfparser.html -->

<!-- 2pdaIgnoreStart -->
<MAP name="top">
  <AREA shape="rect" coords="367,9,418,30" alt="Hogar" href="../index.shtml">
  <AREA shape="rect" coords="423,9,457,30" alt="Mapa" href="../map.html">
  <AREA shape="rect" coords="463,9,508,30" alt="Indice" href="../indice.html">
  <AREA shape="rect" coords="514,9,558,30" alt="Busqueda" href="../Search/index.html">
</MAP>
<MAP name="bottom">
  <AREA shape="rect" coords="78,0,163,15" alt="Noticias" href="../News/index.shtml">
  <AREA shape="rect" coords="189,0,284,15" alt="Arca" href="../Archives/index.html">
  <AREA shape="rect" coords="319,0,395,15" alt="Enlaces" href="../Links/index.html">
  <AREA shape="rect" coords="436,0,523,15" alt="Sobre LF" href="../aboutus.html">
</MAP>
<!-- IMAGE HEADER -->
<CENTER>
  <IMG src="../../common/images/Topbar-es.gif" width="600" height="40" border="0" alt="[Top bar]" ismap usemap="#top" ><BR>
  <IMG src="../../common/images/Bottombar-es.gif" width="600" height="21" border="0" alt="[Bottom bar]" ismap usemap="#bottom">
</CENTER>
<!-- SSI_INFO -->

<!-- tr_staticssi include virtual -->
<!-- tr_staticssi exec cmd -->
<!-- addedByLfdynahead ver 1.4 --><TABLE ALIGN="right" border=0><TR><TD ALIGN="right"><FONT SIZE="-1" FACE="Arial,Helvetica">Este documento est&aacute; disponible en los siguientes idiomas: <A href="../../English/March2001/article192.shtml">English</a> &nbsp;<A href="../../Castellano/March2001/article192.shtml">Castellano</a> &nbsp;<A href="../../Deutsch/March2001/article192.shtml">Deutsch</a> &nbsp;<A href="../../Francais/March2001/article192.shtml">Francais</a> &nbsp;<A href="../../Nederlands/March2001/article192.shtml">Nederlands</a> &nbsp;<A href="../../Russian/March2001/article192.shtml">Russian</a> &nbsp;<A href="../../Turkce/March2001/article192.shtml">Turkce</a> &nbsp;</FONT></TD></TR></TABLE><br>
 

<!-- 2pdaIgnoreStop -->

<!-- SHORT BIO ABOUT THE AUTHOR -->
<TABLE ALIGN=LEFT BORDER=0 hspace=4 vspace=4 WIDTH="30%" >
<TR>
<TD>

<!-- 2pdaIgnoreStart -->
<!-- PALM DOC -->
<TABLE BORDER=0 hspace=4 vspace=4> <TR> <TD>
<font size=1> <img src="../../common/images/2doc.gif" width=34 align=left border=0 height=22 alt="convert to palm"><a href="http://cgi.linuxfocus.org/cgi-bin/2ztxt">Convert to GutenPalm</a><br>or <a href="http://cgi.linuxfocus.org/cgi-bin/2pda">to PalmDoc</a></font>
</TD> </TR> </TABLE>
<!-- END PALM DOC -->
<!-- 2pdaIgnoreStop -->
<br>
<img src="../../common/images/Guido-S.gif" alt= "[Photo of the Author]" height="164" width="173">
<BR>por  <a href="mailto:guido@linuxfocus.org">Guido Socher</a>
<BR><BR>
<I>Sobre el autor:</I><BR>
<p>
Guido es un veterano seguidor de Linux. Le gusta Linux
no s&oacute;lo por su calidad t&eacute;cnica, sino tambi&eacute;n por la gente que
integra la comunidad Linux.
</p>
<BR><i>Contenidos</i>:
<UL>
  <LI><A HREF="#lfindex0">Introducci&oacute;n</A></LI>
  <LI><A HREF="#lfindex1">Configurando pppd</A></LI>
  <LI><A HREF="#lfindex2">Proxy DNS</A></LI>
  <LI><A HREF="#lfindex3">Mejoras</A></LI>
  <LI><A HREF="#lfindex4">Soluci&oacute;n de problemas</A></LI>
  <LI><A HREF="#lfindex5">Referencias</A></LI>
  <LI><A HREF="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=192&lang=es">Talkback form for this article</A></LI>
</UL>

</TD></TR></TABLE>
<!-- HEAD OF THE ARTICLE -->
<H2>Usando distintos ISPs para su acceso a Internet</H2>
 <img src="../../common/images/illustration192.gif" alt="[Illustration]" hspace="10" width="156" height="183">
<!-- ABSTRACT OF THE ARTICLE -->
<P><i>Resumen</i>:
<P>
<p>
Este art&iacute;culo explica c&oacute;mo se pueden configurar <b>varios</b>
Proveedores de Servicios Internet (<em>Internet
Service Providers</em>, o ISPs) bajo Linux y c&oacute;mo <b>intercambiarlos</b>
f&aacute;cilmente.
<br>
La idea que utilizamos no es s&oacute;lo v&aacute;lida para la configuraci&oacute;n
en un  PC con una &uacute;nica conexi&oacute;n a Internet, sino que puede usarla
para que toda su familia acceda simult&aacute;neamente a Internet.
Para conseguirlo configuraremos un proxy DNS (planificaci&oacute;n DNS) y el
<a href="../May2000/article151.shtml">enmascaramiento IP</a> bajo
Linux.
</p></P>
<HR size="2" noshade align="right"><BR>
<!-- BODY OF THE ARTICLE -->


<A NAME="lfindex0">&nbsp;</A>
<H2>Introducci&oacute;n</H2>


<p> &Uacute;ltimamente el acceso a Internet se ha vuelto muy sencillo. La mayor&iacute;a
de los ISPs (o proveedores de acceso a Internet) ya no piden cuotas
mensuales ni contratos a largo plazo. Si un ISP tiene problemas t&eacute;cnicos u
ofrece un mal servicio, s&oacute;lo tenemos que escoger el siguiente. En Alemania
llamamos a esto "Internet por Llamada" que nos lleva un paso m&aacute;s adelante.
No hace falta registrarse ni firmar ning&uacute;n papel. S&oacute;lo se paga a trav&eacute;s de
la factura telef&oacute;nica habitual. Tenga en cuenta que esto no es lo mismo que
Internet gratuito. Internet gratuito es normalmente el estado anterior a la
bancarrota del ISP y a menudo lleva consigo cantidad de datos err&oacute;neos. En
el caso de "Internet por Llamada" usted paga, a menudo cuotas bastante altas
pero puede obtener buen ancho de banda. No importa c&oacute;mo est&eacute; detallado en su
pa&iacute;s, este art&iacute;culo explicar&aacute; c&oacute;mo cambiar r&aacute;pidamente el ISP y utilizar
diferentes conexiones telef&oacute;nicas a Internet en distintos momentos. </p>

<p> El tipo de acceso a Internet que vamos a cubrir en este art&iacute;culo es una
conexi&oacute;n  telef&oacute;nica punto a punto (o point-to-point; PPP) desde su PC a su
ISP.
Bajo Linux se utiliza un programa llamado <i>pppd</i> para configurar esta
conexi&oacute;n.  pppd es una aplicaci&oacute;n muy buena y muy flexible, pero
desafortunadamente la documentaci&oacute;n que acompa&ntilde;a pppd tiene s&oacute;lo ejemplos de
casos muy anticuados y muy especiales de autentificaci&oacute;n y acceso a su ISP.
Usando esos ejemplos para configurar una conexi&oacute;n, generalmente fallar&aacute; con
la mayor&iacute;a de los ISPs modernos. La mayor&iacute;a de los ISPs utilizan actualmente
<ul> <li>asignaci&oacute;n din&aacute;mica de direcciones IP
<li>configuraci&oacute;n autom&aacute;tica de DNS
<li>autentificaci&oacute;n chap o pap
<li>a veces las peticiones http se redirigen autom&aacute;ticamente a un proxy</ul>

Este art&iacute;culo explica c&oacute;mo usar caracter&iacute;sticas modernas bajo Linux. Todo lo
que necesita saber sobre su ISP es el n&uacute;mero de tel&eacute;fono, el login (o nombre
de usuario) y la contrase&ntilde;a. </p>

<p> Con Linux y <a href="../May2000/article151.shtml">enmascaramiento IP</a>
es muy sencillo conectar no s&oacute;lo un ordenador sino todo un grupo, una
completa red de ordenadores, v&iacute;a una conexi&oacute;n PPP con su ISP. Para hacer
esto necesita al menos una m&aacute;quina Linux y cualquier n&uacute;mero de otros
ordenadores. Esto tiene el siguiente aspecto: <br
clear=all> <center><img
src="../../common/images/article192/ipmasq.gif" alt="[network with
IP masquerading]" width=256 height=256></center> </p>

<p> Si usa una pasarela Linux de enmascaramiento IP y usa diferentes ISPs
tendr&aacute; generalmente 2 problemas:
<ol> <li>El servidor DNS cambiar&aacute; cada vez que usted cambie el ISP y no
querr&aacute; reconfigurar todas sus computadoras cada vez. Especialmente si
algunas est&aacute;n corriendo bajo Windows o Mac OS.
<li>Querr&aacute; una lista de ISPs pre-configurados desde donde cualquiera pueda
elegir uno. Esta lista deber&aacute; ser utilizable por todos los sistemas
operativos que tenga en su red. </ol>

Resolveremos el problema 1) usando un proxy DNS llamado <i>dnrd</i> y
resolveremos el problema 2) usando un script CGI que genere una p&aacute;gina web
(<a
href="../../common/images/article192/pppcontrol.gif">captura de
pantalla</a>) desde donde se pueda hacer la conexi&oacute;n. </p>

<a name="setpppd">&nbsp;</a> <A NAME="lfindex1">&nbsp;</A>
<H2>Configurando pppd</H2>

<p> Todos los ficheros de configuraci&oacute;n de pppd est&aacute;n normalmente en
/etc/ppp y por lo general tendr&aacute; que arrancar pppd como root. Durante la
instalaci&oacute;n y primeras pruebas deber&iacute;a iniciar la sesi&oacute;n como root. Despu&eacute;s
le mostrar&eacute; c&oacute;mo cualquiera puede iniciar y parar el pppd. No es bueno que
usted entre siempre como root. El usuario root tiene muy pocas restricciones
y puede destruir f&aacute;cilmente su configuraci&oacute;n por error.
</p>

<p> Los ficheros importantes para pppd son: <ul> <li>/etc/ppp/options :
opciones de configuraci&oacute;n comunes a todos los ISPs
<li>/etc/ppp/pap-secrets : contrase&ntilde;as para autentificaci&oacute;n pap
<li>/etc/ppp/ip-up : un script que se ejecuta autom&aacute;ticamente cuando se
activa la conexi&oacute;n PPP (se ejecuta en el mismo instante en que la conexi&oacute;n
IP a Internet est&aacute; disponible).
<li>/etc/ppp/ip-down : un script que se ejecuta autom&aacute;ticamente cuando se
termina la conexi&oacute;n PPP.
<li>/etc/ppp/peers/ : un directorio con ficheros de configuraci&oacute;n
espec&iacute;ficos para cada ISP.
</ul> Puede descargar estos ficheros como <a
href="../../common/src/article192/ppp.tar.gz">ppp.tar.gz</a>. Para usarlos
puede desempaquetarlos directamente en /etc. Se crear&aacute;n el directorio ppp y
todos los otros subdirectorios. Si ya tiene un directorio /etc/ppp entonces
ren&oacute;mbrelo antes de desempaquetar: <bR>
<pre> cd /etc
 mv ppp ppp_old
 tar zxvf ppp.tar.gz </pre>

Despu&eacute;s de desempaquetarlo ver&aacute; que hay m&aacute;s ficheros incluidos en
ppp.tar.gz. &Eacute;stos son scripts adicionales que facilitan la configuraci&oacute;n. Su
prop&oacute;sito se explica despu&eacute;s. (Nota: se mencionan algunos precios en los
ficheros de configuraci&oacute;n para los proveedores ejemplo. Pueden ser err&oacute;neos.
Consulte la p&aacute;gina principal de cada ISP para tener informaci&oacute;n exacta).
</p>

<p> Veamos un fichero de configuraci&oacute;n para un ISP llamado arcor:
<table bgcolor="#9999FF"> <tr> <td> # Esto es
/etc/ppp/peers/arcor <br># P&aacute;gina principal del ISP arcor:
http://www.arcor-online.de/ <br>#---------- <br># dispositivo serie y
velocidad del m&oacute;dem (normalmente 38400 o 57600): <br>/dev/modem 57600
<br># script de la conexi&oacute;n m&oacute;dem con n&uacute;mero de tel&eacute;fono: <br>connect
'/etc/ppp/scripts/ppp-on-dialer-pap 0192070' <br># opciones espec&iacute;ficas,
opciones comunes se <br># leen en /etc/ppp/options
<br>noipdefault <br># llama a  pppd para usar este nombre de usuario para
autentificaci&oacute;n PAP: <br>user arcor <br># intenta dns din&aacute;mico:
<br>usepeerdns <br># </td> </tr> </table>

Una l&iacute;nea que comience con el s&iacute;mbolo (#) es un comentario.
El primer par&aacute;metro (/dev/modem) es el dispositivo serie a usar.
El /dev/modem suele ser un enlace al dispositivo donde est&aacute; conectado
el m&oacute;dem (/dev/ttyS0 o /dev/ttyS1):
<pre> cd /dev
 ln -s ttyS0 modem </pre>
57600 es la velocidad del m&oacute;dem y depende de su hardware. La l&iacute;nea que
empieza por
"connect" especifica un script (/etc/ppp/scripts/ppp-on-dialer-pap)
que se encarga de la comunicaci&oacute;n con el m&oacute;dem v&iacute;a comandos AT. Estos
comandos AT son ASCII basado en un lenguaje de comandos para m&oacute;dems. El
par&aacute;metro dado al script (0192070) es el n&uacute;mero de tel&eacute;fono a
marcar. <br>noipdefault es la opci&oacute;n que se necesita para la asignaci&oacute;n
din&aacute;mica de la direcci&oacute;n IP y usepeerdns es necesario para la configuraci&oacute;n
autom&aacute;tica de DNS. La configuraci&oacute;n autom&aacute;tica de DNS funciona como si
su ISP diera las direcciones IP de 1 o 2 servidores DNS durante la fase
de negociaci&oacute;n, despu&eacute;s estar&aacute;n disponibles v&iacute;a las Variables de Entorno
DNS1 y DNS2 en el script /etc/ppp/ip-up.
<br> <br> Todas las librer&iacute;as de resoluci&oacute;n leen un fichero llamado
/etc/resolv.conf para encontrar c&oacute;mo resolver los nombres. Este fichero
(/etc/resolv.conf) lo usan las aplicaciones netscape, sendmail
etc... para encontrar el servidor DNS. Generaremos las
las entradas necesarias para /etc/resolv.conf desde el script ip-up. </p>

<p> Hasta ahora hemos definido el n&uacute;mero de tel&eacute;fono (0192070, en este
ejemplo), la velocidad del m&oacute;dem, la l&iacute;nea serie a usar y un pu&ntilde;ado
de opciones de configuraci&oacute;n de pppd. No tratar&eacute; aqu&iacute; las opciones de
configuraci&oacute;n
comunes en /etc/ppp/options. Puede echar un vistazo al fichero de ejemplo y
ojear
la p&aacute;gina de manual de pppd.
En lugar de esto conectaremos con nuestro ISP (arcor). Para hacerlo
necesitamos
2 cosas m&aacute;s (&eacute;ste es un ejemplo que funcionar&aacute; para lectores en Alemania):
<bR> login name: arcor<bR> password: internet<bR> <bR>
Esta informaci&oacute;n se tiene que introducir en el fichero /etc/ppp/pap-secrets
y el nombre de usuario ir&aacute; tambi&eacute;n en el fichero /etc/ppp/peers/arcor
(v&eacute;ase arriba). A&ntilde;ada una l&iacute;nea como la siguiente a
/etc/ppp/pap-secrets: <table bgcolor="#9999FF"> <tr> <td> # Esto
es /etc/ppp/pap-secrets <br># client server secret IP-addr
<br>arcor &nbsp; * &nbsp; internet &nbsp; 0.0.0.0 </td> </tr>
</table> </p>

<p> Ya est&aacute;. Ahora podemos probarlo. Para hacer la llamada tecleamos: <pre>
pppd
 call arcor </pre> arcor es en este caso el nombre del fichero de
configuraci&oacute;n
en /etc/ppp/peers/ <br> El m&oacute;dem llamar&aacute; y en unos segundos estaremos en
l&iacute;nea.
En cuanto est&eacute; en l&iacute;nea el comando /sbin/ifconfig deber&iacute;a mostrar una
interfaz
llamada ppp0. Teclee unas cuantas veces  /sbin/ifconfig hasta que la vea.
Ahora puede usar su navegador y entrar en linuxfocus.org <br> <br>
Para terminar la conexi&oacute;n a Internet ejecute el comando: <pre> killall
 pppd </pre> Espero que este ejemplo le sirva. Deber&iacute;a funcionar como se
muestra aqu&iacute; correctamente a los lectores alemanes. Las personas
de otros pa&iacute;ses evidentemente deber&iacute;an cambiar <b>n&uacute;mero de tel&eacute;fono, login
y password.</b> por los de su ISP. Si no funciona eche un vistazo a la
secci&oacute;n de <a href="#trs">soluci&oacute;n de problemas</a> al final de este
art&iacute;culo. </p>
<p> Ahora tiene 1 ISP funcionando. Para a&ntilde;adir m&aacute;s tiene que hace lo
siguiente:
 <ol> <li>copiar el archivo /etc/ppp/peers/arcor con un nuevo nombre
<li>cambiar el
 n&uacute;mero de tel&eacute;fono y el usuario en ese archivo
<li>a&ntilde;adir una nueva l&iacute;nea a /etc/ppp/pap-secrets </ol> Copiar el archivo y
utilizar
un editor de texto es mucho m&aacute;s r&aacute;pido y sencillo que utilizar
una herramienta de configuraci&oacute;n gr&aacute;fica. </p>

<p> En este punto sabe aproximadamente c&oacute;mo funciona el mecanismo
subrayado. A continuaci&oacute;n usaremos unos cuantos scripts para hacerlo m&aacute;s
sencillo.
En particular introduciremos dos scripts en perl "setuidados" con los que
haremos
posible iniciar y parar su conexi&oacute;n a Internet cuando entre al sistema como
un
usuario normal (no como superusuario). </p>

<p> Set-UID es un mecanismo que permite a un usuario normal ejecutar
un comando espec&iacute;fico como si lo estuviera ejecutando el due&ntilde;o de
dicho comando. Evidentemente hay que dise&ntilde;arlo con cuidado para no crear
problemas de seguridad. Los scripts en perl "setuidados" est&aacute;n
incluidos en el ppp.tar.gz que desempaquet&oacute; anteriormente.
Deben tener "s" en los permisos de archivo y pertenecer al superusuario:<br>
<i> <br>&gt; cd  &nbsp;
&nbsp; /etc/ppp/scripts <br>&gt; ls -al &nbsp; &nbsp; ppp-on
&nbsp;  ppp-off <br>-rw<font color="#FF8100"
size="+1">s</font>r-<font color="#FF8100" size="+1">s</font>r-x 1
root  root   1258 Jan  7 13:24 ppp-off <br>-rw<font
color="#FF8100" size="+1">s</font>r-<font color="#FF8100"
size="+1">s</font>r-x 1 root  root   2619 Jan  9 20:30 ppp-on
<br><br></i> Si no tienen estos permisos c&aacute;mbielos con la orden
<br><tt>chmod 6755 ppp-off
ppp-on</tt>. <br> Los scripts ppp-off ppp-on s&oacute;lo son scripts
de ajuste. Todo lo que hacen es ejecutar <tt>pppd call
alg&uacute;n-fichero-de-configuraci&oacute;n</tt> o
<tt>killall pppd</tt>. La ventaja es que ahora cualquier usuario puede
utilizarlos.
El script ppp-on tiene adem&aacute;s alguna funci&oacute;n especial para los ISP que no
utilizan configuraci&oacute;n DNS autom&aacute;tica. Si le sucede que tiene un ISP con
esta caracter&iacute;stica
edite el fichero y busque "static". Hay ejemplos en este fichero que puede
modificar. Use
los ficheros ppp-on/ppp-off como sigue: <pre><i>Para conectar:</i>
/etc/ppp/scripts/ppp-on arcor

<i>Para terminar la conexi&oacute;n a Internet:</i>
/etc/ppp/scripts/ppp-off </pre> Esto deber&iacute;a funcionar
para cualquier usuario de su computadora. arcor es de nuevo el nombre de un
fichero en /etc/ppp/peers/. Puede darle un nombre distinto.
</p>

<p> Por &uacute;ltimo emplearemos una interfaz gr&aacute;fica para iniciar y parar nuestra
conexi&oacute;n a Internet. Un programa cgi es un programa que genera p&aacute;ginas web
interactivas. Un programa
cgi bien dise&ntilde;ado funciona con cualquier navegador y cualquier sistema
operativo. Es por
esto por lo que usamos un programa cgi. Se parece a esto:
<br clear=all> <center><a
href="../../common/images/article192/pppcontrol.gif"><img
src="../../common/images/article192/pppcontrol.gif"
alt="[pppcontrol]" width=228 height=263></a></center>
La mayor&iacute;a de las distribuciones Linux vienen hoy en d&iacute;a con un servidor
apache ya configurado. Todo lo que necesita es gunzip <a
href="../../common/src/article192/pppcontrol.gz">pppcontrol.gz</a>
copiarlo al directorio cgi de su servidor web (probablemente
/home/httpd/cgi-bin/), hacerlo ejecutable tecleando <br> chmod 755
pppcontrol <br> y editarlo para cambiar la variable $url en
este script perl. Por supuesto, tiene que desempaquetar previamente
pppcontrol.gz a pppcontrol con la orden gunzip. <br> $url debe ser la url
del propio script. E.g si su PC es una computadora Linux aislada entonces
usar&aacute; la direcci&oacute;n IP de circuito cerrado (loopback): <pre>
$url="http://127.0.0.1/cgi-bin/pppcontrol"; </pre> </p>

<p> El script cgi pppcontrol lee un fichero de configuraci&oacute;n llamado
/etc/ppp/gpppwrap.conf que tiene la siguiente sintaxis: <table
bgcolor="#9999FF"> <tr> <td> ppponarg:
&lt;argumento_a_pasar_a_ppp_on&gt; - una cadena adicional de comentario
</td> </tr> </table> El signo menos (-) inicia un comentario
que veremos en la p&aacute;gina web pppcontrol pero no se pasa al programa
/etc/ppp/scripts/ppp-on. Aqu&iacute; hay un ejemplo para el caso en el que
tiene en /etc/ppp/peers los ficheros de configuraci&oacute;n ISP "arcor" y
"talknet"
: <pre># Esto es /etc/ppp/gpppwrap.conf
ppponarg: arcor-- arcor.net 3pf/min
ppponarg: talknet -- internet por llamada 3.5pf/min </pre>
Nota: los precios 3pf/min y 3.5pf/min pueden haber cambiado y pueden
estar equivocados cuando usted lea esto. </p>

<p> Puede que haya sido demasiada informaci&oacute;n para usted, pero una vez que
lo tenga
instalado y funcionando s&oacute;lo necesitar&aacute; a&ntilde;adir/borrar de vez en cuando un
ISP y esto
es tan f&aacute;cil como ha visto antes.</p>
<p> Ahora puede elegir apropiadamente un ISP de la lista en la p&aacute;gina web y
conectarse
simplemente haciendo click en un bot&oacute;n en esa p&aacute;gina web.

<A NAME="lfindex2">&nbsp;</A>
<H2>Proxy DNS</H2>


En el cap&iacute;tulo anterior hemos visto
c&oacute;mo configurarlo todo para el caso de una &uacute;nica computadora Linux.
La configuraci&oacute;n DNS se hizo de forma que cambiar&iacute;amos el fichero
/etc/resolv.conf cada vez que tuvi&eacute;ramos que configurar una nueva conexi&oacute;n
ppp.
<br>Si usa enmascaramiento IP para proveer acceso a Internet a toda una red,
entonces se complica el hecho de cambiar el fichero
/etc/resolv.conf en cada host de la red. Si tiene Windows ejecut&aacute;ndose en
algunas m&aacute;quinas
la tarea se vuelve imposible porque estos ordenadores necesitar&aacute;n ser
reiniciados cada vez
que cambie el servidor DNS en la configuraci&oacute;n de la red. La soluci&oacute;n es un
proxy DNS.
Este peque&ntilde;o servidor DNS parecer&aacute; como nuestro propio servidor DNS para los
host dentro de la red, pero simplemente env&iacute;a las peticiones al servidor DNS
de su ISP. Es posible usar
el servidor DNS Bind para esto y configurarlo como un servidor de reenv&iacute;o
pero en realidad Bind no se ha dise&ntilde;ado para este prop&oacute;sito. <br>dnrd es un
proxy DNS muy bueno espec&iacute;ficamente dise&ntilde;ado para nuestro prop&oacute;sito. Mire la
<a href="#ref">secci&oacute;n de referencia</a> de este art&iacute;culo
para informarse de d&oacute;nde obtener dnrd. Para una red como la mostrada aqu&iacute;
<br clear=all> <center><img
src="../../common/images/article192/ipmasq.gif" alt="[network with
IP masquerading]" width=256 height=256></center> se tiene dnrd
corriendo en el PC Linux y se configura la direcci&oacute;n interna IP del
PC Linux (192.168.0.1) como el servidor DNS en todos los dem&aacute;s PCs de
la LAN (red de &aacute;rea local). Es una configuraci&oacute;n est&aacute;tica y nunca tendr&aacute; que
cambiarla, es muy sencillo. </p>

<p> Para instalar dnrd del c&oacute;digo fuente tiene que:
<pre><i>desempaquetarlo:</i>
tar zxvf dnrd-2.10.tar.gz cd dnrd-2.10/src/
<i>compilarlo:</i>
make strip dnrd
<i>instalarlo:</i>
cp dnrd /usr/local/sbin/
<i>crear el directorio vac&iacute;o /etc/dnrd/ :</i>
mkdir /etc/dnrd/ </pre>

El proxy DNS dnrd se utiliza como sigue (195.50.149.33 y
195.50.140.6 son e.g los servidores DNS de su ISP):
<pre><i>cuando el enlace ppp se active:</i>
dnrd -s 195.50.149.33 -s 195.50.140.6
<i>cuando termine la conexi&oacute;n ejecute:</i>
dnrd </pre>
dnrd se ha iniciado en nuestro caso desde los scripts /etc/ppp/ip-up
y /etc/ppp/ip-down siendo todo autom&aacute;tico. Los scripts que ha descargado
anteriormente ya est&aacute;n preparados para esto, esperando encontrar dnrd en el
directorio
/usr/local/sbin. </p>

<p> dnrd puede hacer mucho m&aacute;s que esto. Puede ser un peque&ntilde;o servidor
DNS por s&iacute; mismo. Bajo Unix siempre puede escribir en el fichero
/etc/host.conf la l&iacute;nea<br> <tt>order hosts, bind</tt> <br>
y entonces dar a todas sus m&aacute;quinas en su peque&ntilde;a red local nombres
simb&oacute;licos en el fichero /etc/hosts .
Desgraciadamente, las est&uacute;pidas m&aacute;quinas Windows en su red no tienen esta
posibilidad. Si dnrd encuentra un fichero /etc/hosts
en su PC Linux actuar&aacute; autom&aacute;ticamente como un servidor DNS para las
entradas
mencionadas en ese fichero. &iexcl;Esto resuelve el problema! </p>

<p> La sintaxis del archivo /etc/hosts se muestra aqu&iacute;: <table
bgcolor="#9999FF"> <tr> <td> # sintaxis: <br># dir-ip nombre-host
alias1 alias2 ... <br># ejemplo: <br>192.168.0.1 linuxpc.mynet
linuxpc <br>192.168.0.2 peppermint.mynet pepper mint </td> </tr>
</table>

Con dnrd ejecut&aacute;ndose puede usar desde cualquier lugar en la red
http://linuxpc.mynet/ o http://linuxpc/ en vez de
http://192.168.0.1/ </p>

<p> Para utilizar dnrd no s&oacute;lo como un proxy DNS sino tambi&eacute;n como
un servidor DNS para las entradas en /etc/hosts
debe iniciarlo siempre al arrancar la m&aacute;quina. Para ello, tiene que a&ntilde;adir
la l&iacute;nea <pre> daemon /usr/local/sbin/dnrd </pre>
al final de la secci&oacute;n start en el script de arranque
/etc/rc.d/init.d/network  (Esta sintaxis es para redhat,
mandrake etc... su distribuci&oacute;n puede diferir). <br> <br> Eso es
todo. Ahora cualquiera dentro de nuestra red puede navegar en paralelo
con con todos los dem&aacute;s siendo sencillo arrancar y parar la conexi&oacute;n ppp
o cambiar entre diferentes ISPs. Tan s&oacute;lo un marcador enlazando a
pppcontrol, nuestro script cgi. </p>

<A NAME="lfindex3">&nbsp;</A>
<H2>Mejoras</H2>
 Aquellos que hayan decidido usar el proxy DNS dnrd
pueden adem&aacute;s editar los scripts /etc/ppp/ip-up y
/etc/ppp/ip-down para no modificar m&aacute;s veces el fichero
/etc/resolv.conf . S&oacute;lo descomente todas las l&iacute;neas con <br><i>echo .....>
/etc/resolv.conf </i><br>o <br><i>cat &gt; /etc/resolv.conf
&lt;&lt; ENDOFCAT<br>...<br>ENDOFCAT</i><br>

Despu&eacute;s de haberlo hecho s&oacute;lo tiene que utilizar la direcci&oacute;n de loopback
como direcci&oacute;n
del servidor DNS (pruebe con /sbin/ifconfig que tiene una interfaz lo):
<pre> #This is /etc/resolv.conf when dnrd is running nameserver 127.0.0.1
</pre> La ventaja es que ahora est&aacute; usando la cach&eacute; interna de dnrd en todos
los hosts y no s&oacute;lo en los que est&aacute;n dentro de su red.
<br> <br> Para probar que su proxy DNS est&aacute; funcionando puede usar
nslookup: <pre>&gt;nslookup Default Server:  localhost
Address:  127.0.0.1

&gt;pepper Server:  localhost Address:  127.0.0.1

Non-authoritative answer: Name:    peppermint.mynet Address:
192.168.0.2 </pre> Termine nslookup pulsando crtl-d.


<a name="trs">&nbsp;</a> <A NAME="lfindex4">&nbsp;</A>
<H2>Soluci&oacute;n de problemas</H2>
 <p> En esta
secci&oacute;n explicaremos c&oacute;mo activar la depuraci&oacute;n (debuging) para pppd.
Esto le ayudar&aacute; a imaginar qu&eacute; est&aacute; mal si algo no funciona.
Desgraciadamente
he descubierto que no era siempre un problema de configuraci&oacute;n por mi parte
cuando algo no funcionaba. </p>

<p> Lo primero que hace pppd en nuestro caso es abrir el
puerto serie (/dev/modem, un enlace a e.g /dev/ttyS0) para ejecutar
el  script /etc/ppp/scripts/ppp-on-dialer-pap. Este script enviar&aacute;
comandos AT al m&oacute;dem. Estos comandos hacen que el m&oacute;dem se conecte a su ISP.
Si algo fuese mal podr&aacute; encontrar los errores en el fichero
/etc/ppp/connect-errors.
La mayor parte de las veces el fichero
connect-errors file le dar&aacute; suficientes pistas para que se figure qu&eacute; est&aacute;
mal.
Si este no fuese el caso tendr&iacute;a que introducir los comandos AT manualmente.
Para hacerlo necesita un programa de comunicaci&oacute;n serie como minicom
(incluido
en la mayor&iacute;a de las distribuciones Linux), o cu (normalmente incluido en un
paquete
llamado uucp) o kermit (cons&iacute;galo en
http://www.columbia.edu/kermit/ck70.html). Use estos programas de
comunicaci&oacute;n serial
para "conversar" con su m&oacute;dem. Cuando teclea AT, el m&oacute;dem deber&iacute;a decir
"OK". Sino
compruebe los par&aacute;metros de velocidad, el cable de alimentaci&oacute;n etc...
En el caso de que diga OK pruebe el comando
ATDT1234 el m&oacute;dem deber&iacute;a marcar ahora 1234. Sino compruebe el manual de su
m&oacute;dem.
El comando podr&iacute;a ser tambi&eacute;n ATD1234 (sin T) o alg&uacute;n otro par&aacute;metro est&aacute;
equivocado. </p>

<p> Despu&eacute;s de que el m&oacute;dem ha llamado a su ISP el siguiente paso es la fase
de
negociaci&oacute;n ppp. Para ver qu&eacute; esta sucediendo aqu&iacute; deber habilitar el
servicio syslog daemon.debug in /etc/syslog.conf. Edite
el fichero /etc/syslog.conf y a&ntilde;ada ";daemon.debug" a la l&iacute;nea que termina
con
/var/log/messages . E.g como esto: <pre>
*.info;mail.none;authpriv.none<b>;daemon.debug</b>
/var/log/messages </pre>

Ahora rearranque syslog con el comando
<br><tt>/etc/rc.d/init.d/syslog restart</tt><br> Ahora puede
habilitar la opci&oacute;n "debug" en /etc/ppp/options (esto ya est&aacute;
habilitado en los fichero de configuraci&oacute;n que se ha bajado de
esta p&aacute;gina en el cap&iacute;tulo <a href="#setpppd">Configurando pppd</a>).
Ahora teclee <pre> tail -f /var/log/messages </pre> y ver&aacute; la salida
debug de pppd mientras est&eacute; conectado a su ISP. </p>

<p> Una conexi&oacute;n ppp satisfactoria ser&aacute; algo as&iacute;: <table
bgcolor="#9999FF"> <tr> <td> <small> Jan 14 17:18:11 bearix
pppd[721]: pppd 2.3.10 started by root, uid 0 <br>Jan 14 17:18:34
bearix pppd[721]: Serial connection established. <br>Jan 14
17:18:34 bearix pppd[721]: Using interface ppp0 <br>Jan 14
17:18:34 bearix pppd[721]: Connect: ppp0 <--> /dev/modem <br>Jan
14 17:18:35 bearix pppd[721]: sent [LCP ConfReq id=0x1 <asyncmap
0x0> <magic 0x19f63474> <pcomp> <accomp>] <br>Jan 14 17:18:37
bearix pppd[721]: rcvd [LCP ConfReq id=0x46 <asyncmap 0xa0000>
<auth chap MD5> <magic 0x38b1de55> <pcomp> <accomp>] <br>Jan 14
17:18:37 bearix pppd[721]: sent [LCP ConfNak id=0x46 <auth pap>]
<br>Jan 14 17:18:38 bearix pppd[721]: rcvd [LCP ConfReq id=0x47
<asyncmap 0xa0000> <auth pap> <magic 0x38b1de55> <pcomp> <accomp>]
<br>Jan 14 17:18:38 bearix pppd[721]: sent [LCP ConfAck id=0x47
<asyncmap 0xa0000> <auth pap> <magic 0x38b1de55> <pcomp> <accomp>]
<br>Jan 14 17:18:38 bearix pppd[721]: sent [LCP ConfReq id=0x1
<asyncmap 0x0> <magic 0x19f63474> <pcomp> <accomp>] <br>Jan 14
17:18:38 bearix pppd[721]: rcvd [LCP ConfAck id=0x1 <asyncmap 0x0>
<magic 0x19f63474> <pcomp> <accomp>] <br>Jan 14 17:18:38 bearix
pppd[721]: sent [PAP AuthReq id=0x1 user="arcor"
password="internet"] <br>Jan 14 17:18:40 bearix pppd[721]: rcvd
[LCP ConfReq id=0x49 <asyncmap 0xa0000> <auth chap MD5> <magic
0x38b1ea0a> <pcomp> <accomp>] <br>Jan 14 17:18:40 bearix
pppd[721]: sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic
0xf736139> <pcomp> <accomp>] <br>Jan 14 17:18:40 bearix pppd[721]:
sent [LCP ConfAck id=0x49 <asyncmap 0xa0000> <auth chap MD5>
<magic 0x38b1ea0a> <pcomp> <accomp>] <br>Jan 14 17:18:41 bearix
pppd[721]: rcvd [LCP ConfAck id=0x2 <asyncmap 0x0> <magic
0xf736139> <pcomp> <accomp>] <br>Jan 14 17:18:41 bearix pppd[721]:
rcvd [CHAP Challenge id=0x5 <0c7672840494152025f937ac4f5e135e>,
name = "klndiinternet"] <br>Jan 14 17:18:41 bearix pppd[721]: sent
[CHAP Response id=0x5 <fe71816ae0b27cd284eb009b0cb26b38>, name =
"arcor"] <br>Jan 14 17:18:41 bearix pppd[721]: rcvd [CHAP Success
id=0x5 ""] <br>Jan 14 17:18:41 bearix pppd[721]: sent [IPCP
ConfReq id=0x1 <addr 0.0.0.0> <compress VJ 0f 01> <ms-dns1
0.0.0.0> <ms-dns3 0.0.0.0>] <br>Jan 14 17:18:41 bearix pppd[721]:
sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1
15>] <br>Jan 14 17:18:41 bearix pppd[721]: rcvd [IPCP ConfReq
id=0x8e <addr 145.253.1.150>] <br>Jan 14 17:18:41 bearix
pppd[721]: sent [IPCP ConfAck id=0x8e <addr 145.253.1.150>]
<br>Jan 14 17:18:41 bearix pppd[721]: rcvd [IPCP ConfRej id=0x1
<compress VJ 0f 01>] <br>Jan 14 17:18:41 bearix pppd[721]: sent
[IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3
0.0.0.0>] <br>Jan 14 17:18:41 bearix pppd[721]: rcvd [LCP ProtRej
id=0xfb 80 fd 01 01 00 0f 1a 04 78 00 18 04 78 00 15 03 2f]
<br>Jan 14 17:18:41 bearix pppd[721]: rcvd [IPCP ConfNak id=0x2
<addr 145.253.88.6> <ms-dns1 145.253.2.11> <ms-dns3 145.253.2.75>]
<br>Jan 14 17:18:41 bearix pppd[721]: sent [IPCP ConfReq id=0x3
<addr 145.253.88.6> <ms-dns1 145.253.2.11> <ms-dns3 145.253.2.75>]
<br>Jan 14 17:18:41 bearix pppd[721]: rcvd [IPCP ConfAck id=0x3
<addr 145.253.88.6> <ms-dns1 145.253.2.11> <ms-dns3 145.253.2.75>]
<br>Jan 14 17:18:41 bearix pppd[721]: local  IP address
145.253.88.6 <br>Jan 14 17:18:41 bearix pppd[721]: remote IP
address 145.253.1.150 <br>Jan 14 17:18:41 bearix pppd[721]:
primary   DNS address 145.253.2.11 <br>Jan 14 17:18:41 bearix
pppd[721]: secondary DNS address 145.253.2.75 <br>Jan 14 17:18:41
bearix pppd[721]: Script /etc/ppp/ip-up started (pid 723) <br>Jan
14 17:18:42 bearix pppd[721]: Script /etc/ppp/ip-up finished (pid
723), status = 0x0 </small> </td> </tr> </table>
Para comprender esto completamente, probablemente uno deber&iacute;a conocer
los detalles del protocolo pppd. No tengo idea de c&oacute;mo funciona realmente
el protocolo ppp pero puedo adivinar muchas cosas y esto es normalmente m&aacute;s
que suficiente para comprender aproximadamene qu&eacute; est&aacute; pasando. "sent ...
ConfReq" significa e.g que est&aacute; enviando una petici&oacute;n de configuraci&oacute;n para
negociar algo.
La respuesta a esto est&aacute; en "rcvd ... ConfAck"
(receive configuration request acknowledge) or "rcvd ... ConfRej"
(receive configuration request reject).
Si todo va bien puede ver su direcci&oacute;n IP asignada din&aacute;micamente (direcci&oacute;n
IP local) y la direcci&oacute;n IP de la pasarela de su ISP (direcci&oacute;n IP remota).
</p>

<p> Es imposible describir aqu&iacute; todos los casos de error
primero porque no conozco su configuraci&oacute;n y segundo porque
sencillamente hay demasiadas cosas que pueden ir mal.
Con un poco de creatividad y teniendo en mente lo que
ha aprendido en este art&iacute;culo deber&iacute;a ser capaz de encontrar la mayor&iacute;a de
los fallos.
Si realmente no puede hacerlo funcionar y no aparece ning&uacute;n fallo por su
parte entonces
simplemente pruebe un ISP diferente. Podr&iacute;a muy bien ser un problema del ISP
</p>


<a name="ref">&nbsp;</a> <A NAME="lfindex5">&nbsp;</A>
<H2>Referencias</H2>
 <ul> <li>Una lista
de diferentes ISPs en <a
href="http://www.billigersurfen.de">Alemania</a>,
 <a href="http://www.limitless.co.uk/inetuk/providers.html">el
Reino Unido</a>, en <a
href="http://fr.dir.yahoo.com/Commerce_et_economie/Societes/Communications_e
t_reseaux/Internet_et_World_Wide_Web/Fournisseurs_d_acces/Acces_national__Fr
ance_/">Francia</a>.
<li>El c&oacute;digo fuente y los ficheros de configuraci&oacute;n utilizados en este
art&iacute;culo:
<a href="../../common/src/article192/ppp.tar.gz">ppp.tar.gz</a>,
<a
href="../../common/src/article192/pppcontrol.gz">pppcontrol.gz</a>,
<a
href="../../common/src/article192/dnrd-2.10.tar.gz">dnrd-2.10.tar.gz</a>
<li>La p&aacute;gina principal del proxy DNS dnrd: <a
href="http://members.home.com/garsh/dnrd/">http://members.home.com/garsh/dnr
d/</a>
La &uacute;ltima versi&oacute;n estable a la hora de escribir era 2.10. Puede descargar <a
href="../../common/src/article192/dnrd-2.10.tar.gz">dnrd-2.10.tar.gz</a>
directamente del servidor Linux<font color="#FF0000">Focus</font> .

<li>El complemento al programa ppp utilizado en este art&iacute;culo se
mantiene como parte de un paquete llamado gpppwrap. gpppwrap
incluye tambi&eacute;n un GUI gtk+ . Puede obtener gpppwrap de la
p&aacute;gina principal del autor: <a
href="http://main.linuxfocus.org/~guido/">http://main.linuxfocus.org/~guido/</a>
<li>El software presentado aqu&iacute; no es la &uacute;nica alternativa posible.
Puede utilizar una aplicaci&oacute;n llamada <a
href="http://w3.cpwright.com/mserver/">Masqdialer</a> para hacer algo
similar. </ul>




<!-- 2pdaIgnoreStart -->
<A NAME="talkback">&nbsp;</a>
<h2>Talkback form for this article</h2>
Every article has its own talkback page. On this page you can submit a comment or look at comments from other readers:
<center>
<table border="0"  CELLSPACING="2" CELLPADDING="1">
 <tr BGCOLOR="#C2C2C2"><td align=center>
  <table border="3"  CELLSPACING="2" CELLPADDING="1">
   <tr BGCOLOR="#C2C2C2"><td align=center>
    <A href="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=192&lang=es"><b>&nbsp;talkback page&nbsp;</b></a>
   </td></tr></table>
</td></tr></table>
</center>

<HR size="2" noshade>
<!-- ARTICLE FOOT -->
<CENTER><TABLE WIDTH="95%">
<TR><TD ALIGN=CENTER BGCOLOR="#9999AA">
<A HREF="../../common/lfteam.html">Contactar con el equipo de LinuFocus</A>
<BR><FONT COLOR="#FFFFFF">&copy; Guido Socher, <a href="../../common/copy.html">FDL</a> <BR><a href="http://www.linuxfocus.org">LinuxFocus.org</a></FONT>
<BR><a href="http://cgi.linuxfocus.org/cgi-bin/lfcomment?lang=es&article=article192.html" target="_TOP">Click here to report a fault or send a comment to LinuxFocus</A><BR></TD>
<TD BGCOLOR="#9999AA"><!-- TRANSLATION INFO -->
<font size=2>Translation information:</font><TABLE>
<tr><td><font size=2>en</font></td>
    <td><font size=2>-&gt;</font></td>
    <td><font size=2>--</font></td>
    <td><font size=2><a href="mailto:guido@linuxfocus.org"><FONT COLOR="#FFFFFF">Guido Socher</FONT></a></font></td>
</tr>
<tr><td><font size=2>en</font></td>
    <td><font size=2>-&gt;</font></td>
    <td><font size=2>es</font></td>
    <td><font size=2><a href="mailto:rhernando@mundofree.com"><FONT COLOR="#FFFFFF">Roberto Hernando Velasco</FONT></a></font></td>
</tr>
</TABLE></TD>
</TR></TABLE></CENTER>
<p><font size=1>2001-03-29, generated by lfparser version 2.9</font></p>
<!-- 2pdaIgnoreStop -->
</BODY>
</HTML>