LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado
 

LPIC-1 Capítulo 8

EN ESTE CAPÍTULO SE ABARCAN LOS SIGUIENTES OBJETIVOS DEL EXAMEN:

  • 109.1: Fundamentos de los protocolos de Internet (4)
  • 109.2: Configuración básica de redes (4)
  • 109.3: Resolución de problemas básicos de red (4)
  • 109.4: Configuración DNS en el lado del cliente (2)

Configuración básica de redes TCP/IP

La mayoría de los sistemas Linux están conectados a una red, ya sea como máquinas clientes, servidores o ambos a la vez. Es por ello necesario saber como configurar las herramientas básicas de red, de manera que sea posible mantener comunicaciones con el exterior.

Una red a parte de estar formada por máquinas clientes y servidoras, consta de una serie de dispositivos que deben estar interconectados como son los routers, switch, hubs, modems, hardware, radioenlaces y/o telefonía IP, además de servicios y programas.

Un esquema de red básico donde se usan PCs clientes, servidor, switch o hub y router con conexión al exterior,  podría ser el siguiente:

 

EsquemaLAN

 

Nota: En la red de la imagen se ha utilizado un switch y no hub. Los hub redirigen todo el tráfico entre todos los ordenadores, mientras que los switch son lo bastante inteligentes como para enviar paquetes solo al destino pertinente, además los hub sólo permiten una transmisión semidúplex (como la usada por los walkie-talkies, mientras uno envía mensaje el otro extremo solo escucha), por el contrario, los switch usan conexiones dúplex, en la que ambas partes pueden enviar información al mismo tiempo. Estas características hacen superiores a los switch frente a los hubs.

 

Para que todos estos dispositivos, servicios y programas puedan mantener ‘conversaciones‘ inteligibles y fluidas por todos ellos, debe de existir una serie de ‘normas‘ y estándares de construcción y comunicación. Serán los protocolos las reglas que utilice la red para hacer posible las comunicaciones.

Actualmente, el estańdar de la industria en redes es un conjunto o pila de protocolos denominado TCP/IP
(Transmission Control Protocol/Internet Procotol, Protocolo de control de Transmisión/Protocolo de Internet) formado por una serie  de capas o niveles que resuelven tareas relacionadas con la transmisión de datos y proporcionan un servicio bien definido a los niveles mas altos. Los niveles mas altos son los mas cercanos al usuario y tratan con datos mas abstractos, dejando a los niveles más bajos la labor de traducir los datos de forma que sean físicamente manipulables.

Supongamos la transferencia de datos de un ordenador a otro, un archivo por ejemplo. Lo primero será disponer de una aplicación cliente con la que enviar el archivo, esta aplicación puede encontrarse en la capa superior de la pila de protocolos. Las capas consecutivas harán entre otras cosas que el archivo sea dividido en bloques de datos conocidos como paquetes a los que se le añadirá cierta información y serán encapsulados y enviados por separado permitiendo por ejemplo que si un paquete se pierde o corrompe se pueda reenviar solo el paquete específico en vez del archivo completo. El sistema receptor deberá de desemcapsular estos paquetes para recomponer el archivo de origen.

Nota: Es algo normal que en las transferencias se retrasen o pierdan paquetes, es por ello que muchos protocolos de red incluyen procedimientos para la detección de errores.

Existen varios tipos de paquetes e incluso algunos se pueden almacenar dentro de otros. Ethernet incluye su propio tipo de paquete conocido como frame, por lo que aquellos paquetes generados por protocolos de red que se ejecuten sobre Ethernet se almacenarán dentro de estos frames para ser transportados.

En las próximas secciones estudiaremos la pila TCP/IP de una forma mas detallada. De momento será indispensable que conozcamos el hardware de red así como sus funciones básicas.

El hardware de red

El hardware de red está diseñado para permitir que dos o mas ordenadores se comuniquen entre sí, es por ello que en cada punto de la comunicación será necesario un dispositivo que permita la entrada y salida de mensajes. La mayoría de ordenadores cuentan con interfaces de red integradas en su placa base, tarjetas de red internas (PCI o PCIe) o externas como las USB.

Linux admite varios tipos habituales de hardware de red, entre los que destacan las tarjetas Ethernet y las utilizadas para las conexiones inalámbricas (Wi-Fi).

Ethernet

Las conexiones vía Ethernet se realizan mediante cableado de par trenzado (lo que evita las interferencias) llamado UTP. Las conexiones Ethernet se presentan en varias velocidades de transmisión siendo las mas comunes en redes locales las 10Base-T o 100Base-T (10 Mbits/s o Mbps y 100Mbps) para las que se suelen utilizar el cableado UTP de categoría 5 o 5e (UTP Cat 5 o 5e). Otros estándares emergente de gran velocidad son los de 1000Base-T (1.000Mbps o conocido como Gigabit Ethernet) y 10 gigabits, para los que se suele utilizar cableado UTP Cat 5e o cables ópticos.

Wi-Fi

Para las conexiones Wi-Fi se utilizan los protocolos inalámbricos siendo los mas habituales:

  • 802.11b cuya velocidad para la cual está diseñado es de 11Mbps
  • 802.11a y 802.11g que trabajan a una velocidad de 54 Mbps teórica
  • 802.11n el cual es el más rápido con una velocidad de hasta 300Mbps

A excepción del protocolo 802.11a raramente utilizado, el resto son compatibles entre ellos, utilizándose siempre el más lento de entre los detectados en la red.

Advertencia: Si utiliza redes inalámbricas, debemos de asegurarnos de usar encriptación sobre la clave de acceso a la red mediante los protocolos WPA (Wi-Fi Protected Access, Acceso protegido a red inalámbrica) o preferiblemente WAP2. La encriptación WEP (Wired Equivalent Privacy) es mas débil  y superada con facilidad.

Otros tipos de hardware de red

  • Token Ring: Anteriormente usado en redes IBM
  • LocalTalk: Diseñado para la comunicación entre los primeros Macintosh
  • FDDI (Fiber Distributed Data Interface, Interfaz de datos distribuidos por fibra), HIPPI (High-Performance Parallel Interface, Interfaz en paralelo de alto rendimiento) y Fibre Channel: Interfaces de alta velocidad utilizadas en aplicaciones de alto rendimiento, por ejemplo, para interconectar edificios que están a muchos metros de distancia e incluso Kilómetros como pueden ser las centrales de telefonía y armarios de subrepartición.

Pilas de protocolos de red

Una pila de protocolo es un conjunto de programas que convierten y encapsulan datos entre capas de abstracción. La pila puede ir desde una capa superior que por ejemplo trabaja con un programa cliente, como podría ser Filezilla (un programa para transferencias mediante el protocolo FTP) hasta capas mas inferiores donde podríamos encontrar el controlador de la propia tarjeta de red.

Para que existan transacciones entre diferentes dispositivos se precisa de una pila de protocolos compatibles en cada uno de ellos, de manera que un dispositivo receptor pueda trabajar con los paquetes recibidos de manera homóloga pero a la inversa de como lo hizo el emisor.

Las pilas de protocolos se suelen representar gráficamente mediante diagramas.

La pila TCP/IP

La pila de TCP/IP es un conjunto de protocolos de red en los que se basa Internet permitiendo la comunicación y transferencia de datos entre ordenadores instalado en distintos puntos.

Podemos describir por analogía la pila TCP/IP con el modelo OSI (Open System Interconnection) propuesto como una aproximación teórica y como una primera fase en la evolución de la redes de ordenadores. El modelo OSI es mas fácil de entender pero el que se utiliza es TCP/IP sucesor de NCP (Network Control Program). El modelo OSI esta formado por un total de siete capas mientras que TCP/IP ‘absorbe’ alguna de ellas en varias capas reduciendo el número a cuatro, es por ello que OSI se entiende mejor. La siguiente imagen muestra ambas pilas de protocolos:

ositcpip

 A continuación vamos a resumir muy brevemente lo que realiza cada capa de la pila TCP/IP

  1. La siguiente capa “Internet” determina la mejor ruta a seguir a través de la red.
  2.  La capa de transporte admite las comunicaciones entre distintos  dispositivos  de  distintas redes
  3.  Representa los datos para el usuario, además del control de codificación, compresión y diálogo entre usuarios

Se le denomina TCP/IP en referencia a dos de los mas importantes protocolos que la componen y que además fueron los primeros en definirse: TCP (Transmission Control Protocol, Protocolo de control de Transmisión) y IP (Internet Procotol/Protocolo de Internet). Algunos otros protocolos que formar esta pila son (clasificados por capa dentro de la pila):

Capa 4 – Aplicación:

  • DNS (Domain Name Service): Utilizado para resolver nombres de direcciones IP en Internet
  • HTTP (Hypertext Transfer Protocol): Se usa para transferir y acceder a las páginas web
  • SMTP (Simple Mail Transfer Protocol): Se utiliza para la transferencia de mensajes de correo y adjuntos
  • FTP (File Transfer Protocol): transferencia interactiva de archivos entre sistemas
  • Telnet: Un protocolo de emulación de terminal, utilizado para proporcionar acceso remoto a servidores y dispositivos de red

Capa 3 – Transporte:

  • UDP (User Datagram Protocol): Es protocolo mas sencillo de la pila TCP/IP pero rápido. No proporciona sofisticados procedimientos para corregir los paquetes desordenados, garantizar el envío ni, en general, mejorar las limitaciones de IP. Entre los protocolos de la capa de Aplicación que se construyen sobre UDP se incluyen: DNS, NFS y muchos otros protocolos de medios en streaming.
  • TCP (Transmission Control Protocol): Seguramente el protocolo de transporte mas ampliamente utilizado en la pila TCP/IP. TCP crea conexiones completas con comprobación de errores y otras funciones que simplifican la creación de protocolos de red que deben de intercambiar grandes cantidades de datos. Por ello TCP aplica una pequeña penalización de rendimiento. La mayoría de los protocolos de la capa de Aplicación se construyen bajo TCP y destacan algunos como: SMTP, HTTP y FTP.

Capa 2 – Internet:

  • IP (Internet Protocol): Protocolo central de la pila TCP/IP. Proporciona un método de mejora para transferir paquetes entre ordenadores. Esto no garantiza que los paquetes alcancen su destino. Entre otras cosas mas IP es el protocolo es encargado de asociar direcciones IP
  • ICMP (Internet Control Message Protocol): Sencillo protocolo para la comunicación de datos. Se suele utilizar para enviar mensajes de error entre ordenadores, algo que se suele hacer modificando un paquete y devolviéndoselo al emisor.

Otras pilas de protocolos

Otras pilas de protocolos para la transferencia de datos entre ordenadores pueden ser:

  • NetBEUI: Pila de protocolos original de Microsoft e IBM para Windows. En desuso
  • AppleTalk: Pila inicial de Apple
  • IPX/SPX (Internet Packet Exchange/Sequence Packet Exchange, Intercambio de paquetes entre redes/Intercambio de paquetes en secuencia): Pila de protocolos preferida por Novell

Nota: Cada capa de las que se compone el sistema emisor equivale a una capa del sistema receptor, pero no tienen porque ser absolutamente idénticas, por ejemplo, puede tener distintos modelos de tarjetas de red o, incluso, puede utilizar tipos de hardware de red totalmente diferentes como Ethernet y Wi-Fi. Los ordenadores pueden ejecutar distintos OS y por tanto utilizar pilas de protocolos diferentes (pero lógicamente equivalentes).

IPv6. Mejoras sobre IPv4

  • Mientras IPv4 alcanza un máximo teórico de “cuatro mil millones” de direcciones IP, que debido al mal reparto de estas son algunas menos, IPv6 eleva esta cifra a “seiscientos setenta mil billones” (670 mil billones) de direcciones IP por cada milímetro cuadrado de la superficie de la tierra.
  • Multicast, habilidad para enviar un único paquete a múltiples destinos. Forma parte de la especificación base de IPv6 y no como en IPv4, donde es opcional aunque usualmente implementado. IPv6 no implementa broadcast (envió de un paquete a todos los nodos conectados). El multicast IPv6 comparte protocolos y características comunes con IPv4, pero también incorpora cambios y mejoras.
  • SLAAC (Stateless Address Autoconfiguration): La primera vez que un dispositivo es conectado a una red, este envía una solicitud de router (RS: router rolicitation) usando multicast pidiendo los parámetros de configuración. Si los router están configurados para responder a esta petición, enviarán un RA: router advertisement con los datos de configuración. Si una aplicación no soporta SLAAC usará entonces DHCP.
  • IPSec (Internet Protocol Security): Protocolo para cifrado y autenticación de IP. Obligatorio en IPv6 ya que viene como base del protocolo, aunque actualmente no se está utilizando.
  • IPv6 ofrece mejoras en el rendimiento relativo al procesamiento de datos a través de los router.

Direcciones de red

Para que los dispositivos puedan comunicarse necesitarán algún medio al que hacer referencia a la hora de transmitir los paquetes, este medio no es otro que una dirección y un puerto. Las direcciones pueden adoptar formas diferentes dependiendo del tipo de hardware de red, pila de protocolos, etc… e igualmente podrán necesitar un puerto, usado para dirigir un programa específico a un ordenador remoto.

Para conectar ordenadores dentro de redes en las que pueden estar usándose hardware de bajo nivel diferentes, como pueden ser Ethernet, Token Ring, Wi-Fi, etc… se necesitarán diferentes direcciones, de entre las que deberemos de conocer al menos las direcciones de hardware de red, las direcciones IP numéricas y los nombres de hosts de tipo texto.

Direcciones de hardware

El hardware de red dedicado como las tarjetas de Ethernet llevan programadas direcciones de red únicas conocidas como direcciones MAC (Media Access Control, Control de acceso a medios). Tienen una longitud de seis bytes y se expresan como números hexadecimales separados por dos puntos. Podemos informarnos sobre las direcciones de hardware para las tarjetas Ethernet instaladas en un sistema utilizando el comando ifconfig.

Algunas utilidades y el hardware de red de bajo nivel utilizan las direcciones de hardware para dirigir paquetes de datos. Por ejemplo, el switch detecta que una dirección en particular está conectada a un cable concreto, y en consecuencia, envía los datos dirigidos a dicha dirección sólo a través del cable asociado. Otro ejemplo es el uso que hace de estas direcciones el servicio DHCP asignando direcciones IP fijas a direcciones de hardware específicas. Existen herramientas de diagnostico avanzado que permiten examinar paquetes que proceden de o están dirigidos a direcciones de hardware específicas. En la mayoría a de los casos, no tendrá que preocuparse de las direcciones de hardware de un ordenador.

Direcciones numéricas IPv4/IPv6

Acabamos de ver algunos motivos del porque sobre la existencia de direcciones MAC o direcciones de hardware. Estas direcciones no guardan relación matemática alguna con las direcciones IP numéricas de IPv4 y IPv6 pero si que existen protocolos de la pila TCP/IP como ARP (Address Resolution Protocol, Protocolo de resolución de direcciones) o NDP (Neighbor Discovery Protocol, Protocolo de detección de vecinos) que realizan conversiones entre direcciones IPv4 – MAC, y IPv6 – MAC, con el fin por ejemplo de permitir a un ordenador que envíe un paquete Broadcast (mensaje que se envía a todos los ordenadores de la red) en cuya respuesta se incluirá la dirección hardware del receptor del paquete y así la pila TCP/IP puede dirigir el tráfico para una IP dada a la dirección hardware obtenida.

Las direcciones IPv4 se suelen expresar con cuatro números en base decimal, donde cada uno puede llegar al máximo de 255 (192.168.10.255) separados por puntos o bien, mediante notación “dotted quad“. dotted quad viene a ser la representación de una IP mediante una secuencia de 32 bits separados por puntos (dots) en grupos de cuarto (quad) bytes cada uno. Por ejemplo podríamos representar la IP de máscara de red 255.255.128.0 de la siguiente forma:

255.255.128.0 = 11111111.11111111.10000000.00000000

Las direcciones IPv6 constan de ocho grupos de números hexadecimales de cuatro dígitos separados por dos puntos y tienen un tamaño de 16 bytes (128 bits). Si uno o varios grupos de cuatro dígitos son 0000, éste o estos se pueden omitir, indicándolo con “: :“. Una IPv4 podría ser:

fed1:odb8:85a3:08d3:1319:8a2e:3070:7334

La máscara de red como ya adelantábamos (también llamada máscara de subred o netmask) es un número que define las 2 partes de las que está formada una IP, la parte de dirección de red y la de dirección de host. Empleando el ejemplo de netmask podríamos apreciar ambas partes de la siguiente manera, donde con azul representamos la dirección de red y con rojo el número de hosts que podemos anidar en esa red. Evidentemente para esto necesitamos una dirección IP de host, pero esto se explicará mas detalladamente en las siguientes secciones:

11111111.11111111.10000000.00000000

Nota: Las direcciones TCP/IP se combinan con una máscara de red para aislar la dirección de red.

Además de las formas con las que hemos representado anteriormente una máscara de red (bien en decimal o bien en binario) podremos identificar la netmask de una red con una serie de sufijos colocados en la dirección de red. Igualmente, usando la netmask del ejemplo anterior (255.255.128.0) y la dirección de red 192.168.10.0, podremos entonces definir la red como:

192.168.10.0/17

Nota: Si contamos el número de bits 1 que forman la máscara de red en binario, deduciremos que el /17 representa entonces a la netmask para esa red. Además esta porción de la netmask (la del grupo de 1, define la porción de red, algo que veremos a continuación).

La máscara de red de IPv6 funcionan igual que las de IPv4 con la diferencia de que los números son más largos y que en IPv6 se tiende a emplear la notación hexadecimal.

Clases de redes

Dentro de IPv4 nos encontramos con bloques de direcciones que definen redes, estas se han dividido tradicionalmente en varias clases, cada una de ellas destinadas a un tamaño de red, de manera que podamos estructurar las subredes y dispositivos conectados de una forma mas eficiente, al menos antes de la llegada del estándar CIDR (veremos este estándar a continuación). En la actualidad sirven principalmente como medio para definir máscaras de red por defecto (sufijos /8, /16 y /24). Las clases de direcciones IPv4 son las siguientes:

subredes

Las clases A, B y C son para uso general de la red. Normalmente utilizaremos una clase de red y su rango de direcciones privadas reservado en función del tamaño que le vayamos a dar a la red. Dependerá si es para una corporación, gran empresa o campus universitario (clases A y B) o una pequeña o mediana empresa e incluso las redes de uso doméstico (clase C). Los rangos de direcciones privadas reservados en cada clase son los siguientes:

  • Clase A: 10.0.0.0 – 10.255.255.255
  • Clase B: 172.16.0.0 – 172.31.255.255
  • Clase C: 192.168.0.0 – 192.168.255.255

Estos rangos de IP reservadas se conocen como direcciones RFC1918 ya que es el documento que las define. Se usan para que cada dispositivo dentro de una red privada (LAN) pueda tener su propia dirección. No sirven para conectar directamente con el exterior. Para conectar con el exterior u otras redes privadas, se dispondrá de una puerta de enlace (normalmente un dispositivo de traducción de dirección de red o NAT, o un servidor proxy).

El cometido de NAT (Network Address Translation) es ‘ocultar’ una serie de dispositivos de una red tras un único sistema o IP. Por ejemplo, si contamos con una red privada de clase C 192.168.1.x con 5 ordenadores, NAT tendrá que traducir las conexiones de estos 5 ordenadores para que puedan tanto enviar como recibir datos a través de una sola IP pública ofrecida por nuestro ISP (Internet Service Provider, Proveedor de Servicios de Internet), mediante la cual conectamos a Internet.

Las clases D y E son especiales. La primera (clase D) es utilizada para el envío simultáneo de datos a varios ordenadores (multidifusión), mientras que la clase E es utilizada para propósitos experimentales unicamente.

Importante: Las direcciones IP deben ser asignadas a ordenadores individuales para evitar que dos sistemas utilicen la misma dirección en Internet o red local.

Direcciones IPv4 especiales

  • La dirección IP 0.0.0.0 es usada como red default.
  • Las direcciones IP 127.x.y.z en concreto 127.0.0.1 son utilizadas como direcciones loopback, es decir el ordenador la usa para enviarse información a él mismo.
  • Para el direccionamiento Broadcast (enviar los datos una sola vez desde un emisor a todos los destinos posibles) se usa la dirección 255.255.255.255, dirección que el protocolo IP tiene limitado a uso local ya que de lo contrario saturaríamos Internet. Podremos hacer un Broadcast directo e igualmente limitado localmente (en términos de red) a un grupo de ordenadores concretos, o mejor dicho a una subred específica, utilizando el prefijo de dirección de red y la porción de host que identifica la conexión Broadcast de dicha red (algo que veremos en la próxima sección cuando hablemos del subnetting), por ejemplo, para la red con sufijo 192.168.1 y con una máscara de red 255.255.255.0 podríamos usar la dirección 192.168.1.255 para realizar una transmisión Broadcast en esa sola red.
  • Una dirección multicast esta asociada con un grupo de receptores interesados. El emisor envía un único datagrama desde su dirección IP hacía la dirección multicast, cuyo rango es de la IP 224.0.0.0 a la 239.255.255.255 (clase D) definido por la RFC 3171, y el router será el encargado de entregar este mensaje a aquellos emisores que hayan informado sobre su interés en el contenido.

El estándar CIDR y la técnica VLSM

El estándar CIDR (Classless Inter-Domain Routing, Direccionamiento entre dominios sin clases) aplicado empleando la técnica VLSM (Variable Length Subnet mask, Máscara de Subred de Longitud Variable), se implantó con el fin de aportar mas flexibilidad y, en resumidas cuentas poder crear máscaras y definición de redes que no dependieran de una clase como las anteriormente estudiadas.

Originalmente las IP se dividían en las clases A,B,C,D y E, lo que daba lugar entre otras cosas a que los routers utilizaran un encaminamiento con clases (classfull routing). Las clases eran divididas según su máscara de red la cual además se definía a partir de bloques enteros de unos y ceros binarios dando lugar a poder utilizar los sufijos naturales 8, 16 y 24 para definir una red, por ejemplo:

Una red con IP 192.168.1.0 y una netmask 255.255.255.0 puede ser definida mediante 192.168.1.0/24 donde el 24 indica el número de bits 1 que componen la porción de red dentro de la máscara (255.255.255.0 = 11111111.11111111.11111111.00000000)

Lo que se pretendió con CIDR fue permitir una mayor flexibilidad al dividir rangos de direcciones IP en redes separadas lo que aportó un uso más eficiente de las cada vez más escasas direcciones IPv4 y disminuyó la sobrecarga de los routers principales de Internet para realizar el encaminamiento, utilizando ahora un encaminamiento sin clases (classless routing).

Información: El término VLSM se usa generalmente cuando se habla de redes privadas, mientras que CIDR se usa cuando se habla de Internet.

Por ejemplo, vamos a utilizar una máscara de red de longitud variable y no una con una clase predefinida como la del ejemplo anterior. Esto puede ser útil si queremos crear una red en la que solo puedan anidarse 6 dispositivos, por poner un ejemplo: Un router, un PC cliente, un Servidor y un dispositivo móvil (aun tendremos dos IP libres). Para lograr esto, tendremos que adaptar la máscara de red:

La IP de la red seguirá siendo 192.168.1.0 pero en cambio la máscara pasará a ser 255.255.255.248 (11111111.11111111.11111111.11111000) o 192.168.1.0/29. Para conocer el número de host basta con ver la porción de host de la netmask (aquella que solo contiene ceros) que está en base dos por lo que en nuestro caso será 2^3-2=6

Nota: Restamos 2 debido a que no podemos usar la primera IP la cual es para la red y ni la última que se utiliza para Broadcast. Si hubiésemos elegido una máscara mas elevada como por ejemplo /30 solo podríamos anidar 2 hosts, así que nos hubiésemos quedado cortos.

Subnetting

Las direcciones IP están divididas en dos bloques, definidos por su máscara de red. El primer bloque define la dirección de la red a la que esta pertenece y  es representada con valores 1 binarios en su máscara de red, mientras que la segunda parte, porción de host, identifica a un host específico dentro de la red y es determinada en función de los valores 0 binarios de la máscara de red, esta porción determina el número máximo de host que podremos anidar a la red.

Vamos a seguir un ejemplo a modo de explicación. Supongamos que tenemos la siguiente IP y netmask.

Nota: Hemos añadido una segunda netmask (B) de tipo CIDR para duplicar el ejemplo y afianzar los conocimientos.

  • Dirección IP: 172.30.9.102
  • Máscara de red: 255.255.0.0
  • Una máscara de red CIDR (B): 255.255.255.224

Importante: Las máscara de red pueden representarse igualmente de la siguiente manera:

  • Dirección IP y netmask: 172.30.9.102/16
  • Dirección IP y netmask CIDR (B): 172.30.9.102/27

Lo primero que deberemos de hacer será pasar a binario estos números.

  • Dirección IP: 10101100.00011110.00001001.01100110
  • Máscara de red: 11111111.11111111.00000000.00000000
  • Máscara de red CIDR (B): 11111111.11111111.11111111.11100000

Nota: La parte Azul representa la porción de red mientras que la parte roja indica la porción de host.

De momento se ve claro el porque del /16 o /27, solo hay que contar los números 1 de las máscara de red anteriores. Ahora para conocer la IP de red y el número máximo de host deberemos de igualar de la siguiente manera estos números binarios:

11111111.11111111.00000000.00000000 -> Netmask: 255.255.0.0
011010101100.00011110.00001001.01100110 -> Red: 172.30.0.0

El número de hosts será de 2^16-2 , pues existen 16 bits con valor 0 que indican la porción de host menos dos que se usan: una para la dirección de red (la primera) y otra para broadcast (la última). Un total de 65534 dispositivos podrán ser anidados a la red 172.30.0.0

El ejemplo B sería algo mas complicado pero captaremos pronto el concepto. Quedaría algo así:

11111111.11111111.11111111.11100000 -> Netmask: 255.255.255.224
10101100.00011110.00001001.01100110 -> Red: 172.30.9.96

El número de hosts en este caso será de 2^5-2. Esto define una red mas reducida, útil si queremos mantener el control de redes pequeñas para evitar así el acceso a un gran número de dispositivos para los que realmente no necesitamos acceso.

Ahora que ya sabemos realizar subnetting sobre una red, esto es, crear redes en función del número de hosts que tengamos pensado anidar a una red, jugando con los bits de la porción de red y porción de host y sabemos determinar el valor IP de nuestra red a partir de una IP IPv4 y netmask, vamos a ver como identificar la IP de multidifusión de nuestra red.

Para identificar IP broadcast de nuestra red tendremos que igualar la IP binaria con la netmask binaria y cambiar los 0 binario por 1 en la IP en función de los 0 existentes en la netmask, tal que así.

  • Para el primero de los ejemplos teníamos una máscara de red con clase 255.255.0.0 que definía una IP de red 10101100.00011110.00000000.00000000 (172.30.0.0). Bastará con convertir los dos últimos octetos a 1 binario dándole así su máximo valor (.255.255), resultando: 172.30.255.255
  • Para el ejemplo (B), es decir IP de tipo CIDR haremos lo mismo pero con matices, ya que no solo existen 0. En este caso modificaremos los bits de la dirección IP que coincidan con los bits 0 de la netmask cambiándolos de 0 a 1 dejando intactos los que ya tienen como valor 1:

Netmask: 11111111.11111111.11111111.11100000
Dirección IP: 10101100.00011110.00001001.01100110

Broadcast: 0101100.00011110.00001001.01111111, resultando: 172.30.9.127

Conversión binaria-decimal: 01111111 = 127

Interés: Existe una web ( http://www.aprendaredes.com/cgi-bin/ipcalc/ipcalc_cgi ) donde podemos calcular de forma automática todo estos valores, algo que nos ayudará a la hora de encontrar conclusiones o corroborar nuestros resultados.

 Resolución de nombres de hosts

Los nombres de host se componen de dos partes: nombre del equipo y el nombre del dominio, separados por un punto ‘.‘. El primer campo hace referencia al nombre del propio ordenador mientras que el segundo a una colección de ordenadores. Por ejemplo vamos a suponer que tenemos una red local doméstica o empresarial que recibe el nombre de 4sysadmins y que nuestro equipo de trabajo y un servidor web que gestionamos y que se encuentra dentro de la red de la oficina se llaman nebul4ck y freeser, respectivamente. El nombre de host de estos equipos serán nebul4ck.4sysadmins para nuestro equipo de trabajo y freeser.4sysadmins para el servidor.

TCP/IP ofrece la posibilidad de vincular nombres de hosts con direcciones IP de varias maneras. Antes de aprender a relacionarlos, vamos a conocer un poco mas sobre los dominios.

Nota: Un conflicto de nombres podría impedir contactar con un sistema, a parte de causar probablemente otros problemas, como redireccionamientos de correo, registro en formularios webs, etc…

Los dominios se estructuran jerárquicamente.  Para los dominios de Internet de nivel superior o TLD (Top-Level Domain) encontramos los .com, .edu, .org, etc.. que normalmente corresponden a países o grandes corporaciones. Dentro de cada TLD hay dominios que identifican a otras organizaciones mas específicas como empresas, negocios y en definitiva a casi cualquier cosa para la que se haya registrado dicho dominio. Por ejemplo para un banco (mibanca.es) o para un usuario anónimo que quiere tener su propio dominio (jesuslafuentemedina.net). Estos dominios aún pueden dividirse en subdominios, un ejemplo de ello puede ser la dirección de este blog nebul4ck.wordpress.com, donde la plataforma wordpress.com presta un subdominio a cada usuario en ella registrada. Esta estructura puede continuar dividiéndose aunque no es lo habitual.

Cada uno de estos dominios y subdominios incluyen a ordenadores físicos o virtuales específicos.

Información: Podemos registrar nuestro propio dominio en Internet desde 11€ al año.

Ahora que conocemos algo mas sobre los dominios y la estructura que estos siguen podemos aprender algunas técnicas de resolución de nombres, esto es, convertir un nombre en una dirección IP o viceversa.

Cuando accedemos por ejemplo a google.es no escribimos la dirección IP del servidor con el que está enlazado el nombre, si no directamente el nombre (google.es). Esto es posible gracias a los DNS (Domain Name Server) que no es mas que una base de datos distribuida la cual realiza las conversiones oportunas entre direcciones IP y nombres de hosts.

Para que nuestro equipo o dominio pueda trabajar de esta manera es necesario incluir como mínimo un servidor DNS. Esto puede hacerse a nivel de configuración de router o del propio dominio o host. Lo ideal es contar con al menos dos servidores DNS que puedan resolver los nombres de Internet o si no, que se deleguen entre ellos esta tarea en caso de que uno deje de estar operativo o no pueda encontrar la relación IP-nombre. El proceso de resolución de nombres es transparente a nosotros ya que hay empresas encargadas de ofrecer servidores DNS para que una vez configurados en nuestra red hagan el trabajo de preguntar a otros DNS y así sucesivamente. No obstante podemos crear nuestros propios servidores DNS dentro de nuestra red doméstica o empresa, para que albergue en su base de datos distribuida todos los nombres y direcciones IP que queramos que sean conocidas dentro de nuestra red o dominio, de manera que entre los ordenadores del dominio exista la comunicación vía nombre de host y no necesariamente por IP. Esto no entra en los límites del examen pero es bueno saber que esta es una forma de trabajar con nombres y no con direcciones IP dentro de nuestro dominio o red.

Existen otros métodos para trabajar con nombres dentro de nuestro dominio (que abarca tanto a equipos en local como en remoto, siempre y cuando pertenezcan a nuestra red) que no necesariamente implica un despliegue como el de los servidores DNS. Por ejemplo a través del archivo /etc/hosts podremos crear asociaciones entre direcciones IP y nombres. Supongamos una red local cuyo dominio es 4sysadmins y en la que existen varios equipos y dispositivos (móviles, impresoras, servidores, portátiles, etc..). Tenemos un ordenador de trabajo desde el que normalmente accedemos al resto de dispositivos (LinMinCinn), ya sea por ssh, ftp, samba, etc.. y estamos cansados de tener que memorizar las IP. Podremos configurar el archivo /etc/hosts de la siguiente manera:

127.0.0.1    localhost
127.0.1.1    LiMinCinn.4sysadmins LiMinCinn

# IPS de la red

10.5.50.12    hprinter.4sysadmins hprinter
10.5.50.21    xiaomi.4sysadmins xiaomi
10.5.50.30    zopo.4sysadmins zopo
10.5.50.39    tab.4sysadmins tab
10.5.50.48    freeser.4sysadmins freeser

Nota: La segunda línea del archivo quizás no la encontréis en vuestros sistemas, es un bug de Debian que asigna esta IP al host al que no se le ha especificado una IP fija. Nada preocupante. Como sabemos está dentro del rango de IP de loopback.

Con un archivo de configuración como este podremos acceder desde el equipo LinMinCinn a cualquiera de los dispositivos listados mediante su nombre. La estructura es básica:

ip        nombre.dominio        nombre

La ventaja de resolver nombres mediante el archivo /etc/hosts es que es de fácil configuración, pero como desventaja, al ser un archivo local solo afecta al equipo en el que se ha configurado.

Antes de emplear el servicio DNS, Linux busca en el archivo /etc/hosts, comportamiento que se puede modificar desde la configuración del archivo /etc/nsswitch.conf. Este archivo configura el servicio NSS (Network Switching Subsystem, Subsistema de conmutación de red). Para modificar el comportamiento de orden de búsqueda de relaciones IP-nombre deberemos de modificar la línea ‘hosts:‘. Por defecto la línea hace que prevalezcan los archivos (files) sobre el servicio DNS (dns)

hosts:        files dns

Linux además del archivo /etc/hosts incluye un archivo llamado /etc/networks que funciona de un modo similar pero que aplica solo a direcciones de red. Además invierte la línea de formato, que pasan a ser:

nombre        ip

Otros tipos de configuraciones existentes para resolución de nombres pueden ser los del servicio LDAP (Lightweight Directory Access Protocol, Protocolo ligero de acceso a directorios) o utilizando invocaciones NetBIOS de Windows.

Herramientas para buscar manualmente información DNS

A veces, necesitaremos buscar la información proporcionada por DNS de manera manual. Existen varios programas para realizar esta tarea:

 

  • nslookup: Realiza búsquedas DNS, por defecto en ordenadores concretos y devuelve los resultados. Este programa está oficialmente obsoleto.
  • host: Sustituto para las funciones más sencillas de nslookup. Carece de un modo interactivo. En el caso más simple podemos escribir host nombre.dominio o la dirección IP que deseamos consultar.
  • dig: Realiza búsquedas DNS mas complejas que host. Podemos utilizar para localizar la dirección IP de un único nombre de host o viceversa. Es más flexible que host.
  • whois: Puede buscar la información de un dominio en conjunto. Su uso pasa por invocar el nombre del comando seguido del nombre del dominio (4sysadmins.com, por ejemplo) y mostrará información como el propietario del dominio, a nombre de quién se ha contratado, en que empresa de dominio se ha registrado, personas de contacto, etc… Muchos dominios no ofrecen esta información

Puertos de red

Cuando un cliente envía una petición a un servicio concreto de un servidor debe de especificar un número de puerto, pues no solo bastará con la dirección IP del servidor. Una analogía con el mundo ‘real‘ sería el tener que entregar un paquete a una vivienda concreta dentro de un edificio. Si tan solo tienes el número de edificio (lo que podría ser el servidor) pero no número de puerta (puerto) de la vivienda dentro de ese edificio no podrás entregar el paquete al destinatario.

Es por esto por lo que se agrega un número (número de puerto) a la dirección IP, de manera que el sistema pueda redirigir el tráfico a un programa/servicio específico dentro del servidor. Cuando iniciamos un servicio dentro de un servidor, por ejemplo un servicio FTP (File Transfer Protocol) por convención el servidor asignará un número concreto de puerto (el 21 para FTP) para este servicio. El archivo de configuración /etc/services es el archivo que asocia a cada servicio un número de puerto. Esto viene definido por convención, por lo que para un funcionamiento básico no será necesario modificar estas relaciones, a menos que usemos un servicio poco usual y queramos crear una relación entre el servicio y un número de puerto por el que redirigir los paquetes para ese servicio en concreto.

Si tenemos un servidor en el que corren diferentes servicios, como por ejemplo un servidor web apache, un servidor de correos y un servidor ssh (Secure Shell), cuando el cliente envíe un paquete a uno de estos servicios, el sistema asignará el puerto de entrada al destino en función de la petición realizada. Si lo que se ha enviado a sido un paquete de solicitud para mostrar una página web, esto irá dirigido por el puerto 80 del servidor.

Los clientes no poseen números fijos de puertos de salida. Esto se asigna de forma dinámica lo que permite que en un mismo ordenador se puedan ejecutar diferentes instancias de un mismo cliente. De este modo no competirán entre ellos para usar un único puerto de salida.

Nota: Un cliente es un programa que inicia una conexión de red para intercambiar datos mientras que un servidor es quien escucha dichas conexiones y responde a éstas. En una conexión web el cliente podría ser Firefox y el servidor Apache.

Números de puertos, uso y servicios típicos de Linux

Los números de puerto son características de los protocolos UDP y TCP. Algunos protocolos como ICMP no emplean números de puerto.

Una diferencia clave de los puertos TCP/IP es la existente entre puertos con y sin privilegios. Los puertos con privilegios indican que son usados por servicios configurados por el administrador (root) y usan números por debajo del 1.024.

A continuación una tabla con los puertos mas comunes utilizados por los principales servicios:

puertosExisten diferentes utilidades para comprobar incluso de manera remota que puertos tenemos abiertos en nuestro ordenador, cuales están siendo utilizados y porqué servicios, y además aquellos que se encuentran a la escucha esperando conexiones remotas o cerrados. Algunas de estas herramientas pueden ser netstat, lsof, nmap o nessus, de las que hablaremos en la sección “Diagnóstico de red


 

 Notas del autor:

 

Licencia Creative Commons
Curso LPIC-1 400 Capítulo 8 por nebul4ck se distribuye bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional.

No estás registrado para postear comentarios



Redes:



   

 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías