HTTP 리디렉션 서비스 개요
가입자의 HTTP 요청 트래픽은 액세스 네트워크에서 B-RAS(Broadband Remote 액세스 Server) 라우터로 집계되며, 여기서 HTTP 트래픽은 가로채서 외부 디바이스의 캡티브 포털로 리디렉션될 수 있습니다. 캡티브 포털은 가입자 세션에 로그인한 후 가입자가 보는 첫 페이지인 경우가 많습니다. 또한 캡티브 포털은 승인되지 않은 웹 리소스에 대한 HTTP 요청을 수신하고 관리합니다.
예를 들어, 사용자는 회사 로고와 네트워크 사용 정책을 보여주는 웹 페이지 또는 가입자가 서비스 비용을 지불하는 페이지로 리디렉션될 수 있습니다. 캡티브 포털은 일반적으로 벽으로 둘러싸인 정원 외부에 있는 보호된 서버에 대한 액세스 권한을 부여하기 전에 리디렉션된 가입자에게 인증 및 권한 부여 서비스를 제공합니다.
허용 목록이라고도 하는 벽으로 둘러싸인 정원은 캡티브 포털을 통해 재인증 없이 가입자에게 액세스가 제공되는 서버 그룹을 정의합니다. 이러한 벽으로 둘러싸인 정원을 사용하면 고객에게 다양한 서비스를 마케팅하여 수익을 늘릴 수 있습니다.
일반적인 벽으로 둘러싸인 정원 링크는 다음과 같습니다.
-
자동차 렌탈과 같은 벤더 서비스
-
호텔 및 모텔 로열티 또는 기업 프로그램 포털
-
룸서비스
-
현지 명소와 날씨
이 문서에서는 HTTP 리디렉션 서비스 및 CPCD(캡티브 포털 컨텐츠 딜리버리) 서비스 라는 용어를 같은 의미로 사용합니다.
HTTP 리디렉션 서비스는 데이터 핸들러와 컨트롤 핸들러를 구현하고 이를 HTTP 애플리케이션에 적용할 수 있는 서비스 규칙에 등록합니다. 이러한 규칙은 라우팅 엔진의 cpcdd 프로세스에 의해 구문 분석됩니다. 데이터 핸들러는 HTTP 데이터 흐름에 규칙을 적용하고 IP 대상 주소 다시 작성 또는 사전 구성된 리디렉션 URL을 사용하여 HTTP 응답 전송을 처리합니다. 응답 메시지에는 HTTP 상태 코드가 포함됩니다. 반환되는 상태 코드는 GET 요청을 보낸 HTTP 클라이언트에서 사용하는 HTTP 버전에 따라 다릅니다. 버전이 HTTP 1.0보다 높으면 리디렉션 서버는 307(임시 리디렉션) 상태 코드를 반환합니다. 버전이 HTTP 1.0인 경우 302(발견됨) 상태 코드가 반환됩니다. 17.3R1 이전 릴리스에서는 리디렉션 서버가 HTTP 버전에 관계없이 302 상태 코드를 반환합니다. 두 코드 모두 HTTP 클라이언트에 후속 GET 요청에 리디렉션 URL이 아닌 원래 URL을 사용하도록 알립니다.
HTTP 요청에 대한 응답이 가입자에게 전송되면 선택적으로 구성된 리디렉션 URL의 끝에 원래 URL을 추가하여 원래 URL이 보존됩니다. 추가된 원본 URL을 포함하여 리디렉션 URL의 최대 길이는 128바이트입니다. 리디렉션 URL의 최대 길이가 1360바이트로 증가했으며 리디렉션 서버는 리디렉션 URL에 가입자에 대한 추가 정보를 추가할 수 있습니다. 최대 길이는 URL에 가입자 정보가 추가되는지 여부와 관계없이 적용됩니다. 가입자 정보를 추가하려면, 가입자 로그인에 대한 응답으로 RADIUS 수락-액세스 메시지 또는 RADIUS CoA(Change of Authorization) 메시지에서 반환된 VSA에서 특정 가입자 속성을 지정할 수 있습니다. 이는 서비스 활성화(26-65) 및 서비스 비활성화(26-66) VSA 모두에 적용됩니다. 가입자 정보는 가입자 세션 데이터베이스에서 검색됩니다.
제어 핸들러는 라우팅 엔진의 cpcdd 프로세스와의 연결을 유지하여 리디렉션 URL, 재작성 IP 대상 및 포트와 같은 구성 변경 사항을 학습합니다. 더 빠른 성능을 달성하기 위해 제어 핸들러는 MPC(Modular Port Concentrator)에 URL과 같은 관련 구성 엔터티의 캐시를 유지합니다.
HTTP 리디렉션 서비스는 IPv4와 IPv6 모두에 대해 지원됩니다. HTTP 리디렉션 서비스 또는 서비스 세트를 정적 또는 동적 인터페이스에 연결할 수 있습니다. 동적 가입자 관리의 경우, 가입자 로그인 시 또는 RADIUS CoA(Change of Authorization)를 사용하여 HTTP 서비스 또는 서비스 세트를 동적으로 연결할 수 있습니다.
-
최대 1,000개의 HTTP 리디렉션 서비스를 구성할 수 있습니다.
-
HTTP 리디렉션 서비스 필터에서 각 용어에 대한 카운터를 만들 수 있습니다. 서비스 필터가 공유 필터로 설치되기 때문에 구성된 각 용어에 대해 하드웨어에서 단일 집계 카운터만 사용할 수 있습니다. CPCD(캡티브 포털 컨텐츠 딜리버리) 애플리케이션은 집계 카운터를 사용하여 소프트웨어에서 리디렉션된 패킷을 카운트합니다. 카운터 통계를 보려면 명령을 사용합니다
show services captive-portal-content-delivery statistics interface.
HTTP 리디렉션 서비스를 구성하는 방법에는 세 가지가 있습니다. 차세대 서비스가 활성화된 경우 MX-SPC3 서비스 처리 카드에서 HTTP 리디렉션을 구성할 수도 있습니다. 표 1 에는 HTTP 리디렉션 서비스에 지원되는 방법과 각 방법을 지원하는 Junos OS 릴리스가 나와 있습니다.
| 만드는 방법 |
지원되는 Junos OS 릴리스 |
|
|---|---|---|
| MS-DPC-based |
(MX-SPC3 서비스 카드의 차세대 서비스는 지원되지 않습니다) |
|
| 정적 |
15.1 이전 릴리스 |
|
| 컨버지드 |
지원되지 않음 |
|
| MS-MPC-based |
(MX-SPC3 서비스 카드의 차세대 서비스는 지원되지 않습니다.) |
|
| 정적 |
Junos OS 릴리스 15.1부터 |
|
| 컨버지드 |
Junos OS 릴리스 17.2부터 |
|
| MX-SPC3-based |
||
| 정적 |
MX-SPC3 서비스 카드에서 차세대 서비스가 활성화된 경우 Junos OS 릴리스 19.3R2부터 시작됩니다. |
|
| 컨버지드 |
MX-SPC3 서비스 카드에서 차세대 서비스가 활성화된 경우 Junos OS 릴리스 19.3R2부터 시작됩니다. |
|
| Routing Engine-based |
||
| 정적 |
모든 Junos OS 릴리스 |
|
| 컨버지드 |
Junos OS 릴리스 16.1R4 및 17.2부터 |
|
모든 방법에 대해 벽으로 둘러싸인 정원을 정적 방화벽 서비스 필터로 구성합니다.
서비스 카드 기반 캡티브 포털
MS-MPC 기반 캡티브 포털
Junos OS 릴리스 15.1R4부터 MX 시리즈 라우터에서 HTTP 리디렉션 서비스를 지원하는 유일한 라인 카드 및 인터페이스 카드 조합은 MS-MIC(Multiservices Modular Interface Card)가 있는 MS-MPC(Multiservices Modular Port Concentrator)입니다. 이러한 조합은 향상된 확장성과 고성능을 제공합니다. MS-MIC 및 MS-MPC는 향상된 메모리(MS-MIC의 경우 16GB, MS-MPC의 NPU당 32GB)와 처리 기능을 갖추고 있습니다. MS-MPC 및 MS-MIC의 서비스 인터페이스는 ms- 접두사(예: ms-1/2/1)로 구성에서 식별됩니다.
이 문서 전체에서 MS-MPC 기반 이라는 용어는 MS-MIC가 설치된 MPC와 라인 카드를 허용하지 않는 MX 시리즈 라우터에 설치된 경우 MS-MIC만 의미합니다.
MX-SPC3 서비스 카드 기반 캡티브 포털
MX-SPC3 서비스 카드에서 차세대 서비스가 활성화된 경우 Junos OS 릴리스 19.3R2부터 HTTP 리디렉션 서비스를 구성할 수 있습니다. MX-SPC3의 서비스 인터페이스는 구성에서 vms- 접두사(예: vms-1/2/1)로 식별됩니다.
서비스 필터로 구성된 벽으로 둘러싸인 정원
서비스 카드 기반 캡티브 포털의 패킷 플로우는 벽으로 둘러싸인 정원을 구성하는 방법에 따라 다릅니다. 벽으로 둘러싸인 정원 내의 서버로 향하는 HTTP 트래픽은 서비스 카드로 흐르지 않습니다. 그러나 벽으로 둘러싸인 정원 외부로 향하는 모든 HTTP 트래픽은 서비스 카드로 흐릅니다.
데이터 트래픽의 첫 번째 패킷에 포함된 가입자 요청의 경우, 시스템은 TCP 프록시가 TCP SYN 플래그를 생성하여 데이터 핸들러가 규칙 조회를 수행하고 해당 규칙을 HTTP 데이터 흐름에 적용할 것으로 예상합니다.
HTTP 재작성 조건의 경우—IP 대상 주소가 정책에 제공되지 않으면 제어 핸들러가 IP 대상 주소를 조회합니다.
HTTP 리디렉션 조건의 경우—TCP 프록시가 트리거되어 3방향 핸드셰이크를 완료합니다.
HTTP 요청 패킷의 경우.
HTTP 재작성 조건의 경우—제어 핸들러는 캐시된 IP 대상 주소를 사용하고 데이터 패킷을 수정합니다.
HTTP 리디렉션 조건의 경우—제어 핸들러는 사전 구성된 리디렉션 URL을 사용하여 HTTP 302 또는 307 응답을 보냅니다.
라우팅 엔진 기반 캡티브 포털
라우팅 엔진 기반 캡티브 포털은 정적 및 컨버지드 서비스 모두에 대한 방화벽 서비스 필터로 벽으로 둘러싸인 정원을 지원합니다. HTTP 트래픽이 방화벽 서비스 필터에 정의된 규칙과 일치하는 즉시 HTTP 트래픽이 라우팅 엔진으로 전송됩니다. 라우팅 엔진의 서비스 인터페이스는 si- 접두사(예: si-1/1/0)로 식별됩니다. si- 인터페이스는 라우팅 엔진에 대한 모든 리디렉션 및 재작성 트래픽과 서비스를 처리합니다. 캡티브 포털 콘텐츠 전송(CPCD) 서비스를 활성화하고 활성화하려면 si- 인터페이스가 up 상태로 작동해야 합니다. CPCD 서비스가 활성화된 후에는 si- 인터페이스의 작동 상태가 변경되어도 기존 CPCD 서비스에 영향을 미치지 않습니다.
HTTP 리디렉션 서비스를 위한 컨버지드 서비스 프로비저닝
Junos OS 릴리스 17.2R1부터는 라우팅 엔진 기반 및 MS-MPC/MS-MIC 기반 캡티브 포털 모두에 대해 컨버지드 서비스 프로비저닝이 지원됩니다. Junos OS 릴리스 19.3R2부터는 MX-SPC3 서비스 카드에서 차세대 서비스가 활성화된 경우 MX-SPC3 서비스 카드 기반 캡티브 포털에 대한 컨버지드 서비스 프로비저닝도 지원됩니다. 컨버지드 서비스 프로비저닝은 동적 프로파일에서 서비스 프로비저닝을 구성할 수 있음을 의미합니다. RADIUS VSA 또는 CoA(Change of Authorization) 메시지를 통해 채워진 서비스에 대해 사용자 정의 변수를 지정할 수 있습니다.
예를 들어 각 가입자에 대해 다른 리디렉션 URL을 갖고 싶을 수 있습니다. 동적 프로필에서 redirect-url 변수를 생성한 다음 일치하는 가입자를 $redirect-url로 리디렉션하도록 서비스 규칙을 구성할 수 있습니다. RADIUS가 사용자를 인증할 때 서비스 활성화 VSA(26–65)는 해당 사용자에게 고유한 URL을 제공합니다.
HTTP 리디렉션 서비스를 위한 정적 서비스 프로비저닝
Junos OS 릴리스 17.4R1부터는 정적 서비스 프로비저닝이 라우팅 엔진 기반 및 MS-MPC/MS-MIC 기반 캡티브 포털 모두에 대해 지원됩니다. Junos OS 릴리스 19.3R2부터는 MX-SPC3 서비스 카드에서 차세대 서비스가 활성화된 경우 MX-SPC3 기반 캡티브 포털에 대한 정적 서비스 프로비저닝도 지원됩니다. 정적 서비스 프로비저닝은 정적 프로파일에서 서비스 프로비저닝을 구성할 수 있음을 의미합니다. RADIUS VSA 또는 CoA(Change of Authorization) 메시지를 통해 채워진 서비스에 대해 사용자 정의 변수(예 http://portal.wifi.example.com/xx?wlanuseraddr=%subsc-ip%&nasaddr=%nas-ip%&acname=%ac -name%&url=%dest-url%&userlocation=%nas-port-id%&usermac=%mac-sa%& session-id=%sess-id%&username=%user-name%&wlanuseraddrv6=%subsc-ipv6%: )를 지정할 수 있습니다.
정적 CPCD에서 리디렉션 URL의 속성은 주니퍼 네트웍스 VSA, Activate-Service(26-65) 및 Deactivate-Service(26-66)에서 전송되지 않습니다. 다음 예와 같이 구성할 수 있습니다.
captive-portal-content-delivery {
rule redirect {
match-direction input;
term t1 {
then {
redirect url;
}
}
}
}
"subsc-ip", "nas-ip", "ac-name"과 같은 URL의 토큰은 "%" 기호 사이에 지정해야 합니다. 토큰의 순서는 중요하지 않습니다.
다음은 의미가 있는 토큰 목록입니다.
%subsc-ip% - 가입자의 프라이빗 IP 주소입니다.
%nas-ip%—BNG IP 주소입니다.
%ac-name% - BNG의 경우 비어 있습니다.
%dest-url% - 원래 요청 URL입니다.
%nas-port-id% - 가입자에 사용됩니다. 이 매개 변수에는 인터페이스 이름, pvlan 및 cvlan이 포함되어야 합니다. 인터페이스 이름은 물리적 또는 가상 인터페이스 이름일 수 있습니다. 예를 들어 ge0/0/0 또는 ae0입니다. pvlan 및 cvlan 범위는 14095입니다
%mac-sa%—WLAN 클라이언트 MAC 주소.
%sess-id%—가입자의 세션 ID입니다.
%user-name% - 가입자의 사용자 이름입니다.
%subsc-ipv6% - 가입자 IPv6 주소(IANA 주소만). 가입자에 대해 IANA 주소를 지정하지 않으면 이 필드는 비어 있습니다.
변경 내역 표
기능 지원은 사용 중인 플랫폼과 릴리스에 따라 결정됩니다. 기능 탐색기를 사용하여 플랫폼에서 기능이 지원되는지 확인합니다.