Configuración de servicios de redireccionamiento HTTP estáticos y basados en motores de enrutamiento
A partir de la versión 19.3R2 de Junos OS, el servicio de redireccionamiento HTTP también se admite si habilitó los servicios de próxima generación en la serie MX.
Puede configurar los servicios de redireccionamiento HTTP en el motor de enrutamiento como alternativa al uso de una tarjeta de servicios MS-MPC/MS-MIC o MX-SPC3. Configure el jardín vallado como un filtro de servicio de firewall. Un jardín amurallado es un grupo de servidores que proporcionan acceso a los suscriptores a sitios dentro del jardín amurallado sin necesidad de reautorización a través de un portal cautivo. El filtro de servicio de jardín vallado identifica el tráfico destinado al jardín amurallado y el tráfico destinado fuera del jardín amurallado. Solo el tráfico HTTP destinado fuera del jardín amurallado se envía al motor de enrutamiento para su procesamiento por el servicio de redireccionamiento HTTP. El servicio CPCD se asocia a una interfaz de servicio en el motor de enrutamiento mediante un conjunto de servicios.
Las interfaces de servicio en el motor de enrutamiento se identifican con un prefijo si- (por ejemplo, si-1/1/0). La interfaz si procesa todo el tráfico y los servicios de redirección y reescritura para el motor de enrutamiento. La interfaz si debe estar operativa con un estado activo para habilitar y activar el servicio de entrega de contenido de portal cautivo (CPCD). Una vez habilitado el servicio CPCD, cualquier cambio en el estado operativo de la interfaz si- no afecta a los servicios CPCD existentes.
El servicio CPCD envía el tráfico de solicitud HTTP del suscriptor que no está destinado al jardín amurallado a un servidor de redireccionamiento, que responde con una URL de redireccionamiento. La URL de redireccionamiento envía tráfico a un portal cautivo en lugar de al sitio externo no autorizado. El portal cautivo proporciona servicios de autenticación y autorización para los suscriptores redirigidos antes de otorgarles acceso a servidores protegidos fuera del jardín amurallado.
El servidor de redireccionamiento puede ser local o remoto:
Servidor de redireccionamiento local: reside en el enrutador y redirige el tráfico de los suscriptores a un portal cautivo dentro de un jardín amurallado.
Servidor de redireccionamiento remoto: reside en un dispositivo como un servidor de políticas dentro de un jardín amurallado detrás del enrutador. La dirección de destino para el tráfico HTTP del suscriptor se reescribe en la dirección del servidor de redireccionamiento remoto. El servidor remoto redirige el tráfico de los suscriptores a un portal cautivo dentro de ese jardín amurallado.
Configuración de un jardín vallado como filtro de servicio de firewall
Cuando se configura el jardín vallado como un filtro de servicio de firewall, el tráfico destinado a los servidores dentro del jardín vallado se identifica y se omite. Todo el resto del tráfico HTTP está destinado a direcciones fuera del jardín amurallado. Dado que este tráfico no coincide con las condiciones del filtro, fluye al motor de enrutamiento para su control.
Puede configurar el filtro de servicio para que el jardín vallado contenga un único servidor como portal cautivo o una lista de servidores.
-
Configure el jardín vallado con un único servidor como portal cautivo:
Cree el filtro de servicio.
[edit] user@host# edit firewall family address-family service-filter filter-name
Defina un término de filtro para identificar y omitir el procesamiento del tráfico al portal cautivo.
Especifique las condiciones de filtro para que coincidan con el tráfico destinado al portal cautivo especificando la dirección de destino del portal cautivo y el puerto de destino.
[edit firewall family inet service-filter filter-name] user@host# set term name from destination-address ip-address user@host# set term name from destination-port port-number
Especifique que el tráfico coincidente omita el procesamiento en la tarjeta de línea.
[edit firewall family inet service-filter filter-name] user@host# set term name then skip
Defina un término de filtro para identificar el tráfico HTTP de todo el tráfico que no coincida con el término anterior y envíelo para su procesamiento mediante las reglas de servicio de CPCD.
Especifique uno o varios números de puerto HTTP para que coincidan con el tráfico HTTP omitido.
[edit firewall family inet service-filter filter-name] user@host# set term name from destination-port http-port-number
Especifique que el tráfico coincidente lo procesa un servicio CPCD.
[edit firewall family inet service-filter filter-name] user@host# set term name then service
Defina un término de filtro para omitir acciones adicionales para cualquier tráfico restante que no sea HTTP.
[edit firewall family inet service-filter filter-name] user@host# set term name then skip
Por ejemplo, la siguiente configuración crea un filtro para el tráfico HTTP IPv4, walled-v4, con el portal cautivo en 192.0.2.0. El procesamiento se omite para el tráfico que coincide con la dirección; El tráfico se envía al portal cautivo. El tráfico no coincidente va al término http, donde el tráfico HTTP se selecciona de todo el tráfico omitido y se envía para ser procesado de acuerdo con un servicio CPCD. Por último, la omisión de términos hace que se omita todo el tráfico restante que no sea HTTP.
[edit] user@host# edit firewall family inet service-filter walled-v4 [edit firewall family inet service-filter walled-v4] user@host# set term portal from destination-address 192.0.2.0 user@host# set term portal from destination-port 80 user@host# set term portal then skip user@host# set term http from destination-port 80 user@host# set term http then service user@host# set term skip then skip
-
Configure el jardín vallado como una lista o subred de servidores.
Cree el filtro de servicio.
[edit] user@host# edit firewall family address-family service-filter filter-name
Defina un término de filtro.
Especifique las condiciones de filtro para que coincidan con el tráfico destinado a cualquier servidor en el jardín amurallado especificando una lista de servidores de prefijo de destino.
[edit firewall family inet service-filter filter-name] user@host# set term name from destination-prefix-list list-name user@host# set term name from destination-port port-number
Nota: En Junos OS Evolved, puede crear más de una lista de prefijos; cada uno puede tener un máximo de tres o cuatro prefijos.Especifique que el tráfico coincidente omita el procesamiento en la tarjeta de línea.
[edit firewall family inet service-filter filter-name] user@host# set term name then skip
Defina un término de filtro para identificar el tráfico HTTP de todo el tráfico que no coincida con el término anterior y envíelo para su procesamiento mediante las reglas de servicio de CPCD.
Especifique uno o varios números de puerto HTTP para que coincidan con el tráfico HTTP omitido.
[edit firewall family inet service-filter filter-name] user@host# set term name from destination-port http-port-number
Especifique que el tráfico coincidente lo procesa un servicio CPCD.
[edit firewall family inet service-filter filter-name] user@host# set term name then service
Defina un término de filtro para omitir acciones adicionales para cualquier tráfico restante que no sea HTTP.
[edit firewall family inet service-filter filter-name] user@host# set term name then skip
(Opcional) Defina una lista de prefijos que especifique los servidores dentro del jardín amurallado. Puede especificar una subred o varias direcciones individuales.
[edit policy-options] user@host# set prefix-list list- name ip-address/mask user@host# set prefix-list list- name ip-address1 user@host# set prefix-list list- name ip-address2
Por ejemplo, la siguiente configuración crea un filtro para el tráfico HTTP IPv6, walled-v6-list, con un prefijo list, wg-list, que especifica dos servidores en el jardín amurallado. El término de filtro portal6 identifica el tráfico IPv6 destinado al jardín amurallado. El tráfico no coincidente va al término http6, donde el tráfico HTTP se selecciona de todo el tráfico omitido y se envía para ser procesado de acuerdo con un servicio CPCD. Por último, el término skip6 hace que se omita todo el tráfico restante que no sea HTTP.
[edit] user@host# edit firewall family inet6 service-filter walled-v6-list user@host# set term portal6 from destination-prefix-list wg-list user@host# set term portal6 then skip user@host# set term http6 from destination-port [80 8080] user@host# set term http6 then service user@host# set term skip6 then skip [edit policy-options] user@host# set prefix-list wg-list 2001:db8::10.10 user@host# set prefix-list wg-list 2001:db8::10.22
Configuración de la redirección HTTP para servidores de redirección local y remota
Cuando se realizan solicitudes HTTP para sitios fuera del jardín amurallado, CPCD puede redirigir el tráfico a un portal cautivo para autenticación y autorización.
Configure una regla de servicio CPCD que especifique la acción que se debe realizar para el tráfico destinado fuera del jardín amurallado. Este tráfico fue identificado por el filtro de servicio de jardín amurallado y pasado al servicio, o identificado y aceptado por la regla de servicio de jardín amurallado. La acción que configure dependerá de si está utilizando un servidor de redireccionamiento HTTP local o remoto:
Si utiliza un servidor de redireccionamiento HTTP local en el enrutador, especifique la acción de redireccionamiento.
Si está utilizando un servidor de redireccionamiento HTTP remoto, que reside en un jardín amurallado detrás del enrutador, no puede simplemente especificar una URL de redireccionamiento. En este caso, la regla de servicio debe reescribir la dirección IP de destino para el tráfico. La nueva dirección de destino es la dirección del servidor de redireccionamiento HTTP remoto. Luego, el servidor remoto proporciona una URL de redireccionamiento para enviar el tráfico a un portal cautivo.
El servicio CPCD se asocia a una interfaz de servicios mediante un conjunto de servicios. Tanto el conjunto de servicios como el filtro de servicio de jardín vallado se aplican a una interfaz configurada estáticamente.
Por ejemplo, en la siguiente configuración para un servidor local, la regla de servicio CPCD redir-svc redirige el tráfico a un portal cautivo, http://www.portal.example.com. La URL original introducida por el suscriptor se adjunta a la URL de redireccionamiento.
user@host# edit services captive-portal-content-delivery user@host# edit rule redir-svc user@host# set match-direction input user@host# set term redir1 then redirect http://www.portal.example.com/url=%dest-url%
La siguiente configuración para un servidor remoto crea la regla de servicio CPCD rewr-svc que reescribe la dirección de destino original en la dirección del servidor remoto, 192.0.2.230.
user@host# edit services captive-portal-content-delivery user@host# edit rule rewr-svc user@host# set match-direction input user@host# set term rewr1 then rewrite destination-address 192.0.2.230
Configuración del perfil de servicio y del conjunto de servicios para asociar el perfil de servicio a una interfaz de servicio
Los conjuntos de servicios definen uno o más servicios que debe realizar el motor de enrutamiento. Para los servicios de redireccionamiento HTTP, se define un perfil de servicio CPCD que incluye reglas de CPCD. El conjunto de servicios aplica el perfil de servicio CPCD a una interfaz de servicio específica.
Por ejemplo, la siguiente configuración crea el perfil de servicio CPCD redir-prof, que hace referencia a la regla CPCD redir-svc. El conjunto de servicio ss2 se especifica como para CPCD basado en motores de enrutamiento. El conjunto asocia el perfil de servicio CPCD redir-prof con la interfaz de servicio si-4/0/0.
[edit services captive-portal-content-delivery] user@host# edit profile redir-prof user@host# set cpcd-rules redir-svc [edit services] user@host# edit service-set ss2 user@host# set service-set-options routing-engine-service user@host# set captive-portal-content-delivery-profile redir-prof user@host# set interface-service-service-interface si-4/0/0
Asociar un conjunto de servicios CPCD y un filtro de servicio a una interfaz lógica
Para utilizar los servicios de redireccionamiento HTTP, debe asociar el conjunto de servicios CPCD a una interfaz lógica. Si el jardín vallado está configurado como un filtro de servicio, debe adjuntarlo a la misma interfaz que el conjunto de servicios. El tráfico que entra y sale de esa interfaz se filtra mediante el filtro de servicio. El tráfico identificado para el mantenimiento se envía a la interfaz de servicio del motor de enrutamiento, donde se aplica el perfil CPCD.
Por ejemplo, la siguiente configuración habilita los servicios en línea en la tarjeta de línea en la ranura de chasis 4 y en el MIC en la ranura 0 de la tarjeta de línea. Asigna una dirección a la interfaz lógica. A continuación, asocia el conjunto de servicios sset2 y el filtro de servicio walled-v4 a ge-2/0/1.0 para la familia de direcciones IPv4. El conjunto de servicios y el filtro se aplican a la entrada y salida de la interfaz.
user@host# edit chassis fpc 4 pic 0 inline-services bandwidth 1g user@host# edit interfaces ge-2/0/1 unit 0 family inet user@host# set address 203.0.113.5 user@host# set service input service-set sset2 service-filter walled-v4 user@host# set service output service-set sset2 service-filter walled-v4
Insertar etiquetas de encabezado GET que el servidor HTTP puede usar para controlar el acceso al contenido
En algunos casos, es posible que desee que el servidor HTTP determine si desea permitir que los usuarios accedan al contenido. A partir de Junos OS versión 19.1, puede configurar filtros de servicio de redireccionamiento HTTP estáticos basados en el motor de enrutamiento para especificar las etiquetas que el motor de enrutamiento inserta en el encabezado del paquete de los mensajes HTTP GET para este propósito. Puede insertar etiquetas para el nombre de host del enrutador o la dirección MAC, dirección IPv4 o dirección IPv6 del suscriptor.
Los siguientes pasos corresponden a la Figura 1.
El dispositivo del usuario, el cliente HTTP, realiza una secuencia de apretón de manos TCP con el servidor HTTP.
Cuando el apretón de manos se realiza correctamente, el cliente envía un HTTP GET con la URL solicitada por el usuario.
El motor de enrutamiento modifica esa dirección URL mediante la concatenación de una cadena de caracteres aleatorios encerrados por /$ y $/. La longitud de la cadena coincide con la longitud combinada de las etiquetas que se insertarán más adelante. La cadena sirve como identificador cuando la devuelve el cliente.
Supongamos que la longitud de las etiquetas que se van a insertar es de 30 caracteres y que la URL solicitada es http://192.51.100.20/test.html. El motor de enrutamiento devuelve la dirección URL modificada con una cadena de 30 caracteres aleatorios, como en el ejemplo siguiente:
http://192.51.100.20/test.html/$IIGSbVdNDTDvnJFIAyoysXwVJawoYj$/
El motor de enrutamiento envía la URL modificada con un código de estado de 302 (encontrado) o 307 (redireccionamiento temporal). El código enviado depende de la versión de HTTP que se esté utilizando y de la versión de Junos OS en el BNG. Ambos códigos indican al cliente que la solicitud de acceso debe reenviarse con la URL modificada.
El motor de enrutamiento restablece la conexión TCP con el cliente y el servidor.
El cliente realiza un apretón de manos TCP con el servidor HTTP para una URL modificada.
El cliente envía un HTTP GET con la URL modificada.
El motor de enrutamiento comprueba si la longitud de la cadena concatenada es la misma que se envió al cliente.
Si la longitud es correcta, elimina la URL a la URL solicitada original, inserta las etiquetas en el encabezado GET y reenvía el GET al servidor HTTP. Si está configurado, el GET se puede reenviar opcionalmente a una URL de redireccionamiento en lugar del servidor solicitado original.
Si la longitud no es correcta, el motor de enrutamiento descarta el paquete e incrementa el contador de caídas.
El servidor HTTP evalúa el mensaje GET y envía una respuesta al cliente con un código de estado de 200 (OK) si concede acceso o 403 (Forbidden) si se rechaza la solicitud.
El motor de enrutamiento finaliza la conexión TCP con el cliente y el servidor.
Las etiquetas se insertan en el encabezado en el mismo orden en que se configuran. El nombre de etiqueta distingue entre mayúsculas y minúsculas, por lo que tag ABCD y tag abcd se procesan como nombres diferentes.
Para configurar las etiquetas que se van a insertar en los encabezados GET:
Por ejemplo, la siguiente configuración crea una regla de servicio, insert-rule, que coincide con el tráfico en la interfaz de entrada. El término t1 inserta dos etiquetas, x-mac-addr con el dirección MAC del suscriptor y x-sub-ip con el valor de la dirección IPv4 del suscriptor.
[edit] user@host# edit services captive-portal-content-delivery rule insert-rule user@host# set match-direction input user@host# set term t1 then insert tag x-mac-addr tag-value subscriber-mac-addr user@host# set term t1 then insert tag x-sub-ip tag-value subscriber-ip
En la siguiente regla de ejemplo, solo se etiqueta el tráfico con una dirección de destino que coincida con 198.51.100.50 o 198.51.100.75. Las etiquetas se insertan para la dirección IP del suscriptor y el nombre de host del enrutador. Un segundo término de la regla proporciona una URL de redireccionamiento en la que el tráfico se reenvía en lugar de enviarse a la URL solicitada original.
user@host# edit services captive-portal-content-delivery user@host# set match-direction input user@host# set rule tag-redirect term t1 from destination-address 198.51.100.50 user@host# set rule tag-redirect term t1 from destination-address 198.51.100.75 user@host# set rule tag-redirect term t1 then insert tag x-sub-ip tag-value subscriber-ip user@host# set rule tag-redirect term t1 then insert tag x-hostname tag-value hostname user@host# set rule tag-redirect term t2 then redirect http://www.portal.example.com user@host# set profile http-insert-redirect cpcd-rules tag-redirect
Al igual que con cualquier regla de servicio CPCD para el redireccionamiento HTTP basado en motores de enrutamiento, debe incluir las reglas en un perfil de servicio CPCD y, a continuación, utilizar un conjunto de servicios CPCD para asociar el perfil a una interfaz de servicio en línea. El motor de enrutamiento utiliza las reglas para procesar el tráfico HTTP que pasa un filtro de servicio en la misma interfaz lógica que el conjunto de servicios.
Considere la siguiente configuración de ejemplo. La regla de redireccionamiento de etiquetas se define para hacer coincidir el tráfico en la interfaz de entrada y, luego, insertar dos etiquetas en el encabezado GET, el valor de la dirección IP del suscriptor y el nombre de host del enrutador. A continuación, la regla proporciona una URL de redireccionamiento para el tráfico etiquetado. El perfil de servicio CPCD http-insert-redirect se define para incluir esta regla.
user@host# edit services captive-portal-content-delivery user@host# set match-direction input user@host# set rule tag-redirect term t1 then insert tag x-sub-ip tag-value subscriber-ip user@host# set rule tag-redirect term t1 then insert tag x-hostname tag-value hostname user@host# set rule tag-redirect term t2 then redirect http://www.portal.example.com user@host# set profile http-insert-redirect cpcd-rules tag-redirect
El conjunto de servicios sset1 se define como para CPCD basado en el motor de enrutamiento. Aplica el perfil de servicio CPCD a una interfaz de servicio en línea.
user@host# edit services service-set sset1 user@host# set service-set-options routing-engine-services user@host# set captive-portal-content-delivery-profile http-insert-redirect user@host# set interface-service service-interface si-1/1/0
La etiqueta walled-tag de filtro de servicio identifica y actúa sobre tres tipos de tráfico: tráfico HTTP para enviar al jardín amurallado en 192.0.2.100, tráfico HTTP destinado a 198.51.100.50 para ir al procesamiento de servicio y todo el resto del tráfico que se omita. Este es un ejemplo de cómo hacer coincidir una dirección de destino en el filtro de servicio en lugar de en la regla de servicio.
user@host# edit firewall family inet service-filter walled-tag user@host# set term portal from destination-address 192.0.2.100 user@host# set term portal from destination-port 80 user@host# set term portal then skip user@host# set term http-tag from destination-address 198.51.100.50 user@host# set term http-tag from destination-port 80 user@host# set term http-tag then service user@host# set term skip then skip
El service-set sset1 y el service filter walled-tag se aplican a una interfaz lógica.
user@host# edit chassis fpc 4 pic 0 inline-services bandwidth 1g user@host# edit interfaces ge-2/0/1 unit 0 family inet user@host# set address 203.0.113.5 user@host# set service input service-set sset1 service-filter walled-tag user@host# set service output service-set sset1 service-filter walled-tag
Tabla de historial de cambios
La compatibilidad de la función depende de la plataforma y la versión que utilice. Utilice el Explorador de características para determinar si una característica es compatible con su plataforma.