1. El Modelo Cliente/Servidor
Con la llegada de las redes, surge un nuevo concepto en las tecnologías de la información y la comunicación: la computación distribuida. Este modelo busca aprovechar la potencia y los recursos de los ordenadores interconectados para que cooperen hacia un objetivo común.
Una aplicación distribuida está formada por un conjunto de procesos ejecutados en ordenadores diferentes que se comunican a través de una red. Cuando una aplicación se ejecuta en un solo ordenador, este gestiona la aplicación por sí mismo. Sin embargo, cuando los módulos se ejecutan en máquinas distantes conectadas por una red, es necesario establecer protocolos (lenguajes que permiten la comunicación entre equipos). Entre los estándares de aplicaciones distribuidas, el más exitoso es el modelo cliente/servidor.
Componentes del Modelo Cliente/Servidor
- Servidor: Su función es proporcionar servicios: acceso a recursos, realización de operaciones de cálculo complejas, procesamiento de datos, etc.
- Cliente: Realiza una petición al servidor y espera un resultado. Los usuarios acceden al servidor a través del cliente, nunca directamente.
El usuario puede ser una persona, que necesitará una interfaz de usuario para acceder, o una aplicación, cuyo acceso se suele implementar a través de una API. El modelo se vuelve más complejo si se añaden más entidades a la aplicación distribuida.
- Múltiples clientes: El servidor debe estar preparado para recibir múltiples conexiones simultáneas.
- Múltiples servidores: Varios servidores ofrecen servicios complementarios. Si un servidor no puede satisfacer una petición del cliente, puede contactar con otro (sistema servidor). Esto puede hacerse mediante protocolos o siguiendo el modelo cliente/servidor. Desde la perspectiva del cliente, este proceso es transparente.
2. El Modelo Peer-to-Peer (P2P)
El modelo cliente/servidor implica cierta asimetría. Los servidores suelen ser máquinas potentes que ofrecen servicios a máquinas menos potentes (clientes). Con la maduración del uso de internet, los usuarios tienden cada vez más a utilizar sus máquinas como servidores.
Que el protocolo siga el modelo cliente/servidor no es incompatible con una red formada por ordenadores de potencia similar. En aplicaciones P2P, cualquier equipo puede ser cliente y servidor a la vez. Algunas aplicaciones P2P, como Emule, permiten la comunicación directa entre iguales, pero requieren uno o varios servidores externos para centralizar el control de la red.
2.1. El Sistema de Nombres de Dominio (DNS)
El DNS proporciona un espacio de nombres jerárquico, en forma de árbol invertido, para referenciar recursos.
El nombre de dominio de un nodo se define como la secuencia de etiquetas desde el nodo hasta la raíz. Cada etiqueta puede tener entre 1 y 63 caracteres. El protocolo establece una sintaxis preferida para representar los nombres de dominio. Los caracteres válidos en una etiqueta son letras (mayúsculas o minúsculas), dígitos y el guión. El primer carácter debe ser una letra y el último no puede ser un guión. Las etiquetas se concatenan con puntos.
Una dirección como www.padresuarez.es se denomina nombre de dominio completamente cualificado (FQDN) o nombre absoluto. También existen nombres relativos (sin www).
Dominios de Nivel Superior (TLD)
Los TLD son los dominios directamente subordinados a la raíz. Existen tres clases:
- Dominios de nivel superior genéricos (gTLD): Representan áreas de conocimiento, sectores productivos, etc. (e.g., .com, .edu, .gov, .mil, .net, .org, .int).
- Dominios de nivel superior con código de país (ccTLD): Formados por dos letras que representan a un país (e.g., .es, .uk, .fr).
- Dominios de nivel superior de infraestructura (nTLD): (e.g., .arpa para la resolución inversa).
Un recurso puede tener varios nombres, uno canónico y otros como alias.
2.2. Resolución Inversa
El DNS convierte nombres en direcciones IP, pero a veces se necesita la conversión inversa. Para ello se usa el nTLD .arpa.
- IPv4: 195.47.37.0/24 → 0.37.47.195.in-addr.arpa.
- IPv6: 2001:a10::1 → 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.a.0.1.0.0.2.ip6.arpa.
2.3. Zonas DNS
Para facilitar la gestión, los nombres de dominio se agrupan en zonas. Una zona es una parte contigua del árbol de dominios gestionada por un servidor. Existen dos modos de resolución:
- Iterativo: El servidor proporciona referencias a otros servidores.
- Recursivo: El servidor proporciona la respuesta final o un error.
Las respuestas se almacenan en caché con un tiempo de vida (TTL).
2.4. Elementos del DNS
- Servidores: Responden consultas y pueden tener una base de datos local y/o caché.
- Resolvedores: Actúan como clientes, traducen peticiones a consultas DNS y extraen la información de las respuestas.
2.4.1. Tipos de Servidores
- Primario: Almacena los archivos originales de la base de datos.
- Secundarios: Actualizan sus bases de datos desde el primario.
- Invisibles: Tienen autoridad sobre una zona pero no se definen mediante registros NS.
- Maestro: Actualizan a otros secundarios para reducir la carga del primario.
- De cacheo: Almacenan en caché las resoluciones.
- Raíz: Tienen autoridad sobre los TLD.
Comandos de Configuración de Red en Linux
Para modificar la configuración de red, se debe deshabilitar NetworkManager:
systemctl stop NetworkManager.service
(detener el servicio)systemctl disable NetworkManager.service
(desactivar el inicio automático)
Para identificar las interfaces de red (NIC):
ls /sys/class/net
networkctl
ip link
Para desactivar una interfaz (e.g., ens33):
ifdown ens33
(se reactiva conifup ens33
)
El archivo principal de configuración es /etc/network/interfaces
.
Para configurar una IP estática:
auto ens33
iface ens33 inet static
address 192.168.1.20
netmask 255.255.255.0
gateway 192.168.1.1
Para una IP dinámica, se reemplaza static
por dhcp
.
El nombre del equipo se configura con hostname <nombre>
(temporal) o editando /etc/hostname
(permanente).
La resolución de nombres se configura en /etc/host.conf
, /etc/hosts
, /etc/hosts.allow
y /etc/hosts.deny
.
La configuración de DNS se realiza en /etc/network/interfaces
con:
dns-search <canónico> <alias>
dns-nameserver <dirección DNS>