1. 라우터를 한 마디로 말하자면

이제부터는 라우터에 대해서 본격적으로 알아보도록 하자.

네트워크를 하는 사람이 가장 자주 만나는 장비가 뭐냐면 바로 이 라우터라는 장비이다. 인터넷을 사용하기 위해서, 서로 다른 네트워크간 통신하기 위해서 그리고 브로드캐스트 영역을 나눠주기 위해서 꼭 필요한 이 라우터는 네트워크에 입문하게 된다면 가장 자주 만나는 장비 중 하나가 될 것이다.

라우터란 한 마디로 ‘지능을 가진 경로 배정기’라고 말할 수 있다.

지능을 가진 경로 배정기란 말은 라우터는 자신이 가야 할 길을 자동으로 찾아서 갈 수 있는 능력을 가진 것을 말한다. 즉 외부의 어떤 인터넷 사잍를 찾아가는 데이터가 있다면 라우터는 이 데이터를 목적지까지 가장 빠르고 효율적인 길을 스스로 찾아 안내해 주는 능력을 가지고 있다. 물론 라우터에 아무것도 해주지 않았는데도 이러한 기능들이 수행되는 것은 아니고 세팅을 해야만 가능하다.

이런 라우터의 세팅을 제대로 알기 위해서는 라우터에서 쓰이는 명령어 몇 줄을 아는 게 중요하지 않다. 계속하면서 배우겠지만 라우터에서 사용하는 명령어는 라우터의 제조회사에 따라 모두 다르기 때문에 모든 명령어를 안다는 것은 불가능하고 또 그럴 필요도 없다. 우리가 알아야 하는 것은 바로 네트워크의 개념이다. 즉, 네트워크의 IP 주소에 대한 이해, 서브넷 마스크에 대한 이해, 라우팅에 대한 이해 등이다.

라우터가 물론 IP 라우팅만을 하는 것은 아니다. 예를 들어 IPX, DECNET, AppleTalk 등 많은 프로토콜의 라우팅이 있지만 우선 여기에서는 IP 라우팅을 위주로 알아보도록 하자.

2. 라우터는 무슨 일을 할까?

라우터는 두 가지 일을 하는데 그 하나가 Path Determination(경로 결정)이고, 또 하나는 Switching(스위칭)이다. 라우터는 데이터 패킷이 목적지까지 갈 수 있는 길을 검사하고 어떤 길로 가는 것이 가장 적절한지를 결정한다. 이것을 경로 결정이라고 한다. 그리고 그 길이 결정되면 그 쪽으로 데이터 패킷을 스위칭해준다. 이것을 스위칭이라고 한다. (여기서 스위칭은 스위치가 해주는 일과는 다르다.)

그럼 라우터는 어떻게 가장 좋은 길을 찾아가는 것일까? 라우터가 가장 좋은 길을 찾는 데는 라우팅 알고리즘, 즉 라우팅 프로토콜이 사용된다. 그리고 라우팅 알고리즘은 이를 위해서 라우팅 테이블이란 것을 만들어서 관리한다. 즉 라우팅 테이블에는 어디로 갈려면 어떻게 가라는 지도 정보가 들어 있는 것이다. 이러한 라우팅 기능을 위해서 라우터는 PC처럼 CPU도 가지고 있고, 메모리도 가지고 있고, 또 인터페이스도 가지고 있다.

<aside> 🗒️ 라우터를 만지는 사람들이 자주 쓰는 말

라우터를 만지다 보면 자주 듣는 말들이 있다. 꼭 만지지 않더라도 자주 나오는 몇 가지 말들의 의미를 알아두면 이해가 쉬울 것이다. 일단 ‘인터페이스’란 말이 있다.

인터페이스란 라우터에 나와있는 접속 가능한 포트라고 생각하면 된다. 예를 들어 Cisco 2501이란 라우터의 인터페이스는 1 Ethernet(이더넷)과 2 Serial(시리얼)이라고 한다. 이 라우터는 3개의 접속 포트가 있다는 뜻이다. 그렇다면 ‘Ethernet’과 ‘Serial’ 의 차이점을 알아보도록 하자.

Ethernet은 내부 네트워크와 접속 시 사용되는 인터페이스이다. 즉 내부의 허브나 스위치 등과의 연결을 위한 포트이다. (물론 내부 네트워크가 토큰링인 경우에는 토큰링 인터페이스가 필요하지만 여기서는 일반적인 이더넷을 예로 들었다.) 인터페이스 Type은 TP(RJ45)나 AUI(15핀) 방식이 있다. TP는 10 Base T방식을 말하고 AUI는 15핀으로 된 방식이다.

Serial은 WAN과의 접속을 위한 것이다. 즉 DSU(Digital Service Unit 또는 Data Service Unit이라고 한다.) 와의 접속을 위한 것이다. 물론 FDSU, CSU 등과의 연결도 마찬가지이다. 즉 외부 네트워크(리모트 구간)로의 연결을 위해서 사용하는 포트가 바로 Serial 포트이다. 또한 Serial 포트가 있는 경우에는 Serial 포트와 DSU, FDSU, CSU 등과 연결하기 위한 케이블이 하나 필요한데 이 케이블이 바로 V.35 케이블이다. 이 케이블이 없으면 라우터와 DSU와의 연결이 불가능하다.

</aside>

3. 라우팅 프로토콜과 라우티드 프로토콜

지금까지 우리가 배웠던 TCP/IP 그리고 IPX, AppleTalk 등 우리가 아는 모든 프로토콜은 전부가 라우티드 프로토콜이다. 라우티드 프로토콜(Routed Protocol)아린 말 그대로 라우팅을 당하는, 즉 라우터가 라우팅을 해주는 고객을 뜻한다. 라우터라는 자동차를 타고 여행을 떠나는 승객이라고 생각하면 된다. 그러니까 TCP/IP나 IPX는 고객으로 라우터란 자동차를 타고 다른네트워크로 여행을 떠나는 것이다.

그렇다면 라우팅 프로토콜은 그 자동차를 안전하고 빠르게 운전하는 운전기사라고 볼 수 있다. 즉 라우터에 살면서 라우티드 프로토콜에게 목적지까지 가장 좋은 길을 갈 수 있게 해주는 역할을 한다. 따라서 라우터 입장에서는 어떤 운전기사를 채용하는가에 따라서 라우터의 성능이 결정된다고 봐도 된다.

이런 라우팅 프로토콜에는 RIP(Routing Information Protocol), IGRP(Interior Gateway Routing Protocol), OSPF(Open Shortest Path First), EIGRP(Enhanced Interior Gateway Routing Protocol) 등이 있다.

라우팅 프로토콜을 다른 말로는 라우팅 알고리즘이라고도 한다. 라우팅 알고리즘은 자신의 라우팅 테이블을 가지고 있으면서 자기가 찾아갈 경로에 대한 정보를 이곳에 기억해둔다. 어디가 가장 빠르고 안전한 길인지 말이다. 즉 라우팅 테이블은 운전기사(라우팅 프로토콜)가 가지고 있으면서 어떤 길이 가장 좋은 길인가 하고 메모해 두는 이전표 같은 것이라고 생각하면 된다. 따라서 라우팅 테이블은 일종의 메모리라고 생각하면 되고, 또 어떤 알고리즘을 사용하는가에 따라서 라우팅 테이블의 내용은 달라지게 된다.

그럼 라우팅 테이블에는 어떤 내용이 있을까? 주로 목적지, 그리고 그 목적지까지의 거리, 그리고 어떻게 가야 하는가 등의 내용이다. 또 라우팅 테이블은 시간이 지나면서 계속 업데이트된다. 즉 끊임없이 변한다는 말이다. 새로운 길이 생길 수도 있고 새로운 목적지가 추가될 수도 있기 때문이다. 끊임없이 변화하는 것이 바로 라우팅 테이블이다.

4. 스태틱(Static) 라우팅 프로토콜과 다이내믹(Dynamic) 라우팅 프로토콜

라우팅 프로토콜을 구분할 때 스태틱과 다이내믹 라우팅 프로토콜로 구분한다.

스태틱은 우리말로 하면 ‘정지된’ 또는 ‘정적인’ 이런 뜻이니까 말 그대로 한 번 정해놓으면 죽으나 사나 정해진 그대로 수행하는 프로토콜을 말하고, 다이내믹은 ‘동적인’이란 말 뜻처럼 상항에 따라서 그때그때 변화가 가능한 프로토콜을 말한다. 좀 더 정확히 살펴보자면 스태틱 라우팅 프로토콜의 경우는 라우터에 사람이 일일이 경로를 입력해주는 것이다. 가장 빠르고 좋은 길을 사람이 찾아서 말이다. 그럼 라우터는 사람이 입력해 준대로 데이터를 보내기만 하면 된다.

사람이 모든 것을 생각하고 넣어주니까 그보다 더 좋은 길이 없을 것이다. 거기다가 라우터는 아무 생각 없이 데이터를 넘기기만 하면 되니까 라우터 입장에서 봤을 때는 생각할게 별로 없다. 시키는 대로 하기 때문에 따로 이정표도 많이 가지고 있을 필요가 없다. 즉 라우터 자체에는 부담이 들지 않아 라우팅하는 속도도 빨라지고 라우터의 성능이 좋아지게 된다. 물론 메모리도 적게 든다. 스태틱 라우팅의 경우에는 사람이 경로를 알려주는 방식이기 때문에 다이내믹 라우팅 방식처럼 라우터들끼리 라우팅 테이블을 교환할 필요가 없다. 따라서 네트워크의 대역폭을 그만큼 절약할 수 있다. 게다가 요즘 중요시되고 있는 보안에도 강하다. 왜냐하면 외부에 자신의 정보를 알리지 않기 때문이다.

그러나 단점도 존재한다. 일단 귀찮다는 것이다. 사람이 라우터에 일일이 목적지 별로 경로를 넣어줘야 하니까 말이다. 또 하나는 만약 입력해준 경로에 문제가 생기면 큰 일이 발생한다는 것이다. 예를 들어 서울에서 부산을 가는 경로를 사람이 생각해서 라우터에 넣어줄 때 비행기아 가장 빠르다고 생각해서 비행기로 간다고 넣어줬다고 가정해보자. 그런데 어느날 날씨가 나빠져서 비행기가 뜨지 않는 사태가 발생했다면 라우터는 어떻게 할 것인가?

스태틱 라우팅 프로토콜의 경우는 그래도 데이터를 계속 서울 공항으로 보내게 된다. 사람이 라우터에 “부산 갈 때는 비행기이다”라고 입력해 놓았기 때문에 아무리 비행기가 뜨지 않아도 모든 데이터를 비행장에 보내게 되고, 결국 부산에는 못가게 된다. 즉 스태틱 라우팅 프로토콜은 사람이 입력해준 경로에 문제가 발생하면 사람이 다시 그 경로를 고쳐줄 때까지는 계속 문제가 있는 쪽으로 데이터를 보내려고 한다. 어차피 수동이니까 당연한 결가이다.

하지만 다이내믹 라우팅 프로토콜은 평소에는 비행기로, 그리고 비행기에 문제가 있으면 기차로, 또 기차에 문제가 있으면 자동차로 이렇게 자동으로 판단하고 그때그때 가장 좋은 길을 찾아내는 방식이다. 또 다이내믹 프로토콜은 사람이 일일이 경로 입력을 해줄 필요가 없다. 라우터가 알아서 가장 좋은 길을 찾아 가도록 되어 있다.

하지만 다이내믹 프로토콜의 경우는 라우터에 부담을 준다. 왜냐하면 라우터가 할 일이 많아지기 때문이다. 라우팅 프로토콜을 이용해서 어떤 길이 가장 빠른 길인지 계산을 해야 하고, 또 시간이 지날 때마다 바뀐 정보는 없는지 계속 확인해 봐야 하고, 또 이정표도 계속 업데이트해야 하고 할 일 이 한 두가지가 아니다. 우리가 일반적으로 이야기하는 RIP, IGRP, OSPF, EIGRP 등이 이런 다이내믹 라우팅 프로토콜에 속한다.

일반적인 라우팅 환경에서는 여러 가지 상황에 자동으로 대응할 수 있는 장점이 있고 또 자동으로 가장 좋은 길을 찾아내는 다이내믹 라우팅 프로토콜을 주로 사용한다. 하지만 어떨 때는 라우팅 성능을 높이기 위해 스태틱을 사용하기도 한다. 또 라우터가 선택할 수 있는 경로가 오직 하나뿐일 때는 다이내믹 프로토콜을 쓸 필요가 없을 수도 있다. 어차피 그 길이 끈헝지면 다른 길도 없기 때문에 그때는 스태틱을 쓰는게 좋다.

5. 라우팅 테이블에 대한 이야기

라우팅 테이블을 이해하기 위해 아래 예시를 참고하도록 하자. 중앙에 라우터의 라우팅 테이블이 있다. 이 라우터는 목적지와 목적지를 가려면 어느 인터페이스로 가야 하는지를 자신의 라우팅 테이블에 가지고 있다. 여기서 E0는 이더넷 인터페이스 0번을 나타내고, S0는 시리얼 인터페이스 0번을 나타낸다. 또 T0는 토큰링 인터페이스 0번을 나타낸다. (인터페이스 번호는 0번부터 시작한다.)

따라서 라우터가 어떤 목적지를 찾아가려고 하면 먼저 라우팅 테이블을 보게 되는 것이다. 예를 들어 라우터가 150.2.0.0 네트워크에 있는 어떤 PC를 찾아가는 패킷을 받아들이게 되면 라우터는 자신의 라우팅 테이블에 150.2.0.0으로 가는 길이 나왔는지를 먼저 확인한다. 그랬더니 자기 라우팅 테이블에 150.2.0.0 네트워크로 가려면 T0로 가라는 내용이 나와있으니까 패킷을 토큰링 쪽으로 인터페이스로 넘겨주게 되는 것이다. 물론 진짜 라우팅 테이블은 이것과는 조금 다르다.

Untitled

라우팅 테이블이란 라우터가 어떤 경로를 찾을 때 사용하는 것이고, 이것은 사용하는 라우터의 포로토콜에 따라 달라지며, 또 라우터는 항상 최적의 경로를 찾아 이것을 라우팅 테이블에 유지하고 있다는 것이다.