Ripv 3
Ripv 3
Ripv 3
Resumen
Agradecimientos
Este documento es una versión modificada de RFC 1058 , escrita por Chuck Hedrick [ 1
]. Las modificaciones reflejan las mejoras de RIP-2 e IPv6, pero la redacción original
es suya.
Nos gustaría agradecer a Dennis Ferguson y Thomas Narten por sus comentarios.
Tabla de contenido
1 . Introducción . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1 Fundamentos teóricos. . . . . . . . . . . . . . . . . 3
1.2 Limitaciones del Protocolo. . . . . . . . . . . . . . . . 3
2 . Especificación de protocolo. . . . . . . . . . . . . . . . . 4
2.1 Formato del mensaje. . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 Próximo salto. . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Consideraciones de direccionamiento. . . . . . . . . . . . . . . . . 8
2.3 Temporizadores. . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Procesamiento de entrada. . . . . . . . . . . . . . . . . . . . . . 10
2.4.1 Mensajes de solicitud. . . . . . . . . . . . . . . . . . . . . 10
2.4.2 Mensajes de respuesta. . . . . . . . . . . . . . . . . . . . 11
1 . Introducción
En una red internacional, como Internet, es muy improbable que se use un solo
protocolo de enrutamiento para toda la red. Por el contrario, la red se organizará como
una colección de Sistemas autónomos (AS), cada uno de los cuales, en general, será
administrado por una sola entidad. Cada AS tendrá su propia ruta tecnología, que puede
diferir entre los AS. El protocolo de enrutamiento utilizado
dentro de un AS se conoce como Protocolo de puerta de enlace interior (IGP). Un se
usa un protocolo separado, llamado Protocolo de puerta de enlace exterior (EGP) para
transferir información de enrutamiento entre los AS.
RIPng fue diseñado para trabajar como IGP en AS de tamaño moderado. No es para uso en
ambientes mas complejos. Para obtener información sobre el contexto en qué versión RIP
1 (RIP-1) se espera que se ajuste, ver Braden y Postel
[ 6 ]
Protocolo de información, con direcciones XNS reemplazadas por una más general
formato de dirección capaz de manejar IPv4 y otros tipos de dirección,
y con actualizaciones de enrutamiento limitadas a una cada 30 segundos. Porque
esta similitud, el término Protocolo de información de enrutamiento (o simplemente
RIP)
se utiliza para referirse tanto al protocolo XNS como al protocolo utilizado por
enrutado
2 . Especificación de protocolo
RIPng está diseñado para permitir que los enrutadores intercambien información por
rutas de computación a través de una red basada en IPv6. RIPng es un protocolo de
distancia vectorial, como se describe en [ 1 ]. RIPng debe implementarse solo en
enrutadores; IPv6 proporciona otros mecanismos para el descubrimiento de enrutadores
[ 10 ] Se supone que cualquier enrutador que use RIPng tiene interfaces para una o
más redes, de lo contrario no es realmente un enrutador. Estos son referido como sus
redes conectadas directamente. El protocolo se basa sobre el acceso a cierta
información sobre cada una de estas redes.
El más importante de los cuales es su métrica. La métrica RIPng de una red es un
entero entre 1 y 15, inclusive. Se establece de alguna manera no especificado en este
protocolo; sin embargo, dado el límite máximo de ruta de 15, generalmente se usa un
valor de 1. Las implementaciones deberían permitir al administrador del sistema para
establecer la métrica de cada red.
Además de la métrica, cada red tendrá un destino IPv6 prefijo de dirección y
longitud del prefijo asociado a él. Estos deben ser
establecido por el administrador del sistema de una manera no especificada en este
protocolo.
Se supone que cada enrutador que implementa RIPng tiene una tabla de enrutamiento.
Esta tabla tiene una entrada para cada destino accesible
en todo el sistema operando RIPng. Cada entrada contiene al menos
la siguiente información:
- Varios temporizadores asociados con la ruta. Vea la sección 2.3 para más detalles
sobre temporizadores.
Las entradas para las redes conectadas directamente son configuradas por enrutador
utilizando la información recopilada por medios no especificados en este protocolo. La
métrica para una red conectada directamente se establece en costo de esa red. Como se
mencionó, 1 es el costo habitual. En eso caso, la métrica RIPng se reduce a un simple
conteo de saltos. Mas complejo las métricas se pueden usar cuando es deseable mostrar
preferencia por algunos
redes sobre otras (por ejemplo, para indicar diferencias en el ancho de banda o
confiabilidad).
Los implementadores también pueden optar por permitir que el administrador del
sistema ingrese rutas adicionales. Lo más probable es que sean rutas a hosts o redes
fuera del alcance del sistema de enrutamiento. Son referido como "rutas estáticas".
Entradas para destinos que no sean estos iniciales son añadidos y actualizados por los
algoritmos descritos en las siguientes secciones.
RIPng es un protocolo basado en UDP. Cada enrutador que usa RIPng tiene un proceso
de enrutamiento que envía y recibe datagramas en el número de puerto UDP 521, el puerto
RIPng. Todas las comunicaciones destinadas a otro
El proceso RIPng del enrutador se envía al puerto RIPng. Todo el enrutamiento Los
mensajes de actualización se envían desde el puerto RIPng. Enrutamiento no solicitado
los mensajes de actualización tienen tanto el puerto de origen como el de destino igual
a El puerto RIPng.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| command (1) | version (1) | must be zero (2) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Route Table Entry 1 (20) ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ ... ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Route Table Entry N (20) ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ IPv6 prefix (16) ~
| |
+---------------------------------------------------------------+
| route tag (2) | prefix len (1)| metric (1) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Los tamaños de campo se dan en octetos. A menos que se especifique lo contrario, los
campos contienen enteros binarios, en orden de bytes de red, con la mayoría octeto
significativo primero (big-endian). Cada marca representa uno poco.
El campo de etiqueta de ruta es un atributo asignado a una ruta que debe ser
conservado y revertido con una ruta. El uso previsto de la
la etiqueta de ruta es proporcionar un método para separar RIPng "interno" rutas
(rutas para redes dentro del dominio de enrutamiento RIPng) desde rutas RIPng
"externas", que pueden haberse importado de un EGP u otro IGP
Los enrutadores que admiten protocolos distintos de RIPng deben ser configurables para
permitir que la etiqueta de ruta se configure para rutas importadas de diferentes
fuentes
Por ejemplo, las rutas importadas desde un EGP deberían poder tener su etiqueta de ruta
establecida en un valor arbitrario, o al menos al número del Sistema Autónomo desde el
cual las rutas fueron aprendidas
Otros usos de la etiqueta de ruta son válidos, siempre que todos los enrutadores El
dominio RIPng lo usa constantemente.
El tamaño máximo del datagrama está limitado por la MTU del medio sobre cuál es el
protocolo que se está utilizando. Desde una actualización RIPng no solicitada nunca se
propaga a través de un enrutador, no hay peligro de una MTU discordancia. La
determinación del número de RTE que se pueden poner en un mensaje dado es una función
de la MTU del medio, el número de octetos de información de encabezado que preceden al
mensaje RIPng, el tamaño del encabezado RIPng y el tamaño de un RTE. La formula es:
+- -+
| MTU - sizeof(IPv6_hdrs) - UDP_hdrlen - RIPng_hdrlen |
#RTEs = INT | --------------------------------------------------- |
| RTE_size |
+- -+
Un RTE del siguiente salto se identifica por un valor de 0xFF en el campo métrico
de un RTE. El campo de prefijo especifica la dirección IPv6 del siguiente salto.
La etiqueta de ruta y la longitud del prefijo en el RTE del siguiente salto se debe
establecer a cero en el envío e ignorarse en la recepción.
La entrada de tabla de ruta (RTE) del siguiente salto tiene el siguiente formato:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ IPv6 next hop address (16) ~
| |
+---------------------------------------------------------------+
| must be zero (2) |must be zero(1)| 0xFF |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
El propósito del próximo salto RTE es eliminar los paquetes que se enrutan
a través de saltos adicionales en el sistema. Es particularmente útil cuando
RIPng no se ejecuta en todos los enrutadores de una red. Tenga en cuenta que
El siguiente salto RTE es "asesor". Es decir, si la información proporcionada es
ignorada, una ruta posiblemente subóptima, pero absolutamente válida, puede ser
tomado. Si la dirección de siguiente salto recibida no es una dirección local de
enlace debe tratarse como 0: 0: 0: 0: 0: 0: 0: 0.
La distinción entre red, subred y rutas de host no necesitan ser hechos para RIPng
porque un prefijo de dirección IPv6 no es ambiguo.
Cualquier prefijo con una longitud de prefijo de cero se utiliza para designar un
Ruta por defecto. Se sugiere que el prefijo 0: 0: 0: 0: 0: 0: 0: 0 sea usado al
especificar la ruta predeterminada, aunque el prefijo es esencialmente ignorado. Se
utiliza una ruta predeterminada cuando no es conveniente enumerar todas las redes
posibles en las actualizaciones de RIPng, y cuando uno o más enrutadores del sistema
están preparados para manejar el tráfico a las redes que no están explícitamente
enumeradas. Estos "predeterminados enrutadores "usan la ruta predeterminada como ruta
para todos los datagramas para los cuales no tienen una ruta explícita.
La decisión de cómo se convierte un enrutador en un enrutador predeterminado (es decir,
cómo se crea una entrada de ruta predeterminada) se deja al implementador.
En general, el administrador del sistema será provisto de una forma de especificar qué
enrutadores deben crear y anunciar entradas de ruta predeterminadas. Si se utiliza este
mecanismo, la implementación debe permitir al administrador de la red elegir la métrica
asociada con el anuncio de ruta predeterminado.
Esto permitirá establecer una precedencia entre múltiples rutas predeterminadas
Las entradas de ruta predeterminadas son manejadas por RIPng exactamente de la misma
manera que cualquier otro prefijo de destino.
Los administradores de sistema deben asegurarse de que las rutas predeterminadas no se
propaguen más allá de lo previsto. En general, cada AS tiene su propio enrutador
predeterminado preferido. Por lo tanto, las rutas predeterminadas deberían generalmente
no salir del límite de un AS. Los mecanismos para hacer cumplir esta restricción no se
especifican en este documento.
2.3 Temporizadores
Esta sección describe todos los eventos que son activados por temporizadores.
El tiempo de espera se inicializa cuando se establece una ruta y cada vez que se
recibe un mensaje de actualización para la ruta.
Si transcurren 180 segundos desde la última vez que se inicializó el tiempo de espera,
la ruta se considera que ha expirado y el proceso de eliminación descrito a
continuación comienza para esa ruta esa ruta.
Las eliminaciones pueden ocurrir por una de dos razones: el tiempo de espera caduca o
la métrica se establece en 16 debido a una actualización recibida del enrutador actual
(consulte la sección 2.4.2 para una discusión sobre el procesamiento actualizaciones de
otros enrutadores). En cualquier caso, suceden los siguientes eventos:
Para cada entrada, busque el destino en la base de datos del enrutador y, si hay una
ruta, coloque la métrica de esa ruta en el campo métrico del RTE. Si no hay una ruta
explícita al destino especificado, poner infinito en el campo métrico. Una vez que
todas las entradas se han completado, cambie el comando de Solicitud a Respuesta y
envíe el datagrama de vuelta al solicitante.
Tenga en cuenta que existe una diferencia en el manejo de métricas para solicitudes de
tabla completa. Si la solicitud es para un enrutamiento de tabla completa, se realiza
el procesamiento de salida normal, incluido Split Horizon (ver sección 2.6 en Split
Horizon). Si la solicitud es para entradas específicas, se buscan en la tabla de
enrutamiento y la información se devuelve como es; no se realiza el procesamiento de
Split Horizon. La razón para esta distinción es la expectativa de que estas solicitudes
probablemente que se utilice para diferentes propósitos. Cuando un enrutador llega por
primera vez, realiza una solicitud de multidifusión en cada red conectada que solicita
una tabla de enrutamiento completa. Se supone que estas tablas de rutas completas se
utilizarán para actualizar la tabla de enrutamiento del solicitante.
Por esta razón, Split Horizon debe hacerse. Se supone además que la solicitud de redes
específicas se realiza solo mediante software de diagnóstico, y no se usa para
enrutamiento. En este caso, el solicitante querría saber el contenido exacto de la
tabla de enrutamiento y no desearía cualquier información oculta o modificada.
Una vez que el datagrama en su conjunto ha sido validado, procese los RTE en la
respuesta uno por uno. Nuevamente, comience haciendo validación. Las métricas
incorrectas y otros errores de formato generalmente indican mal comportamientos vecinos
y probablemente debería ser llevado a la atención del administrador, Por ejemplo, si la
métrica es mayor que infinito, ignore la entrada, pero registre el evento. Las pruebas
de validación básica son:
- Configure la dirección del siguiente salto para que sea la dirección del enrutador
del que proviene el datagrama o la dirección del siguiente salto especificada por un
RTE del siguiente salto.
- Señale el proceso de salida para activar una actualización (consulte la sección 2.5).
Si hay una ruta existente, compare la dirección del próximo salto con la dirección del
enrutador del que proviene el datagrama. Si este datagrama es del mismo enrutador que
la ruta existente, reinicialice el tiempo de espera. Luego, compara las métricas. Si el
datagrama es del mismo enrutador que la ruta existente, y la nueva métrica es diferente
que el viejo; o, si la nueva métrica es más baja que la anterior; hacer las siguientes
acciones:
Esta sección describe el procesamiento utilizado para crear mensajes de respuesta que
contienen todo o parte de la tabla de enrutamiento. Este procesamiento se puede activar
de cualquiera de las siguientes maneras:
- Por actualizaciones activadas. Cada vez que se cambia la métrica de una ruta, se
activa una actualización.
Cuando se debe enviar una Respuesta a todos los vecinos (es decir, un mensaje regular o
actualización activada), un mensaje de respuesta es multidifusión al grupo de
multidifusión FF02 :: 9, el grupo de multidifusión all-rip-routers, en todos las redes
conectadas que admiten transmisión o son enlaces punto a punto. RIPng maneja enlaces
punto a punto al igual que los enlaces de multidifusión como la multidifusión se puede
proporcionar trivialmente en dichos enlaces. Por lo tanto, se prepara una respuesta
para cada red conectada directamente y se envía al grupo de multidifusión de todos los
enrutadores. En la mayoría de los casos, esto llega a todos los enrutadores vecinos.
Sin embargo, hay algunos casos en los que esto puede no ser lo suficientemente bueno.
Esto puede involucrar una red que no es red de transmisión (por ejemplo, ARPANET), o
una situación que involucra tontos enrutadores.
En tales casos, puede ser necesario especificar una lista de enrutadores vecinos y
enviar un datagrama a cada uno explícitamente. Se deja al implementador determinar si
se necesita un mecanismo y definir cómo se especifica la lista.
Esta sección describe cómo se genera un mensaje de respuesta para una red particular
conectada directamente:
La dirección de origen de IPv6 debe ser una dirección de enlace de las posibles
direcciones de la interfaz del enrutador emisor, excepto cuando se responde a un
mensaje de solicitud de unidifusión desde un puerto que no sea el puerto RIPng. En este
último caso, la dirección de origen debe ser una dirección válida globalmente.
En el primer caso, es importante usar una dirección local de enlace porque la dirección
de origen se coloca en tablas de enrutamiento (como el siguiente salto) en los
enrutadores que reciben esta respuesta.
Si se utiliza una dirección de origen incorrecta, es posible que otros enrutadores no
puedan enrutar datagramas.
A veces, los enrutadores se configuran con varias direcciones IPv6 en una sola interfaz
física. Normalmente, esto significa que varias redes lógicas IPv6 se transportan a
través de un medio físico. Eso posible que un enrutador tenga múltiples direcciones
locales de enlace para una sola interfaz. En este caso, el enrutador solo debe originar
un mensaje de respuesta único con una dirección de origen de la dirección local de
enlace designada para una interfaz determinada.
La elección de qué dirección local de enlace usar solo debe cambiar cuando la opción
actual ya no sea válida.
Esto es necesario porque los nodos que reciben los mensajes de respuesta usan la
dirección de origen para identificar al remitente.
Si varios paquetes del mismo enrutador contienen diferentes direcciones de origen, los
nodos supondrán que provienen de diferentes enrutadores, lo que lleva a comportamiento
indeseable.
Split Horizon con Poisoned Reverse (más simplemente, Poison Reverse) incluye tales
rutas en las actualizaciones, pero establece sus métricas en infinito. En efecto,
anunciando el hecho de que no hay rutas accesibles. Este es el método preferido de
operación; sin embargo, las implementaciones deben proporcionar un control por interfaz
que no permita la selección de horizontes, horizontes divididos ni reversiones
envenenadas.
Para una discusión teórica de Split Horizon y Poison Reverse, y por qué son necesarios,
consulte la sección 2.1.1 de [ 1 ].
3 . Funciones de control
Esta sección describe los controles administrativos. Estos no son parte del protocolo
en sí; sin embargo, experiencia con redes existente sugiere que son importantes. Porque
no son necesariamente parte del protocolo, se consideran opcionales. Sin embargo, es
recomendable encarecidamente que al menos algunos de ellos se incluyan en cada
implementación. Estos controles están destinados principalmente a permitir RIPng estar
conectado a redes cuyo enrutamiento puede ser inestable o sujeto a los errores.
Aquí hay unos ejemplos:
- Varios sitios limitan el conjunto de redes que permiten en los mensajes de respuesta.
La organización A puede tener una conexión con la organización B que utilizan para la
comunicación directa. Por seguridad o razones de rendimiento, es posible que A no esté
dispuesto a dar a otras organizaciones acceso a esa conexión. En tal caso, A debería no
incluir las redes de B en las actualizaciones que A envía a terceros.
Aquí hay algunos controles típicos. Tenga en cuenta, sin embargo, que el RIPng el
protocolo no requiere estos u otros controles.
- Una lista de vecinos que permite al administrador de la red poder para definir una
lista de vecinos para cada enrutador. Un enrutador aceptar mensajes de respuesta solo
de enrutadores en su lista de vecinos. Una lista similar para los enrutadores de
destino también debe ser disponible para el administrador. Por defecto, no hay
restricciones definidas.
4 . Consideraciones de Seguridad
Referencias
[ 1 ] Hedrick, C., "Protocolo de información de enrutamiento", RFC 1058 , Rutgers
Universidad, junio de 1988.