# 9-Enrutamiento IP.

## Introducción.

IP se encarga de llevar cada paquete hasta su red. Una vez llegado a la red. IP suopone que:

- La red de difusión (bus), con la cual llega a su destino.
- La entrada a la red es un router que conoce las subredes dentro de la red, con lo que se sigue enrutando el paquete.

## Pathping en Windows.

## Mtr en Linux.

## Cómo enruta IP.

Hace falta los siguientes datos para enrutar un paquete IP:

- La dirección de destino del paquete.
- La red a la que pertenece la dirección de destino.
- La interfaz de red donde se alcanza la red de destino.
- La dirección del router que nos ayuda a alcanzar el destino.

## IP vs MAC.

Un host con IP recibe y procesa paquetes tanto con su propia dirección IP como la de otros:

- Ethernet ( o el protocolo usado en la capa de enlace ) pasa a IP todos los paquetes que llegan con su dirección MAC.
- IP pasa hacia arriba los apquetes con la dirección IP propia.
- IP enruta (envia) los paquetes no dirigidos a su propia dirección IP.

Por tanto, para que funcione IP tiene que ser posible enviar paquetes IP a otros host aunque no sea el indicado en la dirección IP destino.

- Se hace usando las direcciones MAC o físicas del otro host.
- La unión entre direcciones MAC y físicas es el protocolo ARP.

## Red IP vs Red Ethernet.

IP trabaja sobre la capa de enlace sin conocer sus detalles, ni siquiera conoce la topología física. Un enlace físico pordía tener más de una dirección IP.
como consecuencia, pueden haber más de una red IP encima de la misma red Ethernet, por interés administrativo o de seguridad.

## Tablas de enrutamiento.

Cada host con IP debe tener onfiguradas sus tablas de enrutamiento, existen tablas de enrutamiento en Windows, Linux /Unix Y MAC OS, sin embargo, se estudiaran los dos primeros SO.
Se maneja con el comando route.

### Filas y columnas.

Cada fila de la tabla es una regla.
Tiene información de como llegar a una red o host.
cada columna es el nombre de la información.
Destino, máscara, etc.

#### Descripción de columnas.

- Destino: IP(host o red) con el que se comparará la dirección de destino de los paquetes a enrutar.
- Máscara: Máscara que se aplica a la dirección de destino del paquete IP.
  - Para saber si una entradaes utilizable por una IP destino, se aplica la máscara sonre la IP destino del paquete y se comprueba si coincide con la IP destino de la entrada.
- Puerta de enlace: Dirección IP del siguiente enrutador,si se utiliza esta entrada.
- Interfaz:Enlace del host local por el que saldrá el paquete si se utiliza esta entrada.
- Métrica: Si es posible usar más de una entrada, se usará preferiblemente la entrada con menor métrica.

### Windows - Route.

#### Modificar las tablas en Windows.

Añadir una ruta para la red 10.1.0.0/16 usando la interfaz 2, con métrica 1. Se envía al router 10.1.0.1.

> `ROUTE ADD 10.1.0.0 MASK 255.255.0.0 10.1.0.1 METRIC 1 IP 2`

La métrica y la interfaz son opcionales e internet puede especificarse como 0.0.0.0

#### Activar el enrutamiento.

Hay varios métodos, peor toos acaban cambiando la entrada de registro: `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IpEnableRouter` Debe estar a 1. Seguidamente reiniciamos el sistema.

### Linux - Route.

#### Modificar las tablas en Linux.

Añadir una ruta para la red 10.1.0.0/16 usando la interfaz 2, con métrica 1. Se envía al router 10.1.0.1.

> `sudo route add -net 10.1.0.0 netmask 255.255.0.0 gw 10.1.0.1 metric 1 dev eth0`

La métrica y la interfaz son opcionales e internet puede especificarse como 0.0.0.0 o como default.

#### Activar el enrutamiento.

El ip forwarding es el parámetro de kernel. Se puede comprobar su estado con sysctl net.ipv4.ip_forward.
Se puede activar con sysctl -w net.ipv4.ip_forward=1, para qe se active en el siguiente inicio se debe cambiar el fichero /etc/sysctl.conf `net.ipv4.ip_forward=1`