Evitar conflictos cuando los términos coinciden
Un filtro de actualización rápida puede contener varios términos, cada uno con una variedad de condiciones de coincidencia. Sin embargo, al configurar varios términos en un filtro, debe asegurarse de que los términos no se superpongan ni entren en conflicto entre sí. Se considera que dos términos se superponen cuando es posible que un paquete coincida con todas las condiciones de ambos términos. Dado que cada término especifica una acción diferente para las coincidencias, el enrutador no puede determinar qué acción realizar. Cuando los términos se superponen, se produce un error de conflicto y se produce un error en la sesión cuando el perfil dinámico intenta aplicar el filtro. El registro de errores indica los términos superpuestos.
Cómo evalúa el enrutador los términos de un filtro
El enrutador crea una tabla de condiciones de coincidencia al examinar los términos. La tabla, que es similar a una tabla de enrutamiento, se basa en las condiciones incluidas en la match-order
instrucción. Cuando el enrutador recibe un paquete, el enrutador examina el contenido del paquete en la secuencia especificada en la match-order
instrucción.
Por ejemplo, utilizando la configuración de ejemplo del siguiente ejemplo de orden de coincidencia, el enrutador examina primero el , luego el , source-address
y destination-address
finalmente el destination-port
. Como se muestra en la tabla siguiente, los dos términos del filtro no se superponen porque cada término tiene una especificación diferente destination-port
. A continuación, el enrutador realiza la acción de filtrado adecuada para el término que coincida con el destination-port
valor del paquete.
Término |
dirección de origen |
dirección-destino |
puerto de destino |
Acción |
---|---|---|---|---|
T55 |
Dirección del suscriptor |
203.0.113.2/32 |
http (en inglés) |
Cuenta t55_cntr Aceptar |
T999 |
Dirección del suscriptor |
203.0.113.2/32 |
https (en inglés) |
Cuenta t999_cntr Aceptar |
Ejemplo de orden de coincidencia
firewall { family inet { fast-update-filter psf1 { interface-specific; match-order [ source-address destination-address destination-port ]; term t55 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; destination-port http; } then { count t55_cntr; accept; } } term t999 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; destination-port https; } then { count t999_cntr; accept; } } } } }
Uso de comodines implícitos
En esta sección se muestra un ejemplo de cómo puede usar una especificación comodín implícita en la configuración de coincidencia. Una condición de la instrucción es un comodín implícito cuando esa condición no está configurada en la match-order
from
especificación de un término en el filtro.
Cuando se utilizan rangos (por ejemplo, un rango de valores o un comodín) en términos, los rangos no deben superponerse; los rangos superpuestos crean un error de conflicto. Sin embargo, puede configurar un rango en un término y una coincidencia exacta en otro término. Por ejemplo, en la siguiente tabla de filtros, el valor del puerto de destino comodín en términos no se superpone a las especificaciones del puerto de destino en términos t3
t55
y porque los http
valores y t999
https
coinciden exactamente.
En la configuración del ejemplo de comodín implícito, el enrutador ve la condición de la instrucción como un comodín implícito para el destination-port
match-order
término , porque no hay ningún destination-port
valor configurado en ese términot3
. Como resultado, el comodín especifica que para el término t3
se acepta cualquier destination-port
valor. La tabla de filtros aparece como sigue:
Término |
dirección de origen |
dirección-destino |
puerto de destino |
Acción |
---|---|---|---|---|
T3 |
Dirección del suscriptor |
203.0.113.2/32 |
cualquiera (comodín) |
Cuenta t3_cntr Aceptar |
T55 |
Dirección del suscriptor |
203.0.113.2/32 |
http (en inglés) |
Cuenta t55_cntr Aceptar |
T999 |
Dirección del suscriptor |
203.0.113.2/32 |
https (en inglés) |
Cuenta t999_cntr Aceptar |
En la siguiente configuración de filtro, el tráfico con un puerto de destino coincide con el término t55
y el tráfico con un puerto de destino de http
https
coincidenciast999
. Tráfico con un puerto de destino distinto del http
término t3
o https
coincide , que es el comodín implícito.
Ejemplo de comodín implícito
firewall { family inet { fast-update-filter psf1 { interface-specific; match-order [ source-address destination-address dscp protocol destination-port ]; term t3 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; } then { count t3_cntr; accept; } } term t55 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; destination-port http; } then { count t55_cntr; accept; } } term t999 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; destination-port https; } then { count t999_cntr; accept; } } } } }
Conflicto causado por rangos superpuestos
Esta sección muestra dos ejemplos de rangos superpuestos en términos. Cuando se utilizan rangos (como un comodín o un rango de valores) en términos, los rangos no deben superponerse: los rangos superpuestos crean un error de conflicto y se produce un error en la sesión.
En la siguiente configuración de filtro, los rangos de los destination-port
dos términos se superponen. Los puertos del 50 al 80 coinciden tanto con el término como con el término src0
src1
, cada uno de los cuales especifica diferentes acciones a realizar.
Puede configurar un rango en un término y una coincidencia exacta en otro término. Consulte la sección Uso de comodines implícitos para ver un ejemplo que usa un comodín para una condición de coincidencia en un término y una coincidencia exacta para la condición en un segundo término.
Término |
dirección de origen |
dirección-destino |
puerto de destino |
Acción |
---|---|---|---|---|
src0 |
Dirección del suscriptor |
203.0.113.2/32 |
0–80 |
Cuenta c1_cntr Aceptar |
SRC1 |
Dirección del suscriptor |
203.0.113.2/32 |
50–100 |
Cuenta c2_cntr Aceptar |
Ejemplo 1 de rangos superpuestos
firewall { family inet { fast-update-filter fuf–src { interface-specific; match-order [ source-address destination-address destination-port ]; term src0 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; destination-port 0–80; } then { count c1_cntr; accept; } } term src1 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; destination-port 50–100; } then { count c2_cntr; accept; } } }
En esta configuración de filtro, la protocol
especificación en términos src21
y src22
usa el comodín implícito, que configura un rango para cada término. Dado que no se permiten rangos superpuestos, se produce un error de conflicto.
Término |
dirección de origen |
dirección-destino |
Protocolo |
puerto de destino |
Acción |
---|---|---|---|---|---|
SRC20 |
Dirección del suscriptor |
203.0.113.2/32 |
Udp |
cualquiera (comodín) |
Cuenta c20_cntr Aceptar |
SRC21 |
Dirección del suscriptor |
203.0.113.2/32 |
cualquiera (comodín) |
http (en inglés) |
Cuenta c21_cntr Aceptar |
SRC21 |
Dirección del suscriptor |
203.0.113.2/32 |
cualquiera (comodín) |
https (en inglés) |
Cuenta c22_cntr Aceptar |
Rango superpuesto Ejemplo 2
firewall { family inet { fast-update-filter fuf–src2 { interface-specific; match-order [ source-address destination-address protocol destination-port ]; term src20 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; protocol udp; } then { count c20_cntr; accept; } } term src21 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; destination-port http; } then { count c21_cntr; accept; } } term src22 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; destination-port https; } then { count c22_cntr; accept; } } }