[Tech Guide] NPU
상태바
[Tech Guide] NPU
  • 승인 2004.11.03 00:00
  • 댓글 0
이 기사를 공유합니다

연·재·순·서
1. 유해트래픽 방지를 위한 NPU 필요성(이번 호)
2. NPU 기반의 유해트래픽 방지시스템의 성능과 개발환경
3. NPU의 미래와 새로운 프로세서 대두

고성능 프로세스 사용·침입탐지·방지 기능 제공 필수 … NPU로 실시간 보안 구현 가능
“NPU로 대용량 웜으로부터 네트워크를 보호하라”

한승철 지모컴 연구소 소장

인터넷과 같은 정보통신망이 급속하게 발달함에 따라 정보 공유 및 전달 등의 사용상 편리함으로 정보화 사회 발전에 크게 기여하고 있으나 웜바이러스 등과 같은 유해한 트래픽의 비중도 급격하게 증가하면서 동시 다발적인 대량의 피해를 야기하고 있다.
급증하는 인터넷 트래픽을 효과적으로 차단하기 위해서는 네트워크 프로세서 기반(NPU)의 하드웨어가 필수적이다.
<편집자>

최근에는 예년에 비해 폭발적으로 웜 바이러스가 증가하고 있는데 이메일을 이용한 방법이 증가하던 추세에서 LSASS 등 신종 시스템의 취약점을 이용한 방법이 출현하는 등 이메일 백도어와 취약성 등을 통한 웜 바이러스 전파가 혼재하고 있다. 2003년 이후에 발생해 많은 피해를 끼친 대표적인 웜바이러스로는 MS블래스터, 웰치아, 소빅, 마이둠, 넷스카이, 베이글, 아고봇 등이 있다.

웜바이러스의 고도화
이처럼 웜바이러스가 증가하면서 파괴력이 강해진 이유는 이메일 및 프로그램 불법복재를 이용해 유포되던 기존 바이러스와 달리 자동으로 시스템의 취약점을 공격해 유포되는 해킹기법을 적용하고 있으며 개인이 즐겨 사용하는 MS 메신저, 당나귀(eDonkey) 등과 같은 P2P 프로그램을 통해 확산되는 등 유포 경로가 다양해졌기 때문이다.

또한 전 세계적으로 인터넷은 기하급수적으로 빨라지고 있으며 특히 한국은 초고속 인터넷이 매우 활성화된 세계 1, 2위 국가로 기반 환경이 떨어지는 중국, 동유럽 국가 등에서 국내 시스템을 경유해 공격하는 국제 해커들의 고속 통신을 위한 경유지로 이용되고 있다.
개인 PC의 성능이 고도화돼 예전의 서버에서나 가능한 트래픽을 쉽게 발생시킬 수 있어 사용자의 부주의로 인해 웜바이러스가 감염된 경우 기존의 보안 시스템에서 처리할 수 있는 용량의 한계를 넘어 전체 네트워크에 영향을 미치게 된다.

웜바이러스의 유형
현재의 웜은 해킹+바이러스의 형태를 말한다. 공격방식은 해킹의 형태를 띄며 서비스를 공격해 시스템 내에 권한을 획득하는 것을 의미하며 전파 방식에 있어서는 바이러스와 같이 이메일 혹은 기초적인 서비스 공격을 통해 전파되고 복제됨으로써 피해를 입힌다.
최근 악명을 떨치는 봇(bot)은 악성 IRC봇 종류의 하나로 윈도 시스템의 쉬운 비밀번호 설정, 윈도 취약점, 윈도 공유폴더, 기타 다른 웜·바이러스가 사용하는 백도어 포트를 통해 전파된다.
악성 봇에 감염된 시스템은 악성 봇의 유포자가 지정한 특정 서버에 접속되며 악성 봇에 감염된 시스템은 유포자의 명령에 따라 추가 감염을 위한 특정 IP 대역 공격, 사용자 정보 등을 유출한다.

현재 필요로 하는 유해트래픽 방지시스템
이처럼 다양해지고 빨라지는 웜을 차단하기 위해 설치하는 유해트래픽 방지시스템은 복잡한 네트워크 패킷 및 흐름 검사 시스템으로 최고 처리 용량의 방화벽보다 몇 배의 처리 능력을 갖춰야 한다.
수 기가비트의 네트워크 환경에 맞추려면 시스템은 반드시 패킷 처리 속도와 패킷 당 지연 요구 사항을 충족하는 고성능 프로세스를 사용해야 한다.
완전한 방지 범위의 필요 조건으로서 시스템은 반드시 가장 심각한 버스트 조건에서 감시하는 포트의 모든 트래픽을 검색해야 한다. 또 유해트래픽 방지시스템은 정확한 탐지, 고성능 및 통합된 기술을 조합해 침입 탐지와 더불어 침입 방지를 제공한다.
차세대 기술을 기반으로 구축된 시스템으로 오늘날의 기업이 증가하는 공격의 위협으로부터 자체의 네트워크를 보호하는 데 필요한 실시간 보안을 구현할 수 있다.
유해트래픽 방지시스템은 개별 패킷 헤더와 부하(Payload)뿐만 아니라 더욱 심도 깊은 패킷 검사 및 분석 기능을 지원해야 한다. 즉 모든 네트워크 트래픽에 대한 패킷 및 트래픽 흐름을 철저히 분석해 정상 트래픽과 공격 트래픽을 정확히 구분할 수 있어야 한다. 이를 위해서는 더욱 대용량을 처리할 수 있는 NPU의 필요성이 대두되고 있다.

네트워크 프로세서 개요
- 차세대 네트워크의 핵심 엔진
- 네트워크 기능을 수행하기에 최적하도록 설계된 프로세서
- 프로그램이 가능한 장치로 일반 CPU와 ASIC의 대체 프로세서

네트워크 프로세서 필요성
- 대역폭의 변화와 빠른 성장으로 높은 성능을 요구
- 다양하고 변화가 많은 애플리케이션을 만족시키기 위한 요구를 충족시켜야 함

네트워크 프로세서의 구조
네트워크 프로세서 구조는 크게 패킷 분류 엔진(packet classification engine), 트래픽 관리 엔진(traffic management engine)의 2개 엔진부와 외부 인터페이스부의 3개 핵심요소로 구성된다. 외부 인터페이스부는 라인 인터페이스와 연동하는 네트워크 인터페이스, 네트워크 장비 내부의 스위치 패브릭과 연동하기 위한 스위치 인터페이스, 네트워크 프로세서 외부의 제어용 호스트 프로세서와 연동하기 위한 호스트 인터페이스로 구성된다.

<그림 4>는 네트워크 프로세서의 핵심 구조를 개념화해 도시화한 것인데, 현재 개발되고 있는 네트워크 프로세서는 해당 제조업체별로 고유의 특화된 구조를 갖고 있어 단일화된 참조 모델을 제시하기 어렵다. 그러나, 설계 철학면에서 몇 가지 공통점을 발견할 수 있는데 이를 정리하면 다음과 같다.

- 네트워크 프로세서가 갖는 네트워크 인터페이스의 전송속도가 Gbps급을 상회하게 되면서, 패킷처리 엔진을 다중 프로세서로 구성하고 있다. 구체적으로 다중화하는 프로세서의 수나 프로세서 동작 주파수에는 차이가 있으나, <표 3>에 정리한 라인속도별 패킷처리 성능을 만족시키기 위해 프로세서 협동체를 패킷엔진으로 채택하고 있다.
- 포워딩 정보를 저장하기 위해 일반적으로 경제적이며 대용량으로 구성할 수 있는 DRAM계열의 칩 외장 메모리를 사용한다. 포워딩 정보 검색이 <표 3>에 정리한 라인속도별 패킷처리 성능을 만족시키는 범위 안에서 이루어질 수 있도록 검색 알고리즘을 개발하고 이를 전용의 하드웨어 엔진으로 구현함으로써 패킷처리 엔진의 부하가 적정 수준을 유지하도록 한다.
- QoS(Quality of Service)를 보장하는 네트워크 서비스에 대한 중요성이 높아짐에 따라 단순한 FIFO(First-In-First-Out) 형태의 패킷 버퍼 관리에서 탈피해 우선순위나 서비스 클래스에 따라 별도의 버퍼를 만들어 관리하는 형태로 진화하고 있다. 이렇게 함으로써 플로별로 다른 패킷처리 정책을 적용할 수 있게 된다.

1. 패킷 분류 엔진
일반적으로 패킷 분류 엔진은 IP 주소 룩업 기능 수행을 기본으로 하고, 추가적으로 다양한 필드들을 조합해 패킷 분류를 수행할 수 있도록 설계되고 있다. 룩업을 포함한 패킷 분류는 네트워크 프로세서의 외부에 실장된 대용량 메모리 검색과정이 주를 이룬다. 패킷 분류 엔진을 논리적으로 추상화해 기술하면 <그림 4>에서 제시한 것처럼 ‘조건-동작코드’쌍으로 정의된 정보로 구성된 데이터베이스를 매 패킷이 유입될 때마다 패킷에 포함된 특정 필드를 검색키로 해 질의하는 과정으로 정의할 수 있다. 네트워크 프로세서와 연동하는 데이터베이스를 포워딩 정보 베이스(forwarding information base)라고 통칭하며, 이 포워딩 정보 베이스는 라우터 시스템 관리자에 의해 정적으로 구축되거나 라우팅 프로토콜을 통해 동적으로 구성된다.
패킷에 포함된 특정 필드를 검색키로 포워딩 정보 베이스를 검색하는 동작을 일반적으로 룩업이라고 통칭하며, 검색 성능을 높이기 위해 네트워크 프로세서마다 고유의 최적화된 검색 알고리즘을 제공하고 있다. 이러한 룩업 알고리즘은 네트워크 프로세서에 내장된 패킷처리 엔진(packet processing engine)과는 별개의 전용 하드웨어 엔진으로 구현되고 있다. 많은 네트워크 프로세서가 다중비트 검색 트리(multibit search tree) 구조를 기반으로 룩업의 신속성, 포워딩 정보 베이스 갱신 및 구축의 용이성, 포워딩 정보 베이스 메모리 사용 효율성이라는 3가지 고려 사항에 대해 자체적으로 최적화한 검색 알고리즘을 개발하고 있다
Gbps 이상의 전송속도를 갖는 패킷에 대한 룩업을 실시간으로 처리하기 위해 네트워크 프로세서 내부의 패킷처리 엔진으로 병렬처리 기반의 다중 프로세서 코어를 사용한다. 현재 네트워크 프로세서에 대표적으로 적용되고 있는 다중 프로세서 모델로는 RTC(Run-To-Completion) 모델과 파이프라인 모델이 있다.

2. 트래픽 관리 엔진
트래픽 관리 엔진은 패킷 분류 엔진에 의해 결정된 패킷별 포워딩 경로 설정 정보를 실제로 적용해 패킷을 네트워크 인터페이스나 스위치 인터페이스로 송출하는 일련의 과정을 수행한다. 이 과정은 패킷 출력 큐잉, 패킷 출력 스케줄링, 트래픽 제어, 패킷 조립 및 분할의 동작들로 구성된다.
패킷 출력 큐잉/스케줄링 기능은 네트워크 프로세서마다 지원하는 범위가 다양하다. 구분가능한 최대 플로우의 수에서부터 지원하는 스케줄링 알고리즘까지 네트워크 프로세서마다 차이를 보인다. 지원가능한 최대 플로우 수를 높이고 스케줄링의 단위를 세분화할수록 패킷처리를 위해 요구되는 시간이 증가하게 돼 포워딩 성능을 저하시키게 된다. 따라서, 네트워크 프로세서에 구현된 룩업 기능과 스케줄링 기능이 성능을 위해 최적화됐는지가 그 프로세서의 우수성을 가늠하는 척도가 된다고 볼 수 있다.
트래픽관리 엔진이 지원하는 기능에 의해 QoS 서비스 구현의 범위가 정해진다. 대부분의 네트워크 프로세서는 IETF(Internet Engineering Task Force) 인터넷 표준화 기구에서 권고하는 DiffServ(differentiated service) QoS 기본적인 메커니즘을 지원한다.

3. 네트워크 인터페이스
앞서 언급한 것처럼 다양한 프로토콜이 혼재돼 글로벌 인터넷망을 형성함에 따라 라우터와 같은 네트워크 장비가 지원해야 할 전송 매체 및 전송 프로토콜이 다양하게 존재한다. 따라서 네트워크 프로세서도 다양한 전송 프로토콜을 수용할 수 있도록 네트워크 인터페이스를 지원해야 한다.
Gbps 이상의 전송속도에 적합한 전송 프로토콜로 기가비트 이더넷(GbE)과 POS(Packet Over SONET)가 주류를 이루기 때문에 대부분의 네트워크 프로세서에서 GbE와 POS를 기본적으로 지원하고 있다. 꾸준히 증가하고 있는 기가비트 이더넷 스위치 시스템에 대한 수요를 고려해 대부분의 네트워크 프로세서가 GbE/10GbE MAC 기능은 칩 내부에 내장하는 추세이며, 그외의 네트워크 인터페이스는 네트워크 프로세서 외부에 전용의 L2처리 소자를 활용할 수 있도록 표준 인터페이스를 제공하고 있다

4. 스위치 인터페이스
스위치 인터페이스에 대한 네트워크 프로세서의 지원추세는 제조업체별로 크게 두 가지 형태로 나뉘고 있다. 스위치 패브릭 솔루션을 함께 제공하는 경우에는 자사의 스위치 패브릭과 연동한 통합 솔루션에 초점을 맞추고 자사 고유의 스위치 인터페이스를 지원한다.
이와 반대로 네트워크 프로세서만을 개발하는 제조업체의 경우는 다른 제조업체의 스위치 패브릭과 반드시 연동해야만 하기 때문에 기본적으로 네트워크 프로세서 포럼(Network Processor Forum: NPF)[4]에서 제안하는 Common Switch Interface(CSIX) 및 NPF Streaming Interface(NPFSI)와 같은 표준 스위치 인터페이스를 따르고 있다.
CSIX-L1 표준은 OC-48급의 스위치 포트에 대해 라인 속도를 제공하기 위해서 32bit 100MHz로 동작시킬 것을 권고하고 있으며, OC-192급의 스위치 포트에 연결하기 위해서 64bit 200MHz 혹은 128bit 100MHz 의 조합으로 동작시킬 것을 권고하고 있다. 일반적인 100MHz의 동작 주파수에 128bit 광폭의 데이터 버스가 요구됨을 고려할 때 CSIX-L1은 OC-192 전송속도에는 적합하지 않은 솔루션이라고 판단되며 현재로서는 OC-48 전송속도에 최적화가 되어 있다고 볼 수 있다. 따라서, 대부분 네트워크 프로세서가 CSIX-L1 표준을 OC-48급 이하의 스위치 포트에 대해서만 적용하고 있다.
NPFSI는 SPI-4.2를 기반으로 16-bit LVDS 데이터 버스를 사용함으로써 인터페이스 핀 수를 줄이면서 OC-192 이상의 전송속도를 제공하는 것을 목표로 하고 있다. 그러나 아직까지 NPFSI에 대한 표준화가 완료되지 않아 10기가급 네트워크 프로세서를 개발하는 업체에서 표준 NPFSI를 채택하지 못하고 있다.
이러한 표준 부재 상황에서 이지칩(Ezchip)을 포함한 일부 제조업체에서는 인터페이스 핀 수의 증가를 감수하고도 64-bit 200MHz의 CSIX-L1의 확장을 이용하고 있으며, 인텔같은 경우는 16-bit 500MHz로 오버클러킹(overclocking)한 변형된 SPI-4.2 인터페이스를 사용하고 있다.

5. 호스트 인터페이스
호스트 인터페이스는 네트워크 프로세서에 대한 제어 기능과 관리 기능을 수행하는 호스트 프로세서와 정합하는 기능을 수행한다. 호스트 프로세서로 파워 PC, MIPS와 같은 범용 프로세서를 활용하며, 일반적으로 PCI 인터페이스 규격 기반으로 네트워크 프로세서와 통신한다.

네트워크 프로세서의 운영체제
네트워크 프로세서의 운영체제는 일반적인 프로세서의 구조를 가지지 않고 패킷을 고속으로 처리하기 위한 하드웨어적인 프로세서에 이식돼 있어 대부분 일반적인 운영체제를 구동 시킬 수 없도록 돼 있다. 따라서 프로세서 개발 회사마다 고유한 운영체제를 가지고 있으므로 어떠한 프로세서를 사용하냐에 따라 완전히 상이한 운영체제를 사용하고 목적에 따라 완전히 다른 구조의 운영체제로 변형해 사용할 수 있는 장점도 있다.

- RTOS(Real Time Operating System)
- 전용 패킷 처리 엔진
- 전용 프로그램 언어 사용

이번호에서는 네트워크 프로세서란 무엇인가에 대해 다방면으로 살펴봤다. 다음호에서는 NPU 기반의 유해트래픽 방지시스템의 성능과 개발환경에 대해 알아보자


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.