PROF. BARILARI REDES Y SISTEMAS OPERATIVOS DISTRIBUIDOS 6. NETBEUI 6.1 NETBIOS EXTENDED USER INTERFACE (NETBEUI) Se llama así a una “suite” o familia de protocolos que incluyen el protocolo NBF (NetBIOS Frame, algunas veces referenciado como NetBEUI y otra veces como NetBIOS), el protocolo SMB (Server Message Protocol, y el protocolo CIFS (Common Internet File System). Estos protocolos se han asociado con la implementación original de NetBIOS con la cual tienen vínculos históricos. NetBEUI Para describir este protocolo de transporte, es necesario conocer los diferentes protocolos usados y en qué capa de red están soportados. COMPONENTES DE NETBIOS Nombre Capa de Red Descripción Redirector Aplicación Direcciona solicitaciones de recursos de red a los servidores apropiados y hace que los recursos de la red se vean como recursos locales SMB Aplicación Presentación Redirecciona la comunicación cliente-servidor NetBIOS Sesión Controla las sesiones entre computadoras y mantiene las conexiones NetBEUI Transporte Red Provee transporte de datos. No es un protocolo ruteable, por lo que se debe usar NBT en redes grandes, utilizando en su lugar el protocolo ruteable TCP/IP Drivers NDIS y NIC Enlace Permite que varios adaptadores utilicen cualquier número de protocolos de transporte. El driver de NIC es software para la tarjeta adaptadora de red NetBIOS utiliza los siguiente puertos: Puerto 137: Servicios de traducción de nombres Puerto 139: Servicios de sesión NetBIOS Puerto 138: Servicios de datagramas NetBIOS 6.1a NOTAS Podemos averiguar si nuestro ordenador tiene NetBIOS activado utilizando el comando: "netstat -an" Este comando nos informará si tenemos los tres puertos anteriores en modo LISTENING. C:\WINDOWS>netstat -an Conexiones activas Proto Dirección local Dirección remota TCP 192.168.0.2:137 0.0.0.0:0 TCP 192.168.0.2:138 0.0.0.0:0 TCP 192.168.0.2:139 0.0.0.0:0 TCP 192.168.0.2:139 192.168.0.7:1353 UDP 192.168.0.2:137 *:* UDP 192.168.0.2:138 *:* ......... Estado LISTENING LISTENING LISTENING ESTABLISHED Buena parte de las críticas de seguridad hacia los entornos Windows se centran en el protocolo NetBIOS. Por motivos de seguridad, este protocolo se debe deshabilitar siempre que no sea imprescindible. ¿Quién necesita tener activo el protocolo NetBIOS (puertos 137, 138 y 139 abiertos)? ¿Quién debería deshabilitarlo? Veamos 4 ejemplos: 1) Un Servidor Web 2) Un Cliente Windows conectado a Internet mediante un módem 3) Un Cliente Windows que participa en la red de una empresa 4) Un Servidor Windows de usuarios y archivos Observacion: ¿Es posible acceder a archivos de otros ordenadores sin tener NetBIOS habilitado? 6.2 RESOLUCIÓN DE NOMBRES Existen tres métodos de transladar nombres NetBIOS a direcciones IP en redes, sin ejecutar procesos de ruteo: IP Broadcasting Un paquete de datos con el nombre NetBIOS de la computadora de destino es difundido a través de toda la red cuando no se encuentra una dirección asociada en el caché local de la máquina de origen. El host cuyo nombre coincide con el que va en el paquete responde retornando su dirección IP. El archivo “LMHOSTS” Este es un archivo que mapea las direcciones IP contra los nombres NetBIOS de computadoras. NBNS (Servidor de nombres NetBIOS) Un servidor que mapea los nombres NetBIOS de las computadoras de la red a la que pertenece con las direcciones IP correspondientes. Según el método que cada nodo de la red use para resolver los nombres, existe una clasificación de los mismos: B-Node Nodo que utiliza el método de difusión (broadcast) para resolver las direcciones. P-Node Este nodo efectúa consultas punto-a-punto con un servidor de nombres NBNS para resolver las direcciones. M-Node Primero utiliza difusión, si falla consulta un servidor NBNS. H-Node Primero intenta consultar un NBNS, si falla utiliza difusión. Como último recurso, verifica el archivo lmhosts. 6.3 NETBEUI EN REDES MICROSOFT A fin de resolver direcciones a partir de los nombres de computadoras, una computadora en una red Microsoft primero verifica el caché local para ver si la dirección buscada está listada ahí. Si no la encuentra, envía un mensaje de difusión (broadcast) a la red solicitando al computador con ese nombre que responda con su dirección MAC. Cuando recibe la dirección, NetBIOS inicia una sesión entre los dos computadores. En grandes redes que usan ruteadores, esta forma de proceder es un problema dado que los ruteadores no propagan los mensajes de difusión (NetBEUI no es un protocolo ruteable). Microsoft implementó otro método para resolver nombres utilizando un servicio denominado Windows Internet Name Service (WINS). Este protocolo realiza los siguientes pasos cuando necesita traducir nombres NetBIOS a direcciones IP en nodos tipo “H-Node” en redes grandes utilizando TCP/IP (NBT): 1 - Verificar el caché de nombre NetBIOS 2 - Utilizar un Servidor WINS 3 - Realizar un “NetBIOS broadcast” 4 - Verificar el archivo “LMHOSTS” 5 - Idem para archivo “HOSTS” 6 - Acceder a un Servidor DNS NetBIOS sobre TCP/IP (NBT) Debido a que NetBIOS es un protocolo no ruteable, Microsoft implementó NBT para grandes redes. Los mensajes NetBIOS normalmente se encapsulan en datagramas NetBEUI, pero cuando se utiliza NBT, se encapsulan en datagramas TCP/IP. El protocolo NBT está definido en los RFC 1001 y 1002. 6.3a NOTAS SOBRE NETBIOS Métodos de resolución de nombres NetBIOS 1) Caché NetBIOS. Es una tabla dinámica almacenada en cada ordenador que contiene los últimos nombres que se han resuelto por otros métodos. Esta tabla se puede visualizar mediante el comando nbtstat -c. C:\>NBTSTAT -c Local Area Connection: Node IpAddress: [10.2.197.199] Scope Id: [] NetBIOS Remote Cache Name Table Name Type Host Address Life [sec] -----------------------------------------------------------SOFTCOM2 <00> UNIQUE 10.2.202.209 285 Broadcasting. Se pregunta el nombre a todos los ordenadores de la red. Podemos conocer la cantidad de nombres que se han resuelto mediante broadcasting utilizando el comando nbtstat -r (línea "Resolved By Broadcast"). Cada vez que Windows resuelve un nombre lo almacena durante unos segundos en su caché NetBIOS (nbtstat -c). Esta tabla la consultará antes de realizar un broadcasting. C:\>nbtstat -r NetBIOS Names Resolution and Registration Statistics ----------------------------------------------------------------------Resolved By Broadcast = 0 Resolved By Name Server = 19 Registered By Broadcast = 0 Registered By Name Server = 14 6.4 NWLINK Se denomina así a la implementación de Microsoft de IPX/SPX. El protocolo NWLink actúa como mecanismo de transporte para NetBIOS de similar forma a la descripta para TCP/IP en el punto anterior. El protocolo NWLink se utiliza normalmente para soportar redes medianas y se usa cuando existen servidores NetWare en la red. WINDOWS INTERNET NAME SERVICE (WINS) WINS es la implementación de Microsoft para la implementación del servicio de nombres NetBIOS. Si se está utilizando LINUX se puede usar un servidor SAMBA como servidor WINS. Las computadoras configuradas para utilizar WINS, en el momento de iniciación (booteo), contactan al servidor WINS pasándole su nombre NetBIOS y su dirección IP. El servidor WINS agrega esta información a su base de datos y comunica la novedad a otros servidores WINS en la red. Cuando una computadora configurada para utilizar WINS necesita obtener la dirección de otra computadora, establece contacto con un servidor WINS de su red. Si no se utilizara WINS, NetBIOS sería capaz de ver solamente computadoras que estuvieran conectadas en el segmento no ruteable de la red al que pertenece. No es necesario que exista un servidor WINS en cada segmento ruteable de una red. Como WINS utiliza TCP/IP (que sí es ruteable) solamente es necesario un único servidor en toda la red (aunque puede haber más de uno) 6.4a OBTENIENDO EL NOMBRE Con NetBIOS, cuando se activa cada máquina reclama un nombre para sí (registro de nombre). Sin embargo, dos máquinas en el mismo grupo de trabajo podrían solicitar el mismo nombre; esto causaría problemas de confusión para cualquier máquina que quiera comunicar con una de esas dos. Hay dos formas diferentes para asegurarnos de que esto no ocurra: 1) Usar un Servidor de Nombres NetBIOS (NBNS) para controlar el registro de nombres NetBIOS de las máquinas. 2) Permitir a cada máquina de la red defender su nombre en el caso de que otra máquina intente usarlo. EJEMPLO DE REGISTRO NEGADO DE NOMBRE SIN SERVIDOR NBNS EJEMPLO DE REGISTRO NEGADO DE NOMBRE CON SERVIDOR NBNS “¡Necesito registrar PC1001!” Servidor de Nombre NBNS (NetBios Name Server) “¡Imposible, alguien ya lo ha registrado antes!” 6.4b OBTENIENDO LA DIRECCION Resumiendo, debe haber una forma de resolver un nombre NetBIOS hacia una dirección IP específica; esto se conoce como "resolución de nombres" Hay dos formas diferentes también aquí con NBT: 1) Cada máquina reporta su dirección IP cuando "escucha" una petición "broadcast" para su nombre NetBIOS. 2) Usar el NBNS para resolver nombres NetBIOS a direcciones IP. RESOLUCION DE NOMBRES SIN SERVIDOR NBNS RESOLUCION DE NOMBRES UTILIZANDO SERVIDOR NBNS “¿Quién está registrado como PC1020?” Servidor de Nombre NBNS (NetBios Name Server) “Este nombre está registrado con la dirección 192.132.10.209” 6.4c RESUMEN Cuando una máquina cliente arranca, manda un mensaje "broadcast" declarando que desea registrar un nombre NetBIOS específico para ella. Si nadie objeta nada ante el uso de ese nombre tras múltiples intentos de registro, obtiene el nombre. Si otra máquina en la red está actualmente usando ese nombre, enviará un mensaje de respuesta al cliente solicitante indicando que ese nombre ya está siendo usado. Esto se conoce como "defender el nombre de host" Este sistema es útil cuando un cliente ha caído inesperadamente de la red - otro puede tomar su nombre - pero se incurre en un importante aumento del tráfico de la red para algo tan simple como el registro de nombre Con un Servidor NBNS ocurre lo mismo, con la diferencia de que la comunicación queda reducida a la máquina "cliente" solicitante y al "servidor de nombres" NBNS No ocurre broadcasting cuando la máquina desea registrar el nombre; el mensaje de registro es simplemente enviado desde el cliente hacia el servidor NBNS, y este NBNS responde si el nombre está o no libre. Esta comunicación es del tipo "punto-a-punto" y es beneficioso en redes con más de una subred. Esto se debe a que los routers suelen estar preconfigurados para bloquear paquetes entrantes que son mensajes de difusión (broadcast) para todas las máquinas de la red. Los mismos principios se aplican a la resolución de nombres. Si no existe un NBNS, la resolución de nombres NetBIOS se realiza mediante un mecanismo de "broadcast" Todos los paquetes se enviarían a cada una de las computadoras de la red, con la esperanza de que alguna máquina que se vea afectada por la petición responda directamente a la máquina solicitante. Queda claro que usar un servidor de nombres NBNS y una comunicación "punto-a punto" para este propósito carga mucho menos la red que usar "broadcasts" para cada una de las peticiones de resolución de nombres 6.5 SMB (Server Message Block) Es un protocolo para compartir archivos, impresoras, puertos seriales y ciertas abstracciones de comunicaciones tales como “named pipes” y “mail slots” entre computadoras. PRIMEROS DOCUMENTOS SOBRE SMB * IBM Personal Computer Seminar Proceedings (Mayo 1985) * Microsoft Networks/Open Net- File Sharing Protocol (1987) DESCRIPCION SMB es un protocolo Cliente-Servidor o de solicitación-respuesta. Los servidores permiten que los sistemas de archivos y otros recursos (impresoras, named pipes, mailslots, APIs, etc.) estén disponibles para los clientes en la red. Las computadoras que son clientes pueden tener sus propios recursos (como discos duros, por ejemplo) pero necesitar acceder a archivos, impresoras y otros servicios en los servidores. Los clientes se conectan a los servers utilizando TCP/IP (NetBIOS sobre TCP/IP), NetBEUI, o IPX/SPX. Después que se establece la conexión, los clientes pueden enviar comandos de SMB a los servidores que les permita compartir accesos, abrir archivos, leer y/o grabar archivos, y demás servicios de un sistema de archivos pero utilizando la red. 6.6 SMB (Server Message Block) (Continúa) SMB puede utilizar múltiples protocolos: CAPA OSI OSI 7 6 5 4 3 APLICACIÓN PRESENTACION SESION TRANSPORTE RED 2 ENLACE 1 FISICA SMB+NETBIOS+NETBEUI SMB NetBIOS NetBIOS NetBIOS IPX NetBEUI DecNET 802.2 802.3,802.5 NIC 802.2 802.3,802.5 NIC Ethernet II NIC NBT TCP IP Ethernet y otras NIC TCP/IP CAPA TCP/IP APLICACIÓN 4 HOST INTERNET Ethernet y otras NIC 3 2 NetBIOS sobre TCP/IP es referido de varias maneras. Microsoft se refiere a esta modalidad como “NBT” en algunos documentos y como “NetBT” en otros (por ejemplo en la documentación de Windows NT y en la “registry” de Windows NT). En otros lados se lo nombra como “RFCNB”. NetBEUI es referido algunas veces como “NBF” (NetBIOS Frame Format) por Microsoft. 1