보안·네트워크

[스크랩] [네트워크 기초 강좌 5] 네트워크와 네트워크를 연결하는 라우터

날고 싶은 파랑 2013. 10. 12. 16:59
[네트워크 기초 강좌 5] 네트워크와 네트워크를 연결하는 라우터
 LAN이나 WAN 환경에서 개별적으로 구성된 네트워크를 모아 하나의 커다란 네트워크로 연결하기 위해서는 네트워크 사이의 연결을 담당하고, 패킷이 목적지에 제대로 도착할 수 있도록 올바른 경로를 설정하는 등의 기능을 제공하는 라우터가 필요하다. WAN과 대규모 LAN 환경의 필수 구성 요소인 라우터에 대해 알아보자.

신동윤 기자

라우터는 ‘router’라는 이름에서 알 수 있듯이 경로(route)를 설정하는 장비로, 네트워크와 네트워크 사이를 연결하기 위한 통로를 마련하는 역할을 한다.
네트워크와 네트워크 간에 트래픽을 포워딩하는 장비인 라우터는 사용자가 접속하려는 호스트에 도착하기 위해 데이터가 가장 빠르게 목적지에 도달할 수 있는 최적의 경로를 설정해, 데이터 통신이 가능하게 하는 장비다.
라우터는 데이터 송수신시 ‘자신’과 ‘상대’라는 개념을 기반으로 작동한다. 즉, ‘자신=라우터 A’는 ‘상대=라우터 B’가 되는 것이다. 그러므로 라우터 A는 라우터 B로부터 어떤 패킷을 수신하는지는 아무 것도 알 수 없다. 결국 라우터의 역할은 ‘자신(라우터 A)에 연결된 로컬 네트워크의 패킷을 어느 곳(예를 들어 라우터 B 등)에 전달하면 좋을지를 결정하는 것’이다.
다시 말해 라우터는 인터넷을 오가는 패킷을 목적지까지 보내는 라우팅과 목적지의 주소를 지정하는 어드레싱을 담당하는 장비로 이를 합쳐 패킷의 주소를 지정해 목적지로 보내는 역할을 한다고 말할 수 있다.
라우터를 통해 접속된 두 개의 단위 네트워크를 하나의 네트워크로 받아들이는 경우, 라우터는 단순히 정확하게 패킷을 전달시키는 통로가 된다. 이것이 우리가 말하는 라우팅 서비스인 것이다.

 

최적의 경로 설정이 목표
라우터가 어떤 작업을 수행하고 어떻게 동작하는지 이해하기 위해서는 OSI(Open Systems Interconnection) 참조 모델에서부터 출발하는 것이 좋다.
라우터는 OSI 참조 모델의 세번째 계층인 네트워크 계층에 해당하는 장비로, 네트워크 계층은 주소 지정(특정 장비간), 라우팅, 연결 서비스, 게이트웨이 서비스 등을 제공하는 것이라고 앞서 얘기한 바 있다.
네트워크 계층은 여러 개의 독립적인 네트워크 사이에서의 데이터 전송에 관한 작업을 수행한다. 다시 말해 네트워크와 네트워크를 연결하는 인터네트워크 환경에서 특정 경로를 선택해 권한이 없는 네트워크에 데이터를 전송하는 것을 방지하고, 서로 다른 네트워크로 구성된 인터네트워크를 통해 올바른 데이터 경로를 보장할 수도 있다.
이런 3계층 서비스를 제공하기 위한 기본적인 장비가 바로 라우터다. 다시 말해 사용자가 접속하려는 호스트에 도착하기 위해 데이터가 가장 빠르게 목적지에 도달할 수 있는 최적의 경로를 설정하고, 데이터의 흐름을 유지해 주는 것이 라우터의 가장 중요한 역할이다.
라우터는 데이터를 송수신할 때 패킷의 종류나 내용과는 상관없이 라우터에 연결된 로컬 네트워크의 패킷을 어느 라우터를 통해 전송하는 것이 더욱 효율적인지만 결정한다. 따라서 하나의 라우터로 접속된 두개의 독립적인 네트워크로 구성된 환경이라면, 라우터는 단순히 패킷을 전달하는 통로의 역할만 담당한다.
하지만 WAN 환경이나 여러 개의 로컬 라우터로 연결한 대규모 네트워크 환경에서는 최적의 경로를 찾는 라우팅이 필요하다.

 

라우터의 구성
초기의 라우터는 PC와 마찬가지로 CPU, 메모리, 통신 포트, NIC, 운영체제 등의 구성 요소로 이뤄져 있었으며, 일반 서버를 사용해 라우팅 서비스를 이용하는 경우도 있었다. 현재도 일부 운영체제는 라우팅 서비스를 기본으로 제공하고 있다.
CPU는 라우터의 성능(처리량)을 결정짓는 부분이기 때문에 소형 라우터보다 중형 라우터가 더 빠른 CPU를 내장하고 있으며, 사용자가 많거나 더 많은 작업을 할수록 메모리 용량이 커야 한다.
라우터의 메모리에는 라우터 운영체제와 라우터의 환경 설정에 대한 내용 즉, 라우터 비밀번호, 시리얼 포트의 속도, 포트에 등록된 IP 어드레스 등의 내용이 저장돼 있다.
물론 전원을 끄면 저장된 내용이 모두 사라지지만, 다시 플래시(flash) 메모리에 운영체제를 로딩하고 저장된 라우터 환경설정을 불러와서 적용한다.
라우터는 일반적으로 메모리의 내용을 수정할 수 있는 EEPROM(Electrically Erasable Programmable Read-Only Memory)을 사용한다.
라우터는 ROM에 있는 부트스트랩 프로그램을 통해 플래시 메모리에 라우터 운영체제를 저장하고 있다가 메모리로 올린다. 네트워크 운영체제는 기능이 향상되고, 제공하는 기능이 많아질수록 버전이 올라가는데, 이때 프로그램 크기도 점차 커지므로 이를 저장하고 운영하기 위한 메모리도 커진다. 따라서 네트워크 운영체제의 버전이나 장비에 따라 필요한 플래시 메모리 용량이 다르다.
라우터는 외부 인터넷이나 원거리에 있는 지점간 통신을 하기 위해 통신 포트를 제공하며, 스위치나 허브와 연결하기 위한 이더넷 포트도 제공한다. 그밖에도 라우터에는 콘솔(console) 포트와 AUX(AUXiliary) 포트가 있는데, 이는 라우터를 처음 설치하거나 유지보수를 위해 설정을 변경할 때 사용한다.
콘솔은 컴퓨터 시스템의 관리자가 시스템의 상태를 알아보거나, 각종 업무를 처리하기 위해 사용하는 단말 장치를 말하며, AUX는 모뎀을 연결해 원격지에서 라우터 환경을 설정하기 위한 콘솔용 보조 포트다.

 


라우팅 서비스의 종류
라우터가 한 대라면 라우팅 프로토콜이 필요없지만 인터넷에는 수백만 대의 라우터가 거미줄처럼 엮어 있기 때문에, 라우터간의 통신을 위한 라우팅 프로토콜이 필요하다. 이 라우팅 프로토콜을 통해 여러 대의 라우터가 경로를 설정하고 패킷을 전달할 수 있다.
라우팅 프로토콜은 라우팅 알고리즘을 수행하는 프로토콜로, 서울 본사와 부산 지점이 서로 라우터로 연결된 작은 규모의 기업 환경에서부터, 크게는 수만 대 라우터를 연결하는 ISP 환경까지, 필요한 라우티드(Routed) 프로토콜을 목적지까지 전달하는 역할을 한다. 라우티드 프로토콜은 실제 패킷을 전달하기 위한 프로토콜로, 대표적인 것으로는 IP, IPX, AppleT!alk, DECnet 등이 있다.
라우터는 '어드레스 테이블'에 해당하는 것을 갖고 있는데, 이것을 라우팅 테이블이라고 한다. 이 라우팅 테이블에 기록된 어드레스 정보에 따라 라우터는 자신에게 보내온 패킷을 전달할(라우팅할) 상대를 결정한다(그림 2). 라우팅 테이블 정보 관리 방법은 정적(Static) 라우팅과 동적(Dynamic) 라우팅의 두 가지가 있다.
정적 라우팅은 관리자가 접속하려는 특정 장소, 즉 상대 라우터를 지정하는 방식이다. 심지어는 다음 접속지의 라우터에 대한 정보만 간단히 갖고 있는 경우도 있다. 이에 비해 동적 라우팅은 지능화된 라우팅 기능으로 라우터끼리 자신이 접속된 네트워크의 정보를 주고받아 라우팅 테이블이 자동 갱신, 작성되는 방법이다. 이때 라우터끼리 정보를 주고받기 위해서는 RIP(Routing Information Protocol)나 OSPF(Open Shortest Path Fast) 등의 라우팅 프로토콜을 사용한다.
동적 라우팅은 정적 라우팅과 비교했을 때 단순히 지능이 추가됐다는 것 이상의 장점을 제공한다. 예를 들어 어떤 라우터에 장애가 발생해 네트워크가 다운된 경우, 그 라우터의 라우팅 정보는 제거된다. 즉, 장애가 발생한 라우터의 어드레스가 삭제됨으로써 네트워크가 유지되고, 궁극적으로 장애의 영향을 피할 수 있다.
인터넷에서는 기본적으로 동적 라우팅을 사용하고 있기 때문에 처음 접속한 사람이라도 어드레스를 알고 있기만 하면 곧바로 해당 컴퓨터로 연결할 수 있다. 그리고 일부 라우터가 사라진 경우라도 인터네트워크는 그대로 유지된다.
회선이 항상 연결돼 있는 전용회선이나 LAN에서는 동적 라우팅이 일반적으로 사용된다. 하지만 MODEM이나 브로드밴드 네트워크와 같이 필요할 때만 연결하는 환경에서는 라우팅 정보를 라우터끼리 주고받지 않는 정적 라우팅이 주로 이용된다.
특히 정적 라우팅은 라우터 CPU에 부하를 적게 주며, 회선 대역폭에도 부담을 주지 않는다는 장점이 있다. 하지만 관리자가 실수로 환경설정을 잘못할 경우에는 엉뚱한 경로가 설정돼 네트워크 속도가 늦어지거나 서버 접속이 끊어지는 등 다소 위험한 점도 있다. 또한 네트워크 환경이 변경되거나 새로운 라우터가 추가될 경우에는 경로를 추가해야 하는 불편함도 있다.

 



주요 라우팅 프로토콜
라우터는 인터넷의 급성장과 더불어 그 중요성이 더욱 높아졌으며, 내외부적인 변화를 거쳐왔다. 네트워크 라우팅은 라우팅이 적용되는 프로토콜에 따라 다양하게 적용된다. 가장 많이 사용되는 네트워크 프로토콜은 역시 IP다.
IP를 위한 라우팅 프로토콜은 도메인 내(Intra-Domain)의 라우팅 프로토콜과 도메인간(Inter-domain) 라우팅 프로토콜로 나눌 수 있다. 도메인내 프로토콜은 82년 최초 설계된 RIP를 시작으로 OSPF, IGRP(Interior Gateway Routing Protocol) 등으로 발전해 왔다.
라우팅 알고리즘은 크게 디스턴스 벡터(Distance Vector) 방식의 RIP, IGRP, EIGRP와 연결 상태(link-state) 방식의 OSPF, IS-IS, NLSP로 나눌 수 있다.
벡터는 네트워크 어드레스에 대해 거리(홉 수)와 방향(라우터의 어느 포트인지) 정보를 다른 라우터로 보내서 라우팅 테이블 정보를 변경하는 방법이다. 디스턴스 벡터 방식은 주위의 라우터가 갖고 있는 다른 라우터의 정보까지도 참조해 최신 정보가 있으면 자기 라우팅 정보를 업데이트하는 방식을 의미한다.
반면 연결 상태 알고리즘의 하나인 OSPF는 짧은 경로 설정을 위해 경로 대역폭을 계산해 모두 더한 후, 가장 수치가 적은 쪽(코스트 값이 적은 쪽)으로 라우팅 경로를 정한다. 즉, 라우터를 여러 개 거쳐서 홉 수가 많더라도 회선 속도가 보다 빠른 쪽으로 경로를 설정한다.
동적 라우팅 프로토콜에는 RIP, IGRP, EIGRP, OSPF 등 여러 가지 종류가 있다. 이처럼 많은 종류의 동적 라우팅 프로토콜이 등장한 이유는 장비업체들이 자체 하드웨어를 개발할 때 특성에 맞게 프로토콜을 개발하기 때문이다. 또한 기존 프로토콜의 기능을 향상시킨 새로운 프로토콜이 등장했기 때문이기도 하다. 예를 들면 초기에 등장한 라우팅 프로토콜인 RIP는 라우팅 경로를 결정할 때 라우터(게이트웨이)를 거쳐가는 홉 수가 적은 쪽을 최적 경로로 선택하도록 설계돼 있다. 하지만 실제로는 경유지가 많더라도 회선 속도가 빠른 경로가 더 유리할 수도 있다. 따라서 이같은 단점을 보완한 OSPF, EIGRP 등의 프로토콜이 등장했다. 이제 주로 많이 사용되는 라우팅 프로토콜에 대해 간단히 알아보자.

 

· RIP
RIP는 처음에 제록스의 XNS(Xerox Network System)에서 사용하기 위한 라우팅 프로토콜로 개발됐다. 이후 1982년에 BSD(Berkeley Standard Distribution) 버전 유닉스의 TCP/IP 프로토콜 환경에서 ‘routed’라는 프로세스 형태로 구현되면서 일반에 널리 알려졌으며 RFC(Request For Comment) 1085로 제정, 인터넷의 표준 라우팅 프로토콜로 받아들여졌다.
RIP는 상당히 빠른 속도로 일반에 적용됐다. 그 이유는 당시의 인터넷은 그다지 복잡하지 않았기 때문에 RIP와 같이 구현이 쉽고 견고한 라우팅 프로토콜을 원하고 있었기 때문이다.
RIP에서는 송신지와 수신지 간의 거리를 패킷이 경유하는 라우터의 개수에 해당하는 홉(hop) 수로 표시하는데, 하나의 라우터를 경유한다면 이는 1홉의 거리가 되며, 2개의 라우터를 경유한다면 2홉의 거리가 되는 것이다.
RIP는 매 30초 이내에 새로운 라우팅 정보를 발송하며, 만약 180초 이내에 새로운 라우팅 정보가 수신되지 않으면 해당 경로를 이상 상태로 간주한다. RIP에서는 액티브와 패시브 두 가지 유형의 사용자를 정의하고 있다.
액티브 사용자(라우터가 대표적임)는 자신이 속해 있는 네트워크 내에서 데이터그램 패킷을 통해 매 30초마다 라우팅 정보를 브로드캐스트한다. 반면에, 패시브 사용자(호스트 컴퓨터가 대표적임)는 RIP 정보를 수신해 경로를 갱신하지만 스스로 라우팅 정보를 송신하지는 않는다. RIP 패킷 내에는 송신지에서 바라본 각 수신지 주소와 홉 수 등이 포함돼 있다.
그러나 RIP에는 몇가지 결함이 있다. 홉 수가 15를 넘는 대규모 네트워크에는 적합하지 않고, 서브넷 마스크를 지원하지 않으므로 IP 주소 영역의 활용을 제한한다. 또한 경로 테이블 전체를 매 30초마다 전송하므로 네트워크 대역폭의 효율적인 사용이 어렵고 최적의 경로를 찾기 위한 정보로 홉(거리값)만을 고려하므로 RIP가 선택한 경로가 최적의 경로가 아닌 경우가 발생할 수 있다. 이후 RIP의 단점을 보완하기 위한 RIP v2가 개발되긴 했지만, 다른 라우팅 프로토콜과의 경쟁에서 밀려, 그다지 많이 사용되지는 않고 있다.

 

· OSPF
1980년대 중반 이후 RIP 프로토콜의 한계가 드러나자 IETF(Internet Engineering Task Force)는 SPF(Shortest Path First) 알고리즘에 기반한 IP 네트워크용 라우팅 알고리즘인 OSPF를 개발했다.
OSPF는 ‘Open Shortest Path First’란 이름에서 알 수 있듯이 모든 사양이 개방돼 있다. OSPF의 사양은 RFC 1247(후에 RFC 1583; OSPF v2로 대체)로 발표됐다.
OSPF는 연결 상태(link state) 개념을 기반으로 한다. 논리적인 영역 내의 모든 라우터는 연결 상태 정보를 모든 라우터에 전송하는데, 이로 인해 논리적인 그룹 영역의 모든 라우터에 일관된 연결 상태 정보 데이터베이스가 제공된다.
각 라우터는 이를 통해 SPF(Shortest Path First) 알고리즘을 실행해 경로를 계산하고 이것을 라우팅 경로로 간주한다. 이는 RIP와 달리 연결 실패가 감지된 후 1초 이내에 재연결하는 기능을 제공한다. 업데이트된 라우팅 정보만을 생성하기 때문에 네트워크 트래픽도 적으며, 논리적인 네트워크 체계에서 계층을 형성하고, 확장성이 좋다.
OSPF는 라우터간에 변경된 최소한의 부분만을 교환하므로 네트워크의 효율 저하를 최소화하며, 라우터의 위치를 설정함에 의해 확장성과 대규모 네트워크에 적용할 수 있는 장점이 있다. OSPF는 RIP가 갖고 있는 여러 단점을 해결할 수 있지만, 프로토콜 자체가 복잡해 구성과 관리가 어렵다는 것이 단점으로 지적된다.

 

· IGRP
IGRP(Interior Gateway Routing Protocol)는 시스코에서 독자적으로 개발한 프로토콜이다. RIP와 유사하게 홉 수를 기준으로 정보를 전송하는 IGRP는 회선의 전송 능력, 전송 지연 시간, 회선의 사용율, 신뢰성을 바탕으로 라우팅 경로를 결정한다. IGRP는 또한 복수 경로에서의 로드밸런싱 기능을 지원한다.

 

· OSI 라우팅 
OSI 참조 모델을 만든 ISO(International Organization for Standardization)가 OSI 참조 모델의 네트워크 계층 프로토콜을 위한 라우팅 프로토콜로 개발했다. OSI 라우팅의 기반이 되는 IS-IS는 처음에 DECnet에서 사용되는 라우팅 개념에서 출발했다. 초기에는 OSI 표준 모델의 네트워크 계층 프로토콜인 CLNP(Connectionless Network Protocol)를 위한 라우팅만을 지원했으나, 후에 IP 네트워크를 위한 버전도 개발됐다.
OSI 라우팅 프로토콜은 OSI 참조 모델에 근거한 표준 라우팅 프로토콜이기는 하지만, 실제 환경에서는 잘 사용되지 않는다.

 


출처 : 네트워크 과정 관련 블로그
글쓴이 : 바스켓돌이 원글보기
메모 :