<!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á disponible en los siguientes idiomas: <A href="../../English/March2001/article192.shtml">English</a> <A href="../../Castellano/March2001/article192.shtml">Castellano</a> <A href="../../Deutsch/March2001/article192.shtml">Deutsch</a> <A href="../../Francais/March2001/article192.shtml">Francais</a> <A href="../../Nederlands/March2001/article192.shtml">Nederlands</a> <A href="../../Russian/March2001/article192.shtml">Russian</a> <A href="../../Turkce/March2001/article192.shtml">Turkce</a> </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ólo por su calidad técnica, sino también por la gente que integra la comunidad Linux. </p> <BR><i>Contenidos</i>: <UL> <LI><A HREF="#lfindex0">Introducció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ó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ículo explica cómo se pueden configurar <b>varios</b> Proveedores de Servicios Internet (<em>Internet Service Providers</em>, o ISPs) bajo Linux y cómo <b>intercambiarlos</b> fácilmente. <br> La idea que utilizamos no es sólo válida para la configuración en un PC con una única conexión a Internet, sino que puede usarla para que toda su familia acceda simultáneamente a Internet. Para conseguirlo configuraremos un proxy DNS (planificació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"> </A> <H2>Introducción</H2> <p> Últimamente el acceso a Internet se ha vuelto muy sencillo. La mayorí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écnicos u ofrece un mal servicio, sólo tenemos que escoger el siguiente. En Alemania llamamos a esto "Internet por Llamada" que nos lleva un paso más adelante. No hace falta registrarse ni firmar ningún papel. Sólo se paga a través de la factura telefó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ó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ómo esté detallado en su país, este artículo explicará cómo cambiar rápidamente el ISP y utilizar diferentes conexiones telefónicas a Internet en distintos momentos. </p> <p> El tipo de acceso a Internet que vamos a cubrir en este artículo es una conexión telefó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ón. pppd es una aplicación muy buena y muy flexible, pero desafortunadamente la documentación que acompaña pppd tiene sólo ejemplos de casos muy anticuados y muy especiales de autentificación y acceso a su ISP. Usando esos ejemplos para configurar una conexión, generalmente fallará con la mayoría de los ISPs modernos. La mayoría de los ISPs utilizan actualmente <ul> <li>asignación dinámica de direcciones IP <li>configuración automática de DNS <li>autentificación chap o pap <li>a veces las peticiones http se redirigen automáticamente a un proxy</ul> Este artículo explica cómo usar características modernas bajo Linux. Todo lo que necesita saber sobre su ISP es el número de teléfono, el login (o nombre de usuario) y la contraseña. </p> <p> Con Linux y <a href="../May2000/article151.shtml">enmascaramiento IP</a> es muy sencillo conectar no sólo un ordenador sino todo un grupo, una completa red de ordenadores, vía una conexión PPP con su ISP. Para hacer esto necesita al menos una máquina Linux y cualquier nú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á generalmente 2 problemas: <ol> <li>El servidor DNS cambiará cada vez que usted cambie el ISP y no querrá reconfigurar todas sus computadoras cada vez. Especialmente si algunas están corriendo bajo Windows o Mac OS. <li>Querrá una lista de ISPs pre-configurados desde donde cualquiera pueda elegir uno. Esta lista deberá 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ágina web (<a href="../../common/images/article192/pppcontrol.gif">captura de pantalla</a>) desde donde se pueda hacer la conexión. </p> <a name="setpppd"> </a> <A NAME="lfindex1"> </A> <H2>Configurando pppd</H2> <p> Todos los ficheros de configuración de pppd están normalmente en /etc/ppp y por lo general tendrá que arrancar pppd como root. Durante la instalación y primeras pruebas debería iniciar la sesión como root. Después le mostraré có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ácilmente su configuración por error. </p> <p> Los ficheros importantes para pppd son: <ul> <li>/etc/ppp/options : opciones de configuración comunes a todos los ISPs <li>/etc/ppp/pap-secrets : contraseñas para autentificación pap <li>/etc/ppp/ip-up : un script que se ejecuta automáticamente cuando se activa la conexión PPP (se ejecuta en el mismo instante en que la conexión IP a Internet está disponible). <li>/etc/ppp/ip-down : un script que se ejecuta automáticamente cuando se termina la conexión PPP. <li>/etc/ppp/peers/ : un directorio con ficheros de configuración especí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án el directorio ppp y todos los otros subdirectorios. Si ya tiene un directorio /etc/ppp entonces renómbrelo antes de desempaquetar: <bR> <pre> cd /etc mv ppp ppp_old tar zxvf ppp.tar.gz </pre> Después de desempaquetarlo verá que hay más ficheros incluidos en ppp.tar.gz. Éstos son scripts adicionales que facilitan la configuración. Su propósito se explica después. (Nota: se mencionan algunos precios en los ficheros de configuración para los proveedores ejemplo. Pueden ser erróneos. Consulte la página principal de cada ISP para tener información exacta). </p> <p> Veamos un fichero de configuración para un ISP llamado arcor: <table bgcolor="#9999FF"> <tr> <td> # Esto es /etc/ppp/peers/arcor <br># Página principal del ISP arcor: http://www.arcor-online.de/ <br>#---------- <br># dispositivo serie y velocidad del módem (normalmente 38400 o 57600): <br>/dev/modem 57600 <br># script de la conexión módem con número de teléfono: <br>connect '/etc/ppp/scripts/ppp-on-dialer-pap 0192070' <br># opciones específicas, opciones comunes se <br># leen en /etc/ppp/options <br>noipdefault <br># llama a pppd para usar este nombre de usuario para autentificación PAP: <br>user arcor <br># intenta dns dinámico: <br>usepeerdns <br># </td> </tr> </table> Una línea que comience con el símbolo (#) es un comentario. El primer parámetro (/dev/modem) es el dispositivo serie a usar. El /dev/modem suele ser un enlace al dispositivo donde está conectado el módem (/dev/ttyS0 o /dev/ttyS1): <pre> cd /dev ln -s ttyS0 modem </pre> 57600 es la velocidad del módem y depende de su hardware. La línea que empieza por "connect" especifica un script (/etc/ppp/scripts/ppp-on-dialer-pap) que se encarga de la comunicación con el módem vía comandos AT. Estos comandos AT son ASCII basado en un lenguaje de comandos para módems. El parámetro dado al script (0192070) es el número de teléfono a marcar. <br>noipdefault es la opción que se necesita para la asignación dinámica de la dirección IP y usepeerdns es necesario para la configuración automática de DNS. La configuración automática de DNS funciona como si su ISP diera las direcciones IP de 1 o 2 servidores DNS durante la fase de negociación, después estarán disponibles vía las Variables de Entorno DNS1 y DNS2 en el script /etc/ppp/ip-up. <br> <br> Todas las librerías de resolución leen un fichero llamado /etc/resolv.conf para encontrar có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úmero de teléfono (0192070, en este ejemplo), la velocidad del módem, la línea serie a usar y un puñado de opciones de configuración de pppd. No trataré aquí las opciones de configuración comunes en /etc/ppp/options. Puede echar un vistazo al fichero de ejemplo y ojear la página de manual de pppd. En lugar de esto conectaremos con nuestro ISP (arcor). Para hacerlo necesitamos 2 cosas más (éste es un ejemplo que funcionará para lectores en Alemania): <bR> login name: arcor<bR> password: internet<bR> <bR> Esta información se tiene que introducir en el fichero /etc/ppp/pap-secrets y el nombre de usuario irá también en el fichero /etc/ppp/peers/arcor (véase arriba). Añada una lí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 * internet 0.0.0.0 </td> </tr> </table> </p> <p> Ya está. Ahora podemos probarlo. Para hacer la llamada tecleamos: <pre> pppd call arcor </pre> arcor es en este caso el nombre del fichero de configuración en /etc/ppp/peers/ <br> El módem llamará y en unos segundos estaremos en línea. En cuanto esté en línea el comando /sbin/ifconfig deberí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ón a Internet ejecute el comando: <pre> killall pppd </pre> Espero que este ejemplo le sirva. Debería funcionar como se muestra aquí correctamente a los lectores alemanes. Las personas de otros países evidentemente deberían cambiar <b>número de teléfono, login y password.</b> por los de su ISP. Si no funciona eche un vistazo a la sección de <a href="#trs">solución de problemas</a> al final de este artículo. </p> <p> Ahora tiene 1 ISP funcionando. Para añadir más tiene que hace lo siguiente: <ol> <li>copiar el archivo /etc/ppp/peers/arcor con un nuevo nombre <li>cambiar el número de teléfono y el usuario en ese archivo <li>añadir una nueva línea a /etc/ppp/pap-secrets </ol> Copiar el archivo y utilizar un editor de texto es mucho más rápido y sencillo que utilizar una herramienta de configuración gráfica. </p> <p> En este punto sabe aproximadamente cómo funciona el mecanismo subrayado. A continuación usaremos unos cuantos scripts para hacerlo más sencillo. En particular introduciremos dos scripts en perl "setuidados" con los que haremos posible iniciar y parar su conexió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ífico como si lo estuviera ejecutando el dueño de dicho comando. Evidentemente hay que diseñarlo con cuidado para no crear problemas de seguridad. Los scripts en perl "setuidados" están incluidos en el ppp.tar.gz que desempaquetó anteriormente. Deben tener "s" en los permisos de archivo y pertenecer al superusuario:<br> <i> <br>> cd /etc/ppp/scripts <br>> ls -al ppp-on 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ámbielos con la orden <br><tt>chmod 6755 ppp-off ppp-on</tt>. <br> Los scripts ppp-off ppp-on sólo son scripts de ajuste. Todo lo que hacen es ejecutar <tt>pppd call algún-fichero-de-configuración</tt> o <tt>killall pppd</tt>. La ventaja es que ahora cualquier usuario puede utilizarlos. El script ppp-on tiene además alguna función especial para los ISP que no utilizan configuración DNS automática. Si le sucede que tiene un ISP con esta caracterí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ón a Internet:</i> /etc/ppp/scripts/ppp-off </pre> Esto deberí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 último emplearemos una interfaz gráfica para iniciar y parar nuestra conexión a Internet. Un programa cgi es un programa que genera páginas web interactivas. Un programa cgi bien diseñ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ía de las distribuciones Linux vienen hoy en dí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á la direcció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ón llamado /etc/ppp/gpppwrap.conf que tiene la siguiente sintaxis: <table bgcolor="#9999FF"> <tr> <td> ppponarg: <argumento_a_pasar_a_ppp_on> - una cadena adicional de comentario </td> </tr> </table> El signo menos (-) inicia un comentario que veremos en la página web pppcontrol pero no se pasa al programa /etc/ppp/scripts/ppp-on. Aquí hay un ejemplo para el caso en el que tiene en /etc/ppp/peers los ficheros de configuració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ón para usted, pero una vez que lo tenga instalado y funcionando sólo necesitará añadir/borrar de vez en cuando un ISP y esto es tan fácil como ha visto antes.</p> <p> Ahora puede elegir apropiadamente un ISP de la lista en la página web y conectarse simplemente haciendo click en un botón en esa página web. <A NAME="lfindex2"> </A> <H2>Proxy DNS</H2> En el capítulo anterior hemos visto cómo configurarlo todo para el caso de una única computadora Linux. La configuración DNS se hizo de forma que cambiaríamos el fichero /etc/resolv.conf cada vez que tuviéramos que configurar una nueva conexió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ándose en algunas máquinas la tarea se vuelve imposible porque estos ordenadores necesitarán ser reiniciados cada vez que cambie el servidor DNS en la configuración de la red. La solución es un proxy DNS. Este pequeño servidor DNS parecerá como nuestro propio servidor DNS para los host dentro de la red, pero simplemente enví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ío pero en realidad Bind no se ha diseñado para este propósito. <br>dnrd es un proxy DNS muy bueno específicamente diseñado para nuestro propósito. Mire la <a href="#ref">sección de referencia</a> de este artículo para informarse de dónde obtener dnrd. Para una red como la mostrada aquí <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ón interna IP del PC Linux (192.168.0.1) como el servidor DNS en todos los demás PCs de la LAN (red de área local). Es una configuración estática y nunca tendrá que cambiarla, es muy sencillo. </p> <p> Para instalar dnrd del có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í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ó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ático. Los scripts que ha descargado anteriormente ya están preparados para esto, esperando encontrar dnrd en el directorio /usr/local/sbin. </p> <p> dnrd puede hacer mucho más que esto. Puede ser un pequeño servidor DNS por sí mismo. Bajo Unix siempre puede escribir en el fichero /etc/host.conf la línea<br> <tt>order hosts, bind</tt> <br> y entonces dar a todas sus máquinas en su pequeña red local nombres simbólicos en el fichero /etc/hosts . Desgraciadamente, las estúpidas máquinas Windows en su red no tienen esta posibilidad. Si dnrd encuentra un fichero /etc/hosts en su PC Linux actuará automáticamente como un servidor DNS para las entradas mencionadas en ese fichero. ¡Esto resuelve el problema! </p> <p> La sintaxis del archivo /etc/hosts se muestra aquí: <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á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ólo como un proxy DNS sino también como un servidor DNS para las entradas en /etc/hosts debe iniciarlo siempre al arrancar la máquina. Para ello, tiene que añadir la línea <pre> daemon /usr/local/sbin/dnrd </pre> al final de la sección start en el script de arranque /etc/rc.d/init.d/network (Esta sintaxis es para redhat, mandrake etc... su distribución puede diferir). <br> <br> Eso es todo. Ahora cualquiera dentro de nuestra red puede navegar en paralelo con con todos los demás siendo sencillo arrancar y parar la conexión ppp o cambiar entre diferentes ISPs. Tan sólo un marcador enlazando a pppcontrol, nuestro script cgi. </p> <A NAME="lfindex3"> </A> <H2>Mejoras</H2> Aquellos que hayan decidido usar el proxy DNS dnrd pueden además editar los scripts /etc/ppp/ip-up y /etc/ppp/ip-down para no modificar más veces el fichero /etc/resolv.conf . Sólo descomente todas las líneas con <br><i>echo .....> /etc/resolv.conf </i><br>o <br><i>cat > /etc/resolv.conf << ENDOFCAT<br>...<br>ENDOFCAT</i><br> Después de haberlo hecho sólo tiene que utilizar la dirección de loopback como direcció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á usando la caché interna de dnrd en todos los hosts y no sólo en los que están dentro de su red. <br> <br> Para probar que su proxy DNS está funcionando puede usar nslookup: <pre>>nslookup Default Server: localhost Address: 127.0.0.1 >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"> </a> <A NAME="lfindex4"> </A> <H2>Solución de problemas</H2> <p> En esta sección explicaremos cómo activar la depuración (debuging) para pppd. Esto le ayudará a imaginar qué está mal si algo no funciona. Desgraciadamente he descubierto que no era siempre un problema de configuració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á comandos AT al módem. Estos comandos hacen que el módem se conecte a su ISP. Si algo fuese mal podrá encontrar los errores en el fichero /etc/ppp/connect-errors. La mayor parte de las veces el fichero connect-errors file le dará suficientes pistas para que se figure qué está mal. Si este no fuese el caso tendría que introducir los comandos AT manualmente. Para hacerlo necesita un programa de comunicación serie como minicom (incluido en la mayoría de las distribuciones Linux), o cu (normalmente incluido en un paquete llamado uucp) o kermit (consígalo en http://www.columbia.edu/kermit/ck70.html). Use estos programas de comunicación serial para "conversar" con su módem. Cuando teclea AT, el módem debería decir "OK". Sino compruebe los parámetros de velocidad, el cable de alimentación etc... En el caso de que diga OK pruebe el comando ATDT1234 el módem debería marcar ahora 1234. Sino compruebe el manual de su módem. El comando podría ser también ATD1234 (sin T) o algún otro parámetro está equivocado. </p> <p> Después de que el módem ha llamado a su ISP el siguiente paso es la fase de negociación ppp. Para ver qué esta sucediendo aquí deber habilitar el servicio syslog daemon.debug in /etc/syslog.conf. Edite el fichero /etc/syslog.conf y añada ";daemon.debug" a la lí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ón "debug" en /etc/ppp/options (esto ya está habilitado en los fichero de configuración que se ha bajado de esta página en el capítulo <a href="#setpppd">Configurando pppd</a>). Ahora teclee <pre> tail -f /var/log/messages </pre> y verá la salida debug de pppd mientras esté conectado a su ISP. </p> <p> Una conexión ppp satisfactoria será algo así: <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ía conocer los detalles del protocolo pppd. No tengo idea de cómo funciona realmente el protocolo ppp pero puedo adivinar muchas cosas y esto es normalmente más que suficiente para comprender aproximadamene qué está pasando. "sent ... ConfReq" significa e.g que está enviando una petición de configuración para negociar algo. La respuesta a esto está en "rcvd ... ConfAck" (receive configuration request acknowledge) or "rcvd ... ConfRej" (receive configuration request reject). Si todo va bien puede ver su dirección IP asignada dinámicamente (dirección IP local) y la dirección IP de la pasarela de su ISP (dirección IP remota). </p> <p> Es imposible describir aquí todos los casos de error primero porque no conozco su configuració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ículo debería ser capaz de encontrar la mayoría de los fallos. Si realmente no puede hacerlo funcionar y no aparece ningún fallo por su parte entonces simplemente pruebe un ISP diferente. Podría muy bien ser un problema del ISP </p> <a name="ref"> </a> <A NAME="lfindex5"> </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ódigo fuente y los ficheros de configuración utilizados en este artí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ágina principal del proxy DNS dnrd: <a href="http://members.home.com/garsh/dnrd/">http://members.home.com/garsh/dnr d/</a> La última versió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ículo se mantiene como parte de un paquete llamado gpppwrap. gpppwrap incluye también un GUI gtk+ . Puede obtener gpppwrap de la página principal del autor: <a href="http://main.linuxfocus.org/~guido/">http://main.linuxfocus.org/~guido/</a> <li>El software presentado aquí no es la única alternativa posible. Puede utilizar una aplicación llamada <a href="http://w3.cpwright.com/mserver/">Masqdialer</a> para hacer algo similar. </ul> <!-- 2pdaIgnoreStart --> <A NAME="talkback"> </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> talkback page </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">© 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>-></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>-></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>