On Tue, Mar 27, 2001 at 07:57:40PM +0200, Francisco Callejo wrote: > El nsswitch.conf es correcto, con esa línea incluida; el host.conf > incluye también "order hosts, bind", y en /etc/hosts están los nombres > de los dos ordenadores de la red. A pesar de todo, sigue dando > problemas a la hora de pedir un servicio de un ordenador al otro. > Resumo la situación: > > - Ordenador A: conectado a la línea RDSI, y con ipchains activado en > un kernel 2.4.1. (con el módulo ipchains.o, no con iptables). > - Ordenador B: conectado por tarjeta de red al ordenador A. > - El ordenador A puede hacer peticiones al B tanto por nombre como por > dirección IP (192.168.1.1). > - El ordenador B puede hacer peticiones al A que no sean tcp (ping, > traceroute) por nombre y por ip (192.168.1.2). > - El ordenador B tiene en su tabla de rutas al A como gateway. > - Si A está conectado a Internet, B puede hacer peticiones a A de > servicios tcp por su nombre. > - Si A _no_ está conectado a Internet, B sólo puede hacer peticiones > tcp a A por ip. (También por nombre, pero tarda muchísimo en > responder). > > Esta situación me ocurre desde hace unos días (anteriormente todo iba > bien) y supongo que tendrá relación con algún .deb que haya instalado > últimamente, pero no sé cuál. Los ficheros de configuración no los he > tocado desde hace tiempo. > > Si a alguien se le ocurre algo, que me lo diga. >
Desde ya, para evitar falsas esperanzas, NO tengo la solución, pero... Te cuento. Mi situación es practicamente idéntica a la tuya (conexión RDSI, ordenador con linux haciendo de router y red interna 10/100, en mi caso con 6 máquinas) y exactamente el mismo problema con la resolución de nombres. Primera consideración: el problema no está relacionado con /etc/hosts, ni con /etc/nsswitch.conf, ni con la versión del núcleo. Tu ejecutas kernels 2.4.x, yo tengo todas las máquinas con kerlnels 2.2.14 y 2.2.18 (bueno, menos una que tiene un minix, pero para el caso no cuenta) Yo detecté el problema al instalar la ver. 0.17.x de los paquetes telnet y telnetd en la máquina en la que trabajo habitualmente. En esta primera actualización, si el router no estaba operativo, telnet no conectaba ni proporcionando un nombre canónico ni proporcionando una dirección ip y telnetd no admitía una conexión al no poder realizar una resolución inversa de la dirección ip del cliente. Si el router estaba operativo, el cliente solicitaba la resolución del nombre a los nameservers de mi ISP y al obtener contestación negativa de estos por fin se dignaba mirar en /etc/nsswitch.conf. El servidor (telnetd) realizaba su resolución inversa por el mismo procedimiento. En una versión de telnet que bajé unos días después este había modificado su comportamiento y permitía la conexión sin intentar resolución de nombres cuando le proporcionaba directamente una dirección ip. El comportamiento del telnetd seguía siendo el mismo. Cansado de esto, decidí downgradear a la ver. 0.16.x de estos paquetes y todo volvió a funcionar normalmente. Investigando algo el tema en los archivos de listas de correo de debian, en el bug tracking y en las news, lo único que pude obtener es un aviso de un problema de seguridad referido al paquete libc6 que literalmente dice "If a stuid program does not drop privileges before calling resolver functions, arbitrary file on the system can be read by setting the RESOLV_HOST_CONF environment variables", que es contestato por el mantenedor del paquete informando que soluciona el problema (no se si provisionalmente) haciendo que las funciones de la librería para resolución de nombres "try absolute lookups first". No se si esto tiene que ver con el problema que tenemos, pero si fuera así debería afectar a todos los programas que utilicen las funciones de resolución de la libc6 2.2 posteriores a este "arreglo" (01-2001). Saludos. rlp