Conceptos fundamentales de redes
Conceptos Claves
- Configuración automática y manual de interfaces de red.
- Configuración TCP/IP básica.
- Establecer la ruta por defecto.
- Conocer los principales puertos TCP y UDP (20, 21, 22, 23, 25, 53, 80, 110, 119, 139, 143, 161, 443, 465, 993, 995).
- Conocimiento acerca de las diferencias y características principales de UDP, TCP e ICMP.
- Conocimiento acerca de las diferencia entre IPv4 e IPv6.
Términos y utilidades
- /etc/services
- ftp
- telnet
- host
- ping
- dig
- traceroute
- tracepath
Introducción
Las tecnologías informáticas modernas prácticamente no se conciben, si no funcionan en red. A la hora de administrar un sistema Linux, es clave, permitir que este sistema se conecte a alguna red. Las redes involucran una serie de componentes que se apilan uno arriba del otro y trabajan en conjunto para permitir las comunicaciones. Estos componentes incluyen el hardware de red, los paquetes de datos, los protocolos de red y los programas que implementan estos protocolos. En su conjunto, estos componentes conforman la pila de red (Network Stack). La pila de protocolos de red mas utilizada hoy en día, es la pila que conforman los protocolos TCP/IP, la pila TCP/IP. Entender el funcionamiento básico de esta pila de protocolos es fundamental para administrar un sistema.
Hardware de red
El hardware de red se diseña para permitir que dos o mas computadoras se comuniquen entre si. La mayoría de las computadoras modernas traen placas de red construidas dentro de su placa madre.
Paquetes de red
Las redes modernas operan en base a bloques de información conocidos como paquetes. Cuando se envía un archivo de 100KB desde una maquina hacia otra, la computadora divide este archivo en bloques mas pequeños. Si se dividen los 100KB en 20 paquetes de 5KB, en el caso de que un paquete se pierda en el camino, no es necesario retransmitir todo el archivo de vuelta, sino que retransmitiremos solo los 5KB que perdimos.
Pila de protocolos
El conjunto de protocolos que forman parte del proceso que se da cada vez que se intercambia un datos entre dos computadoras, se llama la pila de protocolos. Esta pila se divide en varias capas, cada una de las cuales cumple un determinado tipo de funciones.
Cada una de estas capas interactúa con las capas pares de la otra computadora para intercambiar datos y a su vez hace uso de la capa que tiene abajo para que ella encapsule sus paquetes y los lleve a destino.
Las capas de la pila TCP/IP son:
Capa de Aplicación
Esta capa provee servicios al software de aplicaciones corriendo en una computadora. Algunos protocolos de capa de aplicación son FTP, HTTP, DNS y SMPT.
Capa de Transporte
Es la capa que se ocupa de gestionar la entrega de los paquetes de datos entre la computadora que origina estos datos y la computadora que es la destinataria final de estos datos. Los dos protocolos fundamentales de esta capa son TCP y UDP.
Capa IP o de Internet
Encuentra las rutas correctas para dirigirse a las direcciones IP de destino. El protocolo IP es el protocolo fundamental de Internet.
Capa de Acceso a Datos
Define el protocolo y el hardware necesario para entregar datos por medio de una red física. Incluye todas las variaciones de los protocolos de Ethernet y otros estándares de LAN. También incluye estándares de WAN como PPP y frame relay.
Protocolo de control de transmisión (TCP)
TCP es el protocolo de capa de transporte mas usado. Como su nombre lo indica, realiza un control sobre la transmisión. Asegurándose que lleguen todos los paquetes a destino. La manera en la que realiza estos es chequeando regularmente que no se hayan perdido paquetes y en el caso de así haya sido, reenviando los paquetes extraviados.
Protocolo de Datagramas de usuarios (UDP)
UDP es el protocolo mas simple dentro de la capa de transporte, a diferencia de TCP, UDP no controla la entrega de paquetes. Se utiliza en los casos en que la velocidad de transmisión sea mas importante que la integridad de los datos.
Protocolos IP
IPv4
Soporta un máximo de 4000 millones de direcciones.
IPv6
Utiliza direcciones de 128 bits, contra los 32 bits de IPv4.
Redes privadas según RFC-1918
Clase | Rango | Prefijo |
---|---|---|
A | 10.0.0.0-10.255.255.255 | 10.0.0.0/8 |
B | 172.16.0.0-172.31.255.255 | 172.16.0.0/12 |
C | 192.168.0.0-192.168.255.255 | 192.168.0.0/16 |
Direccionamiento de Red
Para que una computadora pueda comunicarse con otra por medio de la red, primero deben tener algún manera de referenciarse entre si. El mecanismo básico para realizar esto es provisto por las direcciones de red, las cuales toman diferentes formas dependiendo de cual sea el componente de red en que estemos operando.
Direcciones de Hardware
Las redes Ethernet o Token Ring utilizan direcciones de hardware, las cuales tienen un numero de identificación único, el cual viene programado desde fabrica en las placas de red. Estas direcciones son conocidas como direcciones MAC (Media Access Control).
En el caso de Ethernet, estas direcciones estas compuestas por 6 bytes, y generalmente se expresan en base hexadecimal, separando de a 2 dígitos separados por dos puntos (:), como ser c8:bc:c8:99:ff:bf .
Direcciones IP
Las direcciones IP están conformadas por 4 bytes (32 bits). Para convertir entre direcciones IP y direcciones de hardware se utiliza un protocolo llamado ARP (Address Resolution Protocol). Las direcciones IP generalmente es expresan con cuatros números en base 10, separados por puntos (.). Las direcciones IP están divididas en dos componentes: La dirección de la red y la dirección del host. La dirección de red especifica un bloque de direcciones IP que son usadas por una determinada red, mientras que el host identifica a una computadora dentro de esa red.
Mascara de red
Es un numero que ayuda a identificar que parte de la dirección corresponde a la red y que parte corresponde al host. Para entender las mascaras de red es importante ver las direcciones IP como números binarios, cada uno dentro de la mascara indica que el bit correspondiente en la dirección, corresponde a la parte de la dirección de red. Otra manera de expresar las mascaras de red, es con la notación "barra", en la que se utiliza una barra, seguida por la cantidad de bits que corresponden a la red.
Ejemplo
Binario | Cuartetos decimales | Barra |
---|---|---|
11111111.11111111.11111111.00000000 | 255.255.255.0 | /24 |
11111111.11111111.00000000.00000000 | 255.255.0.0 | /16 |
11111111.00000000.00000000.00000000 | 255.0.0.0 | /8 |
DNS
Las computadoras trabajan con números, sin embargo, los seres humanos tienen mas facilidad para recordar nombres que números. Por este motivo, TCP/IP incluye una manera de vincular nombres con direcciones IP. Utilizando el sistema de resolución de nombres de dominio. Estos nombres de dominio, al igual que las direcciones IP, tienen 2 porciones, la porción que corresponde al dominio y la porción que corresponde al nombre del host. Los nombres de dominio son registrados por individuos u organizaciones, dentro de cada dominio se definirán nombres de maquinas asociados a determinadas direcciones IP.
Los nombres de dominio se organizan de manera jerárquica, en la cima de esta jerarquía se encuentran los dominios de nivel superior, como son .ar, .com y .edu. Dentro de los dominios de nivel superior encontraremos dominios de segundo nivel, que corresponden a organizaciones, como uba.ar o google.com. Y dentro de esos dominios, podemos tener otros dominios de menor jerarquía o nombres de computadoras, asociados a direcciones IP.
El sistema de Nombres de Dominio (DNS) es una base de datos distribuida que convierte direcciones IP en nombres de dominio. Cada dominio debe mantener al menos dos servidores DNS que tengan la capacidad de proveer los nombres de dominio de cada computadora dentro del dominio.
Comando host
Descripción
El comando host realiza búsquedas DNS y nos devuelve los resultados.
Comando dig
Descripción
Este comando puede realizar consultas DNS mas complejas que host.
Puertos de red
Una vez que se realiza la conexión con una computadora remota, se debe especificar que programas queremos contactar. Por ejemplo, si se quiere conectar con el servidor web o con un servidor FTP. La manera que se dirige el trafico a los programas correctos y a su vez se restringe este trafico es mediante puertos lógicos.
Puertos comunes
TCP
20 FTP
21 FTP
22 SSH
23 Telnet
25 SMTP
53 DNS
80 HTTP
110 POP3
111 Portmapper
113 Auth/Ident
119 Network News Transfer Protocol
139 NetBios Session
143 Imap
389 Ldap
443 HTTP over SSL
445 Microsoft Directory Services
465 SMTP sobre SSL
631 Internet Printing Protocol
993 Imap sobre SSL
UDP
67 DHCP
161 SNMP
177 XDMCP
Configuración DNS
Para resolver nombres DNS podemos optar por 2 opciones o una combinación de las dos. La primera es usar un archivo local que contenga los pares que vinculan direcciones IP y nombres DNS. Ese archivo viene por defecto en todas las distribuciones y se llama /etc/hosts. La segunda es usar servidores DNS, los cuales podemos listar dentro del archivo /etc/resolv.conf . Lógicamente, hay que referenciar los servidores DNS por su dirección IP, ya que Linux no podrá resolver nombres si no puede ubicar a los servidores DNS. Generalmente, se consulta primero al archivos local hosts antes que a los servidores DNS. En el caso de que queramos cambiar el orden en que Linux realiza consulta de DNS, podemos editar el archivo /etc/nsswitch.conf.