¿Por qué necesitamos dar direcciones IP a cada interfaz? ¿No sería suficiente dar uno a cada dispositivo?
¿Por qué necesitamos dar direcciones IP a cada interfaz? ¿No sería suficiente dar uno a cada dispositivo?
Respuestas:
Conectar una interfaz a una red hace que sea parte de esa red. Por lo tanto, la dirección IP es una propiedad de la conexión, no el host.
Del mismo modo, un host puede tener muchas conexiones de red y, en consecuencia, direcciones IP. Las diferentes interfaces a menudo tienen diferentes funciones, por lo que es importante distinguirlas (por ejemplo, consola interna, servicios públicos, iSCSI).
Los enrutadores requieren múltiples direcciones IP para sus interfaces.
No.
Dicho esto, veamos un ejemplo simplificado:
Tengo una computadora con tres interfaces: eth0
(Ethernet con cable), wlan0
(wifi) y vboxnet0
(virtualbox). Una de las interfaces está conectada a una red interna, una está conectada a Internet y la última está conectada a una red de computadoras virtuales. Digamos que tengo una sola dirección, 10.1.2.3, y deseo enviar una gran cantidad de paquetes a 192.168.1.2, accesibles en una de esas redes. ¿A dónde los envío? No puedo enviarlos a todas partes, tal comportamiento inundaría todas las redes en poco tiempo.
Pero si la interfaz eth0 tiene 192.168.1.3, wlan0 tiene 10.1.2.3 y vboxnet0 tiene 172.0.0.1, entonces la tabla de enrutamiento predeterminada probablemente dirá "enviar eth0". (Esto obviamente puede ser mucho más complicado con reglas de enrutamiento más complejas).
Y a la inversa, es posible que desee ejecutar un servicio solo en la interfaz que está abierta a la red privada, por lo que cuando una solicitud llega a una interfaz diferente, no se maneja en absoluto.
Caso 1: enrutadores
Teóricamente esto sería posible.
Sin embargo, normalmente un paquete IP se envía "directamente" al destino cuando la dirección IP "coincide" con una determinada máscara de red (por ejemplo, 10.0.0.0/28); de lo contrario, el paquete se envía a través de un enrutador.
Esto significa:
Los paquetes que se envían de una computadora a otra dentro de una de las dos redes no pasan un enrutador.
Esto significa que las direcciones IP de cada computadora coinciden con la máscara de red de la red a la que están conectadas.
Los paquetes que se envían al enrutador (¡esto incluye los paquetes que el enrutador enruta!) No se envían desde una computadora al enrutador a través de un segundo enrutador.
Esto significa que la dirección IP del enrutador debe coincidir con las máscaras de red de ambas redes.
Sin embargo, los paquetes IP que se envían desde una computadora en una red a una computadora en la otra red se envían a través del enrutador.
Esto significa que las direcciones IP de las computadoras en una red no deben coincidir con la máscara de red de la otra red.
Es casi imposible elegir una dirección IP y dos máscaras de red de manera que una dirección IP coincida con ambas máscaras de red, pero muchas direcciones IP solo coinciden con una máscara de red.
Caso 2: diferentes redes privadas
Podríamos tener el caso de que una computadora está conectada a dos redes privadas que no pueden intercambiar datos entre sí.
En este caso, una computadora puede tener la misma dirección IP en ambas redes.
En el caso de IPv4, la mayoría de los sistemas operativos no admitirán esto porque los sistemas operativos usan las máscaras de red de las dos redes para distinguirlos. Las redes necesitan tener diferentes máscaras de red ...
En el caso de IPv6 (usando direcciones "link-local") una computadora puede tener la misma dirección IP (link-local) en dos redes diferentes, y por lo tanto, dos tarjetas de red pueden tener la misma dirección IP.
Existe un dispositivo que tiene una dirección IP dentro de una red.
Un enrutador es un dispositivo cuyo propósito principal es pasar el tráfico entre redes .
Para que un enrutador pase paquetes entre dos redes, debe existir dentro de ambas redes.
El enrutador tendrá un "brazo" dentro de cada red, o como lo llamamos, una interfaz . Y la forma en que existe una interfaz dentro de una red es asignándole una dirección IP dentro de la red.
Por lo tanto, al configurar un enrutador, cada interfaz recibe una dirección IP para identificar las redes que pertenece el Router dentro .
Descargo de responsabilidad: el enlace de arriba es a mi blog. Mi blog no está monetizado. No obtengo ningún beneficio de que lo leas. Estoy proporcionando un enlace simplemente para su beneficio (y el de cualquier otro lector).
Me preguntaba, ¿por qué necesitamos dar direcciones IP a cada interfaz? ¿No sería suficiente dar a cada dispositivo?
Déjame comenzar desafiando tu suposición. ¿Por qué dices que no es así como se comportan las máquinas? Digamos que asigno 192.168.1.1/24 a eth1 y 192.168.2.1/24 a eth2. Además de instalar una ruta para 192.168.1.0/24 fuera eth1 y 192.168.2.0/24 fuera eth2 y determinar la dirección IP de origen preferida para los paquetes enviados a lo largo de esa ruta, ¿cuánto importa realmente a qué interfaz asigno la dirección IP? ¿Qué es lo que realmente cambia? ¿En qué sentido la máquina no se comporta como si todas las direcciones IP asignadas a las interfaces de la máquina pertenecieran a la máquina?
Se utilizan ambos enfoques. El enfoque más común es en realidad un híbrido de estos dos enfoques.
En el extremo "dar a un dispositivo una dirección IP", podría imaginar un dispositivo que se comportara como si todas sus interfaces estuvieran conectadas a un puente de filtrado con una dirección IP asignada al puente.
En el extremo de "dar a cada interfaz una dirección IP", podría imaginar un dispositivo que se comportara como si cada interfaz que tuviera fuera como una máquina separada. (Ver aquí si cree que así es como funcionan actualmente los dispositivos o piensa en alguien que se conecta a una dirección IP asignada a una interfaz pero los paquetes llegan y se envían otra).
En la práctica, la mayoría de las máquinas funcionan en algún punto intermedio. Actúan como si todas las direcciones IP fueran propiedad de la máquina. La asignación de una IP a un dispositivo en particular realmente no hace mucho más que decirle al sistema operativo que instale una ruta predeterminada fuera de esa interfaz y que configure la dirección IP de origen predeterminada para los paquetes enviados a esa interfaz donde la dirección IP de origen no está ' t forzado.
De lo contrario, se comportan como si todas las direcciones IP pertenecieran a la máquina. La forma en que se procesa un paquete no depende mucho de en qué interfaz se recibe: los paquetes con una dirección IP de origen asignada a una interfaz recibida en otra son rutinarios. A qué interfaz se le asigna una dirección no tiene efecto directo sobre qué interfaz se envía un paquete, eso lo determina la tabla de enrutamiento.
En el caso general, necesita una IP por red local a la que se conecta, y así es como se definió TCP / IP: cada host en una red local dada tiene una dirección IP, que permite:
Siempre que tenga redes locales con múltiples dispositivos conectados (la mayoría de las redes locales 802.x, incluidas Ethernet, Wi-Fi), es bastante difícil evitarlo a menos que cambie fundamentalmente la forma en que funciona TCP / IP.
Sin embargo, en realidad es posible evitar eso, aunque es bastante específico.
Considere una red que solo tiene enlaces punto a punto (Ethernet punto a punto entre dos dispositivos sin conmutador o concentrador, enlaces DSL, enlaces SONET / SDH, Frame Relay o ATM VC ...).
La convención habitual es usar un / 30 para cada enlace, por lo que el dispositivo en cada extremo tiene una dirección IP en ese enlace.
Pero puede usar "IP sin numerar" y no asociar ninguna dirección IP a esos enlaces. Ahora, asigna una IP a la interfaz de bucle invertido del dispositivo (cualquier interfaz realmente, pero el bucle invertido es el más fácil para este propósito), y utiliza un protocolo de enrutamiento dinámico (IS-IS, OSPF, EIGRP ...). Este protocolo de enrutamiento anunciará cómo enrutar el tráfico a esa dirección IP a través de varios enlaces sin numerar.
Las direcciones IP incluyen información de enrutamiento. Una dirección IP se divide en dos componentes, el número de red y el número de host , en función de una longitud de prefijo asignada (que originalmente se expresó como una máscara de red, y esto es a menudo cómo se implementa internamente en las pilas de red).
Para que el enrutamiento funcione correctamente, todos los dispositivos conectados a una red en particular deben tener direcciones con el mismo número de red. Los remitentes determinan si el receptor está en la misma red o en una diferente al comparar su propio número de red con la dirección del receptor. Si están en la misma red, envían directamente; de lo contrario, envían a un enrutador cuyo trabajo es acercar el mensaje al destino.
Entonces, si un dispositivo está conectado a múltiples redes, necesita una dirección en cada una de esas redes para que pueda ser alcanzado por los dispositivos en esa red.
Dicho esto, no es realmente necesario que las direcciones se asignen específicamente a interfaces de red particulares. El dispositivo podría tener una lista de todas las IP que posee en una sola tabla. Pero las interfaces aún necesitan información sobre a qué red están conectadas. Al asignar una IP y una máscara de red a cada interfaz, colocamos esta información en un solo lugar, simplificando el diseño. No es necesario un código adicional para mantener la lista de IP coherente con la lista de redes a las que están conectadas las interfaces.
Puede ser suficiente tener una IP en el caso estándar, pero como lo destacan otras respuestas, hay muchos casos en los que no lo es.
Otras respuestas ya han mencionado el caso de un enrutador. Uno menciona virtualbox, que es el caso de las máquinas virtuales: puede estar ejecutando en un solo dispositivo físico varios virtuales. Otro caso son las VLAN, puede que en realidad se haya conectado a una sola tarjeta de red, a varias LAN virtuales diferentes, con diferentes direcciones IP. E incluso podría, por alguna razón, tener una interfaz con múltiples IP, por ejemplo, porque desea ejecutar varios servidores web en el puerto TCP 80. Tal configuración no es infrecuente para los servidores, el hardware que alquila puede tener una sola tarjeta de interfaz de red , pero tendrá varias direcciones IP configuradas.