웹 캐시 통신 프로토콜(WCCP)
웹 캐시 통신 프로토콜 (WCCP)은 Cisco에서 개발한 콘텐츠 라우팅 프로토콜로, 트래픽 흐름을 실시간으로 리디렉션 하는 메커니즘을 제공합니다. 로드 밸런싱, 확장, 장애 허용 및 서비스 보증(장애 안전) 메커니즘이 내장되어 있습니다. Cisco IOS 릴리스 12.1 이상 릴리스에서는 프로토콜의 버전 1(WCCPv1) 또는 버전 2(WCCPv2)를 사용할 수 있습니다.
WCCP는 Cisco Cache Engines (또는 WCCP를 실행하는 다른 캐시) 를 활용하여 네트워크의 웹 트래픽 패턴을 로컬화하여 콘텐츠 요청을 로컬에서 처리할 수 있도록 합니다. 트래픽 로컬화는 전송 비용과 다운로드 시간을 줄여줍니다.
Web Service를 받고자 하는 Client에서 외부 Web Server로 정보를 주고 받을 시에
지속적으로 서로 간 정보를 주고 받는다면 Delay와 부하가 많이 쌓이게 될 것이다.
이때 Web Cache Engine을 두고 Web Server의 정보를 Cache에 저장해 두고 Client에게 전달을 한다면
앞으로 Client가 Web Server로 정보를 주고받을 시 Server 쪽으로 처리되지 않고
Cache Engine을 통해 처리함으로 외부로 빠져 나가는 트래픽량을 줄일 수 있을 것이다.
그러기 위해 L3 장비에서는 외부로 나가는 Web 트래픽을 식별해서 목적지를 Cache Engine으로 Redirect를 해야 할 것이다. 이때 WCCP를 통해 처리할 수 있다.
즉, WCCP는 Web Cache Engine을 검색하고 처리방식을 협상하고 Web 트래픽을 목적지 재할당을 통해
Web Cache Engine로 향하게 하여 Web Service를 처리할 수 있게 하는 Protocol이다.
※ Web Cache Engine은 외부 Web Server의 Service 정보를 미리 저장해 두고 Client에게 전달해 준다.
Router는 자신과 연결되어 있는 Web Cache Engine를 검색한다.
또 Router는 WCCP를 통해 외부로 나가는 Web 트래픽을 식별하고 해당 트래픽을 Web Cache Engine로 향하게 Redirect를 한다..
WCCP 동작 과정
1) Cache Engine이 WCCP가 활성화된 장비에게 "Here I am"이라는 메시지를 전달한다.
2) 해당 장비는 Cache Engine에게 검색 확인이 되었다는 "I see you"이라는 메시를 전달한다. (검색 완료)
3) WCCP동작 장비와 Cache Engine과 전송방식, 할당 방식, 반환 방식을 협상한다.
WCCP Config
WCCP(config)# ip wccp web-cache ## WCCP 기능 활성화 WCCP(config)# interface FastEthernet 0/0 ## Redirect를 수행한 인터페이스모드 진입 WCCP(config-if)# ip wccp redirect [in / out] ## Redirect 수행 (inbound, outbound) WCCP(config)# ip route-cache same-interface ## 옵션으로 Client와 Cache Engine이 같은 인터페이스에 있을 경우 수행 |
※ WCCP를 활성화된 장비에서 Redirect를 설정한 인터페이스로 Web 트래픽이 들어오거나 나갈 때
목적지를 Redirect 하여 외부 Web Server가 아닌 내부 Web Cache Engine으로 향하게 한다.
프로토콜 버전
WCCPv1
- 단일 라우터만이 시스템 클러스터에 서비스를 제공합니다.
- HTTP ( TCP 포트 80) 트래픽 흐름만 지원합니다.
- 패킷 수정을 방지하기 위해 일반 라우팅 캡슐화( GRE )를 제공합니다.
- 라우터와 캐시 엔진은 UDP 포트 2048을 기반으로 하는 제어 채널을 통해 서로 통신합니다.
WCCPv2
- 최대 32개의 라우터(WCCP 서버)에서 사용 가능
- 최대 32개의 엔진/가속기(WCCP 클라이언트) 지원
- TCP 또는 UDP를 포함한 모든 IP 프로토콜을 지원합니다.
- 최대 255개의 서비스 그룹(0-254) 지원
- MD5 공유 비밀 보안을 추가합니다
주요 WCCP 기능
등록
- Accelerator 또는 Engine은 WCCP 클라이언트입니다.
- 애플리케이션이 작동 중이면 "Here I Am"으로 WCCP 서비스(0-254)를 등록합니다.
- 등록은 서비스 그룹에 WCCP 클라이언트를 알리고, 가용성 알림을 제공하며, 관심 있는 트래픽을 요청합니다.
- 10초마다 "Here I Am"을 전송합니다.
- 리드 WCCP 클라이언트(최저 IP 주소)는 라우터에 프로토콜/포트, 할당, 전달 및 반환 방법에 대해 지시합니다.
- 라우터는 WCCP 서버입니다
- 서비스 그룹 등록(0-254)을 수락합니다.
- "I See You"로 "Here I Am"을 인정합니다.
- 엔진이 실패했다고 선언하기 전에 30(3x10) 초 동안 기다립니다.
- 다른 엔진에 엔진을 알립니다.
- 라우터 ID는 가장 높은 인터페이스 IP이거나 루프백 IP가 있는 경우 가장 높은 IP입니다.
- 트래픽을 엔진으로 리디렉션 합니다
과제
- 클러스터에서 엔진을 선택합니다
- 해시 256 버킷
- 소스 또는 대상 IP/포트의 7비트 마스크로 표현되는 128개 버킷을 마스크 합니다.
라우터에서 캐시 엔진으로 리디렉션
- 리디렉트 목록을 사용하면 라우터가 트래픽을 가로채는 것을 허용하거나 거부할 수 있습니다.
- 리디렉션의 두 가지 방법:
- WCCP L2 : 로컬 서브넷만, 오버헤드가 거의 없음. 패킷 MAC 주소를 로컬 엔진의 MAC 주소로 다시 작성
- WCCP GRE: 모든 IP-서브넷, 오버헤드가 더 많음. 라우터에서 로컬 또는 원격 엔진으로 터널을 만듭니다.
캐시 엔진에서 라우터로 돌아가기
- WCCP GRE 복귀.
- WCCP L2 복귀.
- 엔진은 선택적으로 라우팅을 포함한 다른 방법으로 트래픽을 반환할 수 있습니다.
WCCP를 구현하는 제품
원래는 Cisco의 콘텐츠 캐시 어플라이언스용으로 설계되었지만 이후 다음을 포함한 다른 제품에 대한 지원이 추가되었습니다.
- ASR 1000 라우터
- 애플리케이션 및 콘텐츠 네트워킹 시스템(ACNS)
- 광역 애플리케이션 서비스(WAAS)
- ASA/PIX 방화벽
- 일부 IOS 버전
- IronPort S-시리즈 웹 보안 어플라이언스
- Nexus 7000 스위치
다른 공급업체도 WCCP 지원을 제품에 구현했는데, 이는 Cisco 라우터/스위치를 사용하여 추가 하드웨어 없이 네트워크에서 클러스터링 및 투명한 배포를 허용하기 때문입니다. WCCP는 웹 트래픽 리디렉션을 위한 웹 캐시/프록시/보안 어플라이언스 공급업체에게 특히 유용합니다. 일부 공급업체는 WCCP를 구현할 때 표준을 따르지 않았으며 이로 인해 상호 호환성 문제가 발생할 수 있습니다.
목록에는 다음이 포함됩니다.
[용어/개념] 프로세스(Process) vs 쓰레드(Thread) 비교 정리
[Algorithm] 기수 정렬 (Radix Sort)
[Linux] rsync 명령어 사용법 - 데이터 백업하기