박재곤 기자
지난 호에서 설명한 대로 전통적인 네트워크 구성은 라우터, 스위치, NIC 정도로 요약된다. 이런 네트워크 구성을 OSI
7계층 모델을 기준으로 보면, 1계층의 케이블, 2계층의 스위치, 그리고 3계층의 라우터로 볼 수 있으며, 결국 전통적인
네트워크 장비는 3계층 네트워크 계층까지 처리하는 것이 일반적이었다. 따라서 3계층을 처리하는 라우터는 네트워크 구성도에서
최상위층을 차지하고 있었다.
하지만 다계층 스위치의 등장은 이런 전통적인 네트워크 구성을 무너뜨려 버렸다. 네트워크와
네트워크를 연결해 인터넷이란 거대한 네트워크가 가능하도록 하는 것이 3계층 라우터라면, 다계층 스위치는 연결에만 치중했던 기존
네트워크 장비를 보완하며 한 단계 진보한 네트워크 환경을 구성할 수 있도록 해준다. 즉 안정적인 연결을 보장하거나 전송 속도를
높여주는 등을 지능적인 역할을 수행한다. 특히 날로 증가하는 보안 위협으로부터 네트워크를 보호하는 데 결정적인 역할을 수행하고
있다.
인터네트워킹을 위한 경로 설정
인터넷에 연결된 개별 네트워크의 수는 이루 헤아릴 수
없이 많은 것이 사실이다. 인터넷의 어원이 인터네트워크(internetwork)에 있듯이, 라우터는 이렇게 서로 연결된
네트워크(internetwork) 간의 경로(Route)를 설정해주는 장비다. 라우터가 ‘경로’에 비중을 둔 이름을 갖게 된
것도 이렇게 수없이 연결된 네트워크 간을 어떻게 연결하는 것이, 다시 말해 어떤 경로로 연결하는 것이 가장 효율적인가를 알려주는
길잡이 역할이 중요하기 때문이다.
라우터의 이런 인터네트워킹 기능은 OSI 참조모델로 살펴보면 훨씬 명확하게 이해할 수
있다. 허브나 스위치가 OSI 참조모델 2계층, 데이터 링크 계층에 속하는 반면, 라우터는 3계층, 즉 네트워크 계층에 해당하는
장비이다. 잘 알려진 대로 네트워크 계층은 여러 개의 독립적인 네트워크 간에 데이터를 전송하는 것에 관한 계층이다.
허브
나 스위치가 속해 있는 데이터링크 계층의 데이터 전송은 물리적인 장치의 주소 지정에 의해 단일 네트워크로 연결된 모든 장치에
데이터를 브로드캐스팅하며, 수신측 장비에서 확인해 자신에게 오는 데이터를 수신하는 방식이다. 이런 방식은 일정한 범위와 크기의
내부 LAN에서는 가능하지만, 네트워크의 규모가 일정 크기를 넘어서면 매우 비효율적인, 그리고 현실적으로 운영할 수 없는
네트워크가 되고 만다. 광대한 인터넷을 향해 브로드캐스팅을 한다는 것은 누가 생각해도 합리적이지 못한 방법이다.
그러나
네트워크 계층의 장비인 라우터는 여러 개의 네트워크가 연결된 환경에서 특정 경로를 선택해 데이터가 전송되도록 한다. 이는
목적지로 데이터를 전송하면서 목적지가 아닌 네트워크에 데이터가 전송되는 것을 방지할 수 있다. 여기서 특정 경로란 다양한 라우팅
알고리즘을 통한 최적의 경로를 말한다.
일반 컴퓨터를 닮은 라우터의 구성
라
우터의 기본적인 구성은 일반 컴퓨터와 마찬가지다. 중앙처리 장치인 CPU가 있고, 각종 메모리가 라우터의 운영체제와 환경설정
정보, 그리고 라우팅 정보 등을 담고 있다. 그리고 네트워크 인터페이스를 통해 트래픽을 입출력한다. 때문에 초기에는 소규모
환경에서 값비싼 라우터 장비 대신 일반 PC 서버를 이용해 라우팅 서비스를 구현하는 경우도 적지 않았다.
CPU는 라우터의 성능(처리량)을 결정짓는 부분이기 때문에 소형 라우터보다 중형 라우터가 더 빠른 CPU를 내장하고 있으며, 사용자가 많거나 더 많은 작업을 할수록 메모리 용량이 커야 한다.
라
우터의 메모리에는 라우터 운영체제(예를 들면 시스코의 IOS)와 라우터의 환경 설정에 대한 내용 즉, 라우터 비밀번호, 시리얼
포트의 속도, 포트에 등록된 IP 어드레스 등의 내용이 저장돼 있다. NVRAM( Non-Volatile Random
Access Memory)을 사용하기 때문에 라우터를 재부팅해도 수정된 환경이 적용된다.
라우터는 ROM에 있는 부트스트랩
프로그램을 통해 플래시 메모리에 라우터 운영체제를 저장하고 있다가 메모리로 올린다. 네트워크 운영체제는 기능이 향상되고,
제공하는 기능이 많아질수록 버전이 올라가는데, 이때 프로그램 크기도 점차 커지므로 이를 저장하고 운영하기 위한 메모리도 커진다.
따라서 네트워크 운영체제의 버전이나 장비에 따라 필요한 플래시 메모리 용량이 다르다. 일반적으로 시스코 IOS 12 버전이라면
8MB 정도의 메모리가 필요하다.
라우터는 외부 인터넷이나 원거리에 있는 지점간 통신을 하기 위해 통신 포트를 제공한다. 일반적으로 2개를 제공하는 시리얼 포트는 첫번째 포트가 serial0, 두번째 포트는 serial1로 지정돼 있다.
PC
의 COM 포트는 일반적으로 비동기 방식의 포트(Async Port)에 해당하는 반면, 시스코 라우터의 시리얼 포트는
동기(Synchronous) 방식이다. 또한 라우터에도 이더넷 포트가 있어서 스위치나 허브를 연결할 수 있다. 그밖에도
라우터에는 콘솔(console) 포트와 AUX(AUXiliary) 포트가 있는데, 이는 라우터를 처음 설치하거나 유지보수를 위해
설정을 변경할 때 사용한다.
라우터의 핵심 : 라우팅 테이블
스
위치가 MAC 어드레스를 기반으로 패킷을 목적지로 전달하는 것처럼, 라우터도 어드레스 테이블에 해당하는 '라우팅 테이블'을
가지고 라우팅 서비스를 제공한다. 이 라우팅 테이블에 기록된 정보를 바탕으로 라우터는 자신에게 보내온 패킷을 어디로 전달할
것인지 결정한다. 보다 정확하게 말하면, 라우터는 철저하게 라우팅 테이블에 의존해 라우팅을 한다. 따라서 라우터의 운영은 라우팅
테이블을 관리하는 것이 절반 이상의 비중을 차지하며, 이 라우팅 테이블을 어떻게 구성하고 관리하느냐에 따라 라우터의 원래 목적,
즉 최적의 경로를 찾는 것이 가능해진다.
라우팅 테이블의 정보를 관리하는 방법은 크게 정적(static) 라우팅과
동적(dynamic) 라우팅으로 나눌 수 있다. 정적 라우팅은 관리자가 직접 라우터에 대해 접속하려는 특정 장소, 즉 상대
라우터를 지정하는 방식이며, 동적 라우팅은 라우터가 자체적으로 라우터끼리의 접속 정보를 주고받아 라우팅 테이블이 자동 갱신되는
방법이다.
동적 라우팅이 당연히 편하고 효과저인 방법처럼 보이지만, 정적 라우팅도 라우터 자체의 부하가 적고 회선 대역폭의
효율이 좋다는 장점이 있다. 때문에 모뎀이나 브로드밴드 네트워크와 같이 필요할 때만 연결하는 환경에서는 라우팅 정보를 라우터끼리
주고받지 않는 정적 라우팅이 주로 이용된다.
동적 라우팅은 자동으로 라우팅 테이블이 갱신된다는 장점으로 인해 장애가
발생된 라우터가 라우팅 정보에세 제거됨으로써 네트워크 장애의 영향을 피할 수 있으며, 일부 라우터가 사라지거나 새로이 추가돼도
항상 최적의 경로로 데이터를 전송할 수 있다. 이미 헤아릴 수 없을 정도로 많은 라우터가 설치돼 있는 인터넷은 정적 라우팅을
적용하기에는 이미 너무 복잡한 상태라고 할 수 있다.
라우팅 프로토콜과 라우팅 알고리즘
그렇다면 동적 라우팅 테이블은 어떤 방식으로 만들어지는 것일까. 연결된 라우터끼리 무작위로 정보를 전송해 이를 저장하는 방식으로는 복잡 다단한 구성을 갖고 있는 인터넷에서 라우터가 최적의 경로를 찾을 수 없을 것이다.
이
렇게 라우터끼리 서로의 정보를 주고 받는 방식을 정한 것이 바로 라우팅 프로토콜이며, 이들 라우팅 프로토콜은 일정한 라우팅
알고리즘을 바탕으로 이뤄져 있다. 라우팅 알고리즘은 거리 계산 방식(Distance Vector Advertisement)과
연결 상태 방식(Link State Advertusement)으로 나눠지며, 거리 계산 방식의 라우팅 프로토콜에는 RIP,
IGRP, EIGRP가, 연결 상태 방식 라우팅 프로토콜에는 OSPF, IS-IS, NLSP 등이 대표적이다.
거리 계산
방식은 네트워크 어드레스에 대해 거리(홉 수)와 방향(라우터의 어느 포트인지) 정보를 다른 라우터로 보내 라우팅 테이블 정보를
변경하는 방법이다. 반면 연결 상태 방식은 여기에 더해 대역폭, 전송지연, 회선 신뢰도, 부하 등을 적절히 조합해 최적의 경로를
선택한다. 다시 말해 라우터를 여러 개 거쳐서 홉 수가 많더라도 회선 속도가 보다 빠른 쪽으로 경로를 설정할 수 있다는 것이다.
계층의 경계 허무는 다계층 스위치
?
전통적인 스위치는 2계층, 즉 링크 계층 네트워킹 장비다. 이것은 더미 허브라 불리던 허브나 리피터가 아무런 지능없이 단순히
물리적인 신호를 증폭하고 전달해 주는 것과는 달리, MAC을 인식할 수 있고, 인식한 MAC을 통해 한단계 수준 높은 서비스를
제공할 수 있다는 것을 의미한다.
스위치가 계층을 넘어서는 첫 번째 사건은 바로 3계층 스위치의 등장이다. 1990년대
후반, 인터넷이 본격적인 확산을 시작하면서 IP 계층이 네트워크 분야의 최대 화두로 등극했다. 하지만 당시 내부 LAN에서
인터넷으로 나가는 관문 역할을 하던 라우터는 이렇게 급증하는 인터넷 트래픽을 원활하게 처리할만한 성능을 갖추고 있지 않았다.
물론 대용량 라우터가 해결책이 될 수도 있었지만, 가격이 만만치 않았다.
이때 등장한 것이 바로 3계층 스위치다. IP
스위치로 불리기도 했던 3계층 스위치는 말 그대로 기존 스위치에서는 처리하지 못했던 3계층 IP 어드레스를 인식할 수 있는
장비였다. 이전까지 라우터가 없으면 인터넷에 접속할 수 없다는 것이 네트워크 상식이었는데, 3계층 스위치가 이런 고정 관념을 깬
것이다. 이 때문에 한때 라우팅 스위치, 스위치드 라우터 같은 용어가 회자됐다.
3계층 스위치가 라우터 대체설까지 나올
정도로 인기를 얻을 수 있었던 것은, 바로 IP 어드레스를 스위칭하듯이 빠르게 처리했기 때문이다. 라우터는 IP 뿐만 아니라
3계층의 모든 프로토콜과 라우팅 알고리즘을 처리하기 위해 최대한 범용적인 프로세서와 메모리를 사용하지만, 늘어나는 IP 트래픽을
처리하기 위해 등장한 3계층 스위치는 이를 위한 ASIC 칩을 사용해 IP 트래픽의 처리 속도를 기존 2계층 스위칭 수준으로
끌어올린 것이다.
스위칭에 한계는 없다
일단 한번 계층의 벽을 넘은 스위치에게 넘지 못할 벽은 없었다.
닷컴 바람이 뜨거웠던 2000년을 전후해서 4계층인 전송계층 프로토콜을 지원하는 스위치가 등장해 일세를 풍미하게 된다. 4계층
스위치는 3계층 IP 프로토콜을 넘어서 4계층 TCP나 UDP, ICMP 등의 포트 정보까지 분류해 패킷을 제어할 수 있으니,
이를 통해 트래픽 우선순위를 지정할 수 있고, 대역폭 할당이나 액세스 컨트롤, 로드밸런싱 등의 기능을 제공할 수 있다.
4계
층 스위치는 그 등장 배경 때문에 웹 스위치란 이름으로 널리 알려진다. 각종 인터넷 서비스가 확산일로를 달리고 대형 인터넷
데이터 센터가 우후죽순 생겨나던 시절, 아무리 고성능 네트워크 장비와 서버를 동원해도 하나의 서비스나 컨텐츠에 집중되는 수많은
인터넷 트래픽을 감당하기에는 불안한 상황이 된 것이다.
4계층 스위치는 새로이 생겨난 트래픽 제어라는 강력한 기능으로
여러 대의 서버를 하나의 서버처럼 보이게 하고는, 내부에서는 각각의 서버에 부하를 골고루 분산시켜주는 서버 로드밸런싱 장비로
각광을 받게 된다. 이를 이용하면 각각의 서버, 혹은 각각의 네트워크 연결 사이의 부하를 조절해 로드밸런싱 기능을 제공하며,
특히 여러 개의 서버로 구성된 웹 사이트의 경우는 각각의 웹 서버에 대한 부하를 조절해 같은 용량의 서버와 대역폭을 좀더
효율적으로 사용해 더 많은 트래픽을 빠른 속도로 처리할 수 있다. 특히 웹 서버의 로드밸런싱에 많이 사용된 덕에 웹 스위치라는
이름을 얻게 된 것이다.
당연한 일이지만, 스위칭의 계층 뛰어넘기는 여기서 멈추지 않았다. 웹 서버 로드밸런싱을
중심으로 시장을 형성한 다계층 스위치는 단순 서버 로드밸런싱에서 시작해 글로벌 서버 로드밸런싱, 파이어월 로드밸런싱, VPN
로드밸런싱 등 다양한 분야의 로드밸런싱으로 영역을 넓혔으며, 결국 보안 분야로까지 진출하고 말았다.
보안 장비로
각광받고 있는 7계층 스위치는 각각의 컨텐츠나 애플리케이션을 인식하고 가장 적합한 경로로 데이터를 전송하는 등, 더욱 큰 폭의
성능 향상을 꾀할 수 있게 됐다. 심지어 7계층 스위치 중에서는 트래픽을 분석해 바이러스 패턴을 검색하고, 이를 차단하는 보안
솔루션까지도 선보이고 있다. 특히 초기에는 패킷 필터링 기능만을 제공하는데 그쳤지만, 이제는 세션 단위의 필터링과 컨텐츠
검사까지 기능을 확장하고 있다. 이렇게 애플리케이션 계층까지 파고들면서 다계층 스위치는 애플리케이션 스위치로 불리기 시작했다.
용도에 따른 다계층 스위치의 활용
다계층 스위치는 현재 보안 관련 분야에 가장 많이
사용되고 있으며, 과거처럼 보안 장비를 지원하는 정도가 아니라, 보안 기능의 표면에서 활약하고 있는 경우가 많다. 하지만 모든
다계층 스위치가 이렇게 사용되고 있는 것은 아니다. 다계층 스위치는 여전히 그 이름만큼 많은 분야에서 사용되고 있으며, 실제로
그만큼 다양한 기능을 갖고 있다. 다계층 스위치가 어디에서 어떻게 사용되고 있는지 대표적인 용도별로 알아 본다.
·서버 로드밸런싱
다
계층 스위치가 아무리 애플리케이션 계층으로 치고 올라간다 해도, 서버 로드밸런싱은 여전히 다계층 스위치의 가장 중요한 기능중
하나다. 클라이언트로부터 요청을 받은 4계층 스위치는 연결된 서버들 주에서 가장 상태가 좋은 서버로 로드를 분배한다. 여기서
서버의 상태를 모니터링하는 것과 로드를 분배하는 두 가지 기능이 다계층 스위치의 가장 핵심적인 요소다.
(그림 10)은 중규모 이상 사이트의 가장 일반적인 다계층 스위치 적용 구성이다. 이런 구성에서는 다계층 스위치가 지원하는 가상 IP 수와 지원 가능한 실제 서버, 그리고 스위치의 최대 처리량이 허락한다면, 수십, 수백대의 서버도 연결할 수 있다. 규모가 작다면 여기서 2계층 스위치를 빼고 직접 연결해도 무방하다.
·파이어월 로드밸런싱
인
터넷을 통한 e-비즈니스와 금융 서비스, 전자상거래 등이 증가하면서 파이어월이나 VPN 등은 기업 네트워크의 필수 요소가 되고
있다. 그러나 단일 장비로 서비스를 제공한다는 것은 SPOF가 발생할 여지를 남길 뿐 아니라 점차 늘어나는 대역폭을 감당하기
어려운 상황에 직면해 있다. 또한 보안 레벨을 강화할수록 보안 장비에 걸리는 부하도 높아지기 때문에 지연, 속도 저하 등의
문제가 발생할 수 있다.
이같은 문제는 다계층 스위치의 로드밸런싱과 리다이렉션을 통한 페일오버 기능으로 해결하는 것이
일반적인 추세다. 다계층 스위치와 보안 장비를 연계해 사용할 경우 얻을 수 있는 장점으로는 하나 이상의 보안 장비를 사용함으로
인한 성능 향상과 장애 발생시에도 여분의 장비를 통한 중단없는 서비스를 제공할 수 있다는 것이다. 이외에도 동적 로드밸런싱을
통해 보안 솔루션의 응답 속도를 향상시킬 수 있고, 시스템의 변경없이 보안 솔루션을 확장, 관리할 수 있다는 점에서 유리하다.
물
론 파이어월을 구성하는 방식 중에 두 대의 파이어월을 병렬로 설치한 후 하나는 액티브 상태로, 다른 하나는 스탠바이 상태로
만들어 장애에 대비하는 방식도 있다. 하지만 이같은 구성은 장애에 대한 대비는 가능하지만, 네트워크 장비의 효율과 확장성이
취약하다는 단점이 있다.다계층 스위치는 단지 두 대의 파이어월뿐 아니라 동시에 여러 대의 파이어월을 하나의 클러스터로 묶어
서비스를 제공할 수 있기 때문에 이같은 문제를 일거에 해결할 수 있다. 이 경우에는 스탠바이 상태로 대기하고 있는 파이어월 없이
모든 장비가 액티브 상태로 동작하며, 다계층 스위치가 이들 사이의 부하를 조절하고, 하나의 장비에 문제가 발생할 경우에는
페일오버 기능까지 제공해, 안정성과 성능 향상에 기여한다.
·VPN 로드밸런싱
파이어월이 급증하는 트래픽을 감당하기 어려운 것과 마찬가지로 VPN 역시 터널을 구성하고 전송하는
데이터를 암호화/복호화하는 과정에서 상당한 부하가 발생한다. 특히 지점의 경우는 내부 사용자만 감당하면 되지만, 지점의 모든
네트워크가 집중되는 본사의 경우는 몇십 개에서 많게는 수천 개의 터널을 유지해야 하기 때문에 안정성과 확장성이 더욱 중요시된다.
물론 이것도 다계층 스위치의 로드밸런싱 기능으로 VPN 클러스터를 구축해 해결할 수 있다.
하지만 VPN 로드밸런싱은 외부
다계층 스위치와 내부 다계층 스위치를 통과하는 IP가 각각 다르기 때문에 VPN에서 내부로 전송되는 패킷을 내부 다계층 스위치가
테이블을 갖고 있다가, 되돌아가는 응답 패킷은 이 테이블을 참조하는 등 각기 다른 방법을 통해 VPN의 특성을 지원해야 한다.
더
욱 큰 문제는 본사에서 지점으로 통신을 시도하는 경우다. 이 경우에는 어떤 VPN으로 보내야하는지 판단해야하는 기능이 필요하다.
특히 터널이 구성되지 않은 지점으로 통신을 시도할 경우에는 전송된 패킷이 경로를 찾지 못해 결국 폐기되는 수밖에 없다.
'Network' 카테고리의 다른 글
[펌글]TCP 자세히 보기 (0) | 2009.05.17 |
---|---|
[펌글][월간 온더넷 2006/11] 초보자를 위한 네트워크의 이해.. (0) | 2009.05.17 |
[펌글][월간 온더넷 2006/12] 초보자를 위한 네트워크의 이해.. (0) | 2009.05.17 |
[펌글][월간 온더넷 2007/01] 초보자를 위한 네트워크의 이해.. (0) | 2009.05.17 |
[펌글:월간 온더넷 2007/03] 초보자를 위한 네트워크의 이해.. (0) | 2009.05.17 |