> For the complete documentation index, see [llms.txt](https://juan-martin-franco.gitbook.io/network-+/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://juan-martin-franco.gitbook.io/network-+/6.-direccionamiento-ip/6.4-asignando-direcciones-ip.md).

# 6.4 - Asignando direcciones IP

## Asignando direcciones IP

Cuando nuestras redes se apoyan en direcciones IP del tipo IPv4, tenemos dos formas de asignarle a los dispositivos sus direcciones IP:

* <mark style="color:red;">**Asignar las direcciones IP de manera estática (manualmente)**</mark>
* <mark style="color:green;">**Asignar las direcciones IP de manera dinámica (automáticamente)**</mark>

### Asignamiento estático de direcciones IP

La primera forma de asignar las direcciones IP es la forma estática, la cual consta de un proceso muy simple.

Este proceso se basa en escribir manualmente para el host los siguientes valores:

* <mark style="color:blue;">**Dirección IP**</mark>
* <mark style="color:blue;">**Máscara de subred**</mark>
* <mark style="color:blue;">**Puerta de enlace predeterminada (Default Gateway)**</mark>
* <mark style="color:blue;">**Servidor DNS o WINS**</mark>

Si bien es un proceso simple, puede consumir bastante tiempo y además es propenso a errores.

Por ejemplo, si tengo 20 dispositivos en la red, debería asignar esos 4 valores para cada uno de estos dispositivos, es decir, debo rellenar 80 campos en total, lo que genera una alta probabilidad de que ocurra algún error.

Por los motivos nombrados previamente, el asignamiento estático de direcciones IP es poco práctico en redes empresariales grandes.

### Asignamiento dinámico de direcciones IP

La segunda forma de asignar las direcciones IP es la forma dinámica, la cual consta de un proceso más rápido, más fácil y menos confuso para asignar dichas direcciones a todos los clientes de la red cuando se unen a la misma.

Para redes más grandes, utilizar direccionamiento IP dinámico usualmente es la mejor opción.

Cuando nos conectamos a nuestra red, probablemente no tenemos que configurar los 4 campos que se configuran con el asignamiento estático de direcciones IP. Esto se debe a que la mayoría de los dispositivos de redes hogareñas como nuestro cable-modem, o nuestro punto de acceso inalámbrico tienen un servidor DHCP corriendo y está encendido por defecto.

En este tipo, solamente conectamos nuestros dispositivos a la red y el router o el dispositivo que corra el servidor DHCP manejará el direccionamiento IP de manera dinámica para que nuestro cliente de red pueda ser capaz de utilizar la red.

Los 4 valores que se asignan dinámicamente son los mismos que en el asignamiento estático:

* <mark style="color:blue;">**Dirección IP**</mark>
* <mark style="color:blue;">**Máscara de subred**</mark>
* <mark style="color:blue;">**Puerta de enlace predeterminada (Default Gateway)**</mark>
* <mark style="color:blue;">**Servidor DNS o WINS**</mark>

### Domain Name System (DNS)

El <mark style="color:blue;">**sistema de nombres de dominio**</mark>, conocido como <mark style="color:blue;">**DNS**</mark>, tiene como función principal **traducir los nombres de dominio (utilizados por sitios web) en direcciones IP y viceversa**.

### Windows Internet Name Service (WINS)

El <mark style="color:blue;">**servicio de nombres de internet de Windows**</mark>, conocido como <mark style="color:blue;">**WINS**</mark>, es utilizado dentro de una red de área local (LAN), específicamente en dominios Windows.

Este servicio **se utiliza para permitirle a Windows identificar nombres NetBIOS en una red TCP/IP y convertir dichos nombres NetBIOS en direcciones IP**.

Básicamente, WINS es como DNS pero solo funciona dentro de entornos de domino Windows.

Por ejemplo, si quiero conectar mi servidor de correo en un dominio Windows, podemos escribir su dirección IP, si la conocemos, o simplemente escribir el nombre del servidor.

### Asignamiento dinámico de direcciones IP - Métodos

Cuando se trata del asignamiento dinámico de la información crítica de direccionamiento para cada cliente, se pueden utilizar 4 métodos diferentes para realizar este proceso:

* <mark style="color:purple;">**BOOTP (Bootstrap Protocol)**</mark>
* <mark style="color:purple;">**DHCP (Dynamic Host Configuration Protocol)**</mark>
* <mark style="color:purple;">**APIPA (Automatic Private IP Addressing)**</mark>
* <mark style="color:purple;">**ZeroConf (Zero Configuration)**</mark>

### BOOTP (Bootstrap Protocol)

El método más viejo y menos utilizado de los nombrados previamente es <mark style="color:blue;">**Bootstrap Protocol**</mark>, conocido como <mark style="color:blue;">**BOOTP**</mark>.

Este método **puede asignar dinámicamente la información de la dirección IP y luego le permite a la estación de trabajo cargar una copia de su imagen de booteo (boot image) sobre la red**.

BOOTP utiliza una **base de datos estática de direcciones IP y direcciones MAC**.&#x20;

Esencialmente, cuando un cliente se conecta a la red para iniciar el proceso de BOOTP, encontrará su dirección MAC en la base de datos y enviará la dirección IP que coincida con dicha MAC Address.

### DHCP (Dynamic Host Configuration Protocol)&#x20;

El segundo método es el <mark style="color:blue;">**Protocolo de Configuración Dinámica de Host**</mark>, conocido como <mark style="color:blue;">**DHCP**</mark>.

Este protocolo es una mejora del BOOTP, y **permite la asignación de una IP basado en función de un alcance o conjunto de direcciones asignadas, además de proporcionar la capacidad de configurar otras numerosas opciones dentro de él**.

Como DHCP permite configurar nuestro alcance, se le puede indicar al servidor DHCP, por ejemplo, que maneje las direcciones que van desde 192.168.1.100 hasta 192.168.1.200, lo que permite que las direcciones IP de 100 clientes sean automáticamente asignadas.

Cada vez que algún cliente se conecte a la red, se le asignará automáticamente una dirección IP de este rango por un determinado periodo de tiempo (conocido como "**lease**").

Cada dirección de este rango puede tomarse prestada por un determinado tiempo desde este pool, y cuando ese tiempo expira, el servidor DHCP retirará dicha dirección.

La gestión de direcciones IP la realiza el servidor DHCP, es decir, se encarga de administrar todas las IPs que son asignadas y devueltas en el tiempo.

### APIPA (Automatic Private IP Addressing)

El tercer método es el de <mark style="color:blue;">**Asignación Automática de Direcciones IP Privadas**</mark>, conocido como <mark style="color:blue;">**APIPA**</mark>.

**Si por alguna razón DHCP no puede completar el proceso de asignación de dirección IP o no puede encontrar una dirección para darle al cliente (por ejemplo, porque el pool de direcciones ya está completamente utilizado), se utilizará APIPA.**

Este tipo de cosas puede ocurrir si existe algún problema donde el cliente no puede alcanzar el servidor DHCP, ya sea por problemas de red o algo de ese estilo.

En estos casos, el cliente se asignará una dirección APIPA, la cual es una dirección auto-asignada.

Por defecto, en un servidor Windows o una estación de trabajo Windows, nos encontramos con que la opción APIPA está seleccionada por defecto dentro de las propiedades de TCP/IP, en la pestaña "Configuración Alternativa":

<figure><img src="https://1668154188-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKyoEXmY0jfChHS8PdGMX%2Fuploads%2FpG6YlNrtZ1leH0HQDeYc%2Fimage.png?alt=media&amp;token=70035e77-d26c-4d65-aa48-f872e3ec6775" alt=""><figcaption></figcaption></figure>

Esta opción le permite a la máquina Windows asignarse una dirección aleatoria dentro del rango 169.254.0.1 a 169.254.255.254 si no puede alcanzar un servidor DHCP o no puede completar su proceso de negociación.

APIPA está diseñada para realizar una configuración rápida de una red de área local sin la necesidad de un servidor DHCP.

Por ejemplo, si tomo 10 clientes y los conecto a un switch sin un servidor DHCP, estos 10 clientes por defecto tomarán su propia dirección IP desde el rango APIPA (169.254.0.1 - 169.254.255.254). \
Como esta dirección es de clase B, esto está bien, ya que estarán todas en la misma red de área local.

El único inconveniente con estas direcciones IP es que son direcciones IP privadas, por lo que no pueden rutearse hacia el exterior de nuestra red de área local.\
Si queremos comunicarnos localmente, podemos utilizar un switch y todo funcionará, pero si queremos comunicarnos con el exterior, debemos utilizar una dirección que esté en la misma red que el router, ya que el router posee una dirección IP válida, no una APIPA.

<mark style="background-color:green;">**En resumen, los dispositivos con direcciones IP APIPA no pueden comunicarse con el exterior de una LAN o con dispositivos con direcciones NO-APIPA.**</mark>

### ZeroConf (Zero Configuration)

El cuarto y último método de asignación dinámica de direcciones IP es <mark style="color:blue;">**Zero Configuration**</mark>, también conocido como <mark style="color:blue;">**ZeroConf**</mark>.

Este método es una nueva tecnología basada en APIPA, y puede proveernos con muchas de las características que nos provee APIPA, además de algunas adicionales.

Por ejemplo, **ZeroConf puede asignar una dirección de enlace local (link-local) IPv4 a un cliente**. Esta es una forma de IP no escribible que **es utilizada en una subred local**, al igual que APIPA, pero la gran diferencia es que con ZeroConf **el cliente tiene la capacidad de resolver nombres de computadoras a direcciones IP sin la necesidad de utilizar DNS**, utilizando algo conocido como **mDNS (multicast Domain Name Service)**.

Además, ZeroConf **puede realizar un descubrimiento de servicios en una red**, por lo que podemos encontrar que cosas están conectadas y disponibles para su uso. \
Si hay una impresora, un escáner, o un sistema de archivos, podemos encontrarlo utilizando ZeroConf.

Existen muchas implementaciones diferentes de ZeroConf, entre las que podemos encontrar:

* En productos <mark style="color:orange;">**Apple**</mark>, se conoce como <mark style="color:blue;">**Bonjour**</mark>, y se utiliza mayoritariamente para el descubrimiento de servicios de otros clientes y dispositivos en la misma LAN.
* En productos <mark style="color:orange;">**Windows**</mark>, se conoce como <mark style="color:blue;">**LLMNR (Link-Local Multicast Name Resolution)**</mark> y provee resolución de nombres y descubrimiento de servicios en adición a proveer conductividad de red.
* En productos <mark style="color:orange;">**Linux**</mark>, se conoce como <mark style="color:blue;">**systemd-resolved (System Daemon Service)**</mark>.
