라우팅 엔진 기반 컨버지드 HTTP 리디렉션 서비스 구성
Junos OS 릴리스 19.3R1부터는 MX 시리즈에서 차세대 서비스를 활성화한 경우 HTTP 리디렉션 서비스도 지원됩니다.
MS-MPC/MS-MIC 또는 MX-SPC3 서비스 카드를 사용하는 대신 라우팅 엔진에서 컨버지드 HTTP 리디렉션 서비스를 구성할 수 있습니다. 컨버지드 서비스 프로비저닝은 서비스 정의와 서비스 인스턴스화를 분리합니다. 서비스가 정의된 후에는 가입자 로그인 시 또는 세션 중간에 CoA(Change of Authorization)를 사용하여 서비스를 동적으로 인스턴스화할 수 있습니다. 서비스 인스턴스화는 정의된 서비스의 이름만 사용하여 시스템 운영자로부터 모든 서비스 세부 정보를 숨깁니다. 컨버지드 서비스 프로비저닝은 동적 프로필 내의 동적 변수에 해당하는 서비스 매개 변수화를 지원합니다.
수렴된 HTTP 리디렉션 서비스의 경우, 이는 동적 프로파일 내에서 서비스 및 서비스 규칙을 정의한다는 것을 의미합니다. CPCD 서비스 규칙은 동적 프로필에 구성된 변수를 기반으로 동적으로 생성됩니다.
선택적으로 동적 프로필에서 변수 정의를 redirect-url
포함하여 리디렉션 URL을 매개 변수화하도록 선택할 수 있습니다. 변수 값은 가입자 불러오기 중 또는 CoA(Change of Authorization) 메시지와 함께 RADIUS VSA에 의해 제공됩니다. 이렇게 하면 각 구독자에 대한 리디렉션 URL을 사용자 지정할 수 있습니다. RADIUS에서 값을 제공하지 않는 경우 사용되는 URL의 기본값을 정의할 수 있습니다.
벽으로 둘러싸인 정원을 방화벽 서비스 필터로 구성합니다. 벽으로 둘러싸인 정원은 캡티브 포털을 통한 재인증 없이 벽으로 둘러싸인 정원 내의 사이트에 대한 가입자 액세스를 제공하는 서버 그룹입니다. 벽으로 둘러싸인 정원 서비스 필터는 벽으로 둘러싸인 정원으로 향하는 트래픽과 벽으로 둘러싸인 정원 외부로 향하는 트래픽을 식별합니다. 벽으로 둘러싸인 정원 외부로 향하는 HTTP 트래픽만 처리를 위해 동적 서비스로 전달됩니다.
라우팅 엔진의 서비스 인터페이스는 si- 접두사(예: si-1/1/0)로 식별됩니다. si- 인터페이스는 라우팅 엔진에 대한 모든 리디렉션 및 재작성 트래픽 및 서비스를 처리합니다. 캡티브 포털 콘텐츠 전송(CPCD) 서비스를 활성화하고 활성화하려면 si- 인터페이스가 업 상태로 운영되어야 합니다. CPCD 서비스가 인에이블된 후, si- 인터페이스의 동작 상태의 어떠한 변경도 기존 CPCD 서비스에 영향을 미치지 않는다.
정적 HTTP 리디렉션 서비스와 마찬가지로 서비스 프로필에는 서비스 규칙이 포함됩니다. 동적 프로필 외부의 서비스 세트를 구성하여 CPCD 서비스 프로필을 라우팅 엔진의 특정 si 서비스 인터페이스와 연결합니다. 동적 프로필 내에서 서비스 세트와 벽으로 둘러싸인 정원 서비스 필터를 동적 인터페이스에 적용합니다.
벽으로 둘러싸인 정원을 방화벽 서비스 필터로 구성
벽으로 둘러싸인 정원을 방화벽 서비스 필터로 구성하면 벽으로 둘러싸인 정원 내의 서버로 향하는 트래픽이 식별되고 건너뜁니다. 이 트래픽은 라인 카드로 흐르지 않기 때문에 처리 요구 사항이 줄어듭니다.
다른 모든 HTTP 트래픽은 벽으로 둘러싸인 정원 외부의 주소로 향합니다. 이 트래픽은 필터 조건과 일치하지 않으므로 처리를 위해 라인 카드로 이동합니다.
벽으로 둘러싸인 정원에 캡티브 포털 또는 서버 목록으로 단일 서버가 포함되도록 서비스 필터를 구성할 수 있습니다.
단일 서버를 캡티브 포털로 사용하여 벽으로 둘러싸인 정원을 구성합니다.
서비스 필터를 만듭니다.
[edit] user@host# edit firewall family address-family service-filter filter-name
캡티브 포털(captive portal)에 대한 트래픽 처리를 식별하고 건너뛰기 위한 필터 용어를 정의합니다.
캡티브 포털의 대상 주소와 대상 포트를 지정하여 캡티브 포털로 향하는 트래픽과 일치하도록 필터 조건을 지정합니다.
[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
일치하는 트래픽이 라인 카드에서 처리를 건너뛰도록 지정합니다.
[edit firewall family inet service-filter filter-name] user@host# set term name then skip
이전 용어와 일치하지 않는 모든 트래픽에서 HTTP 트래픽을 식별하기 위한 필터 용어를 정의하고 CPCD 서비스 규칙에 따라 처리하기 위해 전송합니다.
건너뛴 HTTP 트래픽과 일치하도록 하나 이상의 HTTP 포트 번호를 지정합니다.
[edit firewall family inet service-filter filter-name] user@host# set term name from destination-port http-port-number
일치하는 트래픽이 CPCD 서비스에 의해 처리되도록 지정합니다.
[edit firewall family inet service-filter filter-name] user@host# set term name then service
나머지 비 HTTP 트래픽에 대한 추가 작업을 건너뛰도록 필터 용어를 정의합니다.
[edit firewall family inet service-filter filter-name] user@host# set term name then skip
예를 들어 다음 구성은 캡티브 포털이 192.0.2.0인 IPv4 HTTP 트래픽 walled-v4에 대한 필터를 생성합니다. 주소와 일치하는 트래픽은 건너뜁니다. 일치하지 않는 트래픽은 용어 http로 이동하며, 여기서 HTTP 트래픽은 건너뛴 모든 트래픽에서 선택되어 CPCD 서비스에 따라 처리되도록 전송됩니다. 마지막으로, 용어 건너뛰기를 사용하면 나머지 비 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
벽으로 둘러싸인 정원을 서버 목록 또는 서브넷으로 구성합니다.
서비스 필터를 만듭니다.
[edit] user@host# edit firewall family address-family service-filter filter-name
필터 용어를 정의합니다.
서버의 대상 접두사 목록을 지정하여 벽으로 둘러싸인 정원의 모든 서버로 향하는 트래픽과 일치하도록 필터 조건을 지정합니다.
[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
일치하는 트래픽이 라인 카드에서 처리를 건너뛰도록 지정합니다.
[edit firewall family inet service-filter filter-name] user@host# set term name then skip
이전 용어와 일치하지 않는 모든 트래픽에서 HTTP 트래픽을 식별하기 위한 필터 용어를 정의하고 CPCD 서비스 규칙에 따라 처리하기 위해 전송합니다.
건너뛴 HTTP 트래픽과 일치하도록 하나 이상의 HTTP 포트 번호를 지정합니다.
[edit firewall family inet service-filter filter-name] user@host# set term name from destination-port http-port-number
일치하는 트래픽이 CPCD 서비스에 의해 처리되도록 지정합니다.
[edit firewall family inet service-filter filter-name] user@host# set term name then service
나머지 비 HTTP 트래픽에 대한 추가 작업을 건너뛰도록 필터 용어를 정의합니다.
[edit firewall family inet service-filter filter-name] user@host# set term name then skip
(선택 사항) 벽으로 둘러싸인 정원 내의 서버를 지정하는 접두사 목록을 정의합니다. 서브넷 또는 여러 개별 주소를 지정할 수 있습니다.
[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
예를 들어, 다음 구성은 벽으로 둘러싸인 정원에 있는 두 개의 서버를 지정하는 접두사 목록 wg-list를 사용하여 IPv6 HTTP 트래픽에 대한 서비스 필터인 walled-v6-list를 생성합니다. 필터 용어 portal6은 벽으로 둘러싸인 정원으로 향하는 IPv6 트래픽을 식별합니다. 일치하지 않는 트래픽은 용어 http6으로 이동하며, 여기서 HTTP 트래픽은 건너뛴 모든 트래픽에서 선택되어 CPCD 서비스에 따라 처리되도록 전송됩니다. 마지막으로, 용어 건너뛰기를 사용하면 나머지 비 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
로컬 및 원격 리디렉션 서버에 대한 HTTP 리디렉션 구성
벽으로 둘러싸인 정원 외부의 사이트에 대한 HTTP 요청이 이루어지면 CPCD는 인증 및 권한 부여를 위해 트래픽을 캡티브 포털로 리디렉션할 수 있습니다.
벽으로 둘러싸인 정원 서비스 필터로 식별되고 서비스에 전달되는 HTTP 트래픽에 대해 수행할 작업을 지정하는 CPCD 서비스 규칙을 구성합니다. 구성하는 작업은 로컬 또는 원격 HTTP 리디렉션 서버를 사용하는지 여부에 따라 다릅니다.
라우터에서 로컬 HTTP 리디렉션 서버를 사용하는 경우 리디렉션 작업을 지정합니다.
라우터 뒤의 벽으로 둘러싸인 정원에 상주하는 원격 HTTP 리디렉션 서버를 사용하는 경우 단순히 리디렉션 URL을 지정할 수 없습니다. 이 경우 서비스 규칙은 트래픽의 IP 대상 주소를 다시 써야 합니다. 새 대상 주소는 원격 HTTP 리디렉션 서버의 주소입니다. 그런 다음 원격 서버는 트래픽을 캡티브 포털로 보내기 위한 리디렉션 URL을 제공합니다.
예를 들어, 로컬 서버에 대한 다음 구성에서 동적 프로필 http-redir-converged에는 CPCD 서비스 규칙 redir-svc가 포함됩니다. 이 규칙은 트래픽을 캡티브 포털( http://www.portal.example.com
captive portal)로 리디렉션합니다. 가입자가 입력한 원래 URL이 리디렉션 URL에 추가됩니다. CPCD 서비스 프로파일 redir-prof는 규칙을 포함하며, 나중에 서비스 세트에 의해 서비스 인터페이스에 적용될 것이다.
user@host# edit dynamic-profiles http-redir-converged 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%
원격 서버에 대한 다음 구성은 원래 대상 주소를 원격 서버의 주소 192.0.2.230으로 다시 쓰는 CPCD 서비스 규칙 rewr-svc를 만듭니다.
user@host# edit dynamic-profiles http-redir-converged 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
리디렉션 URL에 대한 매개 변수화 구성
선택적으로 동적 프로필에서 사용자 정의 변수를 지정하여 리디렉션 URL 및 재작성 대상 주소를 매개 변수화하도록 선택할 수 있습니다. 매개 변수화는 URL 또는 주소가 동적 변수가 됨을 의미합니다. 이 값은 가입자가 인증되거나 CoA가 수신될 때 RADIUS에 의해 제공됩니다. 따라서 RADIUS 속성을 사용하여 다른 가입자에게 다른 URL 또는 대상 주소를 제공할 수 있습니다.
예를 들어, 다음 구성은 인스턴스화될 때 외부에서 제공된 값이 필요한 두 개의 사용자 정의 변수인 redirect-url 및 rewrite-da를 보여줍니다. CPCD 서비스 규칙 redir1은 트래픽이 $redirect-url로 리디렉션되도록 지정합니다. CPCD 서비스 규칙 rewr1은 트래픽의 대상 주소가 $rewrite-da로 다시 작성되도록 지정합니다.
user@host# edit dynamic-profiles http-redir-converged user@host# edit variables user@host# set redirect-url mandatory user@host# set rewrite-da mandatory 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 $redirect-url user@host# edit rule rewr-svc user@host# set match-direction input user@host# set term rewr1 then rewrite $rewrite-da
서비스 프로필을 서비스 인터페이스와 연결하도록 서비스 세트 구성
서비스 세트는 라우팅 엔진에 의해 수행될 하나 이상의 서비스를 정의합니다. HTTP 리디렉션 서비스의 경우 CPCD 규칙을 포함하는 CPCD 서비스 프로필을 정의합니다. 서비스 세트는 CPCD 서비스 프로파일을 특정 서비스 인터페이스에 적용합니다.
예를 들어 다음 구성은 CPCD 규칙 redir-svc를 참조하는 CPCD 서비스 프로필 redir-prof를 만듭니다. 서비스 세트 cvgd는 CPCD 서비스 프로파일 rewr-prof를 서비스 인터페이스 si-4/0/0과 연관시킵니다.
[edit services captive-portal-content-delivery] user@host# edit profile redir-prof user@host# set cpcd-rules redir-svc user@host# set dynamic [edit services] user@host# edit service-set cvgd user@host# set captive-portal-content-delivery-profile redir-prof user@host# set interface-service service-interface si-4/0/0
CPCD 서비스 세트 및 서비스 필터를 동적 논리 인터페이스에 연결
HTTP 리디렉션 서비스를 사용하려면 CPCD 서비스 세트를 논리적 인터페이스에 연결해야 합니다. 벽으로 둘러싸인 정원은 서비스 필터로 구성되므로 서비스 세트와 동일한 인터페이스에 연결해야 합니다. 해당 인터페이스에 들어오고 나가는 트래픽은 서비스 필터에 의해 필터링됩니다. 서비스를 위해 식별된 트래픽은 CPCD 프로필이 적용되는 라우팅 엔진 서비스 인터페이스로 전송됩니다.
이 절차에서는 컨버지드 서비스 구성과 관련된 동적 프로필 구성 요소만 보여 줍니다. 전체 동적 프로필은 사용 사례에 따라 다릅니다.
예를 들어, 다음 구성은 동적 프로필 http-redir-converged를 생성합니다. IPv4 주소 패밀리에서 동적 물리적 및 논리적 인터페이스를 생성하기 위해 사전 정의된 변수를 지정합니다. 프로필은 가입자 로그인 시 생성될 때 서비스 세트 cvgd 및 서비스 필터 walled-v4를 동적 논리적 인터페이스에 연결합니다. 서비스 세트와 필터는 모두 인터페이스 입력 및 출력에 적용됩니다.
user@host# edit dynamic-profiles http-redir-converged user@host# edit interfaces $junos-interface-ifd-name user@host# edit unit $junos-underlying-interface-unit user@host# edit family inet user@host# set service input service-set cvgd service-filter walled-v4 user@host# set service output service-set cvgd service-filter walled-v4