라우터

Router

파일:Attachment/라우터/Router.jpg
ERS-8600.JPG
크고 아름다운 코어 라우터.

1 개요

OSI 7계층에서 네트워크 계층에 포함되는 기기.
논리적으로 분리된 망, 혹은 물리적으로 분리된 망 사이를 지나가야 하는 패킷들에게 경로를 뽑아 자기가 아는 최상의 경로를 찾아낸 뒤(물론 안 되는 라우터가 더 많다.) 다른 망으로 패킷을 보내주는 역할을 하는 기계이다. 게이트웨이와는 다르게 동일 프로토콜끼리만 통신을 가능하게 해준다.

좀 쉽게 풀이한다면, 상위 통신망과 하위 통신망 사이를 중계해주는 기계라고 보면 된다.

게이트웨이[1]역할도 하지만, 좀 더 많이 똑똑해서 여러가지 프로토콜을 통해 다른 라우터나 네임서버들과 통신하여 동적 라우팅[2]을 지원한다던지, 라우터도 엄청난 인터페이스 카드[3]을 제외하면 하드디스크부터 메모리에 X86 CPU 나 DSP 및 파워PC CPU 까지 잡다하게 들어간 컴퓨터라서 쉘 환경에 익숙하다면 그냥 컴퓨터 쓰듯이 프로그램을 올릴수도 있다.

라우터는 사실 반드시 전용 머신이 필요한 것이 아니다. 일반적인 데스크탑으로도 얼마든지 라우터를 구축할 수 있다. 단지 라우터는 처음부터 네트워크 통신망 중계에 필요한 부품을 위주로 특별 제작되었기 때문에 일반 데스크탑으로 구축된 라우터에 비해 전기를 적게 먹고, 좀 더 안정적인 서비스가 가능하다.

일반적으로는 서버용OS에 관련 서비스를 추가하면 가능한데 이쪽 방면에서는 리눅스가 유명하며 리눅스에는 라우팅, 방화벽만을 위한 배포판도 있다.

2 동작

라우터에는 대개 제어면(Router Control Plane)과 전달면(Forwarding Plane)이 있는데

processes3.png
제어 평면은 라우터 소프트웨어 상에 존재하는 것으로, 들어온 패킷을 어디로 보내야할지에 대한 처리과정 및 거기에 필요한 테이블들이 있어서 이 녀석을 어떻게 처리할지에 대한 작업순서를 찾아볼 수 있다.


그리고 전달면에선 실제로 보내야 될 패킷과 제어면에서 만들어준 요구사항에 따라 패킷을 전송하게 된다. 소프트웨어가 없는 것은 아니며, 좀 더 하드웨어에 가깝다.

3 대상

Cisco-rs1.jpg
Internet Service Provider(사진은 Cisco Carrier Routing System-1)

1447712445409.jpg
Middle Company(사진은 Cisco NCS 5000 라우터)

파일:Attachment/9-router full.jpg
개인 용도 - 인터넷 공유기 [4]

4 특별히 라우터에서 취급하는 동작들

4.1 NAT

Network Address Translation.
라우터가 WAN과 LAN의 경계에 위치하고 하위 서브넷의 게이트웨이 역할을 할 때, NAT를 사용할 수 있다. 이것은 내부에서 특정 컴퓨터가 요청하는 패킷을 전달한 이후, 외부 서버는 하위망을 볼때 라우터 하나밖에 안보이는데다가 라우터는 컴퓨터 같아보이기 때문에 컴퓨터에게 답신 패킷을 전달하게 된다. 그러나 실제로 요청을 한 컴퓨터는 라우터 아래에 있는 어떤 컴퓨터이기에 그 컴퓨터로 이 패킷을 전달하게 되는데, 이때 안에서 밖으로 나가는 패킷은 내부망 주소에서 외부 망 주소로 바뀌며, 밖에서 안으로 들어오는 것은 외부망 주소에서 내부망 주소로 바뀐다. 당연히 멋대로 바꾸는 것이 아니라, 라우팅 테이블을 형성할때 내부에서 외부로의 요청을 기억하여 어느 컴퓨터가 어느 외부망의 것에게 패킷을 보내었는지 기억한다. 흔히 말하는 공유기는 스위칭허브에 NAT기능이 추가된 것이다.

이 동작을 통해 보통 게이트웨이가 아닌 라우터가 게이트웨이 역할을 하는 하부망은 외부에서 접근하였을때 내부를 볼 수 없어 보안이 크게 향상되는 효과가 있다.[5] 특히, 라우터에는 DHCP 서버나 네임서버들도 심어서 작동할 수 있다.

4.2 DHCP

항목 참조

4.3 FireWall

라우터는 일단 왔다갔다하는 패킷 모두를 전부 처리하는 형식으로 작동하기에 악의적인 공격의도가 있는 패킷들을 검사해 걸러낼 수도 있으며, 패킷의 헤더를 보고 어디에서 전송된 패킷인지도 알 수 있다. 만약 사용자가 특정 IP 에서 오는 패킷들을 막아내고 싶으면 ACL 기능을 이용하여 차단할 수 있다. 또한, 외부의 네임서버에 DNS 조회를 할 때에도 마찬가지로 나가는 패킷을 뜯어보아 내부망에서 naver.com 에 접속하려고 한다면 그 연결을 끊어버리는 식으로 자원제한을 걸 수 있다.

포트포워드나 포트차단은 NAT 의 동작이지만, 차단이나 포워딩 테이블은 방화벽 프로그램이 관리하여 수정할 수도 있다.

라우터는 가능성이 무궁무진한컴퓨터기계이니 여러가지 삽질을 하는것도 나쁘지 않다.

4.4 VPN

해당 항목 참조.

5 소프트웨어 방화벽, 라우터

소프트웨어 라우터는 예전부터 있어왔지만 현재 Mini-ITX베어본이나 아톰보드 등이 싸지면서 방화벽이나 라우터를 소프트웨어적으로 구축해보려는 시도가 늘고 있다.
아톰, 펜티엄4정도면 충분히 좋은 라우터가 탄생하고 10만원 내외로 중고 구형 제온/옵테론 서버를 구해서 쓰면 ECC효과 까지 누릴 수 있다.[6]

Mikrotik : 방화벽성능을 제외하고 소프트웨어 라우터에서는 이쪽이 본좌. 설치와 설정이 까다로운 대신 세세한 부분까지 설정할 수 있고 그래픽 사용자 환경도 지원한다(물론 터미널이 더 자세한 설정을 할 수 있다.) 무심한듯 시크하게 라우터OS안의 메타라우터에다가 OpenWRT같은걸 올려버릴 수 있다. 시스코처럼 자격증 시험도 있다. 무조건 유료.(3가지 패키지가 있는데 가장 싼 것이 4만원대)

Vyatta : 현재 Brocade 에 팔려서 오픈소스 버전은 VyOS로 바뀌었다. 데비안 기반의 라우터인데, GUI같은건 -엿바꿔먹은 탓인지- 없다. 하지만 성능이 상당히 좋은 편이라 상당히 쓸만하다.
OpenWRT : 공유기와 같은 UI를 자랑한다. 애초에 임베디드 기기용으로 나와서 CPU지원이 다양해서 여러 임베디드 기기들에 설치된다. 터미널을 열 수도 있지만 태생이 CPE router용으로 나온지라 만질 수 있는 설정이 다양한 편은 아니다. 완벽히 무료.

pfSense : freeBSD기반, 원래는 방화벽인데 방화벽기능은 약하지만 가벼워서 사양이 낮은 하드웨어에서도 비교적 throughput이 잘나온다. 완벽히 공짜다.

Sophos : 리눅스 커널 사용, 원래는 Astro방화벽이었는데 소포스로 이름을 바꾸었다. 가장 방화벽 성능이 좋다. 50클라이언트는 무료로 가정집정도의 환경에는 충분히 무료로 쓸 수 있다.

Untangle : 데비안 기반, 설치와 설정이 간편하고 UI가 사용자친화적이다. 기본적으로는 무료지만 방화벽기능을 하는 애플리케이션이 유료다. 가장 무난하다. 방화벽 성능도, 라우팅성능도. 마치 우분투처럼, 그리고 역시 우분투처럼 소수에게는 뭔가 모자라다.

6 기타

한국에서는 미국의 영향으로 라우터라고 발음하지 않으면 컴퓨터와 네트워크의 기초도 모르는 것으로 취급받기 쉽지만 영미권에서도 지역에 따라 루터라고 발음하는 곳도 있다. 라우터의 원래 기능이 네트워크 상에서 최적의 경로(루트 - route)를 찾아 주는 것이다. 어원을 따진다면 오히려 루터가 더 올바른 발음이라고 할 수 있다. 결론은 루터라고 해도 틀린 발음은 아니다. 단지 영국식 영어의 발음일 뿐.

7 관련 항목

  1. 관문. 흔히 톨-게이트 라고 불리는것도 게이트웨이로, 이 지점을 기준으로 다른 두개의 장소로 나뉘며, 이 지점에서 출입통제가 가능하면 그게 게이트웨이. 네트워크의 게이트웨이도 똑같다.
  2. 처음 컴퓨터가 원한 경로를 갈아버리고 자기가 판단한 최적 경로를 집어넣어 보내는 것.
  3. Fowarding plane
  4. 인터넷 공유기 역시 그 동작상 라우터와 유사하다. 단지 처리 용량이 정말 소규모일뿐.
  5. 주. 게이트웨이의 경우 이 동작이 제대로 안되는데, 그 이유는 게이트웨이 자체가 L3 라우팅을 한다고해도 게이트웨이는 내부망에 대한 자원관리능력이 없기 때문이다.
  6. 물론 여기까지 가게되면 상업용 라우터 뺨을 후려갈길 정도의 성능이 나오지만 라우터용 CPU는 전체적인 성능은 낮은 대신 라우팅에 관계된 작업에 특화되어 하드웨어 가속을 사용하기 때문에 성능차이가 나긴 한다.