rfc 1027 traducción al chino
Solicitud de comentarios: 1027 Texas Internet Consultant
John Quarterman
Texas Internet Consultant
Octubre de 1987
Implementación de una puerta de enlace de subred transparente utilizando el protocolo ARP
Estado de esta nota
Este es el Protocolo de resolución de direcciones Ethernet (ARP) como una subred como se describe en la RFC El uso de una puerta de enlace, que utiliza tecnología "proxy ARP", permite que los hosts conectados a una subred se comuniquen sin saber que la subred existe
[6]. Se basa en
RFC-950 [ 1 ], RFC-922 [ 2 ] y RFC-826 [ 3 ], y es un receptor del subconjunto limitado RFC-925 [ 4 ]. La distribución de esta nota
es ilimitada.
Agradecimientos
El trabajo descrito en esta nota fue realizado por el autor,
que trabaja en el Departamento de Ciencias de la Computación de la Universidad de Texas en Austin. .
Introducción
El propósito de esta nota es describir en detalle la implementación de
subredes transparentes utilizando la tecnología de puerta de enlace del protocolo ARP utilizando Proxy ARP.
El objetivo es hacer que esta tecnología de archivos esté ampliamente disponible.
1.
La red Ethernet de la Universidad de Texas en Austin es una gran instalación
que conecta diez edificios. Actualmente conecta
más de 100 hosts [ 5 ].
El tamaño y el rendimiento de Ethernet prohíben la conexión
y el uso de repetidores.
El uso de subredes proporciona una de las opciones más atractivas para segregar diferentes unidades en redes más pequeñas
.
La subred de Internet como se describe en RFC-950
sirve para este propósito.
Desafortunadamente, muchos proveedores
no implementan la división en subredes, lo que hace que esta modificación no sea práctica.
En más de la mitad de las redes locales, los hosts se ejecutan en 12 sistemas operativos diferentes
.
Carl Mitchell y Quartermain [página 1]
?
Protocolo ARP RFC 1027 y puerta de enlace de subred transparente Octubre de 1987
Por lo tanto, Es ideal para obtener el fazo de la subred del host
. Dado que todas las LAN admiten el protocolo ARP, elegimos un enfoque basado en el protocolo ARP (a menudo llamado "proxy ARP" o "craqueo del protocolo de resolución de direcciones"). En esta nota, la "subredes" se utiliza sólo bajo el supuesto de "método de subredes compatible con RFC-950"
2. Diseño
2.1 Método básico
En una red que admite el protocolo ARP, el host A (origen) envía una dirección IP al host B (destino). )
La dirección de red correspondiente a la dirección difundida
La solicitud ARP reconocerá la dirección IP
como su propia dirección y enviará la resolución de la dirección del mismo nivel. respuesta de protocolo. Si el Host A y el Host B están en redes físicas diferentes, el Host B no
recibirá la solicitud de transmisión ARP del Host A y no podrá responder
a ella.
Sin embargo, si el host A en la red física se conecta al host B en la red física de la puerta de enlace, la puerta de enlace verá la respuesta a la solicitud ARP del host: asumiendo que el número de subred es el mismo que el físico. Correspondiente a la red, la puerta de enlace También puede determinar que el host solicitante y el host que envía la solicitud están ubicados en diferentes redes físicas. De esta manera, la puerta de enlace puede comunicarse con el host B
e indicar que la dirección de red del host B es la dirección de la puerta de enlace
en sí. El host A verá esta respuesta almacenada en caché junto con futuras transmisiones IP desde el host B a los paquetes de la puerta de enlace
. La puerta de enlace enviará estos
paquetes al mecanismo de enrutamiento IP normal del Host B. La puerta de enlace
es un proxy para el Host B, por lo que esta técnica
se llama "proxy ARP" mencionaremos que esta es una subred transparente
Puerta de enlace; o puerta de enlace de subred ARP.
Cuando el Host B responde al tráfico del Host A, el mismo algoritmo
ocurre a la inversa: la puerta de enlace se conecta a la red del Host B
y responde a las solicitudes del Host las direcciones de red del host A y del host B
y luego envía el paquete IP del host A a la puerta de enlace. Red física
El host A y el host B no tienen que estar conectados a la misma puerta de enlace.
Siempre y cuando la puerta de enlace pueda utilizar la red.
Con este enfoque, todo el procesamiento de subred del protocolo ARP se produce dentro de la puerta de enlace de subred del protocolo ARP.
. No se requieren cambios en el protocolo ARP normal ni en el enrutamiento
de los hosts de origen y destino. Desde la perspectiva del host
, parece que la subred no existe, ni tampoco su red personal
sólo una gran red IP. Si el host tiene una subred de ejecución
, su máscara de red debe configurarse para incluir solo las personas de la red IP
y no los bits de subred para que el sistema funcione correctamente.
Carl Mitchell y Quarterman [página 2]
?
Protocolo ARP RFC 1027 y puerta de enlace de subred transparente Octubre de 1987
2.2 Enrutamiento
Subredes Como parte de la implementación, se espera que el contenido de esta
tabla de enrutamiento incluya números de red, incluidas
subredes simultáneas del número de red IP. y bits, y la máscara de subred
indicada. Cuando ve una solicitud ARP,
la puerta de enlace de subred del protocolo ARP puede determinar si se conoce la ruta
buscando la tabla de enrutamiento maestra del host de destino. Si se han descartado previamente los intentos de acceder a redes IP externas
(consulte la prueba de sonido a continuación
), entonces solo las solicitudes para manejar la red IP local
Logre esto meta. Suponemos que lo mismo se aplica a las redes IP con la misma máscara de red para cada subred
. Máscara de la red
Las solicitudes ARP que llegan a la interfaz de red se pueden aplicar
a la dirección IP de la parte de destino de la red de producción, cuya dirección IP se buscará en el tabla de enrutamiento.
En 4.3BSD (y posiblemente en otros sistemas operativos), es posible utilizar la ruta predeterminada
. Esta ruta predeterminada especifica una dirección que se propone cuando se envía un paquete
y no se encuentra ninguna otra ruta. La ruta predeterminada nunca debe usarse al verificar el protocolo ARP del host de destino
ruta solicitada
. Si se utiliza la ruta predeterminada, la comprobación siempre tendrá éxito.
Sin embargo, es poco probable que la ruta predeterminada especificada por el host
conozca la ruta de la subred (ya que suele ser la puerta de enlace de Internet),
por lo que los paquetes enviados a ella pueden perderse.
Este método de búsqueda de ruta de caso especial es el único cambio de implementación que requiere el mecanismo de enrutamiento
.
Si se recibe una solicitud en una interfaz de red con el mismo destino
pasada por estas rutas,
la puerta de enlace no puede responder. En este caso, o la puerta de enlace está en la misma red física que el host de destino (por lo que el host debería responder solo), o la puerta de enlace no es la red más directa
>La ruta ideal, es decir, tener otra La puerta de enlace en la misma
red física es la ruta más directa y la otra puerta de enlace
debe responder.
Siguiendo RFC-925 [4], se introduce un mecanismo general para el enrutamiento dinámico de subred utilizando proxy ARP y puertas de enlace en la caché de ruta.
Nuestra tecnología está restringida a sub-RFC-925 porque utilizamos subredes estáticas
rutas para determinar la gestión. Por lo tanto, nuestra
puerta de enlace de subred transparente no requiere nuevas tablas de enrutamiento de red
entradas de caché ARP, ni entradas; la única tabla que las afecta
es una; host en la caché ARP.
En nuestra implementación, los bucles de enrutamiento bloquean la puerta de enlace en la tabla de enrutamiento de la
subred de administración correspondiente.
Carl Mitchell y Quarterman [Página 3]
?
Protocolo ARP RFC 1027 y puerta de enlace de subred transparente Octubre de 1987
2.3 Puertas de enlace múltiples
La organización de subred más sencilla de gestionar es una estructura de árbol.
Esta estructura no se puede buclear. Sin embargo, por motivos de confiabilidad o distribución del tráfico, es posible que necesites configurar múltiples puertas de enlace
(o rutas) para la red física entre dos países. En este caso, se pueden utilizar puertas de enlace de subred del protocolo ARP: el host solicitante utilizará el primer protocolo ARP para esto, incluso si una de las múltiples puertas de enlace atendió la solicitud, también la aceptará.
Esto puede incluso proporcionar un servicio mínimo de equilibrio de carga, ya que si
dos puertas de enlace son similares, es más probable que la puerta de enlace que sea más fácil de cargar sea la primera línea de defensa.
La forma básica del protocolo puerta de enlace a puerta de enlace permite mecanismos más complejos y, sin duda, será necesario para conectar en red una gran cantidad de subredes y puertas de enlace, al igual que las puertas de enlace IP.
A menudo Se requiere un protocolo de puerta de enlace a puerta de enlace.
2.4 Comprobaciones perfectas
Los administradores de red y puerta de enlace deben prestar atención en todo momento
para garantizar que todas las máquinas de puerta de enlace de subred estén en la misma máscara de red.
El error más común es configurar la máscara de red en el host sin
realizar la subred, incluido el número de subred. Esto hará que
los hosts fallen al intentar enviar paquetes a hosts sin una máscara de subred
. Ajustar la tabla de enrutamiento tampoco ayudará, ya que no sabe cómo enrutar las subredes.
Si las solicitudes ARP del host de origen de la red IP y del host de destino son diferentes, la implementación del protocolo ARP de la puerta de enlace de subred no debe
responder. Esto es para evitar que se utilice la puerta de enlace de subred ARP
para acceder a redes IP externas, evitando potencialmente los controles de seguridad
proporcionados por la puerta de enlace IP.
Si el origen y el destino de la red física
de la solicitud ARP no pueden obtener la misma respuesta, la puerta de enlace de subred ejecutará el protocolo ARP.
En este caso, es probable que el host de destino esté en la misma red física que el origen y pueda responder por sí solo,
o que el host de destino esté en la misma dirección. de la puerta de enlace como host de origen y las respuestas ARP provocarán un bucle.
La dirección de transmisión de una solicitud ARP debe solicitar cualquier respuesta,
independientemente de la dirección de origen o de la red real involucrada. Si
la puerta de enlace responde con una respuesta ARP en este caso,
se invita el tráfico real enviado desde la dirección de transmisión original. Esto podría provocar un "impacto de Chernobyl"
donde, por ejemplo, cada host de la red responde a ese tráfico, provocando
que la red "colapse".
¿Carl Mitchell y Quartermain [página 4]
?
Protocolo ARP RFC 1027 y gateways de subred transparentes Octubre de 1987
2.5 Redes físicas con múltiples subredes lógicas cada una
Números de subred asignados El método más directo es asignar un número de subred a las 12:59
Red física. Sin embargo,
es útil en el caso de múltiples subredes lógicas dentro de una red física.
Una situación común es cuando se planifica que un grupo de estaciones de trabajo utilice su propia red física, pero primero es necesario probar la ruta a la nueva red física. (Si no tienes puerta de enlace, puedes utilizar un repetidor). Si
se debe forzar el direccionamiento de cada subred de la red física
, entonces la estación de trabajo debe cambiarse cada vez que se prueba la puerta de enlace. Si
se pueden especificar direcciones para usar el nuevo número de subred y
permanecen en la antigua red física, no se requiere ningún procesamiento de cambios adicional
.
Permite dividir múltiples redes físicas en cada subred del protocolo ARP
La puerta de enlace debe usar la interfaz de red física en lugar del número de subred para decidir cuándo responder a la solicitud ARP. Es decir, la puerta de enlace debe enviar una respuesta ARP proxy solo si la interfaz de red de origen
es diferente de la interfaz de red de destino. Además, se deben agregar entradas apropiadas de la tabla de enrutamiento
para estas subredes "fantasmas" a la tabla de enrutamiento de la puerta de enlace de subred.
2.6 Direcciones de difusión
Hay dos tipos de direcciones de difusión IP: difusión de red IP y difusión de subred. Una dirección de difusión de red IP
consta de un número de red y otra dirección de valor
conocida (la parte local). Difusión de subred IP
Similar, pero también incluye el número de subredes y personas
para ambas redes IP. Todas las
partes locales utilizan el estándar RFC-922, pero existen dos convenciones antes de usarlas: todas
o todas ceros. Por ejemplo, 4.2BSD usa todo ceros, mientras que 4.3BSD
usa todos. Como resultado, actualmente hay cuatro direcciones IP de difusión dirigida
todavía en uso en muchas redes.
El problema con las subredes transparentes es que la puerta de enlace de la subred nunca puede convertirse en una transmisión IP
utilizando la dirección de transmisión de la subred (como 128.83.138.255).
La red física de los hosts que reciben transmisiones no
interpretará dichas direcciones como direcciones de transmisión porque no tienen habilitada la división en subredes (o no la implementan).
De hecho, los hosts 4.2BSD (ya sea que la división en subredes esté habilitada o no)
tratarán esta dirección, junto con todas las direcciones en la sección local, como una dirección de host específica, e intentará agrupamiento.
Dado que no existe tal host de destino, el host de reenvío no tendrá ninguna entrada en su
tabla de protocolo ARP, por lo que emitirá una solicitud ARP al host de destino.
En este caso (realmente observado) en una puerta de enlace 4.3BSD
ejecutando el esquema rwho, después de un minuto de transmitir el paquete,
Carl Mitchell y Quartermain [5 páginas]
Protocolo ARP RFC 1027 y Puerta de enlace de subred transparente Octubre de 1987
Conduce a Cada host 4.2BSD genera una solicitud ARP al mismo tiempo .
El mismo problema ocurre con cualquier dirección de difusión de subred, ya sea que la parte local sea todo ceros o todo
Por lo tanto, una puerta de enlace de subred a una red host que desconoce la subred debe tener cuidado de no utilizar la dirección de transmisión de subred:
En su lugar, debe utilizar la transmisión directa de la red IP. dirección
.
Finalmente, debido a que muchos hosts que ejecutan software obsoleto todavía
usan (y esperan) las antiguas direcciones de transmisión de red IP totalmente cero
, la puerta de enlace debe ser Esta
La forma de transmitir una dirección, por ejemplo, 128.83.0.0.0, también puede ser segura al enviar una copia de todos los paquetes que contienen la parte local
por ejemplo: 128.83.255.255.
No está claro de qué manera todas las direcciones de transmisión de la red local (
255.255.255.255) se ven afectadas negativamente, pero es probable
que debido a muchos hosts Está ejecutando un software
antiguo y no se reconoce.
3. Implementación de 4.3BSD
Muchas personas diferentes han implementado puertas de enlace de subred que utilizan el protocolo ARP. Los métodos específicos descritos en esta nota
se implementaron originalmente en 4.2BSD sobre la base de experimentos de prueba de modificación del código de subred de 4.3BSD y como complemento al código fuente de 4.3BSD
Propagar la reimplementación.
La última implementación se describe aquí.
La mayor parte del nuevo código del kernel para la funcionalidad de puerta de enlace del Protocolo de resolución de direcciones de subred
se encuentra en el módulo de interfaz Ethernet genérico netinet/if_ether.c.
***Se realizaron algunas comprobaciones rápidas en el octeto dividido in_arpinput (para garantizar que la función esté habilitada en la interfaz de origen
y que las direcciones de origen y destino sean subredes diferentes). solicitando la nueva rutina if_subarp para una inspección más detallada,
luego construye una respuesta de protocolo ARP.
Este código solo se recibe cuando se recibe una solicitud ARP, si la interfaz de origen no está habilitada en el dispositivo, no se realizará ninguna acción. Por lo tanto,
las puertas de enlace de rendimiento rara vez deberían degradar este
rendimiento. (
Los requisitos de rendimiento también deberían ser similares a los de los hosts
en este último caso, ya que las únicas diferencias son la eficiencia y las tablas de enrutamiento en la caché ARP).
La rutina if_subarp (alrededor de 60 líneas) asegura que la dirección
de origen y la dirección de destino sean las mismas en la red IP y que la dirección
de destino sea la misma. no dirección de transmisión dirigida a cuatro direcciones.
Luego intenta encontrar una ruta hacia el destino, ya sea encontrando la
interfaz de red de la subred ideal o mediante
Carl Mitchell y Quartermain [ Página 6]
Protocolo ARP RFC 1027 y Puerta de Enlace de Subred Transparente Octubre de 1987
Tablas de enrutamiento.
Incluso si se encuentra una interfaz de red que conduce al destino, las respuestas enviadas a la puerta de enlace ARP deben estar habilitadas.
Las interfaces de destino y de origen en esa interfaz deben ser diferentes.
Hay una estructura de entrada de ruta estática en el archivo netinet/route.c
HD dijo, y modificó aproximadamente 8 líneas para
Ejemplo de búsqueda de la tabla de enrutamiento principal rtalloc reconoce una estructura de puntero (cuando se pasa a través de if_subarp) como una dirección
La ruta predeterminada no se utilizará en esta verificación de ruta. La prioridad inherente
del procesador
(protección de sección crítica) se cambió a un valor más alto en la verificación de búsqueda de ruta, ya que ahora también se puede usar regular
. llamadas interrupciones desde la interfaz de red y
controladores de interrupción de software internos para manejar IP y
otros protocolos de alto nivel.
Si hay muchas rutas para verificar, todo el kernel puede funcionar un poco más lento, pero como las partes críticas se ejecutan más rápido, el impacto no debería ser significativo.
Una modificación clave del kernel es la adición de la línea 15 al ip_output diario en netinet/ip_output.c, que cambia la máscara de subred.
Esta es la primera revisión del kernel. Cambia la dirección de transmisión de la máscara de subred
de los paquetes que se originan en la puerta de enlace a la dirección de transmisión de la red IP, de modo que los hosts con un código de subred (o una máscara de red configurada para ignorar el código de subred) lo reconozcan
como dirección de transmisión. El código de esta sección, si se utiliza únicamente en una interfaz de salida habilitada para puerta de enlace de protocolo
ARP, sólo
afectará a la dirección de transmisión de subred.
Se agregó una nueva rutina in_mainnetof en netinet/in.c, de aproximadamente 15 líneas de largo, que devuelve el número de red IP (sin el número de subred) a partir de la dirección IP. Esto se llama if_subarp e ip_output.
Cada uno de los dos archivos de parámetros del kernel agrega una línea: netinet/if.h
Hay un bit de definición en la estructura de la interfaz de red
Indica si el El protocolo ARP está habilitado Puerta de enlace de subred, netinet/in.h
Mencione in_mainnetof.
Además de estas ~110 líneas de código fuente del kernel
hay un Modificación a nivel de usuario. Fuente
El comando ifconfig se utiliza para configurar la dirección y la máscara de red de una interfaz de red
Se han agregado cuatro líneas al comando para configurar
. puerta de enlace de subred al protocolo ARP o desactive esta función en cada interfaz.
Esto está documentado en las 11 nuevas líneas de este comando ingresado manualmente.
Carl Mitchell y Quartman [Página 7]
RFC 1027 y el protocolo ARP para puertas de enlace de subred transparentes, octubre de 1987
4 .
En 4.3BSD, sally.utexas.edu implementa el FTP anónimo existente
(inicio de sesión anónimo, cliente de contraseña) como
bar/subarp, que es una lista de clases "diff-c" de 4.3BSD publicada en septiembre de 1986, a partir de la fuente 4.3 BSD
.
Esta implementación no figura en la distribución 4.3BSD
Es apropiada porque el CSRG de U.C. Berkeley cree que reducirá
la implementación de RFC-950 por parte del proveedor. situación subarp.
El autor está de acuerdo con esto. Sin embargo, en algunos casos, es fundamental utilizar el protocolo ARP de puerta de enlace de subred transparente.
Referencias
1. Tycoon, Scholar y J. Pustel, "Procedimientos estándar de subredes para el programa InterNetwork Network
", conforme a RFC - 950, Universidad de Stanford y USC/Information
Institute of Science, agosto de 1985.
2.Tycoon, Scholar, "Internet Broadcast Datagram Presence on
Subredes", Cumplimiento RFC-922, Departamento de Ciencias de la Computación, Universidad de Stanford
, octubre de 1984.
3. Dr. Luemer, "Para transmitir direcciones Ethernet de 48 bits al hardware Ethernet Protocolo de resolución de direcciones Ethernet o
Protocolo de red de traducción", Conformance RFC-826,
Symbolics, noviembre de 1982.
4. Putian, Scholar, "Multi-LAN Address Resolution", Conformance to RFC-925,
Universidad del Sur de California/Instituto de Ciencias de la Información, octubre de 1984.
5. Carl Mitchell S. y Jazz Quarterman, "Servidores de nombres de dominio en dominios de red de campus", SIGCUE Perspectives, vol. 19, 1/2, págs. ,
Primavera y Verano 1986.
6.Braden, River y J. Pustel, "Requirements for Internet Gateways",
conforme a RFC-1009, Universidad del Sur de California/Instituto de Ciencias de la Información, junio de 1987 .
Carl Mitchell y Quarterman [Página 8]