Direccionamiento IP (1ª parte) Daniel Morató Area de Ingeniería Telemática Departamento de Automática y Computación Universidad Pública de Navarra
[email protected] Laboratorio de Programación de Redes http://www.tlm.unavarra.es/asignaturas/lpr
IP • Es un protocolo de nivel de red • Nos va a permitir enviar paquetes entre redes diferentes • Las redes pueden ser de tecnologías diferentes, la forma de direccionar a los interfaces a nivel de enlace puede ser diferente • IP ofrece un espacio de direcciones único para todos los interfaces conectados a la red • Las direcciones IP son números de 32 bits • Además se organizan en grupos o redes de forma que sea más sencillo para los encaminadores saber dónde (en qué red) está conectada la máquina de cierta IP
22 Oct
Direccionamiento IP
1/30
1
Esquemas de direccionamiento IP • Vamos a ver desde una perspectiva histórica cómo ha evolucionado la forma de crear redes y subredes IP • Veremos: – – – – –
Hoy Direccionamiento Classful Subnetting VLSM (Variable Length Subnet Masks) Supernetting CIDR (Classless InterDomain Routing)
• Hay que tener claro que la técnica actual empleada es CIDR pero resultará útil entender los conceptos uno a uno como se fueron creando 22 Oct
Direccionamiento IP
2/30
Direccionamiento Classful • Originalmente Internet era la interconexión de una serie de LANs • Cada LAN tiene un router de acceso que la conecta con el backbone de Internet (en sus comienzos, ARPANET) y así con las otras redes • A cada LAN se le asigna un rango de direcciones IP
LAN LAN LAN 22 Oct
LAN Direccionamiento IP
3/30
2
Direccionamiento Classful • Originalmente Internet era la interconexión de una serie de LANs • Cada LAN tiene un router de acceso que la conecta con el backbone de Internet (en sus comienzos, ARPANET) y así con las otras redes • A cada LAN se le asigna un rango de direcciones IP Backbone
LAN
LAN
LAN
22 Oct
Direccionamiento IP
4/30
Direccionamiento Classful • Se pensó que podría haber redes de diferentes tamaños (respecto a número de hosts conectados) • Se crearon 3 tipos de redes: Clase A, Clase B y clase C • En las direcciones de una red de clase A: bit 0
0
bit 31
Network ID
Host ID
- El primer bit vale siempre 0 con lo que el primer byte puede ir de 0 a 127 - Junto con los siguientes 7 bits forman el identificador de la red o Network ID - Los últimos 24 bits son el identificador del host o Host ID - Algunas direcciones son especiales: • La dirección de Host ID=0 es las dirección que hace referencia a toda la red • La dirección de Host ID=“todo 1s en binario” es las dirección que hace referencia a todos los hosts de la red (dirección de broadcast de red) - Dentro de cada red hay 224=16.777.216, más de 16 millones de direcciones IP posibles con lo que podríamos tener 224-2 hosts (la dirección de la red y la de broadcast no son válidas para hosts) - Algunos identificadores de red están reservados y tienen un significado especial: • El Network ID=0 hace referencia a “esta red”, la red en la que se esté • El Network ID=10 está reservado para redes privadas • El Network ID=127 está reservado para los interfaces de loopback
- Hay 27-3=125 posibles redes de clase A
22 Oct
Direccionamiento IP
5/30
3
Direccionamiento Classful • Se penso que podría haber redes de diferentes tamaños (respecto a número de hosts conectados) • Se crearon 3 tipos de redes: Clase A, Clase B y clase C • En las direcciones de una red de clase A: bit 0
bit 31
0
Network ID
Host ID
• En las direcciones de una red de clase B: bit 0
10
bit 31
Network ID
Host ID
- Los dos primeros bits valen siempre 10 con lo que el primer byte vale siempre entre 128 y 191 - Junto con los siguientes 14 bits forman el identificador de la red o Network ID - Los últimos 16 bits son el identificador del host o Host ID - Algunas direcciones son especiales: • La dirección de Host ID=0 es las dirección que hace referencia a toda la red • La dirección de Host ID=“todo 1s en binario” es las dirección de broadcast de la red - Dentro de cada red hay 216-2=65.534 direcciones IP posibles para hosts - Algunos identificadores de red están reservados y tienen un significado especial: • El Network ID= 169.254 se emplea cuando el host no obtiene configuración IP ni manual ni automática • Los Network IDs desde 172.16 a 172.31 están reservados para redes privadas
- Hay 214 -17=16.367 posibles redes de clase B 22 Oct
Direccionamiento IP
6/30
Direccionamiento Classful • Se penso que podría haber redes de diferentes tamaños (respecto a número de hosts conectados) • Se crearon 3 tipos de redes: Clase A, Clase B y clase C • En las direcciones de una red de clase A: bit 0
bit 31
0
Network ID
Host ID
• En las direcciones de una red de clase B: bit 0
10
Network ID
bit 31
Host ID
• En las direcciones de una red de clase C: bit 0
110
bit 31
Network ID
Host ID
- Los tres primeros bits valen siempre 110 con lo que el primer byte vale siempre entre 192 y 223 - Junto con los siguientes 21 bits forman el identificador de la red o Network ID - Los últimos 8 bits son el identificador del host o Host ID - Algunas direcciones son especiales: • La dirección de red (Host ID=0) y la de Broadcast (todo 1s) - Dentro de cada red hay 28-2=254 direcciones IP posibles para hosts - Algunos identificadores de red están reservados y tienen un significado especial: • El Network ID=192.0.2 se llama la “TEST-NET”, se emplea en ejemplos de documentación y no en Internet • Los Network IDs desde 192.168.0 a 192.168.255 están reservados para redes privadas • Los Network IDs 192.18.0 y 192.19.255 están reservados para pruebas de prestaciones de equipos de red
- Hay 221-769=2.096.383 posibles redes de clase C 22 Oct
Direccionamiento IP
7/30
4
Direccionamiento Classful • Y el resto de las direcciones? • Existe lo que se llama la Clase D: bit 0
bit 31
1110
Grupo multicast
- Se emplean para el Multicast IP - Los cuatro primeros bits valen siempre 1110 con lo que el primer byte vale siempre entre 224 y 239 - Junto con los siguientes 28 bits forman el identificador de un Grupo Multicast
• Vale, pero y el resto? • Existe lo que se llama la Clase E: bit 0
bit 31
1111 - Están “reservadas para su futuro uso” - Los cuatro primeros bits valen siempre 1111 con lo que el primer byte vale siempre al menos 240
• Hay una dirección IP más que es especial, la todo 1s: 255.255.255.255 - Se llama la dirección de “broadcast limitado” - Hace referencia a todos los hosts de la red - Paquetes a esa dirección destino nunca deben ser reenviados por los routers. 22 Oct
Direccionamiento IP
8/30
Direccionamiento Classful ¿Por qué así? • Los routes emplean el Network ID para decidir por dónde deben reenviar un paquete • Cuando reciben un paquete deben averiguar rápidamente cuál es el Network ID de la red a la que pertenece el destino • Si el primer bit es un 0 entonces pertenece a una red de clase A y el NetID son los primeros 8 bits • Si el primer bit es un 1 pero el segundo un 0 entonces pertenece a una red de clase B y el NetID son los primeros 16 bits • Si los dos primeros bits son 1 pero el tercero es un 0 entonces pertenece a una red de clas C y el NetID son los primeros 24 bits • En la propia dirección IP está codificado el número de bits del NetID • Son comprobaciones rápidas de realizar • Cuanto menos tiempo emplee el router con cada paquete más paquetes podrá procesar por segundo
22 Oct
Direccionamiento IP
9/30
5
Direccionamiento Classful Ejemplos
• Describa las siguientes direcciones: 32.45.65.21 130.206.160.0 63.0.0.0 193.45.234.255 10.12.145.1 1.0.0.0 127.0.0.1 187.45.0.0 25.45.0.0 22 Oct
Direccionamiento IP
10/30
Direccionamiento Classful Envío y reenvío de paquetes
• ¿Cómo actúan los hosts?: - Tienen configurado: • Su dirección IP • La dirección IP que tiene el router de salida de su LAN en el interfaz conectado a la misma • Pueden averiguar el NetID de su LAN a partir de su IP
- Dada la IP del destino al que desean enviar un paquete : • Calculan el NetID de la red a la que pertenece • ¿Es el mismo que el de mi red? - Sí: está en mi red, se lo envío directamente (a su MAC) - No: está en otra red, se lo envío al router (a la MAC del router)
22 Oct
Direccionamiento IP
11/30
6
Direccionamiento Classful Envío y reenvío de paquetes
• ¿Cómo actúan los routers?: - Sin estado. Toman decisiones paquete a paquete. - Tienen configurado: • La dirección IP de cada uno de sus interfaces (cada interfaz está en una LAN y por lo tanto tiene una IP de dentro de esa LAN) • Una tabla de rutas que indica por dónde enviar el paquete según el destino del mismo Red destino
Next-hop
Interfaz
- Si recibe un paquete que no es para ninguna de sus direcciones IP: • Busca en la tabla si hay alguna fila que en el campo Red destino tenga esa dirección IP - Sí: Es una ruta a ese host en concreto, lo envía según indica la fila - No: Calcula el NetID de la red a la que pertenece esa IP y busca una ruta a esa red en la tabla. ¿Encuentra una entrada? - Sí: Es una ruta a esa red, lo envía según indica la fila - No: Busca en la tabla una ruta por defecto. ¿Encuentra una? - Sí: Lo envía según indica la fila - No: No sabe cómo hacer llegar el paquete al destino. Lo descarta (lo tira)
22 Oct
Direccionamiento IP
12/30
Subnetting • El esquema Classful ocasionaba ciertos problemas prácticos: – Las redes pueden llegar a ser muy grandes – Una red de clase A contiene direcciones para millones de hosts pero es difícil que una tecnología de LAN soporte esa cifra de máquinas conectadas – Podemos necesitar conectar dentro de la red con otro tipo de tecnología que nos permita llegar mayores distancias – Puede que el tráfico de broadcast a nivel de enlace sea demasiado abundante y queramos reducir el tamaño de la red
LAN
LAN 22 Oct
LAN Direccionamiento IP
13/30
7
Subnetting • Empezó como una solución interna practicada por algunas redes muy grandes hasta que se estandarizó • También llamado FLSM (Fixed Length Subnet Masks) • Desde el exterior es como si la LAN no hubiera cambiado • En el interior se divide la LAN en LANs más pequeñas interconectadas por routers
22 Oct
Direccionamiento IP
14/30
Subnetting • Empezó como una solución interna practicada por algunas redes muy grandes hasta que se estandarizó • Tambien llamado FLSM (Fixed Length Subnet Masks) • Desde el exterior es como si la LAN no hubiera cambiado • En el interior se divide la LAN en LANs más pequeñas interconectadas por routers
Subred
Subred
Subred 22 Oct
Direccionamiento IP
15/30
8
Subnetting • Generalmente se aplicó en redes de clase B porque: - Redes de clase A hay muy pocas - Las de clase C son muy pequeñas (solo 254 hosts)
• Lo que se hace es dividir la parte del HostID en dos: bit 0
bit 31
10
Network ID
Subnetwork ID Host ID Host ID
Extended Network ID
- A la primera parte se le llama el Subnetwork ID e identifica a la Subred dentro de la Red - La segunda parte es el Host ID e identifica al host dentro de la Subred - A la concatenación del Network ID y el Subnetwork ID se le llamó el Extended Network ID
Subred
Subred
Subred 22 Oct
Direccionamiento IP
16/30
Subnetting bit 0
bit 31
10
Network ID
Subnetwork ID Host ID Host ID
Extended Network ID
• El Subnetwork ID puede tener cualquier número de bits entre 2 y la longitud del Host ID original menos 2 (al menos 2 bits para el Host ID) • ¿Cómo sabemos dónde acaba el Extended Network ID? - Se añade a la configuración de los interfaces de red otro número de 32 bits - Este número se llama la máscara - La máscara tiene 1s en el Extended Network ID y 0s en el Host ID 11111...................111 000.....00
Subred
Subred
Subred 22 Oct
Direccionamiento IP
17/30
9
Subnetting bit 0
bit 31
10
Network ID
Subnetwork ID Host ID Host ID
11111...................111 000.....00 • La máscara está asociada al interfaz de red • Debe ser la misma para todos los interfaces conectados a esta red • Aparecen nuevas direcciones reservadas: - La dirección con el Host ID a 0s es la dirección de la Subred - La dirección con el Host ID a 1s en la dirección de broadcast de la Subred - El Subnetwork ID todo 0s hace referencia a toda la red así que no se puede emplear para identificar a una subred (la direccion de esa subred se confundiría con la de la red) - El Subnetwork ID todo 1s hace referencia a todas las subredes, tampoco se puede emplear para identificar a una subred (la direccion de broadcast de esa subred se confundiría con la de toda la red)
Subred
Subred
Subred 22 Oct
Direccionamiento IP
18/30
Subnetting Ejemplo
• Supongamos que nuestra LAN tiene asignada la red 135.65.0.0 • Queremos separar nuestra red en varias subredes como se ve en la figura
135.65.0.0
22 Oct
Direccionamiento IP
19/30
10
Subnetting Ejemplo
• Supongamos que nuestra LAN tiene asignada la red 135.65.0.0 • Queremos separar nuestra red en varias subredes como se ve en la figura • ¿Cuál es el número mínimo de bits que debe tener el Subnetwork ID si deseo crear 3 subredes?... • Con 2 bits tengo 4 posibles valores del subnetwork ID (00, 01, 10 y 11) pero 2 de ellos están reservados así que solo me quedan 2 (como se ve menos de 2 bits no dejaría ninguno libre) • Con 3 bits tengo 8 posibles valores del subnetwork ID, menos los 2 reservados me deja 6 identificadores de subred diferentes. Este sería el mínimo. • El resto de bits los puedo repartir entre el subnetwork ID y el host ID como quiera: - Cuantos más haya en el subnetwork ID más subredes podré crear en el futuro - Cuantos más haya en el host ID más hosts podré direccionar en cada subred 135.65.0.0
Subred
Subred
Subred 22 Oct
Direccionamiento IP
20/30
Subnetting Ejemplo
• Supongamos que decidimos emplear 4 bits para el subnetwork ID: bit 0
bit 31
1000011101000001
WXYZ
Host ID Host ID
135.65
• Numeramos las subredes con esos 4 bits WXYZ. Por ejemplo empleamos 0001, 0010 y 0011 • La dirección de la red 0001 será: 10000111010000010001000000000000 = 135.65.16.0 • La máscara a emplear por todos los interfaces de la red será: 11111111111111111111000000000000 = 255.255.240.0
• Por ejemplo las direcciones para hosts de la subred 2 irán de la 135.65.32.1 a la 135.65.47.254 y la dirección de broadcast de la subred será 135.65.47.255 135.65.0.0
Subred 2 135.65.16.0
135.65.32.0
Subred 3 135.65.48.0
Subred 1 22 Oct
Direccionamiento IP
21/30
11
Subnetting Ejemplo
• Supongamos la siguiente asignación de direcciones a los interfaces de los routers: • Las tablas de rutas de los routers de la red serán: Router R1
Router R3
Router R2
Red destino
Next-hop
Interfaz
Red destino
Next-hop
Interfaz
Red destino
Next-hop
Interfaz
135.65.16.0 135.65.32.0 135.65.48.0 64.0.0.0 130.14.0.0 (etc...)
135.65.16.2 135.65.16.2 otro router otro router (etc...)
Ethernet 0 Ethernet 0 Ethernet 0 Ethernet 1 Ethernet 1
135.65.16.0 135.65.32.0 135.65.48.0 0.0.0.0
135.65.32.1 135.65.16.1
Ethernet 0 Ethernet 1 Ethernet 1 Ethernet 0
135.65.16.0 135.65.32.0 135.65.48.0 0.0.0.0
135.65.32.2 135.65.32.2
Ethernet 0 Ethernet 0 Ethernet 1 Ethernet 0
135.65.0.0
R3
Subred 2 R1
135.65.16.0
135.65.32.1 135.65.48.1
135.65.32.0
135.65.32.2
Subred 3 135.65.48.0
R2
135.65.16.1
Subred 1
135.65.16.2
22 Oct
Direccionamiento IP
22/30
Subnetting Envío y reenvío de paquetes
• ¿Cómo actúan los hosts?: - Tienen configurado: • Su dirección IP • La máscara de red • La dirección IP que tiene el router de salida de su LAN en el interfaz en la misma • Pueden averiguar el Extended Network ID de su subred aplicando a su dirección IP la máscara con una operación AND de bits. Por ejemplo: IP 129.65.19.54 = Máscara 255.255.255.240 = ExtNetID 129.65.16.0 =
10000001010000010001001100110110 11111111111111111111000000000000 10000001010000010001000000000000
AND
- Dada la IP del destino al que desean enviar un paquete : • Le aplica la máscara de su interfaz • ¿El resultado es igual a mi Extended Network ID? - Sí: está en mi subred, se lo envío directamente (a su MAC) - No: está en otra red o subred, se lo envío al router (a la MAC del router) 22 Oct
Direccionamiento IP
23/30
12
Subnetting Envío y reenvío de paquetes
• ¿Cómo actúan los routers?: - Tienen configurado: • La dirección IP de cada uno de sus interfaces (cada interfaz está en una LAN y por lo tanto tiene una IP de dentro de esa LAN) • Cada interfaz tiene configurada la máscara empleada en la red en la que está conectado • Una tabla de rutas con rutas a subredes de redes a las que esta conectado y tal vez rutas a otras redes
- Sin estado. Toman decisiones para cada paquete. - Si recibe un paquete que no es para ninguna de sus direcciones IP: • Busca en la tabla si hay alguna fila que en el campo Red destino tenga esa dirección IP. ¿Encuentra? - Sí: Es una ruta a ese host en concreto, lo envía según indica la fila - No: Calcula el NetID de la red a la que pertenece esa IP (classful) ¿Tiene algún interfaz en esa red? - No: Ya tiene el identificador de la red destino - Sí: Extrae la mascara de un interfaz que tenga en esa red. La aplica (AND) a la direccion. Ya tiene el identificador de la subred destino Busca ese identificador de red o subred en su tabla de rutas. ¿Lo encuentra? - Sí: Lo envía según indica la fila - No: Busca una ruta por defecto en la tabla de rutas. ¿Encuentra? - Sí: Lo envía según indica la fila - No: No sabe cómo hacer llegar el paquete al destino. Lo descarta.
22 Oct
Direccionamiento IP
24/30
Subnetting Envío y reenvío de paquetes
• Ejemplo 1:
El router R2 tiene un paquete cuya dirección IP destino es 190.65.32.14 Red destino
Next-hop
Interfaz
190.65.0.0 45.0.0.0 64.0.0.0 192.15.24.0 (etc...)
R4 IPiface0 R4 IPiface0 R1 IPiface0 R3 IPiface0 (etc...)
0 0 1 2
- La tabla de rutas de R2 es por ejemplo:
- ¿Tiene una ruta a ese host? - No... El NetID de esa red es 190.65.0.0 (es clase B). ¿Algún interfaz en esa red? - No... Busca ese identificador en la tabla de rutas. ¿Lo encuentra? - Sí... Indica reenviar al router R4, a su interfaz 0 (en la tabla aparecerá su IP). Lo reenvía. - Fin R1
R2 R3
R7
45.0.0.0 255.255.0.0 45.2.0.0
R6
45.1.0.0 190.65.32.0
R8
190.65.48.0
R4
45.3.0.0
R9
R5 190.65.16.0
190.65.0.0 255.255.240.0
45.4.0.0
22 Oct
Direccionamiento IP
25/30
13
Subnetting Envío y reenvío de paquetes
• Ejemplo 2:
El router R4 tiene un paquete cuya dirección IP destino es 190.65.32.14 Red destino
- La tabla de rutas de R4 es por ejemplo: - ¿Tiene una ruta a ese host? - No... El NetID de esa red es 190.65.0.0 (es clase B). ¿Algún interfaz en esa red? - Sí... Máscara 255.255.240.0 luego el ExtNetID es 190.65.32.0 Busca ese identificador en la tabla de rutas. ¿Lo encuentra? - Sí... Indica reenviar al router R5, a su interfaz 0 (en la tabla aparecerá su IP). Lo envía a su dirección MAC - Fin
190.65.16.0 190.65.32.0 190.65.48.0 64.0.0.0 45.1.0.0 45.2.0.0 45.3.0.0 45.4.0.0 0.0.0.0
Next-hop
R5 R5 R2 R7 R9 R2
Interfaz
IPiface0 IPiface0 IPiface0 IPiface0 IPiface0 IPiface0
0 0 0 1 2 2 2 3 1
R1 R2 R3
R7
45.0.0.0 255.255.0.0 45.2.0.0
R6
45.1.0.0 190.65.32.0
R8
190.65.48.0
R4
45.3.0.0
R5 190.65.16.0
190.65.0.0 255.255.240.0
R9 45.4.0.0
22 Oct
Direccionamiento IP
26/30
Subnetting Envío y reenvío de paquetes
• Ejemplo 3:
El router R5 tiene un paquete cuya dirección IP destino es 190.65.32.14
- La tabla de rutas de R5 es por ejemplo: - ¿Tiene una ruta a ese host? - No... El NetID de esa red es 190.65.0.0 (es clase B). ¿Algún interfaz en esa red? - Si... Máscara 255.255.240.0 luego el ExtNetID es 190.65.32.0 Busca ese identificador en la tabla de rutas. ¿Lo encuentra? - Sí... Indica enviar directamente al host destino (si es una Ethernet hará un ARP para averiguar la MAC y se lo enviará) - Fin
Red destino
Next-hop
Interfaz
190.65.16.0 190.65.32.0 190.65.48.0 0.0.0.0
R6 IPiface0 R4 IPiface0
0 1 1 0
R1 R2 R3
R7
45.0.0.0 255.255.0.0 45.2.0.0
R6
45.1.0.0 190.65.32.0
R8
190.65.48.0
R4
45.3.0.0
R9
R5 190.65.16.0
190.65.0.0 255.255.240.0
45.4.0.0
22 Oct
Direccionamiento IP
27/30
14
Subnetting Envío y reenvío de paquetes
• Ejemplo 4:
El router R8 tiene un paquete cuya dirección IP destino es 201.234.14.56
- La tabla de rutas de R8 es por ejemplo: - ¿Tiene una ruta a ese host? - No... El NetID de esa red es 201.234.14.0 (es clase C). ¿Algún interfaz en esa red? - No... Busca ese identificador en la tabla de rutas. ¿Lo encuentra? - No... Busca una ruta por defecto en la tabla de rutas. ¿Encuentra? - Sí. Lo envía a la MAC del interfaz 1 del router R9 - Fin
Red destino
Next-hop
Interfaz
45.1.0.0 45.2.0.0 45.3.0.0 45.4.0.0 0.0.0.0
R7 IPiface1 R9 IPiface1 R9 IPiface1
0 0 1 1 1
R1 R2 R3
R7
45.0.0.0 255.255.0.0 45.2.0.0
R6
45.1.0.0 193.65.32.0
R8
193.65.48.0
R4
45.3.0.0
R5 193.65.16.0
R9
193.65.0.0 255.255.240.0
45.4.0.0
22 Oct
Direccionamiento IP
28/30
Resumen hasta ahora • El direccionamiento classful ofrece 3 tipos de redes de diferente tamaño • Subnetting nos permite introducir routers dentro de una red y dividirla en subredes • Desde el exterior de la red no se sabe si hay subredes o no (compatible hacia atrás, como si no hubiera habido cambios) • Una vez escogida la máscara queda fijada para toda la red 22 Oct
Direccionamiento IP
29/30
15
Próximo día VLSM Supernetting CIDR
22 Oct
Direccionamiento IP
30/30
16