Identificadores únicos para variables de firewall
El sistema utiliza identificadores únicos (UID) para ayudar con el escalado. El UID permite al sistema determinar cuándo los objetos de configuración de varios suscriptores son idénticos y se pueden compartir. En muchas situaciones, como una definición de filtro, compartir un solo filtro entre varios suscriptores en lugar de crear un nuevo filtro para cada suscriptor ayuda a conservar los recursos del sistema.
Dentro de un perfil dinámico, un UID se utiliza para asignar un nombre a un objeto de configuración. El sistema asigna el valor del UID (el nombre del objeto) en función de todas las variables contenidas en esa estrofa de configuración junto con el nombre del perfil dinámico. El valor UID asignado consta del nombre UID combinado con la cadena _UID
y un número único. Por ejemplo, el UID $my-filter
podría recibir el valor my-filter_UID1022
.
Primero debe definir un UID debajo de la variable
estrofa utilizando la opción uid
. El UID debe definirse al final, después de todas las variables a las que se asignan valores externamente.
dynamic-profile test-profile { variables { ... [other variables] ... [my-filter] { uid; } } }
Una vez definido un UID, se puede utilizar para asignar un nombre a un objeto:
dynamic-profile test-profile { firewall { family inet { filter [$my-filter] { ... [filter definition that makes use of other variables] ... } } } }
Como se describió anteriormente, el sistema asigna el valor de $my-filter
dependiendo de los valores de las variables utilizadas dentro de la definición de ese filtro.
El UID también se utiliza en cualquier otro lugar donde se utilice el nombre del objeto. Por ejemplo, aquí hay una estrofa de interfaz para usar $my-filter
como filtro de entrada:
dynamic-profile [test-profile] { interfaces { [$junos-interface-ifd-name]" { unit [$junos-interface-unit] { family inet { filter { input [$my-filter]; } } } } } }
Puede definir varios objetos de configuración del mismo tipo (es decir, varios filtros) siempre que cada uno utilice su propio UID individual. Para asegurarse de que el sistema selecciona el objeto correcto al asignar un nombre, utilice la variable uid-reference .
Cuando se utiliza la referencia uid, se evalúa efectivamente dos veces. En primer lugar, se recupera el valor de la variable uid-reference. En segundo lugar, ese valor se utiliza como nombre de un UID y se recupera ese valor UID. Una referencia uid con un valor que no es el nombre de un UID se considera un error.
Una referencia uid se define de manera similar a cualquier otra variable:
dynamic-profile [test-profile] { variables { [my-filter-selector] { uid-reference; } } }
Una referencia uid se utiliza siempre que se necesite el nombre del objeto. Un ejemplo es el nombre del filtro de entrada en la siguiente estrofa de interfaz:
dynamic-profile [test-profile] { interfaces { [$junos-interface-ifd-name] { unit [$junos-interface-unit] { family inet { filter { input [$my-filter-selector]; } } } } } }
Considere el caso en el que se definen dos filtros parametrizados: $my-filtro-1 y $my-filtro-2. A la variable $my-filter-selector se le puede asignar el valor my-filter-1 o my-filter-2, dependiendo del filtro apropiado.