ES2276021T3 - Procedimiento y dispositivo para el tratamiento de paquetes de datos. - Google Patents

Procedimiento y dispositivo para el tratamiento de paquetes de datos. Download PDF

Info

Publication number
ES2276021T3
ES2276021T3 ES03290242T ES03290242T ES2276021T3 ES 2276021 T3 ES2276021 T3 ES 2276021T3 ES 03290242 T ES03290242 T ES 03290242T ES 03290242 T ES03290242 T ES 03290242T ES 2276021 T3 ES2276021 T3 ES 2276021T3
Authority
ES
Spain
Prior art keywords
node
tree
rules
analysis
stage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES03290242T
Other languages
English (en)
Inventor
Olivier Paul
Sylvain Gombault
Maryline Laurent Maknavicius
Joel Lattmann
Christian Duret
Herve Guesdon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Application granted granted Critical
Publication of ES2276021T3 publication Critical patent/ES2276021T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

Procedimiento de configuración de una memoria asociativa de tipo Trie para el tratamiento de paquetes de datos en función de un conjunto de reglas, la memoria Trie siendo utilizada para el análisis de cadenas binarias situadas en emplazamientos determinados de cada paquete de datos, cada regla atribuyendo una acción (110-114) a un paquete en función de los valores de dichas cadenas binarias, la memoria Trie comprendiendo registros compuestos por un número determinado de células elementales para recibir referencias respectivas, el procedimiento comprendiendo las etapas siguientes: a- para cada uno de dichos emplazamientos, se definen intervalos elementales consecutivos que cubren valores de cadena binaria que pueden aparecer en dicho emplazamiento, cada intervalo elemental siendo tal que la acción (110-114) atribuida para cada una de las reglas no sea modificada por un cambio, en el interior de dicho intervalo elemental, del valor de la cadena binaria situada en dicho emplazamiento en un paquete tratado; b- se inventarían los intervalos elementales definidos para cada emplazamiento y se clasifican los emplazamientos en un orden tal que el emplazamiento para el cual el mayor número de intervalos elementales ha sido definido sea colocado de último; c- se traduce el conjunto de reglas en un árbol de análisis de los paquetes que comprenden nodos (100, 101, 103-105, 107, 108) repartidos en etapas sucesivas respectivamente asociadas a los emplazamientos considerados en dicho orden, arcos (130, 131), y hojas (102, 106) que corresponden a acciones (120) atribuibles por las reglas, la primera etapa del árbol comprendiendo un único nodo (100) llamado racimo del árbol de análisis.

Description

Procedimiento y dispositivo para el tratamiento de paquetes de datos.
La presente invención concierne a un procedimiento de tratamiento de paquetes de datos según reglas aplicadas a cada paquete de datos, en función de datos contenidos en ese paquete.
La misma concierne más particularmente a un procedimiento de configuración de un dispositivo de memoria particular utilizado para el tratamiento de paquetes de datos.
La solicitud de patente FR-A-2 812 491, publicada el 1ro de febrero de 2002, divulga un dispositivo de control de acceso para redes ATM. Ese dispositivo comprende un controlador de acceso que configura analizadores de tráfico para tratar una a una las células portadoras del tráfico ATM. Los analizadores de tráfico proceden por análisis del contenido de las células portadoras de tráfico ATM asociando sus referencias de encaminamiento por medio de una memoria asociativa de tipo Trie. Tales dispositivos pueden también ser utilizados en enrutadores IP, dispositivos de seguridad ("Firewall"), dispositivos de medida del tráfico, etc. Según esas aplicaciones, el tratamiento asignado a cada paquete de datos puede ser un direccionamiento de ese paquete, una modificación de datos de ese paquete, el registro de una información establecida a partir de ese paquete, o, de forma general, una acción determinada a partir del contenido de ese paquete.
El interés de la utilización de una memoria de tipo Trie es permitir un análisis rápido y en un orden cualquiera de partes de los contenidos de las células portadoras de tráfico. Tal memoria y su utilización en el análisis de paquetes de datos son descritas en la solicitud de patente EP-A-1 030 493 publicada el 23 de agosto de 2000.
La configuración de la memoria Trie es llevada a cabo al nivel del gestor de control de acceso.
Un objetivo de la presente invención es obtener una configuración de esta memoria que permite asignar un tratamiento apropiado a cada paquete de datos en función de partes de su contenido.
La invención propone un procedimiento de configuración de una memoria asociativa de tipo Trie para el tratamiento de paquetes de datos en función de un conjunto de reglas. La memoria Trie es utilizada para el análisis de cadenas binarias situadas en emplazamientos determinados de cada paquete de datos. Cada regla atribuye una acción a un paquete en función de los valores de dichas cadenas binarias. La memoria Trie comprende registros compuestos por un número determinado de células elementales para recibir referencias respectivas.
Según la invención, el procedimiento, definido en la reivindicación 1, comprende una etapa en el curso de la cual se traduce el conjunto de reglas en un árbol de análisis de los paquetes, comprendiendo nodos repartidos en etapas sucesivas respectivamente asociados a los emplazamientos considerados en un orden determinado, arcos, y hojas que corresponden a acciones atribuibles por las reglas. Cada arco tiene un nodo de partida y un punto de llegada que consiste en un nodo de la etapa siguiente de aquella del nodo de partida como una hoja. La primera etapa comprende un único nodo racimo. Cada arco del árbol está asociado a un campo de valores de cadena binaria que puede aparecer en el emplazamiento asociada a la etapa de su nodo de partida. El árbol de análisis define así caminos que consisten cada uno en una sucesión de n arcos, n siendo un número entero al menos igual a 1, tal que el punto de llegada de cada arco de un camino además del último arco sea el nodo de partida del arco siguiente de dicho camino, y que el punto de llegada del último arco del camino sea una hoja que corresponde a una acción atribuida después del conjunto de reglas a cada paquete que tiene, en los n emplazamientos respectivamente asociados a las etapas de los nodos de partida n arcos del camino, valores de cadena binaria que caen en los n campos respectivamente asociados a dichos arcos.
El procedimiento comprende además una etapa en el curso de la cual se asigna un grupo de registros de la memoria Trie que incluye un registro portador en cada nodo del árbol de análisis que pertenece a una etapa asociada a un emplazamiento, y se registra en las células de ese grupo de registros de las referencias de manera que analizando a partir del registro portador el valor de cadena binaria contenida en dicho emplazamiento en un paquete, se obtiene una referencia final que depende de qué campo contiene dicho valor entre los campos de valores asociados a los arcos que tienen dicho nodo como nodo de partida y de manera que:
-
si el arco asociado al campo que contiene dicho valor tiene como punto de llegada una hoja que corresponde a una acción, la referencia final designa dicha acción como siendo atribuida al paquete, y
-
si el arco asociado al campo que contiene dicho valor tiene otro nodo de la etapa siguiente como punto de llegada, la referencia final designa dicho otro nodo para proseguir analizando el valor de cadena binaria contenida en el paquete en el emplazamiento asociado a dicha etapa siguiente.
Tal modo de configuración de la memoria Trie ofrece una gran flexibilidad para tomar en cuenta una gran diversidad de reglas de clasificación del tráfico, que pueden corresponder a diversas acciones a emprender sobre los paquetes de datos en función del contenido de los emplazamientos analizados. Los caminos del árbol corresponden a gráficos de análisis que son recorridos por medio de operaciones de indización y de direccionamiento indirecto en la memoria Trie así configurada.
Tal organización de la estructura de análisis permite garantizar que la duración del análisis de un paquete de datos cualquiera está limitada por un límite superior fijado para el análisis considerado. Este límite corresponde a la altura del árbol de análisis, es decir al número de campos a analizar. Esto permite al operador de una red de comunicación que utiliza la invención realizar un tratamiento en tiempo real de los paquetes de datos que se presentan a la entrada del analizador de tráfico, otorgando medios de análisis suficientes.
Según la invención, el orden considerado en la etapa de construcción del árbol de análisis resulta ventajosamente de una clasificación de los emplazamientos operado después del inventario de intervalos elementales. Para cada uno de los emplazamientos, se definen intervalos elementales consecutivos que cubren valores de cadena binaria que pueden aparecer en este emplazamiento, cada intervalo elemental siendo tal que la acción atribuida por cada una de las reglas no sea modificada por un cambio, en el interior de dicho intervalo elemental, del valor de la cadena binaria situada en dicho emplazamiento en un paquete tratado. La clasificación de los emplazamientos es entonces operada en un orden tal que el emplazamiento para el cual el mayor número de intervalos elementales ha sido definido sea colocado de último. Se puede específicamente escoger los emplazamientos en el orden de los números crecientes de intervalos elementales.
Una ventaja de tales clasificaciones de emplazamiento reside en la minimización del tamaño de la memoria Trie necesaria para el análisis del contenido de cada paquete de datos, a partir del cual una acción es atribuida a cada paquete después del conjunto de reglas. Así, un gran número de paquetes de datos correspondientes a una variedad importante de acciones atribuidas a cada uno de ellos puede ser tratado con una operación única de análisis de los contenidos de esos paquetes.
En general, una memoria Trie se presenta bajo la forma de una tabla cuyas líneas, llamadas registros, comprenden un número fijo de células, por ejemplo 4, 8, 16 o 32 células. El tamaño de la memoria Trie corresponde entonces al número de registros de esta memoria. La presente invención permite por lo tanto reducir el número de registros necesarios para efectuar un análisis dado del contenido de los paquetes de datos.
El procedimiento de configuración de la memoria Trie de la invención comprende la trascripción del árbol de análisis en esta memoria bajo la forma de referencias inscritas en las células de la memoria. Un árbol de análisis voluminoso requiere en general una memoria Trie de tamaño tanto más grande. Es por consiguiente ventajoso concebir el árbol de análisis y su trascripción de forma de reducir el tamaño necesario de la memoria Trie.
El número de etapas de nodos del árbol de análisis corresponde al número de emplazamientos en el interior de los paquetes de datos en los cuales son leídas las cadenas binarias.
Se puede determinar un límite superior de la dimensión del árbol de análisis de la forma siguiente. La primera etapa del árbol de análisis comprende el nodo racimo como único nodo. La segunda etapa del árbol de análisis comprende un número de nodos a lo máximo igual al número de intervalos elementales definidos por el emplazamiento colocado en primer lugar según el orden retenido para los emplazamientos. El número de nodos de la tercera etapa del árbol de análisis es igual a lo máximo al producto de los dos números de intervalos elementales respectivamente definidos por los dos emplazamientos a los cuales están asociadas las dos primeras etapas de nodos. De forma recurrente, el número de nodos de una etapa cualquiera del árbol de análisis asociado a un emplazamiento dado es inferior o igual al producto de los números de intervalos elementales respectivamente definidos para todos los emplazamientos que preceden al emplazamiento al cual está asociada la etapa considerada según el orden de clasificación de los emplazamientos.
Si N designa el número de emplazamientos de cadenas binarias definidas en los paquetes de datos sobre los cuales está basado el análisis de los paquetes, el número de nodos de la última etapa del árbol de análisis es por lo tanto inferior al producto de los (N - 1) números de intervalos elementales correspondientes a los (N - 1) primeros emplazamientos según el orden de clasificación de los emplazamientos. Dicho de otra forma, es inferior al valor igual al producto de todos los números de intervalos elementales dividido por el número de intervalos elementales del último emplazamiento según este orden. Este valor constituye por lo tanto un límite superior al número de nodos de la última etapa del árbol de análisis, que corresponde a un límite superior del tamaño de la memoria Trie necesaria. Para intervalos elementales fijados para todos los emplazamientos, este límite superior es el más pequeño cuando el orden de clasificación de los emplazamientos es tal que está colocado en lo último de los emplazamientos para el cual el mayor número de intervalos elementales ha sido definido.
En ciertas aplicaciones del procedimiento según la invención, las cadenas binarias alojadas en dichos emplazamientos son números o valores que comprenden números. Es entonces particularmente cómodo definir los intervalos elementales respetando una relación de orden entre esos números, o utilizando una relación de orden adaptada a la estructura de los valores alojados, para permitir una configuración rápida de la memoria Trie.
En un modo de realización preferido del procedimiento según la invención, la traducción del conjunto de reglas en un árbol de análisis es tal que al menos un nodo del árbol de análisis sea el punto de llegada de varios arcos salidos de nodos de partida distintos de la etapa precedente. Ese modo de realización permite una compresión de las estructuras de clasificación definidas en la memoria Trie que provoca una ganancia espacial importante en esta memoria.
Para esto, se asocia en cada nodo del árbol de análisis además del racimo del árbol de análisis un sub-árbol. Este sub-árbol tiene un racimo constituido por dicho nodo y está compuesto por nodos, arcos y hojas reunidos a partir de dicho nodo al lo largo de diferentes caminos que pasan por dicho nodo. La traducción del conjunto de reglas es entonces operado de forma tal que el árbol de análisis no incluye primer y segundo sub-árboles teniendo racimos distintos y tales que se puedan aparear sus nodos respectivos, sus arcos respectivos y sus hojas respectivas, de tal manera que cada nodo del primer sub-árbol sea apareado a un nodo del segundo sub-árbol perteneciendo a la misma etapa, que cada hoja del primer sub-árbol sea apareada a un a hoja del segundo sub-árbol correspondiente a una misma acción, y que dos arcos apareados de los primero y segundo sub-árboles tengan nodos de partida apareados y puntos de llegada apareados y que sean asociados al mismo campo de valores.
Según una formulación particular de las reglas del conjunto, cada regla es definida por una acción e intervalos de valores correspondientes respectivamente a algunos al menos de los emplazamientos, y atribuye dicha acción a los paquetes que tienen, en dichos emplazamientos, valores de cadenas binarias que caen respectivamente en dichos intervalos. Para un tratamiento genérico de todas las reglas, se ha recurrido a la siguiente precaución: cuando, para un emplazamiento dado, una regla no presenta intervalo explícito, un intervalo le es adicionado que corresponde a este emplazamiento y que comprende el conjunto de los valores de cadenas binarias que pueden ser alojadas en paquetes de datos en este emplazamiento.
Para una formulación tal de las reglas, se asocia un subconjunto de reglas de cada nodo de un punto (p+1)esima etapa del árbol de análisis, p siendo un número entero mayor que 0. Dicho subconjunto está compuesto por reglas del conjunto tales que cada intervalo de valores corresponde a un emplazamiento asociado a una de las p primeras etapas del árbol teniendo un recubrimiento no vacío con el campo de valores asociado al arco de cada camino que pasa por dicho nodo y que tiene su nodo de partida en dicha etapa.
Se asocia al nodo racimo un subconjunto constituido por el conjunto de las reglas.
La traducción del conjunto de reglas comprende entonces las etapas siguientes, para cada nodo de la p-esima etapa asociada a un primer subconjunto de reglas:
-
determinar campos de valores que cubren valores de cadena binaria que pueden aparecer en el p-esimo emplazamiento según dicho orden, cada campo siendo tal que la acción atribuida para cada una de las reglas del primer subconjunto no sea modificada por un cambio, en el interior de dicho campo, del valor de la cadena binaria situada en el p-esimo emplazamiento en un paquete tratado; y
-
para cada uno de dichos campos de valores:
-
generar un arco asociado a dicho campo, que tiene dicho nodo de la p-esima etapa por nodo de partida;
-
detectar cada regla del primer subconjunto que es definida por al menos un intervalo de valores que incluye dicho campo;
-
si ninguna regla es detectada, asignar una hoja del árbol correspondiente a una acción por defecto como punto de llegada de dicho arco;
-
si para cada regla detectada, ningún intervalo de valores corresponde a uno cualquiera de los emplazamientos siguiendo el p-esimo emplazamiento según dicho orden, asignar una hoja del árbol correspondiente a una acción de una regla detectada como punto de llegada de dicho arco;
-
si para al menos una regla detectada, un intervalo de valores corresponde a uno de los emplazamientos siguiendo el p-esimo emplazamiento según dicho orden, asignar un nodo de la (p+1)esima etapa del árbol como punto de llegada de dicho arco, dicho nodo de la (p+1)esima etapa estando asociado a un segundo subconjunto compuesto por reglas detectadas del primer subconjunto.
Prioridades pueden ser respectivamente otorgadas a las reglas del conjunto. En ese caso, cuando varias reglas son detectadas y cada uno de sus intervalos de valores no corresponden a uno de los emplazamientos siguiendo el p-esimo emplazamiento, la acción correspondiente a la hoja del árbol asignada a dicho arco es aquella de una de las reglas detectadas, seleccionada sobre la base de las prioridades otorgadas.
A fin de evitar que el árbol de análisis no comprenda sub-árboles que tengan racimos respectivos distintos y donde se puede aparear, entre ellos, los nodos, arcos y hojas que pertenecen respectivamente a cada uno de ellos, se ejecutan las etapas siguientes cuando se ha detectado al menos una regla que tiene un intervalo de valores que corresponde a uno de los emplazamientos siguiendo el p-esimo emplazamiento:
-
buscar si ya ha sido generado un nodo de la (p+1)esima etapa del árbol asociada al segundo subconjunto;
-
si la búsqueda se detiene, generar un nodo tal en la (p+1)esima etapa;
-
si la búsqueda identifica un nodo de la (p+1)esima etapa, asignar el nodo identificado como punto de llegada de dicho arco.
La presente invención concierne también a un dispositivo de tratamiento de paquetes de datos definido en la reivindicación 11, que comprende una memoria asociativa de tipo Trie y un controlador adaptado para llevar a cabo un procedimiento de configuración de la memoria Trie tal como el definido anteriormente. Esos dispositivos pueden específicamente ser utilizados en las aplicaciones siguientes.
-
el encaminamiento por una red de comunicación de paquetes de datos en función de reglas de encaminamiento aplicadas a paquetes;
-
el control de acceso a una red de comunicación por paquetes de datos en función de reglas de control de acceso a esa red aplicados a esos paquetes;
-
la adquisición de informaciones concernientes a los paquetes de datos transmitidos por una red de comunicación.
Los paquetes de datos pueden ser específicamente de células ATM portadoras de tramas AAL 5 o de los paquetes IP.
Otras particularidades y ventajas del procedimiento de la presente invención aparecerán en la descripción a continuación de ejemplos de realización no limitativos, con referencia a los dibujos anexos, en los cuales:
- la figura 1 es un esquema sinóptico de un dispositivo de control de acceso en el cual es realizado el procedimiento de la invención;
- la figura 2 es una tabla que describe las informaciones tratadas por los analizadores de tráfico del dispositivo de la figura 1;
- la figura 3 representa un árbol de análisis resultante de dos reglas particulares aplicadas a pares de números (x, y), y que no utiliza la presente invención;
- la figura 4 representa un segundo árbol de análisis correspondiente a las reglas dadas para el árbol de análisis de la figura 3, utilizando la clasificación de los emplazamientos según la presente invención;
- la figura 5 representa un árbol de análisis que resulta de tres reglas particulares aplicadas a tripletes de números (x, y, z), y que no utiliza la presente invención;
- la figura 6 representa un segundo árbol de análisis correspondiente a las reglas dadas para el árbol de análisis de la figura 5, utilizando la clasificación de los emplazamientos según la presente invención;
- la figura 7 representa un tercer árbol de análisis correspondiente a las reglas dadas para el árbol de análisis de la figura 5, utilizando además reagrupamientos de sub-árboles según la presente invención;
- la figura 8 es un esquema sinóptico de las etapas de creación de un nuevo arco según el modo de realización preferido del procedimiento de la invención;
- la figura 9 representa un cuarto árbol de análisis correspondiente a las reglas dadas para el árbol de análisis de la figura 5, utilizando la clasificación de los emplazamientos y el método de creación de los arcos de la figura 8.
La estructura de un dispositivo de control de acceso dispuesto entre dos redes de transmisión ATM ("Asynchronous Transfert Mode"), en el cual puede ser llevado a cabo el procedimiento de la presente invención, es descrito en detalle en la solicitud de patente WO 0209367, publicada el 31 de enero de 2002. Como es indicado en la figura 1, un dispositivo de control de acceso puede estar compuesto por dos partes principales 1,2 que cooperan con un conmutador ATM 3. La primera parte 1 está dedicada a la toma en cuenta de una política de control de acceso y al análisis de la señalización ATM. El resultado de este análisis es utilizado para construir dinámicamente una configuración. Esta es utilizada por la segunda parte 2 para proporcionar un servicio de control de acceso basado en las informaciones transportadas en las células ATM. Esta segunda parte 2 es capaz de recuperar las informaciones de nivel ATM, IP y transporte a fin de decidir si una comunicación debe ser autorizada o prohibida. La configuración del conjunto se realiza por medio de un lenguaje único.
La parte 1 puede ser realizada por medio de una estación de trabajo, tal como una estación comercializada por la sociedad Sun Microsystem, Inc. El analizador de señalización 4 es el elemento de esta parte 1 que efectúa las acciones de control de acceso al nivel de la señalización ATM en combinación con el gestor de control de acceso 7.
La parte 2 puede ser realizada por medio de una estación de tipo PC que funciona por ejemplo con el sistema de explotación Solaris x86. Esta estación está equipada con tarjetas 20, 21 de análisis en tiempo real de las células ATM, o analizadores de tráfico, a continuación llamadas tarjetas IFT ("IP Factor Translator"), que aseguran las acciones de control de acceso célula ATM por célula ATM.
\newpage
A fin de permitir la expresión de políticas de control de acceso, se utiliza un Lenguaje de Definición de Política de Control de Acceso (ACPDL, "Access Control Policy Description Language"). La definición de la ACPDL está basada en el Lenguaje de Descripción de Política (PDL) en curso de definición en el seno del grupo de trabajo que trabaja sobre las políticas en la IETF (ver J. Strassner, y otros, "Policy Framework Definition Language", draft-ietf-policy-framework-pfdl-00.txt, Internet Engineering Task Force, 17 noviembre 1998). En ese lenguaje, una política es definida por un conjunto de reglas, cada regla estando constituida por un conjunto de condiciones y por una acción que es ejecutada cuando el conjunto de condiciones es cumplido. La expresión siguiente (expresada en el formalismo Backus Naur, BNF) describe la forma general de una regla:
Regla ::= IF <Conditions> THEN <Action>
Todas las condiciones tienen la misma estructura genérica expresada a continuación por medio del formalismo BNF:
Condition ::= <ACCESS CONTROL PARAMETER> <RELATIONAL OPERATOR> <VALUE>
En función del nivel en la pila de protocolo, varios tipos de parámetros de control de acceso pueden ser utilizados:
-
al nivel ATM, los parámetros interesantes son descritos en el artículo de O. Paul, y otros, "Manageable parameters to improve access control in ATM networks", HP-OVUA Workshop, Rennes, Francia abril de 1998. Entre estos, se puede seleccionar el tipo de tráfico, los identificadores de conexión, las informaciones de direccionamiento, los descriptores de QoS y los descriptores de servicio;
-
al nivel de transporte, la mayor parte de los parámetros considerados son aquellos que son utilizados habitualmente para realizar la filtración de los paquetes en los enrutadores filtrantes (por ejemplo las informaciones de direccionamiento, los puertos fuente y destino, los revestimientos en el caso de las conexiones TCP, etc.);
-
al nivel de aplicación, dos parámetros genéricos son considerados: el identificador del usuario de la aplicación así como el estado de aplicación;
-
informaciones temporales son igualmente incluidas a fin de especificar cuando una regla debe ser aplicada.
Las acciones tienen igualmente una estructura genérica (notación BNF):
Action ::= <ACTION> <ACTION LEVEL> <LOG LEVEL>
Una acción se descompone en tres partes. La primera indica si la comunicación descrita por las condiciones debe ser autorizada o prohibida. El parámetro <ACTION LEVEL> corresponde a la capa protocolar en la cual debe ser efectuada la acción. La última parte describe la importancia acordada al evento de control de acceso y permite la clasificación de los resultados.
El siguiente párrafo muestra como el lenguaje ACPDL puede ser utilizado a fin de expresar un ejemplo de servicio de control de acceso. En este ejemplo, cada equipo es identificado por su dirección fuente (IP_SRC_ADDRESS) y su dirección destino (IP_DST_ADDRESS). El servicio WWW es identificado por los puertos fuente (SRC_PORT) y destino (DST_PORT). La segunda línea de accionamiento dada en el ejemplo es utilizada para prohibir las solicitudes de conexión sobre el puerto WWW de una estación interna.
100
La política de control de acceso es definida por el oficial de seguridad por medio de una interfase hombre-máquina (IHM) 6 de la estación 1, utilizando el lenguaje ACPDL. La misma es utilizada para configurar las dos partes del controlador. Sin embargo esta política no puede ser utilizada directamente para las dos herramientas de control de acceso 4, 20/21. El gestor 7 es el módulo que permite resolver ese problema traduciendo la política de control de acceso en órdenes de configuración para las dos herramientas.
Ese proceso de traducción puede ser dividido en dos partes principales. La primera es la traducción de la política en tres configuraciones estáticas:
- al nivel de la señalización ATM, esta configuración comprende una descripción de las comunicaciones que deben ser controladas. Cada comunicación es descrita por un conjunto de elementos de información (IE) y por una acción (Autorizar o Prohibir). Esta configuración es enviada al analizador de señalización 4;
- al nivel TCP/IP la configuración comprende una descripción de los paquetes que deben ser controlados. Esta parte de la política puede ser genérica, lo que significa que las reglas que son descritas no son dedicadas a una conexión ATM particular. Esta parte puede también ser anexada a una conexión ATM por la expresión de condiciones que portan sobre los identificadores de conexión;
- al nivel célula ATM, la configuración comprende una descripción de las células ATM que deben ser controladas. Esas células son divididas según campos que las mismas pueden contener. El conjunto de los valores que cada campo puede tomar es descrito por un árbol. Esta configuración es enviada a las tarjetas IFT 20, 21.
La segunda parte del proceso de configuración tiene lugar cuando una solicitud de conexión es recibida por el analizador de señalización 4. Una vez que el proceso de control de acceso ha sido realizado, el analizador de señalización 4 envía al gestor 7 las informaciones necesarias para efectuar la configuración dinámica de las tarjetas IFT 20, 21. Las informaciones proporcionadas por el analizador de señalización 4 comprenden:
-
los identificadores de conexión VPI y VCI ("Virtual Path Identifier", "Virtual Channel Identifier");
-
las direcciones ATM fuente y destino;
-
un descriptor de servicio (Classical IP over ATM (CLIP), Applications natives ATM). Cuando una capa adicional es utilizada por encima del modelo ATM, el analizador de señalización 4 proporciona igualmente la encapsulación (con o sin encabezamiento SNAP/LLC);
-
la dirección de la comunicación.
En un ambiente CLIP, el gestor 7 utiliza las direcciones ATM fuente y destino para encontrar las direcciones IP correspondientes. Esta traducción es efectuada por medio de un fichero que describe las correspondencias entre direcciones IP y ATM. La misma puede también utilizar un servidor de resolución de dirección (ATMARP).
El gestor 7 trata a continuación de encontrar una correspondencia entre las direcciones IP y las reglas genéricas de control de acceso de nivel TCP/IP. El subconjunto de reglas obtenido es instanciado con las direcciones IP y asociado a las otras informaciones (direcciones, encapsulación, identificadores de conexión, dirección). Este conjunto de informaciones es utilizado por el gestor a fin de construir el árbol de análisis que será utilizado para configurar las tarjetas IFT, y es conservado durante toda la vida de la conexión. Al cierre de la conexión, el gestor 7 recibe una señal del analizador de señalización 4 para reconfigurar eventualmente las tarjetas IFT 20, 21 borrando las informaciones relativas a la conexión. El gestor destruye seguidamente las informaciones asociadas a la conexión.
El analizador de señalización 4 reposa en dos funciones. La primera es la dirección de los mensajes de señalización que provienen de las redes interna y externa hacia un filtro que pertenece al analizador 4. La segunda es la capacidad de descomponer los mensajes de señalización según la especificación UNI 3.1 de la ATM Forum ("ATM User-Network Interface Specification, Versión 3.1", ATM Forum, Julio 1994) y transmitir o suprimir esos mensajes en función de la configuración de control de acceso proporcionada por el gestor 7.
La estación 1 está provista con dos tarjetas de interfase ATM 8, 9 respectivamente unidas a dos interfases 12, 13 del conmutador 3. Las otras interfases representadas del conmutador 3 son denotadas 10 (red interna), 11 (red externa), 14 y 15 (tarjetas IFT 20 y 21).
Para redirigir la señalización, el conmutador ATM3 es configurado de forma de dirigir los mensajes de señalización hacia la estación 1. Esta configuración puede ser realizada desactivando el protocolo de señalización sobre las interfases 10, 11, 12 y 13. Un canal virtual (VC) debe ser seguidamente construido entre cada par de interfases para cada canal de señalización. Los canales de señalización son por ejemplo identificados por un identificador de canal virtual (VCI) igual a 5.
Con la configuración precedente, los mensajes de señalización que provienen de la red externa son dirigidos hacia la interfase 13 de la estación 1 mientras que los mensajes que provienen de la red interna son dirigidos hacia la interfase 12.
Cuando los mensajes de señalización son recibidos por el analizador de señalización 4, estos son descompuestos en elementos de información según la especificación UNI 3.1. Los elementos de información son seguidamente descompuestos en informaciones elementales tales como las direcciones, los identificadores de conexión, la referencia de llamada, los descriptores de servicio y los identificadores de servicio. El analizador 4 busca seguidamente si el mensaje puede estar asociado a una conexión existente por medio del tipo de mensaje y de la referencia de llamada. Si la conexión es nueva, un descriptor de conexión que contiene esas informaciones es construido. Cuando la conexión existe ya, el descriptor de conexión es actualizado. El descriptor de conexión está asociado al estado de la conexión y a la interfase de origen. Este es identificado por un identificador de conexión. El descriptor es seguidamente enviado al filtro del analizador de señalización 4 a fin de ser analizado.
Cuando el filtro del analizador de señalización 4 recibe un descriptor de conexión, compara los parámetros que describen la conexión con el conjunto de las comunicaciones descritas por la política de control de acceso. Si una correspondencia es encontrada, el filtro aplica la acción asociada a la comunicación. En el caso contrario, aplica la acción por defecto que es prohibir la conexión. Cuando la acción consiste en una prohibición, el filtro destruye el descriptor de conexión. En el caso contrario, envía el descriptor de conexión a un módulo de construcción de los mensajes. Cuando el descriptor de conexión indica que un mensaje CONNECT ha sido recibido, un subconjunto de los parámetros del descriptor de conexión es enviado al gestor 7 como se indicó anteriormente:
-
los identificadores de conexión VPI/VCI, obtenidos a partir del IE "Connection Identifier";
-
las direcciones ATM fuente y destino, proporcionadas por las IE "Called Party Identifier" y "Calling Party Identifier";
-
los descriptores de servicio, obtenidos a partir de las IE "Broadband Higher Layer Identifier (BHLI)" y "Broadband Lower Layer Identifier (BLLI)";
-
la dirección, proporcionada por el número de interfase asociada al descriptor de conexión.
Cuando el descriptor de conexión indica la recepción de un mensaje RELEASE_COMPLETE, que completa la liberación de una conexión, el descriptor de conexión es de nuevo enviado al gestor 7. Las comunicaciones entre el gestor 7 y el filtro de señalización pueden hacerse de forma clásica por medio de un segmento de memoria compartido y de señales.
Las tarjetas IFT consideradas aquí para la realización de la invención son del tipo descrito en la solicitud europea EP1030493 depositada el 9 de febrero 2000 por la solicitante, y publicada el 23 de agosto 2000. Las mismas están basadas en la utilización de una memoria asociativa de tipo Trie para el análisis de partes del contenido de células ATM, y para la atribución, a cada célula de una misma trama, de una acción definida por la política de control de acceso. Esas tarjetas poseen las características remarcables siguientes:
-
permiten el análisis de la primera célula de cada trama AAL5 ("ATM Adaptation Layer no. 5") y la modificación de las células correspondientes en función del análisis;
-
pueden funcionar a la velocidad de 622 Mbits/s gracias a un procedimiento rápido y flexible de análisis;
-
el plazo introducido por el análisis puede ser limitado y depende de la configuración de la tarjeta;
-
pueden ser configuradas dinámicamente sin interrumpir el proceso de análisis;
-
son integrables en equipos de tipo PC bajo Solaris.
La figura 2 describe las informaciones que pueden ser analizadas por las tarjetas IFT 20, 21 en el caso de los protocolos CLIP (CLIP1) y CLIP sin encapsulación SNAP-LLC (CLIP2). Las cámaras UD y TD indican el comienzo de los segmentos de datos para los protocolos UDP y TCP, respectivamente. Esto significa que, en el caso general, las tarjetas IFT tienen acceso a las informaciones de nivel ATM, IP, TCP, UDP y en algunos casos de nivel de aplicación. Sin embargo es necesario notar que los campos opcionales que pueden encontrarse en el paquete IP no son representados. La presencia de esos campos (de longitud variable) puede rechazar las informaciones de nivel TCP o UDP en la segunda célula ATM.
Como en el caso de la señalización, la primera parte del proceso de control de acceso al nivel de célula ATM consiste en redirigir el tráfico que proviene de las redes interna y externa hacia las tarjetas IFT 20, 21. Sin embargo, en ese caso, la configuración debe preservar la configuración realizada para el control de la señalización. A modo de ejemplo, los canales virtuales identificados por un valor de VCI igual a 31 son voluntariamente dejados libres para permitir al conmutador ATM 3 rechazar las células ATM que pertenecen a una comunicación que debe ser prohibida. El conmutador ATM 3 es entonces configurado a fin de crear un canal virtual para cada valor de VCI diferente de 5 y de 31 entre cada par de interfase (10, 14) y (11, 15).
Las tarjetas IFT consideradas solamente permiten el análisis de flujos unidireccionales. Esto significa que los flujos que provienen de las redes interna y externa deben estar separados. Esta operación es particularmente simple en el caso de una capa física de tipo Mono Modo Fiber utilizada por las tarjetas ya que las fibras de emisión y de recepción están físicamente separadas.
La segunda parte del proceso de control de acceso es la configuración de las tarjetas IFT 20, 21 para que las mismas proporcionen el servicio de control de acceso deseado. Como es indicado precedentemente, esta configuración es realizada por el gestor 7. Las tarjetas IFT han sido concebidas al principio para ser administradas a distancia por varios gestores. Un soporte lógico apropiado 27 (demo RPC) es entonces utilizado en la estación 2 para poner en serie las solicitudes dirigidas al circuito de accionamiento 28 (driver) de las tarjetas 20, 21. Del lado del gestor 7, una librería da acceso a las funciones de configuración. Esta librería traduce las llamadas locales en llamadas a distancia en la estación 2. Las comunicaciones entre los dos equipos se hace por ejemplo a través de de una red dedicada de tipo Ethernet.
La configuración de las memorias Trie de las tarjetas 20, 21 se basa en una descripción de las comunicaciones a controlar bajo la forma de árboles. Cada rama del árbol describe el valor codificado de una cadena binaria, por ejemplo de 4 bits, que puede ser encontrada durante el proceso de análisis. Ese proceso consiste en recorrer la porción de célula ATM a analizar por rodajas de 4 bits sucesivas que sirven para acceder al contenido de la memoria Trie incluso en cada tarjeta IFT. Un árbol de análisis, construido a partir de una instrucción de control de acceso proporcionado por el gestor 7, corresponde a un encadenamiento dado de rodajas de 4 bits encontrados en emplazamientos determinados recorriendo la célula ATM. El racimo del árbol corresponde a un portero que es reconocido para comenzar el análisis del árbol. Ejemplos de árboles de análisis y de configuraciones resultantes de memorias Trie de tarjetas IFT son ahora presentadas.
De forma general, cada emplazamiento a analizar, o campo, comprende un número de bits fijo para la dimensión de ese campo, por ejemplo 32 bits. Su análisis por rodajas es efectuado de forma de que los valores que puede revestir cada lonja corresponde a las células elementales de uno o varios registros de la memoria Trie utilizada. Un cuarteto que puede tomar 2^{4}=16 valores, es específicamente adaptado a una memoria Trie donde cada registro comprende 16 células elementales. Varios registros, incluso un gran número de registros, son entonces necesarios para el análisis de un campo, según la dimensión de ese campo con relación al número de células elementales de un registro.
El análisis de un campo comprende en general los análisis de un gran número de rodajas de bits, encadenados sucesivamente hasta la siguiente por el análisis de otro campo de la misma trama, o hasta la obtención de una acción atribuida a la trama analizada por la política de control de acceso. Por cuestiones de simplicidad y de claridad de ilustración de la invención, aunque esto no corresponde a una situación real, los ejemplos presentados a continuación solo comprenden cada uno un solo cuarteto para cada campo sobre el cual se hace el análisis. Por las mismas razones de simplicidad y de claridad, el número de reglas consideradas y el número de campos tomados en consideración para el análisis son muy reducidos, mientras que una política de control de acceso real puede comprender numerosas reglas de acceso que inducen a un gran número de campos de información de control de protocolo.
Un primer ejemplo es dado para los dos campos x y y leídos en las células ATM, representados por pares (x, y). Las cadenas binarias leídas en los campos x y y son cuartetos representados por números hexadecimales comprendidos entre 0 y F.
Las reglas consideradas, en número de dos, son las siguientes:
-
Regla Re1: si x \geq 7 y 3 \leq y \leq 8, entonces se efectúa una acción A1;
-
Regla Re2: si 2 \leq x \leq B y y \geq 3, entonces se efectúa una acción A2.
La regla Re1 es supuesta prioritaria con relación a la regla Re2, aunque la acción A1 es efectuada solo cuando la misma es atribuida simultáneamente a la acción A2 a un mimo par (x, y), respectivamente para cada regla. Si la condición de alguna de las dos reglas Re1 y Re2 no es satisfecha por un par (x, y) dado, entonces una acción por defecto O es atribuida a ese par.
Las acciones A1, A2 y O pueden ser simples acciones de rechazo ("DENY") o de aceptación ("PERMIT") de las tramas. Las mismas pueden también corresponder a acciones más complejas, tal como el seguimiento del control de acceso por el examen de otros parámetros tales como campos autorizados atribuidos a un destinatario de la trama considerada.
La acción de rechazo o de aceptación es codificada por medio de un nodo particular que provoca el fin del análisis y reenvía el identificador de conexión que será atribuido a todas las células de la trama AAL 5 correspondiente. La acción "DENY" es codificada dirigiendo la trama hacia el canal no configurado (VCI 31) al nivel del conmutador 3. El VCI 31 es así utilizado como cesto de basura VCI para botar todas las células ATM no conformes a la política de seguridad. La acción "PERMIT" es codificada dejando el identificador de conexión sin cambio.
El conjunto de números que pueden ser leídos en el campo x es repartido por las reglas Re1 y Re2 según los 4 intervalos siguientes: x < 2, 2 \leq x < 7, 7 \leq x \leq B y x > B. De forma análoga, el conjunto de números pueden ser leídos en el campo y está repartido según los 3 intervalos siguientes: y < 3, 3 \leq y \leq 8 y y > 8.
Un árbol de análisis que resulta de la aplicación de dos reglas Re1 y Re2 a los pares (x, y) es representado en la figura 3, analizando primero el valor de x, y luego el valor de y. El nodo racimo 100 representa el punto de partida del análisis de los pares (x, y). Tres nodos 101, unidos cada uno al nodo racimo 100 por un arco 130, corresponde a resultados del análisis del valor de x con relación a los 4 intervalos identificados para x. Nodos 102, u hojas del árbol de análisis, unidos a los nodos 101 por arcos 131, corresponden respectivamente por los resultados precedentes del análisis del valor de x a los resultados del análisis del valor de y con relación a los 3 intervalos identificados para y. Para algunos valores de x, por ejemplo x < 2, el análisis de los pares (x, y) no necesita análisis del valor de y para determinar la acción atribuida por las reglas Re1 y Re2. En ese caso, un arco 131 une directamente una hoja 102 al nodo racimo 100. En otros casos, 2 \leq x < 7 y x > B, el análisis del valor de y no hace intervenir todos los límites de intervalos definidos para y. En efecto, algunos intervalos definidos para y pueden ser reunidos cuando estos corresponden a las mismas acciones respectivas atribuidas por las dos reglas.
Líneas 110 y 111 indican respectivamente las hojas 102 para las cuales la acción A2 y/o la acción A1 es atribuida por las reglas Re2 y Re1, consideradas separadamente. En fin, en función de la prioridad de esas acciones, una línea 120 indica la acción AA que corresponde a cada hoja 102 resultante de la aplicación de las dos reglas Re1 y Re2 combinadas. Así, la línea 120 retoma la línea 111 completándola por la acción A2 para aquellas hojas 102 para las cuales la línea 110 atribuye la acción A2 mientras que la línea 111 no le atribuye ninguna acción. Además, la línea 120 atribuye la acción por defecto O a las hojas 102 consideradas en cada una de las líneas 110 y 111.
Se utiliza una memoria Trie cuyos registros sucesivos R0, R1, R2, ... comprenden todos seis células elementales. Un ejemplo de configuración de esta memoria Trie correspondiente al árbol de análisis de la figura 3 es el siguiente:
1
En esta configuración de la memoria Trie, el registro portero R0 es atribuido al análisis del valor de x, y los registros R1, R2 y R3 al análisis del valor de y. R0 es por lo tanto el registro por el cual el análisis de cada par (x, y) es comenzado. Según el valor de x del par (x, y) analizado, el registro R0 reenvía a uno de los registros R1, R2 o R3 para el seguimiento del análisis. Este último registro indica entonces, en función del valor de y del par (x, y) analizado, la acción a efectuar asociada a la hoja 102 del árbol de análisis en la cual termina el camino que corresponde a los resultados sucesivos de los análisis de x y y. Según esta configuración, 4 registros de memoria Trie son necesarios para permitir el análisis de todos los pares posibles (x, y).
Analizando primero el valor y, y luego el valor x, para la aplicación de las mismas reglas Re1 y Re2, se obtiene un árbol de análisis tal como el representado en la figura 4. Referencias idénticas entre las figuras 3 y 4 corresponden a significados idénticos. En la figura 4, los nodos intermedios 103 corresponden a los resultados del análisis del valor de y, efectuado primero, cuando el análisis del valor de x debe ser efectuado seguidamente. Para cada par de números (x, y), este árbol indica un mismo resultado de aplicación de las reglas Re1 y Re2, bajo la forma de la acción AA indicada por la línea 120.
Aplicando, a partir el árbol de análisis de la figura 4, el mismo método que precedentemente para la configuración de la memoria Trie, se obtiene:
2
Así, la clasificación según la invención de los dos emplazamientos x y y permite, en este ejemplo, reducir en un registro el tamaño de la memoria Trie necesaria para permitir la aplicación de las mismas reglas de tratamiento.
Un segundo ejemplo concierne a un conjunto de reglas aplicadas a tripletes de números (x, y, z) cada uno de esos números siendo también un número hexadecimal:
- Regla Re1: si x \geq A y 3 \leq z \leq 8, entonces se efectúa una acción A1;
- Regla Re2: si x > 5 y 2 \leq y \leq 9 y z \geq 6, entonces se efectúa una acción A2;
- Regla Re3: si 3 \leq x \leq C, entonces se efectúa una acción A3.
En este ejemplo la relación de prioridad entre las tres reglas es: Re2 > Re1 > Re3. Sólo la acción más prioritaria es finalmente asignada a cada triplete, entre las acciones atribuidas para cada una de las tres reglas. Una acción por defecto O es también atribuida a una tripleta (x, y, z) que satisface las condiciones de alguna de las tres reglas.
Estas tres reglas definen 5 intervalos para el campo x: x < 3, 3 \leq x \leq 5, 5 < x < A, A \leq x \leq C, y x > C, 3 intervalos para el campo y : y < 2, 2 \leq y \leq 9, y y > 9, y 4 intervalos para el campo z : z < 3, 3 \leq z < 6, 6 \leq z \leq 8, y z > 8.
La figura 5 representa un árbol de análisis correspondiente a las tres reglas Re1, Re2 y Re3 precedentes, analizando primero el valor de x, y luego el valor de y, y finalmente el valor de z. Este árbol de análisis es construido de la misma forma que los árboles de las figuras 3 y 4. Las referencias 100 y 120 poseen los significados ya introducidos. Nodos 104 corresponden a los resultados del análisis del valor de x que no permiten determinar directamente la acción indicada para cada regla, a saber 5 < x < A, A \leq x \leq C y x > C. Igualmente, nodos 105 que corresponden a los resultados del análisis del valor de y cuando el análisis de los tripletes debe ser todavía continuado para el análisis del valor de z. Según los caminos, las hojas 106 del árbol de análisis están unidas por arcos directos a los nodos 100, 104 o
105.
Líneas 112, 113 y 114 indican, para cada una de las hojas 106, las acciones respectivamente indicadas para cada una de las tres reglas, tomadas en el orden de prioridad creciente. Una línea 120 designa la acción final asignada a cada tripleta (x, y, z) en función de la prioridad entre las acciones indicadas por las tres reglas.
Se utiliza, por ejemplo, también una memoria Trie de seis células elementales por registro. En ese caso, la configuración de la memoria Trie, según ese primer árbol de análisis, necesita tantos registros como nodos 100, 104 o 105, o sea 9 registros en total.
Un ejemplo de configuración de esta memoria Trie correspondiente al árbol de análisis de la figura 5 es el siguiente:
3
De forma análoga, la figura 6 representa un árbol de análisis correspondiente a las reglas Re1, Re2 y Re3 analizando primero el valor de y, luego el valor de z, y, por último, aquel de x, conforme al orden creciente del número de intervalos definidos respectivamente para x, y y z. Dos nodos intermedios 107 corresponden a los resultados del análisis de los valores de y, efectuado en primer lugar, y seis nodos intermedios 108 a los resultados del análisis de los valores de z, efectuado seguidamente.
En el árbol de análisis de la figura 6, los sub-árboles que corresponden a los resultados de los análisis de y y luego z siguientes [(y < 2 o y > 9) y (z < 3 o z > 8)] por una parte, y [2 \leq y \leq 9 y z < 3] por otra parte, son homólogos. Igualmente para los sub-árboles [(y < 2 o y > 9) y 3 \leq z \leq 8] por una parte, y [2 \leq y \leq 9 y 3 \leq z < 6] por otra parte. Además, en la figura 6, las acciones AA atribuidas en función del valor de x, según la línea 120, para valores de y y z tal que [2 \leq y \leq 9 y 6 \leq z \leq 8] por una parte y [2 \leq y \leq 9 y z > 8] por otra parte son idénticos. El árbol de análisis de la figura 7 corresponde entonces a aquel de la figura 6 reagrupando los sub-árboles homólogos.
La configuración de la memoria Trie, según este último árbol de análisis, necesita tantos registros como nodos 100, 107 o 108, o sea 6 registros en total. Así, 3 registros de memoria Trie han sido economizados con relación a la configuración de la memoria Trie sacada del árbol de análisis de la figura 5. Un ejemplo de configuración de la memoria Trie que corresponde al árbol de análisis de la figura 7 es:
4
La figura 8 detalla las diferentes etapas de la creación de un nuevo arco de árbol de análisis según el modo de realización preferido del procedimiento de la invención que evita, desde la construcción del árbol de análisis, la creación de sub-árboles homólogos. Se trata de determinar el punto de llegada de un nuevo arco sacado de n nodo NP de una p-esima etapa del árbol de análisis, y asociado a un campo D determinado para el emplazamiento E_{p} asociado a la
p-esima etapa.
El método descrito es aplicado de forma recurrente a cada etapa del árbol de análisis, tomado según el orden de los emplazamientos respectivamente asociados a las etapas. Este método genera los nodos del árbol de análisis, al mismo tiempo que atribuye a cada nodo creado un subconjunto de reglas. Así, antes de la aplicación del presente método al nodo NP, un subconjunto {R_{j}} de reglas es ya asociado a ese nodo, j siendo un número entero de enumeración.
Se supone que cada regla R_{j} atribuye una acción cuando, para algunos emplazamientos, la cadena binaria leída en este emplazamiento está comprendida en un intervalo de valores especificado por esta regla. Esta forma de reglas R_{j} corresponde a aquella de los ejemplos precedentes.
En una primera interrogación 200, se buscan aquellas reglas R_{j} cuyo intervalo contiene el campo D para el cual el arco asociado está en curso de creación. Si ninguna de las reglas R_{j} posee un intervalo que contiene el campo D, entonces el punto de llegada del arco es una hoja 102, 106 asociada a la acción definida por defecto O, según la etapa 201.
En caso positivo, la segunda interrogación 210 consiste en buscar entre las reglas R_{j1} identificadas durante la etapa 200, las reglas R_{j2} donde al menos un intervalo corresponde a un emplazamiento E_{q} posterior al emplazamiento E_{p} según el orden de clasificación de los emplazamientos. Si ninguna de las reglas R_{j1} posee un intervalo que corresponda a un emplazamiento posterior E_{p}, entonces (etapa 211) el punto de llegada del arco es una hoja 102, 106 asociada a la acción de la regla más prioritaria entre las reglas R_{j1} identificadas en la etapa 200.
En el caso donde las reglas R_{j2} son identificadas durante la etapa 210, se busca entonces, en una etapa 220, si un nodo NP^{+1} ya creado en la etapa (p+1) del árbol de análisis está asociado a un subconjunto {R_{j2}} de las reglas identificadas. En caso afirmativo, ese nodo es el punto de llegada del nuevo arco sacado del nodo NP (etapa 222). En caso negativo, un nuevo nodo NP^{+1} es creado en la etapa (p+1) y asociado al subconjunto {R_{j2}} de las reglas identificadas durante la etapa 210 (etapa 221).
Este análisis es repetido por cada uno de los campos D determinados por el emplazamiento E_{p}, a fin de establecer el arco sacado del nodo NP asociado a cada uno de ellos. El mismo es seguidamente repetido de forma idéntica para un nodo a continuación de la p-esima etapa del árbol de análisis, hasta un agotamiento de los nodos de esta etapa. Finalmente, el mismo es también reiterado para todos los nodos de la etapa siguiente (p+1), de forma de continuar la construcción del árbol de análisis.
Este método de creación de nuevos arcos es realizado para la construcción de un cuarto árbol que corresponde a las reglas dadas con referencia a la figura 5. De igual manera que para la figura 6, los emplazamientos son clasificados según el orden objeto de la invención. El árbol resultante es representado en la figura 9.
Para cada nodo del árbol es indicado el subconjunto de las reglas {R_{j2}} asociadas a ese nodo. Para las hojas 106, la línea 121 indica las reglas R_{j1} que determinan, en función de sus prioridades relativas, las acciones asociadas a esas hojas e indicadas por la línea 120.
Los diferentes ejemplos de configuración de memoria Trie detallados en esta solicitud de patente muestran el interés de la invención por la configuración de una memoria Trie. Este procedimiento, gracias a la clasificación de los emplazamientos, eventualmente combinado con el reagrupamiento de los sub-árboles de análisis homólogos, permite reducir el número de registros necesarios de una memoria Trie utilizada para asignar a células ATM de las acciones designadas por reglas fijas. Las reducciones obtenidas en los ejemplos presentados están en relación con la simplicidad de esos ejemplos. Para políticas de control de acceso reales, las reducciones obtenidas por la aplicación de los mismos principios pueden ser consecuentes, según el caso, en función del número de reglas, del número y del tamaño de los campos considerados y de los intervalos elementales asociados a los campos.
En la práctica, la configuración de la memoria Trie según la invención es efectuada a medida de la introducción de nuevas reglas, o de la supresión de reglas, al nivel del gestor del control de acceso. Ese gestor comprende un módulo de compilación que construye y modifica los árboles de análisis en función de las actualizaciones de reglas introducidas, antes de modificar la configuración existente de la memoria Trie.

Claims (16)

1. Procedimiento de configuración de una memoria asociativa de tipo Trie para el tratamiento de paquetes de datos en función de un conjunto de reglas, la memoria Trie siendo utilizada para el análisis de cadenas binarias situadas en emplazamientos determinados de cada paquete de datos, cada regla atribuyendo una acción (110-114) a un paquete en función de los valores de dichas cadenas binarias, la memoria Trie comprendiendo registros compuestos por un número determinado de células elementales para recibir referencias respectivas, el procedimiento comprendiendo las etapas siguientes:
a-
para cada uno de dichos emplazamientos, se definen intervalos elementales consecutivos que cubren valores de cadena binaria que pueden aparecer en dicho emplazamiento, cada intervalo elemental siendo tal que la acción (110-114) atribuida para cada una de las reglas no sea modificada por un cambio, en el interior de dicho intervalo elemental, del valor de la cadena binaria situada en dicho emplazamiento en un paquete tratado;
b-
se inventarían los intervalos elementales definidos para cada emplazamiento y se clasifican los emplazamientos en un orden tal que el emplazamiento para el cual el mayor número de intervalos elementales ha sido definido sea colocado de último;
c-
se traduce el conjunto de reglas en un árbol de análisis de los paquetes que comprenden nodos (100, 101, 103-105, 107, 108) repartidos en etapas sucesivas respectivamente asociadas a los emplazamientos considerados en dicho orden, arcos (130, 131), y hojas (102, 106) que corresponden a acciones (120) atribuibles por las reglas, la primera etapa del árbol comprendiendo un único nodo (100) llamado racimo del árbol de análisis,
cada arco teniendo un nodo de partida asociado a un emplazamiento y un punto de llegada que consiste en un nodo de la etapa siguiendo aquella del nodo de partida como en una hoja, y cada arco estando asociado a un campo respectivo de valores de cadena binaria posibles a dicho emplazamiento,
el árbol de análisis que define los caminos que consisten cada uno en una sucesión de n arcos (130, 131), n siendo un número entero al menos igual a 1, el primer arco de la sucesión teniendo pro nodo de partida el racimo del árbol de análisis,
el punto de llegada de cada arco de un camino además del último arco siendo el nodo de partida del arco siguiente de dicho camino, y que el punto de llegada del último arco del camino siendo una hoja (102, 106) que corresponde a una acción atribuida después del conjunto de reglas a cada paquete que tiene, en los n emplazamientos respectivamente asociados a las etapas de los nodos de partida n arcos del camino, valores de cadena binaria que caen en los n campos respectivamente asociados a dichos arcos;
d-
se asignan un grupo de registros de la memoria Trie incluyendo un registro portero a cada nodo (100, 101, 103-105, 107, 108) del árbol de análisis que pertenece a una etapa asociada a un emplazamiento, y se registra en las células de dicho grupo de registros referencias tales que analizando a partir del registro portero el valor de cadena binaria contenida en dicho emplazamiento en un paquete, se obtiene una referencia final que depende de qué campo contiene dicho valor entre los campos de valores asociados a los arcos que tienen dicho nodo como nodo de partida y tal que:
si el arco asociado (131) al campo que contiene dicho valor tiene como punto de llegada una hoja (102, 106) que corresponde a una acción (120), la referencia final designa dicha acción como siendo atribuida al paquete, y
si el arco (130) asociado al campo que contiene dicho valor tiene otro nodo (101, 103-105, 107, 108) de la etapa siguiente como punto de llegada, la referencia final designa dicho otro nodo para proseguir analizando el valor de cadena binaria contenida en el paquete en el emplazamiento asociado a dicha etapa siguiente.
2. Procedimiento según la reivindicación 1, según el cual, durante la etapa b, se clasifican dichos emplazamientos en el orden de los números crecientes de intervalos elementales.
3. Procedimiento según la reivindicación 1 o 2, según el cual, los intervalos elementales definidos para cada emplazamiento comprenden límites de intervalo, y según el cual cada límite de intervalo corresponde al cambio de una acción (110-114) atribuible por al menos una regla.
4. Procedimiento según una cualquiera de las reivindicaciones precedentes, en el cual la traducción del conjunto de reglas es tal que al menos un nodo del árbol de análisis sea el punto de llegada de varios arcos sacados de nodos de partida distintos de la etapa precedente.
5. Procedimiento según una cualquiera de las reivindicaciones precedentes, en el cual un sub-árbol está asociado a cada nodo del árbol de análisis además del racimo del árbol de análisis, dicho sub-árbol teniendo un racimo constituido por dicho nodo y estando compuesto por nodos, arcos y hojas reunidas a partir de dicho nodo a lo largo de los diferentes caminos que pasan por dicho nodo, y en el cual la traducción del conjunto de reglas es operada de forma tal que el árbol de análisis no incluya primer y segundo sub-árboles teniendo racimos distintos y tal que se pueda aparear sus nodos respectivos, sus arcos respectivos y sus hojas respectivas, de tal manera que cada nodo del primer sub-árbol sea apareado a un nodo del segundo sub-árbol perteneciendo a una misma etapa, que cada hoja del primer sub-árbol sea apareada a una hoja del segundo sub-árbol correspondiente a una misma acción, y que dos arcos apareados de los primer y segundo sub-árboles tengan nodos de partida apareados y puntos de llegada apareados y sean asociados al mismo campo de valores.
6. Procedimiento según una cualquiera de las reivindicaciones precedentes, en el cual cada regla del conjunto es definida por una acción e intervalos de valores que corresponden respectivamente a algunos al menos de los emplazamientos, y atribuye dicha acción a los paquetes que tienen, en dichos emplazamientos, valores de cadenas binarias que caen respectivamente en dichos intervalos.
7. Procedimiento según la reivindicación 6, en el cual se asocia un subconjunto de reglas a cada nodo de una (p+1)esima etapa del árbol de análisis, p siendo un número entero mayor que 0, dicho subconjunto estando compuesto por reglas del conjunto tales que cada intervalo de valores correspondiente a un emplazamiento asociado a una de las p primeras etapas del árbol tenga un recubrimiento no vacío con el campo de valores asociado al arco de cada camino que pasa por dicho nodo y teniendo su nodo de partida en dicha etapa.
8. Procedimiento según la reivindicación 7, en el cual se asocia al nodo racimo un subconjunto constituido por el conjunto de reglas, y en el cual la traducción del conjunto de reglas comprende las etapas siguientes para cada nodo de la p-esima etapa asociada a un primer subconjunto de reglas:
-
determinar campos de valores que cubren valores de cadena binaria que pueden aparecer en el p-esimo emplazamiento según dicho orden, cada campo siendo tal que la acción atribuida por cada una de las reglas del primer subconjunto no sea modificada por un cambio, en el interior de dicho campo, del valor de la cadena binaria situada en el p-esimo emplazamiento en un paquete tratado; y
-
para cada uno de dichos campos de valores:
-
generar un arco asociado a dicho campo, que tiene dicho nodo de la p-esima etapa por nodo de partida;
-
detectar cada regla del primer subconjunto que es definida por al menos un intervalo de valores que incluye dicho campo;
-
si ninguna regla es detectada, asignar una hoja del árbol correspondiente a una acción por defecto como punto de llegada de dicho arco;
-
si para cada regla detectada, ningún intervalo de valores corresponde a uno cualquiera de los emplazamientos siguiendo el p-esimo emplazamiento según dicho orden, asignar una hoja del árbol correspondiente a una acción de una regla detectada como punto de llegada de dicho arco;
-
si para al menos una regla detectada, un intervalo de valores corresponde a uno de los emplazamientos siguiendo el p-esimo emplazamiento según dicho orden, asignar un nodo de la (p+1)esima etapa del árbol como punto de llegada de dicho arco, dicho nodo de la (p+1)esima etapa estando asociado a un segundo subconjunto compuesto por reglas detectadas del primer subconjunto.
9. Procedimiento según la reivindicación 8, en el cual prioridades son respectivamente asignadas a las reglas del conjunto, y en el cual cuando varias reglas son detectadas y ninguno de sus intervalos de valores corresponde a uno de los emplazamientos siguiendo el p-esimo emplazamiento, la acción correspondiente a la hoja del árbol asignada a dicho arco es aquella de una de las reglas detectadas, seleccionada sobre la base de las prioridades asignadas.
10. Procedimiento según la reivindicación 8 o 9, en el cual se ejecutan las etapas siguientes cuando se ha detectado al menos una regla que tiene un intervalo de valores correspondiente a uno de los emplazamientos siguiendo el p-esimo emplazamiento:
-
buscar si ya ha sido generado un nodo de la (p+1)esima etapa del árbol asociada al segundo subconjunto;
-
si la búsqueda se detiene, generar un nodo tal en la (p+1)esima etapa;
-
si la búsqueda identifica un nodo de la (p+1)esima etapa, asignar el nodo identificado como punto de llegada de dicho arco.
11. Dispositivo de tratamiento de paquetes de datos que comprende una memoria asociativa de tipo Trie y un controlador adaptado para llevar a cabo un procedimiento de configuración de la memoria Trie según una cualquiera de las reivindicaciones precedentes.
12. Dispositivo según la reivindicación 11, en el cual los paquetes de datos son células ATM portadoras de tramas AAL 5.
13. Dispositivo según la reivindicación 11, en el cual los paquetes de datos son paquetes IP.
14. Dispositivo según una cualquiera de las reivindicaciones 11 a 13, dispuesto para el encaminamiento por una red de comunicación de paquetes de datos en función de reglas de encaminamiento aplicadas a dichos paquetes.
15. Dispositivo según una cualquiera de las reivindicaciones 11 a 13, dispuesto para el control de acceso a una red de comunicación por paquetes de datos en función de reglas de control de acceso a esa red aplicadas a dichos paquetes.
16. Dispositivo según una cualquiera de las reivindicaciones 11 a 13, dispuesto para la adquisición de informaciones concernientes a paquetes de datos transmitidos por una red de comunicación.
ES03290242T 2002-02-12 2003-01-31 Procedimiento y dispositivo para el tratamiento de paquetes de datos. Expired - Lifetime ES2276021T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0201705 2002-02-12
FR0201705A FR2835991B1 (fr) 2002-02-12 2002-02-12 Procede de configuration d'une memoire trie pour le traitement de paquets de donnees, et dispositif de traitement de paquets mettant en oeuvre un tel procede

Publications (1)

Publication Number Publication Date
ES2276021T3 true ES2276021T3 (es) 2007-06-16

Family

ID=27589623

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03290242T Expired - Lifetime ES2276021T3 (es) 2002-02-12 2003-01-31 Procedimiento y dispositivo para el tratamiento de paquetes de datos.

Country Status (7)

Country Link
US (1) US7023859B2 (es)
EP (1) EP1335565B1 (es)
AT (1) ATE345634T1 (es)
CA (1) CA2373331A1 (es)
DE (1) DE60309611T2 (es)
ES (1) ES2276021T3 (es)
FR (1) FR2835991B1 (es)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2812491B1 (fr) * 2000-07-25 2003-01-10 France Telecom Dispositif de controle d'acces entre des reseaux atm
US7899067B2 (en) * 2002-05-31 2011-03-01 Cisco Technology, Inc. Method and apparatus for generating and using enhanced tree bitmap data structures in determining a longest prefix match
US7508825B2 (en) * 2002-08-05 2009-03-24 Intel Corporation Data packet classification
JP4610240B2 (ja) 2004-06-24 2011-01-12 富士通株式会社 分析プログラム、分析方法及び分析装置
US7281642B2 (en) * 2004-09-16 2007-10-16 Prime Time Toys, Ltd. Squirting toy
US20060288024A1 (en) * 2005-04-28 2006-12-21 Freescale Semiconductor Incorporated Compressed representations of tries
US7940657B2 (en) 2006-12-01 2011-05-10 Sonus Networks, Inc. Identifying attackers on a network
US7672336B2 (en) * 2006-12-01 2010-03-02 Sonus Networks, Inc. Filtering and policing for defending against denial of service attacks on a network
US7804774B2 (en) * 2006-12-01 2010-09-28 Sonus Networks, Inc. Scalable filtering and policing mechanism for protecting user traffic in a network
USD606130S1 (en) 2009-04-21 2009-12-15 Prime Time Toys, Ltd. Squirting toy
USD621451S1 (en) 2009-08-31 2010-08-10 Easeon Services, Ltd. Squirting toy with animal head
USD621449S1 (en) 2009-08-31 2010-08-10 Easeon Services, Ltd. Squirting toy with animal head
USD621452S1 (en) 2009-09-02 2010-08-10 Easeon Services, Ltd. Squirting toy with handle
US8732207B2 (en) 2012-07-02 2014-05-20 International Business Machines Corporation Attribute-based linked tries for rule evaluation

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU620994B2 (en) * 1989-07-12 1992-02-27 Digital Equipment Corporation Compressed prefix matching database searching
FR2789778B1 (fr) * 1999-02-12 2001-09-14 France Telecom Procede pour associer des references d'acheminement a des paquets de donnees au moyen d'une memoire trie, et routeur de paquets appliquant ce procede
EP1128608B1 (en) * 2000-01-27 2006-03-01 International Business Machines Corporation Method and means for classifying data packets
FR2812491B1 (fr) 2000-07-25 2003-01-10 France Telecom Dispositif de controle d'acces entre des reseaux atm

Also Published As

Publication number Publication date
DE60309611T2 (de) 2007-09-06
US7023859B2 (en) 2006-04-04
FR2835991A1 (fr) 2003-08-15
ATE345634T1 (de) 2006-12-15
FR2835991B1 (fr) 2004-04-23
EP1335565B1 (fr) 2006-11-15
EP1335565A3 (fr) 2005-10-05
DE60309611D1 (de) 2006-12-28
US20030156590A1 (en) 2003-08-21
EP1335565A2 (fr) 2003-08-13
CA2373331A1 (en) 2003-08-12

Similar Documents

Publication Publication Date Title
ES2276021T3 (es) Procedimiento y dispositivo para el tratamiento de paquetes de datos.
US6496502B1 (en) Distributed multi-link trunking method and apparatus
EP1012726B1 (en) Policy caching method and apparatus for use in a communication device
US8839409B2 (en) Tunneled security groups
US9258227B2 (en) Next hop chaining for forwarding data in a network switching device
US6738862B1 (en) Block mask ternary CAM
ES2237585T3 (es) Dispositivo de control de acceso entre redes atm.
US10462039B2 (en) Data neural network system and method
ES2574003T3 (es) Procedimiento y aparato para proporcionar seguridad de red utilizando control de acceso basado en roles
JP4454499B2 (ja) 多数の論理サブ送信システムの機能性を持つ送信システム
ES2311752T3 (es) Etiquetas de flujo.
US8893256B2 (en) System and method for protecting CPU against remote access attacks
JP4384048B2 (ja) ソフトウェアおよびハードウェア・パケット・フロー転送を行うルータまたはスイッチ、およびその方法
US20030058856A1 (en) Stackable switch port collapse mechanism
US20110219444A1 (en) Dynamically adaptive network firewalls and method, system and computer program product implementing same
EP2359545B9 (de) Verfahren zur bereitstellung von sicherheitsmechanismen in drahtlosen mesh-netzwerken
JP2004522383A (ja) Tcamを使用するデータフローの選択的なルーティング方法
EP2596603B1 (en) Ethernet switch and method for routing ethernet data packets
ES2441994T3 (es) Procedimiento para transmitir paquetes de datos con diferente precedencia a través de una red pasiva óptica
EP1836808B1 (en) Fibre channel forwarding information base
CN102065021A (zh) 基于NetFPGA的IPSecVPN实现系统及方法
EP3432513B1 (en) Deterministic and optimized bit index explicit replication (bier) forwarding
US20040228342A1 (en) Routing of data streams
Maccari et al. Mesh network firewalling with bloom filters
US20220086085A1 (en) Neural Network for Secure Data Transport, System and Method