Esquemas de enrutamiento
|
---|
|
|
|
|
|
|
El enrutamiento es el proceso de determinar la ruta de datos óptima en las redes de comunicación.
Las rutas pueden establecerse administrativamente ( rutas estáticas ) o calcularse mediante algoritmos de enrutamiento , en función de la información sobre la topología y el estado de la red obtenida mediante protocolos de enrutamiento (rutas dinámicas).
Las rutas estáticas pueden ser:
El enrutamiento en redes informáticas se realiza mediante enrutadores de software y hardware especiales ; en configuraciones simples, también puede ser ejecutado por computadoras de uso general configuradas en consecuencia.
El protocolo de enrutamiento solo puede funcionar con paquetes que pertenecen a uno de los protocolos enrutados, como IP , IPX o Xerox Network System , AppleTalk . Los protocolos enrutados definen el formato de los paquetes (encabezados), cuya información más importante para el enrutamiento es la dirección de destino. Los protocolos que no admiten el enrutamiento se pueden transferir entre redes mediante túneles . Tales capacidades generalmente las proporcionan los enrutadores de software y algunos modelos de enrutadores de hardware.
Los primeros enrutadores eran un software especializado que manejaba los paquetes IP entrantes de una manera específica. Este software se ejecutaba en computadoras que tenían múltiples interfaces de red que formaban parte de diferentes redes (enrutamiento entre ellas). Más tarde, aparecieron los enrutadores en forma de dispositivos especializados. Las computadoras con software de enrutamiento se denominan enrutadores de software, enrutadores de equipo- hardware .
En los enrutadores de hardware modernos, se usa software especializado ("firmware") para construir tablas de enrutamiento, mientras que el procesamiento de paquetes IP usa una matriz de conmutación (u otra tecnología de conmutación de hardware), ampliada con filtros de dirección en el encabezado del paquete IP.
Hay dos tipos de enrutamiento de hardware: con plantillas de flujo estático y con tablas dinámicamente adaptables [1] .
Las plantillas estáticas implican la división de todos los paquetes IP que ingresan al enrutador en flujos virtuales; cada flujo se caracteriza por un conjunto de características para el paquete, tales como: direcciones IP del remitente/receptor , puerto TCP/UDP del remitente/receptor (si se admite el enrutamiento basado en información de capa 4), puerto a través del cual llegó el paquete [1] .
En este caso, la optimización de enrutamiento se basa en la idea de que todos los paquetes con las mismas características deben procesarse de la misma manera (de acuerdo con las mismas reglas), mientras que las características se verifican solo para el primer paquete en el flujo (cuando un paquete aparece con un conjunto de características que no encajan en los flujos existentes, se crea un nuevo flujo), según los resultados del análisis de este paquete, se forma una plantilla estática, que se utiliza para determinar las reglas para cambiar los paquetes entrantes ( dentro del flujo). Por lo general, una plantilla no utilizada se almacena durante un tiempo limitado (para liberar recursos del enrutador). La desventaja clave de tal esquema es la inercia con respecto a cambiar la tabla de enrutamiento (en el caso de un flujo existente, un cambio en las reglas de enrutamiento de paquetes no se “notará” hasta que se elimine la plantilla) [1] .
Las tablas dinámicamente adaptables usan reglas de enrutamiento "directamente", usando la máscara y el número de red de la tabla de enrutamiento para validar el paquete y determinar el puerto en el que se debe reenviar el paquete. Al mismo tiempo, los cambios en la tabla de enrutamiento (como resultado, por ejemplo, de los protocolos de enrutamiento/reserva) afectan inmediatamente el procesamiento de todos los paquetes recién llegados. Las tablas dinámicamente adaptables también facilitan la implementación de una verificación rápida (hardware) de las listas de acceso [1] .
El enrutamiento de software se realiza mediante software de enrutador especializado (en el caso de que no se puedan usar métodos de hardware, por ejemplo, en el caso de tunelización ), o mediante software de computadora. En general, cualquier computadora enruta sus propios paquetes salientes (al menos para separar los paquetes enviados a la puerta de enlace predeterminada y los paquetes destinados a los hosts en el segmento de la red local). Para enrutar los paquetes IP de otras personas , así como para crear tablas de enrutamiento, se utilizan varios programas:
El enrutamiento de Internet se basa en los protocolos TCP/IP .
La información se transmite mediante paquetes IP , el encabezado de cada paquete IP contiene las direcciones IP del destinatario y el remitente del paquete. Cada paquete es procesado por el enrutador de acuerdo con su tabla de enrutamiento . La tabla, a su vez, contiene información sobre la computadora con qué dirección enviar paquetes con uno u otro rango de direcciones. Por ejemplo, todos los paquetes en un determinado rango se pueden dirigir a otro enrutador que sea "responsable" de este segmento.
En algunos casos, el enrutador puede transformar el encabezado del paquete, reemplazando las direcciones del remitente y/o destinatario del paquete. En particular, esto sucede cuando una red local (que tiene sus propias direcciones) interactúa con la Internet global. En este caso, la red local se puede ver desde el exterior mediante una sola dirección IP global. Para que el enrutador reenvíe paquetes con una dirección global a ciertos destinatarios en la red local, se utiliza la tabla NAT , donde, además de las direcciones IP, se indican los puertos que identifican las aplicaciones que establecen una conexión. En este caso, los números de puerto no se indican en el encabezado del paquete IP, sino en el encabezado del segmento TCP o UDP (los segmentos se encapsulan en el campo de datos de los paquetes IP). Esto permite la identificación uno a uno del destinatario y el remitente en los casos en que hay muchas computadoras en redes locales detrás de una dirección global. Ejemplo de tabla NAT [2] :
Dirección mundial | Dirección local |
---|---|
209.165.200.226:1444 | 192.168.1.15:1444 |
209.165.200.226:1445 | 192.168.1.26:1444 |