NetBios

NetBios
Información sobre la plantilla

NetBios. ("Network Basic Input/Output System"). Es, en sentido estricto, una especificación de interfaz para acceso a servicios de red,es decir, una capa de software desarrollado para enlazar un sistema operativo de red con hardware específico. NetBIOS fue originalmente desarrollado por IBM y Sytek como API/APIS para el software cliente de recursos de una Red de área local (LAN). Desde su creación, NetBIOS se ha convertido en el fundamento de muchas otras aplicaciones de red.

Primeros pasos

En el 1984, IBM diseñó un simple "application programming interface" (API/APIS) para conectar en red sus computadoras, llamado Network Basic Input/Output System (NetBIOS). El API NetBIOS proporcionaba un diseño rudimentario para que una aplicación se conectara y compartiese datos con otras computadoras.

Es útil pensar en el APINetBIOS como en extensiones de red para llamadas de la API BIOS estándar. Con BIOS, cada llamada de bajo nivel está confinada al hardware de la máquina local y no necesita ayuda para viajar a su destino. NetBIOS, sin embargo, originalmente tenía que intercambiar instrucciones con computadoras de redes IBM PC o Token Ring. Exigió por consiguiente un protocolo de transporte de bajo nivel para llevar las peticiones de una computadora a la siguiente.

A finales de 1985, IBM lanzó dicho protocolo, el cual unió con el APINetBIOS para convertirse en NetBIOS Extended User Interface (NetBEUI). NetBEUI fue diseñado para redes de área local (LANs), y permitía a cada máquina usar un nombre (de hasta 15 caracteres) que no estuviera siendo usado en la red. Entendemos por pequeña LAN, a una red de menos de 255 nodos.

El protocolo NetBEUI se volvió muy popular en las aplicaciones de , incluyendo a las que corrían bajo Windows para Grupos. Más tarde, emergieron también implementaciones de NetBIOS sobre protocolos IPX]] de Novell , los cuales competían con NetBEUI. Sin embargo, los protocolos de red escogidos por la comunidad de Internet eranTCP/IP y UDP/IP, y las implementaciones de las API/APIS NetBIOS sobre dichos protocolos pronto se convirtió en una necesidad.

Un detalle a tener en cuenta es que, TCP/IP usa números para representar direcciones de computadoras, tales como 192.168.220.100, mientras que NetBIOS usa sólo nombres. Este fue el mayor problema que solucionar a la hora de hacer relacionar a los dos protocolos. En 1987, El Internet Engineering Task Force (IETF) publicó una serie de documentos de estandarización, titulados RFC 1001 y RFC 1002, que perfilaban cómo NetBIOS podría trabajar sobre una red TCP/UDP. Este juego de documentos todavía gobiernan a cada una de las implementaciones que existen hoy en día, incluyendo aquellas proporcionadas por Microsoft para sus sistemas operativos, así como a la suite Samba.

Protocolo NetBIOS

Es un protocolo de resolución de nombres que puede ser encapsulado sobre TCP/IP. NetBIOS funciona a nivel de la capa de aplicación, dando una apariencia uniforme a todas las redes Windows independientemente de los protocolos que se hayan utilizado para las capas de red y transporte. Permite compartir archivos e impresoras así como ver los recursos disponibles en Entorno de red.

NetBIOS utiliza los puertos 137, 138 y 139. Es un protocolo exclusivo de máquinas Windows. 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 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. Veamos 4 ejemplos, ¿quién necesita tener activo el protocolo NetBIOS (puertos 137, 138 y 139 abiertos)? ¿quién debería deshabilitarlo? Un servidor web

Un Windows 98 conectado a Internet mediante un módem

Un Windows 98 que participa en la red de una empresa

Un servidor de usuarios y archivos En el primer caso, NetBIOS debería estar deshabilitado ya que un servidor web no comparte recursos mediante Entorno de red ni accede a recursos compartidos de otros ordenadores (el servicio de páginas web, HTTP, funciona exclusivamente con TCP/IP). En el segundo caso, NetBIOS tampoco es necesario por las mismas razones anteriores. En el caso número tres las cosas cambian puesto que este ordenador probablemente necesite acceder a recursos compartidos de otros ordenadores así como imprimir en impresoras remotas. El servidor del ejemplo cuatro también requiere NetBIOS. Es necesario para que otros usuarios puedan acceder a sus archivos de una forma cómoda.

Nota: ¿Es posible acceder a archivos de otros ordenadores sin tener NetBIOS habilitado? Sí, desde luego: utilizando los servicios propios de TCP/IP. En concreto, el servicio de transferencia de archivos o FTP. El ordenador que ofrece los recursos se configura como servidor FTP (puerto 21 abierto). El resto de ordenadores utilizarán un cliente FTP para conectarse al servidor. Sin embargo, esto no permite trabajar directamente sobre archivos remotos, sino que es necesario hacer una copia previa de los archivos a nuestro ordenador antes de hacer modificaciones.

Utilidad

Resumiendo, de forma sencilla, NetBIOS, permite a las aplicaciones 'hablar' con la red. Su intención es conseguir aislar los programas de aplicación de cualquier tipo de dependencia del hardware. También evita que los desarrolladores de software tengan que desarrollar rutinas de recuperación ante errores o de enrutamiento o direccionamiento de mensajes a bajo nivel. Coloquialmente hablando, NetBIOS hace el 'trabajo sucio'.

En una red local con soporte NetBIOS, las computadoras son conocidas e identificadas con un nombre. Cada computador de la red tiene un único nombre. Cada PC de una red local NetBIOS se comunica con los otros bien sea estableciendo una conexión (sesión), usando datagramas NetBIOS o mediante broadcast. Las sesiones permiten, como en el protocolo TCP, mandar mensajes más largos y gestionar el control y recuperación de errores. La comunicación será punto a punto.

Por otro lado, los métodos de datagramas y broadcast permiten a un ordenador comunicarse con otros cuantos al mismo tiempo, pero estando limitados en el tamaño del mensaje. Además, no hay control ni recuperación de errores (al igual que ocurre en UDP). A cambio, se consigue una mayor eficiencia con mensajes cortos, al no tener que establecer una conexión.

Funcionamiento y servicios

NetBIOS provee los servicios de sesión descritos en la capa 5 del modelo OSI. Se encarga de establecer la sesión y mantener las conexiones. Pero este protocolo debe transportarse entre máquinas a través de otros protocolos; debido a que por sí mismo no es suficiente para transportar los datos en redes LAN o WAN, para lo cual debe usar otro mecanismo de transporte (Ej: en redes LAN protocolo NetBEUI, en redes WAN protocolo TCP/IP). Los protocolos que pueden prestar el servicio de transporte a NetBIOS son:

  • IPC/IPX
  • NetBEUI
  • TCP/IP

El hecho de tener que ser transportado por otros protocolos se debe a que al operar en la capa 5 de OSI no provee un formato de datos para la transmisión, el cual es provisto por los protocolos antes mencionados. NetBIOS permite comunicación orientada a conexión (TCP) o no orientada a conexión (UDP). Soporta tanto broadcast como multicast, además de 4 tipos de servicios diferentes: Servicios Generales, Servicio de Nombres, Servicio de Sesión y Servicio de Datagramas.

Cuando un programa de aplicación necesita de los servicios NetBIOS, éste ejecuta una interrupción de software específica. Esta interrupción direcciona el control del microprocesador para el software del adaptador de red que procesa el pedido. Cuando un programa de aplicación emite una interrupción NetBIOS, éste requiere un servicio de red. La interface NetBIOS define exactamente como los programas de aplicación pueden usar la interrupción NetBIOS y sus servicios.

El NetBIOS identifica estos servicios a través del campo NCB_COMMAND de Network Control Block, de un comando NetBIOS. Estos servicios se pueden dividir en 4 grupos básicos: General Services, Naming Services, Session Services y Datagram Services

Cómo deshabilitar NetBIOS en Windows 98

Probablemente hayamos observado que la casilla "Deseo habilitar NetBIOS en TCP/IP" situada en la pestaña NetBIOS de las propiedades de TCP/IP se encuentra marcada y no deja cambiarla. El comando netstat -an nos informará de que tenemos los puertos NetBIOS abiertos. ¿Cómo podemos deshabilitar NetBIOS? La clave se encuentra en el Cliente para redes Microsoft.Este componente de red permite acceder a recursos compartidos de otros ordenadores (es el que abre los puertos 137, 138 y 139). También es requerido, además del servicio Compartir archivos e impresoras para redes Microsoft, para compartir recursos en la red.

Los pasos a seguir son:

  • En las propiedades de Entorno de red eliminar todos los clientes instalados (ya sea el Cliente para redes Microsoft o el Inicio de sesión en Microsoft Family).
  • En las propiedades de TCP/IP podemos comprobar ya cómo la casilla "Deseo habilitar NetBIOS en TCP/IP" se ha desmarcado automáticamente.
  • Aceptamos la nueva configuración. Windows mostrará el aviso "Su red no está completa. ¿Desea continuar?". Indicamos "Sí" y reiniciamos el ordenador.
  • Al arrancar el ordenador no aparecerá la ventana de Inicio de sesión solicitándonos una contraseña, puesto que ahora no somos cliente de ninguna red Microsoft.
  • Con el comando netstat -an comprobar que no aparecen los puertos NetBIOS abiertos.

Con este procedimiento desaparecerá el icono Entorno de Red del escritorio, así como otros comandos NetBIOS (como el de Buscar PC). El ordenador ya no podrá compartir archivos ni impresoras (no podrá funcionar como servidor NetBIOS) ni podrá acceder a recursos compartidos (no podrá actuar como cliente NetBIOS). Sin embargo, los servicios de Internet (páginas web, FTP, correo...) seguirán funcionando debido a que no requieren NetBIOS para funcionar, sólo TCP/IP.

Resolución de nombres

La utilización de nombres para referirnos a los ordenadores de una red resulta habitualmente más cómodo que tratar directamente con direcciones IP. Sin embargo, la familia de protocolos TCP/IP no es capaz de llegar hasta un ordenador sólo con su nombre: necesita obtener su dirección IP antes. El mecanismo de traducción de nombres a direcciones IP es lo que se conoce como resolución de nombres.

Siempre que escribamos un nombre, ya sea en el cuadro de "Buscar PC" de Windows, en un navegador web o en un comando TCP/IP, el ordenador tendrá que dar el paso extra de averiguar su dirección IP antes de poder continuar (será ligeramente más lento que si tecleamos su dirección IP).

Distinción entre nombres NetBIOS y nombres de dominio

Un ordenador Windows con TCP/IP instalado tiene dos nombres que suelen coincidir:

  • Nombre NetBIOS. Es el nombre que se define en el cuadro "Nombre de PC" dentro de la pestaña "Identificación" de las propiedades de Entorno de red. Este nombre es el que utiliza Windows en Entorno de Red.
  • Nombre de dominio (o nombre de host). Es el nombre que se define en la pestaña

"Configuración DNS" de las propiedades de TCP/IP. El nombre de dominio completo es el nombre de host seguido de un punto y del dominio. Por ejemplo, si el host es "servidor" y el dominio es "mired", el nombre de dominio completo será "servidor.mired". El nombre de dominio se utiliza para identificar un ordenador en Internet (por ejemplo, goliat.sim.ucm.es). Nota: Un ordenador que no sea Windows (o sea Windows pero con NetBIOS deshabilitado) no tendrá nombre NetBIOS.

Por otro lado, un ordenador Windows que no tenga el protocolo TCP/IP instalado no tendrá nombre de dominio. Un servidor web en Linux es un ejemplo del primer caso y un Windows Me que utilice sólo el protocolo NetBEUI es un ejemplo del segundo. En los siguientes apartados estudiamos los principales mecanismos de resolución de nombres que permiten traducir un nombre NetBIOS o un nombre de dominio a su correspondiente dirección IP.

Métodos de resolución de nombres NetBIOS

  • 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.
  • Broadcasting. Se pregunta el nombre a todos los ordenadores de la red.
  • Archivo LMHOSTS. Es un archivo de texto, situado en cada ordenador de la red, que contiene una lista de direcciones IP y nombres NetBIOS.
  • Servidor WINS. Es un ordenador que contiene una lista centralizada de direcciones IP y nombres NetBIOS. Esta lista se crea de forma dinámica a medida que se van conectando y desconectando ordenadores en la red. Su configuración se estudia en el apartado . Servidor WINS

El método de resolución que funciona en una red si no se ha configurado otro es broadcasting. Este método resuelve los nombres de forma correcta, sin embargo genera un elevado tráfico en 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.

Podemos reducir el número de mensajes de broadcasting en una red sin necesidad de emplear un servidor mediante la creación, en cada máquina, de una lista con todos los nombres NetBIOS de nuestra red y sus correspondientes direcciones IP. Esta lista se debe incluir en un archivo llamado LMHOSTS.

Si utilizamos Windows 98 o Me encontraremos un archivo de ejemplo en C:\WINDOWS\LMHOSTS.SAM. Este archivo debemos renombrarlo para que se llame C:\WINDOWS\LMHOSTS. En Windows NT y 2000, la ubicación de ambos archivos es C:\WINNT\SYSTEM32\DRIVERS\ETC. Después introduciremos los cambios necesarios mediante el Bloc de notas o cualquier otro editor de textos. Para que los cambios comiencen a funcionar debemos escribir el comando nbtstat -R. A continuación podemos comprobar que los nombres se han almacenado correctamente escribiendo nbtstat -c.

Windows comprobará el archivo LMHOSTS antes de hacer un broadcasting a la red. El comando nbtstat -r nos permite comprobar cómo no se generan nuevos mensajes a toda la red para los nombres que hayamos incluido en LMHOSTS. El problema de este método es su difícil mantenimiento ya que cualquier cambio se debe reflejar en todos los ordenadores de la red. Sin embargo, se pueden buscar formas para que el archivo LMHOSTS se actualice automáticamente desde una sola máquina (por ejemplo, mediante un script de inicio de sesión de Windows NT o mediante la cláusula #INCLUDE de los archivos LMHOSTS).

El método más recomendable para redes medianas y grandes es utilizar un servidor de nombres NetBIOS. Este servidor es una máquina Windows NT o 2000 con el Servicio de nombres de Internet para Windows (WINS) configurado. En la pestaña "Configuración WINS" de las propiedades de TCP/IP de cada ordenador cliente tenemos que indicar la dirección IP del servidor WINS que hayamos configurado. Cada vez que escribamos un nombre, nuestro ordenador preguntará al servidor WINS en lugar de hacer un broadcasting a toda la red. Un servidor de nombres asegura, además, que los equipos mostrados en Entorno de red se corresponden con los que realmente están funcionando en la red.

Fuentes