검수요청.png검수요청.png

라우터

해시넷
이동: 둘러보기, 검색
라우터(Router)

라우터(Router)는 IP 대역이 서로 다른 네트워크와 네트워크를 이어주는 다리 역할을 해주는 장비이다. 명사형 route는 ‘길’이라는 의미로서, 라우터는 단순히 다른 네트워크를 연결해줄 뿐만 아니라 적절하고도 효율적인 길을 알려주는 역할까지 하는 장비이다.

개요[편집]

라우터는 패킷의 위치를 추출하여 그 위치에 대한 최적의 경로를 지정하며, 이 경로를 따라 데이터 패킷을 다음 장치로 전향시키는 장치이다. 이때 최적의 경로는 일반적으로는 가장 빠르게 통신이 가능한 경로이므로, 이것이 최단 거리일 수도 있지만 돌아가는 경로라도 고속의 전송로를 통하여 전달이 되는 경로가 될 수 있다. 간단히 말해 라우터는 서로 다른 네트워크 간에 중계 역할을 한다. 내부 네트워크는 사용하는 컴퓨터 기종이나 OS, 프로토콜 등을 확실히 알 수 있기 때문에 네트워크의 최적화를 이룰 수 있다. 하지만 내부 네트워크를 외부와 연결할 때는 외부 네트워크에서 사용하는 프로토콜이나 컴퓨터 기종 등의 정보를 알 수 없다. 이러한 알 수 없는 임의의 네트워크와 내부 네트워크를 연결하기 위한 네트워크 장비가 바로 라우터이다. 하지만 기술의 발달로 점차 잘 쓰이지 않는 추세이다.[1]

역사[편집]

라우터의 원형이 된 IMP

1964년 MIT의 래리 로버츠(Larry Roberts)가 ARPA(Advanced Research Projects Agency, DARPA의 전신)의 릭 라이더와 만나, 컴퓨터끼리 연결에 의욕을 점화한다. 1966년에 ARPA에 이동 한 래리는 아르파넷(ARPANET)의 설계 책임자가 되어, 종래의 회선 교환을 대신하여 패킷 교환을 기본으로 하기로 결정한다. 1968년부터 아르파넷의 실제 계획이 시작하고 1970년에 최초의 4개소에 연결하여 가동을 개시했다. 아르파넷은 미국 BBN(Bolt Beranek and Newman) 사가 만든 IMP(Interface Message Processor)라는 패킷 교환기 중심으로 구성되어 있었다. IMP는 단일 프로토콜의 동작이었기 때문에 아직 이 시점에서는 라우터가 아니었다. 1972년에 ARPA에 부임한 로버트 칸(Robert Kahn)은 다양한 인터페이스를 가진 게이트웨이라고 부르는 장치를 구상하고 있었다. 칸 패킷 자체를 로컬 네트워크의 패킷에 넣어 운반 패킷의 캡슐화를 생각했다. 프로그래밍에 익숙한 스탠퍼드 대학의 빈톤 서프(Vinton Cerf)와 협력하여 게이트웨이와 캡슐화 아이디어를 점차 채워갔다. 1974년에 두 사람은 미국 전자전기학회(IEEE) 학술지에 현재의 TCP/IP의 원형이 되는 TCP라는 프로토콜을 발표했다. 1977년 최초의 네트워크 상호 연결 실험을 위성 통신을 통해 TCP 패킷의 전송에 성공했다. 게이트웨이라는 용어는 1980년대 후반에 라우터라고 불릴 때까지 계속 사용되었다. 지금도 이더넷이 아닌 (WAN) 회선 등에 접속의 경우에는 회선 인터페이스 밝혀 달라지므로 게이트웨이라는 것이 있는데 이것이 외부 출구라는 의미로 사용되었는지 칸의 이름에서 유래인지, 그 후 두 사람의 TCP 프로토콜은 응용 프로그램 간의 통신을 담당하는 부분(TCP)과 패킷 중계를 담당하는 부분(IP)으로 분할되어 1981년에는 정교한 프로토콜로서 현재의 TCP/IP가 발표되었다.[2]

라우터의 탄생

1976년 미국 BNN 사의 손에 의해 아르파넷에 연결, IP 기반 라우터가 세계 최초로 제품화되었다. 이 라우터는 미국의 컴퓨터 산업을 주도하는 회사인 디지털 이큅먼트 코퍼레이션(Digital Equipment Corporation) 사의 16 비트 미니컴퓨터 PDP-11에 어셈블리 언어로 쓴 20K 바이트의 라우터 프로그램을 실행시킨 것이었다. 처리 속도는 100 패킷/초 정도였다. 1982년 아르파넷의 내부와 미국·유럽을 합쳐 20개 이상의 라우터와 수백 개의 호스트 컴퓨터가 하나에 연결되었다. 이것이 지금의 인터넷의 원형이 된다.[2]

상용 라우터 판매

1986년 미국 프로테온(Proteon) 사로부터 멀티 프로토콜을 지원하는 세계 최초의 상용 라우터 프로넷 p4200이 발매되었다. 1990년 미국 시스코 시스템즈(Cisco Systems) 사가 시스코 7000을 1997년에 인터페이스 카드(라인 카드)에 분산하여 제작한 시스코 12000을 발매하고 그 성능은 10M 패킷/초 클래스에 이르렀다. 1987년 세계 최초의 상용 인터넷 서비스 제공 업체(ISP) 유유넷(UUNet)이 탄생하고, 일반 유선 전화가 정액제였기 때문에, 코어 라우터를 DCE 아날로그 모뎀을 DTE로 한 허브 스포크 토폴로지를 위한 네트워크가 미국에 정착하였다. 1995년 경 회선 속도(ISDN이나 CATV의 보급)에 따른 트래픽 증가에 따라 X.25를 대체 왠 프로토콜로 오류 제어 처리의 간소화하여 고속화한 프레임 릴레이가 도입되었다. 그 후, 라우터는 다양한 종류의 물리적 인터페이스를 지원하게 되었다. 또한 이 무렵부터 (LAN) 회선(토큰 링, 이더넷, FDDI)에서 작동하는 네트워크 계층 프로토콜(애플토크, IP, IPX) 및 왠 프로토콜을 연결하는 역할을 라우터가 담당하게 되고, 동시에 랜 회선에 비해 속도로 떨어지는 왠 회선을 효율적으로 사용하기 위해 왠 측에 설치된 라우터를 데이터 단말 장치(DTE)로 취급하여 과도한 트래픽을 왠 측에 흘려보내서 없어지게 했다. 라우터는 ISP를 사용하여 왠 망의 백본 이되는 코어 라우터와 그 DCE 또는 DTE가 되는 엣지 라우터와 분류된다.[2]

랜의 보급 및 왠 가속화

1995년 표준 네트워크 기능으로 TCP/IP를 구현하는 운영체제인 윈도우 95가 발매되어 기업의 PC와 랜 회선의 보급이 진행되면 기업 네트워크의 세계는 ISP 센터와 PC를 연결하는 토폴로지에서 각 세그먼트 허브를 통해 전용선을 통해 연결하는 토폴로지로 바뀌고 랜 쪽 세그먼트 사이의 라우팅 기능이 중시되게 되었다. 이러한 상황의 변화에 따라 네트워크 중계 장치로 레이어 2 스위치가 주목 받게되고, 결국 레이어 2 스위치는 편리 성 향상을 위해 가상랜(Virtual LAN)에 구현에까지 이르렀다. 한편, 소비자 있어서는 전자의 허브 스포크 토폴로지는 계속했다. 일본에서는 연결 회선에 ISDN이 퍼지면서 아날로그 모뎀에서 전화 접속 라우터로 전환하였다. 결국 1990년대 후반부터브로드밴드 회선의 보급에 따라 공유기가 확산되었다.[2]

특징[편집]

라우터는 2개 이상의 논리적 하위망을 연결하는데, 라우터의 물리적 인터페이스와 일치하지는 않는다. 레이어 3 스위칭이 종종 라우팅이라는 용어와 혼용되는데, 스위칭은 엄격한 기술적인 정의가 아닌 일반 용어이다. 마케팅 용어로 스위치는 이더넷 랜 인터페이스에 최적화되어 있으며 다른 물리적 인터페이스를 지원하지 않는다. 이에 비해, 네트워크 허브(스위치나 스위칭 허브 이전 모델)는 한 개의 네트워크 선로상에서 받아들이는 모든 패킷이 다른 모든 네트워크 선로들로 전달되게 하는 대신, 어떠한 라우팅도 수행하지 않는다. 라우터는 두 개의 다른 평면에서 동작한다. 데이터를 출발지에서 목적지까지 가장 빠르고 효율적인 길을 스스로 찾아 안내해 주는 능력을 가지고 있다. 또한 라우터가 라우팅 프로토콜을 통해서 궁극적으로 이루려고 하는 것은 바로 3계층의 IP 패킷(트래픽)을 흐르게 하여 데이터를 전송하는 것이다. 라우터의 종류가 많고, 제조사도 많으며 중소 규모의 사무실용의 라우터나 ISP 업체의 대형 라우터까지 다양하다. 라우터의 제조사 중 대표적인 것이 시스코(Cisco Network) 사이며, 장비를 이용하기 위해 네트워크 개념이 필요하다. 라우팅 세팅 방법으로 IP 라우팅, IPX, DEC 네트, 애플토크(AppleTalk) 등이 있으나, 대부분이 IP 라우팅 용도로 사용된다.[1]

종류[편집]

네트워크에서 쓰이는 위치나 규모에 따라 라우터의 종류가 달라질 수 있다. 다만 라우터의 기본적인 기능은 모두 같다. 아래는 네트워크 규모에 따라서 사용되는 라우터를 나열하였다. 라우터의 기능에 있어서 차이점은 처리할 수 있는 패킷 및 트래픽의 숫자에 따라서 다음과 같이 구분이 된다.

  • 코어 라우터(Core Router) : 보통 AT&T, 버라이즌(Verizon), 보다폰(Vodafone)과 같은 서비스 제공자 또는 구글(Google), 아마존(Amazon), 마이크로소프트(Microsoft))와 같은 클라우드 제공자가 사용하는 라우터이다. 이러한 라우터는 추가 라우터나 스위치를 연결할 수 있도록 최대 대역폭을 제공한다. 대다수 중소기업에는 코어 라우터가 필요하지 않다. 그러나 여러 건물이나 위치에서 많은 직원이 근무하는 대기업에서는 네트워크 아키텍처의 일부분으로 코어 라우터를 사용할 수 있다.
  • 엣지 라우터(Edge Router) : 게이트웨이 라우터 또는 간단히 게이트웨이라고도 하는 엣지 라우터는 인터넷을 비롯한 외부 네트워크와 연결되는 네트워크 가장 바깥쪽의 연결 지점이다. 엣지 라우터는 최대한 많은 대역폭을 제공하도록 최적화되어 있으며, 최종 사용자에게 데이터를 배포하기 위해 다른 라우터와 연결된다. 엣지 라우터는 대개 로컬 네트워크를 완전히 관리하는 기능이나 와이파이(Wi-Fi) 기능을 제공하지 않는다. 이러한 라우터에는 보통 이더넷 포트만 포함되어 있다. 엣지 라우터와 모뎀은 같은 의미로 사용될 때도 있지만, 제조업체나 IT 전문가는 보통 엣지 라우터를 지칭할 때 모뎀이라는 용어를 더 이상 사용하지 않는다.
  • 센터 라우터(Center Router) : 왠 회선을 거쳐 회사의 본점과 회사의 지점을 서로 연결한다. 또, 인터넷 서비스 제공자와 기업의 네트워크와 연결할 때에도 쓰인다.
  • 원격 라우터(WAN Router) : 랜과 WANG을 중계한다. 왠 라우터라고도 부른다.
  • 브로드밴드 라우터(Broadband Router) : 가정이나 작은 규모의 기업에서 브로드밴드급의 인터넷에 접속할 때 쓰인다.
  • 핫스팟 라우터(Hotspot Router) : 휴대용 핫스팟에서 인터넷에 접속할 때 쓰인다.
  • ISP 라우터(ISP Router) : 인터넷을 제공하는 제공자에 의해 접속할 때 쓰이는 라우터이다.[1][3]

구성[편집]

라우터의 기본 구성은 컴퓨터와 마찬가지다. 중앙처리 장치인 CUU가 있고, 각종 메모리가 라우터의 운영체제와 환경설정 정보, 라우팅 정보 등을 담고 있다. 그리고 네트워크 인터페이스를 통해 트래픽을 입출력한다.

CPU

CPU는 시스템(System 초기화, 라우팅(Routing) 기능, 네트워크 인터페이스 컨트롤(NIC) 같은 운영체제 명령어를 실행한다.

플래시 메모리(Flash Memory)

라우터를 움직이는 운영체제인 IOS(Internetwork Operating System)는 플래시 메모리에 저장된다. 플래시 메모리는 전원이 꺼져도 데이터가 지워지지 않는 곳이다. 또 라우터에 따라서는 플래시 메모리를 교체하거나 확장할 수도 있다. 비휘발성 메모리인 NVRAM(Non-Volatile Memory)과 다른 점은 NVRAM에 비해서 플래시 메모리는 용량이 크다는 것이다. NVRAM은 오직 구성 파일 저장 용으로 사용되는 반면, 플래시 메모리는 주로 IOS 이미지 파일 저장용으로 사용된다는 것이다. 플래시 메모리에 저장되어 있던 IOS는 전원이 켜지면서 라우터의 무대 격인 램으로 뛰어올라오게 되는 것이다. 그리고 전원이 꺼지면 무대인 램에서 내려와 플래시 메모리에 머무르는 것이다. 라우터는 계속해서 새로운 기능이 추가되는데 그럴 때마다 라우터를 계속 새것으로 바꿀 필요는 없다. 라우터의 운영체제인 IOS만 업그레이드하면 된다. IOS의 업그레이드를 위해서는 플래시에 새로운 IOS를 다운로드하는 방법이 있다. 이렇게 IOS를 업그레이드할 때 사용되는 프로토콜이 TFTP라는 것이다.[3]

비휘발성 메모리(non-volatile memory, non-volatile storage, NVM, NVRAM)

비휘발성, 즉 전원을 끈 상태에서도 정보가 날아가지 않는 램을 뜻한다. 라우팅 테이블은 백업할 필요가 없다. 물론 목적지까지의 모든 정보를 가진 라우팅 테이블이 없다면 패킷이 목적지에 도달하는 것은 불가능할 것이다. 하지만 라우팅 테이블은 그때그때 변하는 동적인 정보이고, 게다가 라우팅 테이블을 다 지운 상태에서도 라우터가 이 테이블을 다시 만드는 데는 경우에 따라서는 몇 분까지도 걸리는 게 있지만 대부분은 짧은 시간인 몇 초 정도밖에 걸리지 않기 때문에 라우팅 테이블을 어디에 저장하는 것은 의미가 없다. 하지만 라우터의 구성 파일, 즉 어떤 인터페이스에 IP 주소는 얼마이고, 또 어떤 라우팅 프로토콜을 쓰며, 어떤 식으로 라우팅 테이블을 관리할 것인지에 대한 구성 파일(Configuration File)은 만약 지워지게 될 경우 모든 구성을 전부 새로 해야 하니까 문제가 심각해질 것이다. 그래서 이 구성 파일을 저장하는 곳이 있어야 하는데, 그것이 바로 NVRAM이다. 이곳에 저장된 구성 파일은 라우터가 켜지면 램으로 올라와서 라우터를 구성 파일대로 움직이게 하고, 파워가 꺼질 때는 NVRAM에 저장된다. 물론 저장 명령을 이용해서 저장해 주어야 한다. 시스코 라우터의 경우 NVRAM에 저장된 구성 파일을 보는 명령이 'show startup-config'는 'show config'이다. 램에 저장된 구성 파일을 보는 명령은 'show running-config'또는 'write terminal'이다.[3]

램(RAM)

램에는 라우터를 운용하는 운용 시스템이 올라가게 되는데, 렘은 파워가 꺼지면 모두 지워지는 곳이기 때문에 이 운용체제도 파워가 켜진 다음에 램 위로 올라오게 된다. 모든 라우터들은 그들 고유의 운영체제를 가지고 있는데, 시스코 라우터의 경우 이 운영체제로 IOS를 사용한다. 시스코의 경우는 모든 시스코 제품에 동일하게 이 운영체제를 사용하기 때문에 한 제품에 대한 경험만 있으면 다른 제품을 쉽게 만질 수 있는 장점도 있다. 램에는 일단 운영체제가 올라가고 그다음은 라우팅 테이블이 들어간다. 라우팅 테이블이란, 전에 배운 대로 라우터가 목적지에 대한 정보를 저장해 놓은 테이블이라고 보면 되는데, 쉽게 말해서 목적지까지의 약도라고 보면 된다. 목적지가 많으면 약도도 많아질 거고, 가는 곳이 한두 군데밖에 안 된다면 약도도 적어지게 될 것이다. 따라서 라우터를 어떤 용도로 사용하는가에 따라, 그리고 어떤 라우팅 프로토콜을 사용하는가에 따라 라우팅 테이블의 크기는 큰 차이가 난다. 물론 라우팅 테이블이 크면 클수록 렘을 많이 차지한다. 운영체제도 마찬가지다. 즉 어떤 용도로 라우터를 쓰는가에 따라 여러 가지 운영체제 중 하나를 골라서 사용하게 되는데 이 운영체제 역시 우리가 돈을 주고 구입하는 것이다 보니 무조건 모든 기능이 많다고 좋은 것은 아니다. 기능이 많으면 많을수록 가격은 비싸지고 또 램을 만 많이 차지하게 된다. 따라서 자신이 하고자 하는 일에 가장 적당한 운영 체제를 골라야 한다는 것을 잊지 않아야 한다. 렘에 올라가는 것들 중에서 운영체제와 라우팅 테이블 이 이외에 또 중요한 것 한 가지는 바로 구성 파일이다. 즉, 라우터 주소는 어떻게 되고, 라우팅 프로토콜은 무엇을 사용하며, 보안은 어떻게 하고 등이 구성 모드에서 만들어 줬던 라우터의 구성 일이 램에 올라가서 실제 라우터를 움직이는 것이다. 램에 올라가는 것들 중 운영체제와 라우팅 테이블 이에 또 중요한 것 한 가지는 바로 구성 파일이다. 즉 라우터의 주소는 어떻게 되고, 라우팅 프로토콜은 무엇을 사용하며, 보안은 어떻게 하고 등등이 우리가 구성 모드에서 만들어 줬던 라우터의 구성 일이 램에 올라가서 실제 라우터를 움직이는 것이다. 램에는 이외에도 ART 캐시니, 패스트 칭에 한 캐시 등을 가지고 있다.[3]

롬(ROM)

롬에는 라우터의 가장 기본적인 내용, 이를테면 파워가 켜지면 어떤 순서로 라우터 스스로의 상태를 점검하고 또 어디서 운영체제(IOS)를 가져다가 메모리에 올릴 것인지 등을 적어 놓는다. PC를 처음 켜면 메모리가 얼마인지, 하드가 몇 메가인지를 보여주고 그다음에 윈도우 화면이 뜨는 느낌과도 비슷하다고 볼 수 있다. 라우터도 마찬가지다. 라우터가 켜지면 처음에는 포스트(POST, Power On Self Test)라고 불리는 자기 스스로를 점검하는 시간을 거친 후 저장되어 있던 IOS를 가져오고, 구성 파일을 가져오게 되는 것이다. 또 롬에는 기본적인 IOS가 들어있다. 이것이 들어 있는 이유는 라우터에 문제가 생길 경우 기본적인 IOS를 롬에서 가져오기 위함이다. 롬 모니터(ROM Monitor)모드에서 롬 부팅을 하는 경우는 바로 롬에 있는 IOS를 가지고 부팅하는 것이다.[3]

구조[편집]

라우터 모드

라우터가 가장 상위에 존재하는 이유는 네트워크 가장 상위 계층을 담당하기 때문이다. 물론 스위치도 가상랜에 IP를 줘서 3계층처럼 사용할 수 있지만 근본적으로는 라우터가 그 역할을 담당한다. 외부의 침입을 라우터가 방어하고 관리하고 있는다면 내부의 트래픽 제어는 스위치가 관리하고 있을 것이다. 이렇듯 라우터는 외부와 내부의 데이터 전송을 효율적으로 안전하게 해주는 역할을 하며, 한 네트워크를 대표하는 역할을 하기도 한다. 라우터에 있는 여러 가지 모드 중 대표적인 것은 사용자 모드, 권한 모드, 전역 구성 모드, 설정 모드, 이렇게 4가지이다.

  • 사용자 모드(User Mode) : 테스트를 목적(ping이나 trace)으로 사용되며, 현재 상태만 확인해 볼 수 있다.
  • 권한 모드(Priviledge mode) : 사용자 모드에서 enable 명령어를 통해 전환되는 모드이다. 운영자 모드로서 라우터의 모든 명령어가 가능하다.
  • 전역 구성 모드(Global Configure Mode) : 권한 모드에서 config terminal 명령어를 통해 전환되는 모드이다. 라우터의 구성 파일을 변경하는 경우에 사용하는 모드이다. 보통 config 모드라고 하며 권한 모드를 통해서만 들어갈 수 있다.
  • 설정 모드(Setup Mode) : 구성 파일이 없는 경우, 자동으로 나타나 상호적인 라우터 설정이 가능하다. 보통 라우터를 처음 동작시킬 때 라우터의 구성 파일이 없기 때문에 라우터가 부팅하면서 자동으로 들어가는 모드이다. 라우터가 구성에 관계된 질문을 하나씩 던지고 사용자는 이 질문에 대답하면서 구성 파일을 설정한다.

라우터는 이와 같은 4가지의 대표적인 모드를 가지고 있으며 시스코 사의 라우터가 가장 대표적이다. 또한 라우터나 스위치 등 네트워크 장비들에서는 명령어 줄임이 가능하다. 즉, 권한 모드에서 config terminal을 다 입력하지 않고 config ter만 입력해도 config로 시작하는 명령어가 한 개뿐이고 ter로 시작하는 명령어가 한 개뿐이라면 라우터가 이를 인식하고 명령어를 실행한다. 또한 실행할 수 있는 명령어가 한 개뿐일 때 탭 키를 이용하여 명령어 입력을 완성시킬 수 있다. config에서 탭 키를 누른다면 configure이 완성될 것이다. 명령어가 기억나지 않을 경우에는 ?를 통하여 관련 명령어, 입력 가능한 명령어를 볼 수 있다.[4][5]

문제점[편집]

초기 라우터는 라우팅 기능을 처리하는 프로세서의 성능에 비하여 링크를 통한 데이터의 전달 속도가 빠르지 않았고, 라우터를 통하는 트래픽 비율이 높지 않았기 때문에 프로세싱 환경과 여기서 실행되는 소프트웨어로 구현되었다. 이러한 방식에서는 성능 향상을 위한 기술로 프로세서의 고성능화와 시스템 버스의 고속화 등이 시도되었다.[6] 그러나, 광통신 등 전송 기술의 발달로 데이터 전송속도가 프로세서의 처리 속도보다 빨라지고, 네트워크를 통한 트래픽이 증가하여 프로세서에 의한 라우팅 처리 과정이 병목현상의 주된 원인이 되었다. 이러한 문제를 해결하기 위하여 여러 가지 기술들이 연구되고 개발되었는데, 컴퓨터의 병렬처리 기술을 도입하여, 태스크와 데이터 전달을 병렬로 처리하는 한편 라우팅 과정에서 패킷 포워딩 부분을 분리하여 프로세서의 부담을 줄이는 방향으로 진행되었다. 이와 동시에 고속 스위치 등의 고속 데이터 교환 방식을 도입하고, 아울러 시스템 구조적 측면에서도 하나의 라우팅 유닛를 공유하는 서버 구조에서 각 라인 접속 유닛마다 포워딩 유닛를 포함하게 하는 분산 구조로 발전하게 되었다.[7]

라우팅[편집]

라우팅(Routing)

라우팅(routing)은 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정이다. 최적의 경로는 주어진 데이터를 가장 짧은 거리로 또는 가장 적은 시간 안에 전송할 수 있는 경로다. 라우팅은 전화 통신망, 전자 정보 통신망, 그리고 교통망 등 여러 종류의 네트워크에서 사용된다. 패킷 스위칭 네트워크에서 라우팅은 인터넷상의 트래픽의 단위 전달 의미하는 패킷의 전달이 효율적이며 효과적으로 최단거리 또는 최단 시간에 전달될 수 있도록 하는 것이다. 이때 이용되는 것은, 일반적으로 라우터, 브릿지, 게이트웨이, 방화벽 또는 스위치로 불리는 중간 노드를 거쳐 출발지부터 최종 목적지까지 논리적으로 주소가 부여된 패킷의 전달 과정을 총괄하는 것이 라우팅이다. 비록 특화된 하드웨어가 아니기 때문에 성능에 제약을 받을 수는 있지만, 다수의 네트워크 카드를 가진 범용 컴퓨터 또한 패킷 전달과 라우팅을 수행할 수 있다. 라우팅 과정은 보통 다양한 네트워크 목적지에 대한 기록을 관리하는 라우팅 테이블을 기초로 하여 수행된다. 그러므로, 라우터의 메모리에 기록된 라우팅 테이블의 구성은 효과적인 라우팅에 매우 중요하다. 대부분의 라우팅 알고리즘은 한 번에 한 가지 네트워크 경로를 사용하지만, 다중 경로 라우팅 기술은 다양한 대체 경로의 사용을 가능하게 하였다.

좀 더 좁은 의미로 라우팅은 네트워크 주소가 그 구성이 비슷하다면 네트워크 안에서 인접성을 가진 구조라는 가정하에 브릿징과 뚜렷한 차이를 보인다. 구조화된 주소는 하나의 라우팅 테이블 항목이 여러 대의 장비에 대한 경로를 표시하는 것을 가능하게 하기 때문에 구조화된 주소 지정(좁은 의미에서의 라우팅)은 대규모 네트워크에서 비구조화된 주소 지정(브릿징)보다 성능이 뛰어나고, 비록 브릿징이 여전히 지역적인 환경 내에서 넓게 쓰이지만, 인터넷상에서 지배적인 주소 지정 형식이 되었다.[8]

라우티드 프로토콜

IP, IPX, 애플토크, DEC 넷 등의 모든 프로토콜은 라우티드 프로토콜에 속하며, 라우티드 프로토콜은 라우터가 라우팅을 해주는 모든 대상을 뜻한다. 주소 체계에 근거해서 하나의 호스트로부터 다른 호스트로 패킷을 포워딩하기 위하여 네트워크 계층 주소에서 충분한 정보를 제공하는 네트워크 프로토콜을 말한다. 하나의 패킷 안에서 필드 형태로 나타난다. 라우터는 이들 라우티드 프로토콜이 지정하는 논리적 네트워크(주술 체계) 및 패킷 구성 형식을 이해할 수 있어야 한다. 패킷들은 일반적으로 종단 시스템 간에 전송된다. 라우티드 프로토콜은 패킷을 포워딩하기 위하여 라우팅 테이블을 사용한다.[9]

라우팅 프로토콜

'라우터 간에 라우팅 정보의 교환' 및 '라우팅 테이블의 유지관리'를 동적으로 수행하는 프로토콜이다. 라우터 프로토콜들에게 최적화된 경로를 제공해 주는 역할을 한다. 라우팅 프로토콜을 다른 말로 라우팅 알고리즘이라고도 하는데, 라우팅 테이블을 이용해 경로에 대한 정보를 저장한다. 이 테이블에는 주로 경로와 경로까지의 거리, 경로까지의 방법 등의 내용이 저장되는데, 일정 시간 단위로 업데이트된다. 조금 더 자세히 설명하자면 라우팅 프로토콜은 라우팅 정보를 공유하기 위한 체계를 제공함으로써 라우티드 프로토콜을 지원한다. 라우팅 프로토콜 메시지는 라우터들 사이에 교환된다. 라우팅 프로토콜을 사용하여 라우터들이 테이블을 유지하고, 업데이트하기 위해서 서로 통신할 수 있다. TCP/IP에서 사용하는 라우팅 프로토콜의 예는 RIP, IGRP, EIGRP, OSPF와 같은 것들이 있다. 라우팅 프로토콜의 필요 기능 및 요소에는 라우팅 수행 프로세스(라우팅 정보를 주고받기 위한 프로세스), 라우팅 테이블 갱신 관리(최적 경로를 결정하기 위한 알고리즘 및 프로세스들을 적용), 라우팅 알고리즘(최적 경로 산출을 하여가며 라우팅 테이블의 갱신, 유지관리), 라우팅 프로토콜 메시지(라우터 정보를 라우터들 간에 운반, 전달, 교환 등)이 있다. 라우팅 프로토콜은 정적 라우팅과 동적 라우팅으로 구분된다.[9]

라우팅 프로토콜과 라우티드 프로토콜의 종류
라우팅 프로토콜 RIP(Version1, Version2), IGRP, OSPF, RIGRP
라우티드 프로토콜 TCP/IP, IPX, Apple Talk
라우팅 테이블(routing table)
라우팅 테이블

라우팅 테이블은 컴퓨터 네트워크에서 목적지 주소를 목적지에 도달하기 위한 네트워크 노선으로 변환시키는 목적으로 사용된다. 라우팅 프로토콜의 가장 중요한 목적이 바로 이러한 라우팅 테이블의 구성이다. 가장 단순한 모델인 합-바이-합(hop-by-hop) 라우팅 방식에서, 각 라우터의 라우팅 테이블은 모든 목적지 정보에 대해 해당 목적지에 도달하기 위해서 거쳐야 할 다음 라우터의 정보를 가지고 있다. 라우팅 테이블이 일관적이라고 가정하면, 패킷을 받은 다음, 라우팅 테이블을 검사해서 다음 라우터를 찾은 뒤, 해당 라우터로 패킷을 넘겨주는 이러한 단순한 알고리즘만으로 네트워크 상의 어느 곳으로라도 데이터를 전송할 수 있다. 하지만 실제로는, 합-바이-합 라우팅 방식은 MPLS와 같은 계층적 아키텍처에 밀려나서 급격히 사라지는 추세이다. 계층적 아키텍처에서는 한 번의 테이블 검사로 몇 번의 전달 과정을 대체할 수 있으며, 이는 테이블 검사시간을 감소시키며 따라서 네트워크의 성능을 증가시킨다. 제한된 저장 공간에 수많은 목적지로의 노선을 저장해야 하는 요구 사항은 라우팅 테이블 구성에서 큰 어려움으로 다가온다.

라우팅에서 하나의 중요한 기본 가정은 유사한 주소는 비슷한 주소의 목적지는 인접해있으리라는 것이며, 이는 다수의 목적지 주소를 하나의 라우팅 테이블 항목에 관리할 수 있게 해준다. 다수의 목적지를 하나의 항목에 넣는 이러한 그룹 방법은 이제까지 많이 바뀌어 왔으며, 아직도 활발한 연구 과제로 남아 있다. 인터넷에서 현재 가장 널리 사용되는 그룹 기법은 사이더(Classless Inter-Domain Routing, CIDR)라고 불리는 비트 단위 접두어 비교방식이다. 네트워크 상의 각 라우터에서는 일관된 라우팅 테이블 정보를 가지고 있어야 하며, 그렇지 않을 경우 루프가 발생할 수 있다. 이는 특히 hop-by-hop 라우팅 방식에서 크게 문제가 되는데, 이는 각 라우터가 올바른 라우팅 테이블을 가지고 있는 것처럼 보여도 서로 패킷을 무한히 주고받게 되기 때문이다. 라우팅 루프를 피하는 것은 라우팅 프로토콜을 설계할 때 중요한 문제의 하나이다.[10]

  • 정적 라우팅 프로토콜(Static routing protocol)
관리자의 권한으로 특정 경로를 통해서만 패킷이 지날 수 있도록 설정한 것이다. 이러한 정적 라우팅은 네트워크 변경사항이 발생할 때 라우팅 테이블을 수동으로 직접 고쳐줘야 하는 큰 단점이 존재한다. 동적 라우팅을 사용하면 전체 네트워크에 대한 정보가 유출될 수 있기 때문에 보안이 중요한 네트워크인 경우 정적 라우팅을 많이 선호한다. 특징으로서는 경로 설정이 실시간으로 이루어지지 않기 때문에 초기에 관리자가 다양한 라우팅 정보를 분석하여 최적의 경로 설정이 가능하다. 라우팅 알고리즘을 통한 경로설정이 이루어지지 않기 때문에 라우터의 직접적인 처리 부하가 감소한다. 네트워크 환경 변화에 능동적인 대처가 어렵다. 네트워크 환경 변화 시 관리자가 새로운 라우팅 정보를 통해 경로를 재산출하여 각 라우터에 제공해야 한다. 비교적 환경 변화가 적은 형태의 네트워크에 적합하다.
  • 동적 라우팅 프로토콜(Dynamic routing protocol)
라우터가 네트워크 연결 상태를 스스로 파악하여 최적의 경로를 선택해 전송하는 방식이다. 동적 라우팅은 네트워크 연결 형태가 변경되어도 자동으로 문제가 해결될 수 있다는 큰 장점이 있다. 라우팅 알고리즘을 통하여 결로를 자동 변경이 가능하다. 특징으로서는 경로 설정이 실시간으로 이루어지기 때문에 네트워크 환경 변화에 능동적인 대처가 가능하다. 라우팅 알고리즘을 통해 자동으로 경로 설정이 이루어지기 때문에 관리하기 쉽다. 주기적인 라우팅 정보 송수신으로 인한 대역폭 낭비를 초래한다. 네트워크 환경 변화 시 라우터에 의한 경로 재설정으로 라우터의 처리 부하가 증가하고 지연이 발생한다. 수시로 환경이 변하는 형태의 네트워크에 적합하다.
구분 정적 라우팅 동적 라우팅
라우팅 테이블 관리 수동
네트워크의 변화(라우터 추가/변경/회선 장애 등)에 대한 인식 불가
자동
네트워크의 변화를 자동으로 인지하여 전보의 전송 경로를 재구성
처리 부하 라우팅 테이블의 갱신을 위한 별도의 부하 없음
CPU와 메모리에 부하 적음
네트워크 장애의 실시간 관리를 위한 NMS와 각 라우터 간의 정보 전송 많음
라우팅 테이블의 갱신을 위해 라우터 간 정보교환
CPU와 메모리에 부하 많음
네트워크의 장애를 실시간으로 관리할 필요 없음
백업 구성 백업 구성이 곤란함
별도의 네트워크 장비를 이용하여 회선 백업 가능
백업 구성이 쉬움(회선, 장비)
복구 기능 백업 회선이 있는 경우 회선 장애 시 수 초 내로 복구 가능
기타 장애 시 최소 10분 이상의 복구 시간 필요
(백본 라우터의 장애 시 30분 이상 소요)
백업 회선이 있는 경우 수 초 내로 복구 가능
인터페이스 변경이 적을 때 유리 변경이 많을 때 유리
노드 추가/
변경/확대
운영 요원이 라우팅 작업 대처 용이
중간 경로 단일 경로에 적합 다중 경로에 적합
[11]
VLSM(Variable Length Subnet Mask)

VLSM이란 하나의 네트워크 번호에 대해 더 잘게 쪼개어 쓰는 것을 말한다. VLSM을 사용하는 이유는 IP 주소의 절약을 위해 클래스로 나누었으나, 그것만으로는 IP 주소 절약의 한계가 있기 때문에 사용하는 것이다. 예를 들어, 10.10.0.0/8의 네트워크를 10.10.0.0/16, 10.10.0.0/24 등으로 나누어 사용하는 것을 말한다. 이렇게 서브넷을 나누어 사용해야 하는 것은 IP 주소의 절약을 위해 필수적이지만, 문제는 라우팅 프로토콜이 VLSM을 인식하는가의 문제이다. VLSM을 지원하는 라우팅 프로토콜을 Classless 프로토콜, 지원하지 않는 프로토콜을 Classful 프로토콜이라 한다. Classful은 말 그대로 클래스 단위만 ful로 준다고 이해하면 쉰다. 그렇기 때문에 Class만 인식하기에 VLSM은 하지 못한다. 이렇게 Classless 라우팅 프로토콜로는 OSPF, RIPv2, EIFRP가 있으며, Classful 라우팅 프로토콜로는 IGRP, RIPV1이 있다.[9]

AS(Autonomous System)

AS는 네트워크 관리자에 의해 관리되는 라우터들의 집단을 하나로 생각하는 것이다. 예를 들어 K사라는 ISP 업체의 라우터들을 관리자에 의해 설정되었다면 그 K사의 라우터들은 하나의 AS가 된다. AS는 ASBR(Autonomous System Boundary Router)이라는 문지기 라우터를 통해 인터넷으로 나가게 된다. ASBR은 자신의 AS와 인접해 있는 다른 AS에 대한 정보를 가지며 밖으로 나가는 AS나 자신의 AS 쪽으로 들어오는 ASBR 라우터에게 정보를 제공한다. 따라서 AS 내의 라우터들은 인터넷에 접속하기 위해 이 세상의 모든 네트워크 정보를 가지고 있을 필요가 없고 단지 자신의 AS 정보만 가지면 된다.[9]

디스턴스 벡터(Distance Vector)

디스턴스 벡터는 라우팅 프로토콜에서 사용하는 알고리즘으로서 이름대로 단순히 거리(Distance)와 방향(Vector) 만으로 목적지까지 찾아가는 알고리즘이다. RIP, IGRP, EIGRP 프로토콜에서 사용된다. 자신이 가야 할 목적지까지의 라우팅 테이블을 전부 가지고 있는 것이 아니라 자신이 가야 할 목적지까지의 거리인 홉 카운트와 어떤 인접 라우터를 거쳐서 가야 하는 방향만을 저장한다. 때문에 인접 라우터들과 주기적으로 라우팅 테이블을 교환해서 자신의 정보에 변화가 생기지 않았는지를 확인하고 관리한다. 디스턴스 벡터 알고리즘은 한 라우터가 모든 라우팅 테이블 정보를 가지고 있지 않아도 되기에 메모리를 절약할 수 있고, 그 구성이 간단하여 여러 곳에서 표준으로 사용하고 있다는 장점이 있다. 하지만 정해진 시간마다 라우팅 테이블 정보를 교환하기 때문에 쓸데없는 트래픽 낭비를 초래하고, 라우팅 테이블에 변화가 있을 시 순차적으로 변화한 라우팅 테이블을 전달하는 방식이기 때문에 네트워크 내에 모든 라우터들이 바뀐 라우팅 테이블 정보를 알아낼 때까지의 시간이 오래 걸린다는 단점이 있다. 그렇기 때문에 디스턴스 벡터 알고리즘은 대규모의 네트워크보다는 소규모의 네트워크에 적합하다. 그리고 정기적으로 라우팅 테이블 정보를 교환하고 전달하는 특성 탓에 하나의 라우터에 문제가 생기게 되면 루핑(Looping) 현상을 초래할 수 있다. 루핑 현상을 방지하기 위한 해결책으로는 아래와 같은 5가지가 존재한다.[12]

  • 최대 홉 카운트(Maximum Hop Count) : RIP 라우팅 프로토콜의 경우는 최대 홉 카운트를 15로 규정하고 15를 넘어가는 라우팅 경로에 대해서는 도달할 수 없는 것(unreachable)으로 간주, 즉 네트워크로 인식을 못 한다. 그리고 플러시 타임(flush time)이 지난 후 라우팅 테이블에서 아예 제거한다. 이렇게 최대 홉 카운트를 정해놓으면 라우팅의 루핑이 발생하더라도 16까지 이르게 되면 멈춰줄 수가 있다. 그러나 RIP의 이러한 최대 홉 카운트 제한은 15홉을 넘어서는 경로에 대해서는 아예 도달할 수 없기 때문에 요즘처럼 네트워크 규모가 커질 경우 좋지 않다.
  • 홀드 다운 타이머(Hold down Timer) : 홀드 다운(Hold down)은 메트릭 값 보다 크다면 무조건 무시하고 홀드 다운 카운터가 종료되거나 목적지에 대한 새로운 경로가 지금 가지고 있던 메트릭과 같거나 좋은 경로가 들어올 때만 이웃 라우터로부터의 업데이트를 받아들인다. 즉 Hold down 타이머는 어떤 경로가 죽었다고 판단하면 이 경로에 대한 상태를 바로 바꾸지 않고 일정 시간이 지난 다음에 바꾸겠다는 것을 의미한다. 이 일정 시간은 바로 모든 라우터들이 그 경로가 죽었다는 것을 인식하는 정보로 생각하면 된다.
  • 스플릿 호라이즌(Split Horizon) : 라우터 A는 네트워크 A에 대한 정보를 이미 라우터 E에서 받았기 때문에 네트워크 A에 대한 정보를 다시 라우터 E 쪽으로 내보낼 수 없다. 하나의 라우터가 어느 네트워크 정보를 인접한 라우터에게서 받았다면 그 인접한 라우터가 그 네트워크에 더 가까이 있을 것이 분명하며 이러한 정보를 다른 라우터들로부터 더 이상 받을 필요가 없다.
  • 라우트 포이즈닝(Route Poisoning) : 네트워크 A가 다운되면 라우터가 네트워크 A에 대한 메트릭 값을 16으로 변경한다. 그 후 사용할 수 없는 값으로 만들어 버린다. 그 대신 라우팅 테이블에서 지워 버리지는 않는다. 이때 라우터 A에서 네트워크 A에 대한 업데이트 정보가 들어와도 라우터 B는 그것을 무시한다. 그러고 나서 라우터 B는 네트워크 A에 대한 메트릭 값을 16으로 해서 내보낸다. 따라서 라우터 A는 이제부터는 네트워크 A에 대한 메트릭을 16으로 갖게 된다.
  • 포이즌 리버스(Poison Reverse) : 스플릿 호라이즌과 라우트 포이즈닝을 합친 기능이다. 스플링 호라이즌과 비슷하나 라우팅 정보를 돌려주고, 돌려줄 때 라우팅 테이블에 있는 A 네트워크의 홉 카운트를 16으로 변경한다. 홉 카운트 최댓값을 15로 맞추고 A 네트워크의 홉 카운트를 16으로 사용하면 다른 라우트의 라우팅 테이블에서 A 네트워크에 대한 정보를 삭제하지 않고 단지 무시하는 결과가 나타난다.[13]
링크 스테이트(Link State)

링크 스테이트 알고리즘은 한 라우터에서 목적지까지의 모든 경로를 알고 있기 때문에 중간에 변화가 생겨도 알아차리는데 걸리는 시간이 짧다. 또한 디스턴스 벡터처럼 주기적으로 모든 라우터들이 라우팅 테이블 정보를 교환하는 것이 아니고, 변화가 일어난 라우터의 라우팅 테이블 정보만 교환하는 것이기 때문에 트래픽 발생을 줄일 수 있다. 하지만 한 라우터가 모든 라우팅 정보를 관리해야 하기 때문에 메모리를 많이 소모하고, 또한 SPF 계산 등을 하기 때문에 CPU에 과부하를 초래할 수 있다. 따라서 대규모 네트워크의 고용량 라우터에 적용하는 것이 적합하다. 대표적인 링크 스테이트 알고리즘은 OSPF 라우팅 프로토콜이 있다.[12]

관리 거리 라우팅 프로토콜에는 정적 라우팅 프로토콜, RIP, IGRP, OSPF, EIGRP 등이 있다. 한 라우터를 구성할 때 두 가지 다른 프로토콜을 사용하는 경우가 있다. 이럴 경우 라우터에 있어 어느 프로토콜을 이용해서 경로를 찾을지 모르므로 관리 거리(Administrative Distance) 값을 이용한다. 낮은 값을 가진 디스턴스 값을 우선으로 하며, 라우팅 프로토콜을 구성할 때 디스턴스 값을 명시한다.[9]

전망[편집]

세계적으로 백본 네트워크를 구성하는 주요 기술인 고속 라우터에 대한 핵심 기술을 확보하고 시장을 선점하기 위한 기술 개발 경쟁이 치열하다. 이에 따라 국내에서도 고속 라우터 기술의 중요성을 깊이 인식하고 이에 대한 투자 및 연구가 시작되어, 백본 네트워크의 에지 라우터로 사용될 수 있는 80 Gbps 급 라우터의 조기 개발을 목표로 IP 패킷 포워딩 용량을 증대시키고, 라우터의 접속 링크 속도를 높이며, 또한 서비스 품질을 향상시키는 기술 등을 확보하기 위한 연구개발이 활발히 진행되고 있다. 본 연구 개발을 통하여 선진국과의 기술 격차를 해소할 수 있으며, 소수의 국외 업체가 독점하고 있는 고속 라우터 시장의 타파가 가능하며, 차세대 인터넷의 기술 표준을 주도할 수 있는 기반을 확보하게 될 것으로 기대된다. 그리고 향후 트래픽의 대규모 증가에 따른 망관리의 복잡성이나 멀티캐스트의 그룹관리 등을 효과적으로 다룰 수 있는 액티브 네트워크 기술이 고속 라우터에 적용될 수 있도록 이에 대한 연구가 병행되어야 할 것이다.[7] 라우터는 없어져도 라우팅 기술은 죽지 않는다’는 말처럼 라우터 시장의 굴곡이 상대적으로 심했던 것이 사실이다. 경기 침체 여파로 인한 서비스 사업자나 기업들의 네트워크 투자가 축소되거나 지연되면서 그간 라우터 시장이 위축됐던 것이다.

그뿐만 아니라 외부망과의 연동을 위해 라우터 등의 추가 장비가 필요 없다는 장점을 앞세운 메트로 이더넷의 확산은 전체적인 라우터 시장의 규모 축소로 이어졌다. 하지만 네트워크 장비에서 차지하는 라우터의 비중이나 중요성은 예나 지금이나 여전히 중요한 위치를 점하고 있다. L3 스위치가 라우팅 기능을 통해 라우터 시장을 일부 대체하고는 있지만 라우터 고유의 역할을 비롯 통신서비스 사업자는 여전히 강력한 라우팅 기능을 필요로 하기 때문. 특히 IPTV, 인터넷전화(VoIP) 등 대용량 트래픽의 처리를 요구하는 차세대 서비스의 확산은 코어 라우터는 물론 멀티서비스 에지 라우터 시장 활성화에 힘을 보태며 새로운 시장을 개척하려는 벤더들의 경쟁도 본격화되고 있다. 국내 코어 라우터 시장은 시스코와 주니퍼가 여전히 양분하고 있는 상황이다. 파운드리 등 몇몇 벤더들이 라우터 시장을 노크하고는 있지만 시스코와 주니퍼의 벽을 넘기에는 아직 시간이 필요할 전망이다. 그러나 멀티서비스 에지 라우터 시장의 변화는 어느 정도 감지되고 있다. 알카텔-루슨트, 레드 백, 쓰리콤, 텔랩스, ECI 텔레콤 등 다수의 벤더들이 시장 다변화와 솔루션 차별화 등을 내세워 시장 개척에 나서고 있는 상황으로 다자간 경쟁구도가 정착할 수 있을지 주목되고 있다.[14]

각주[편집]

  1. 1.0 1.1 1.2 라우터 위키백과 - https://ko.wikipedia.org/wiki/%EB%9D%BC%EC%9A%B0%ED%84%B0
  2. 2.0 2.1 2.2 2.3 All about Info, 〈라우터 개요 역사〉, 《티스토리》, 2016-12-06
  3. 3.0 3.1 3.2 3.3 3.4 이삭이의 토스트 공장, 〈라우터 내부(RAM)(NVRAM)(Flash Memory)〉, 《티스토리》, 2020-08-04
  4. 사고뭉치 개발자, 〈라우터의 모드 및 기본 명령어〉, 《티스토리》, 2019-02-24
  5. TIM, 〈라우터 모드, 설정, 패스워드〉, 《네이버 블로그》, 2010-06-07
  6. 이철호 기자, 〈고서능과 보안성을 모두 갖춘 기업용 VPN 라우터, 디링크 DSR-500〉, 《스마트PC사랑》, 2019-09-03
  7. 7.0 7.1 이형호, 〈고속 라우터 기술〉, 《IT파인드》
  8. 라우팅 위키백과 - https://ko.wikipedia.org/wiki/%EB%9D%BC%EC%9A%B0%ED%8C%85
  9. 9.0 9.1 9.2 9.3 9.4 TIM, 〈라우터(Router)개념 총 정리〉, 《네이버 블로그》, 2010-06-13
  10. 라우팅 테이블 위키백과 - https://ko.wikipedia.org/wiki/%EB%9D%BC%EC%9A%B0%ED%8C%85_%ED%85%8C%EC%9D%B4%EB%B8%94
  11. 주호, 〈네트워크 보안 - 정적 라우팅과 동적 라우팅〉, 《네이버 블로그》, 2015-05-19
  12. 12.0 12.1 밤, 〈디스턴스 벡터(Distance Vector) & 링크스테이트(Link State)네트워크 기초〉, 《네이버 블로그》, 2012-12-21
  13. KHG, 〈디스턴스 벡터의 해결방법〉, 《티스토리》, 2013-07-12
  14. 10.라우터〉, 《데이터넷》, 2008-01-25

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 라우터 문서는 하드웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.