Network is Fun! Routing Protocol
라우팅이란! 자신이 속하지 않은 외부 네트워크와 통신할 때 발생되는 패킷을 목적지까지 가장 빠르고 효율적인 길로 경로를 설정해주는 것을 뜻합니다.
이러한 기능을 라우터 장비가 수행하며 라우팅은 OSI 7계층 중 3계층인 네트워크 계층에 해당됩니다.
즉 라우팅은 가야 되는 방향을 설정해주는 네트워크 네비게이터!
라우터는 가장 좋은 경로를 결정하기 위해 모든 경로에 대한 정보를 라우팅 테이블에 저장하고 관리합니다.
이러한 라우팅 테이블을 생성, 유지, 전달하는 프로토콜을 라우팅 프로토콜이라고 합니다.
라우팅 프로토콜은 Static Routing과 Dynamic Routing으로 분류할 수 있는데요.
먼저 Static Routing이란 라우팅을 네트워크 관리자가 직접 수동으로 지정하는 방법을 뜻합니다.
Static Routing은 라우터 자체에 부담이 없어 라우팅 속도가 빠르고 성능이 좋은 장점을 가지고 있습니다.
반면에 경로를 수동으로 설정하고 유지하기 때문에 시간이 많이 걸리고, 네트워크 규모가 커지면 설정 및 관리하기에 어려운 단점을 가지고 있습니다. 따라서 Statinc Routing은 오직 하나의 경로만을 통해 외부망과 연결된 네트워크에 많이 사용되고 있습니다.
다음으로 Dynamic Routing은 Static Routing과 반대로 관리자의 개입 없이 라우터가 스스로 라우팅 경로를 동적으로 결정하며, 경로 중 일부분에 오류가 발생하면 라우터가 자동으로 다른 경로를 선택합니다.
Dynamic Routing은 그 사용 범위에 따라서 IGP(Interior Gateway Protocol)와 EGP(Exterior Gateway Protocol)로 구분되는데 차이는 내부 네트워크에서 Routing을 담당하느냐 아니냐에 따라 구분됩니다.
이때, AS라는 용어가 등장하게 되는데 AS란 일정 규모의 한 네트워크를 말하는 것으로 네트워크 관리자에 의해 관리되는 라우터들의 집단을 뜻합니다. 라우터들을 AS 그룹으로 묶어주는 이유는 라우터가 가지는 정보를 효율적으로 관리하기 위해서!
따라서 이러한 AS내에서의 라우팅을 담당하는 라우팅 프로토콜을 IGP라고 하며 RIP, OSPF 등이 대표적인 프로토콜입니다.
다음으로 EGP는 서로 다른 AS 사이에서 사용되는 라우팅 프로토콜이며 대표적으로 BGP가 속해있습니다. BGP란 서로 다른 AS간의 정보를 주고 받을 수 있도록 라우팅 정보를 관리하는 프로토콜입니다.
또한, 라우팅 프로토콜은 종류에 따라 경로를 선택하는 요소가 다릅니다. 이러한 경로 설정 방법을 라우팅 알고리즘이라고 하며 이 라우팅 알고리즘은 Distance Vector와 Link State로 분류할 수 있습니다.
먼저 Distance Vector란 말 그대로 거리(distance)와 방향(vector)만을 위주로 만들어진 라우팅 알고리즘입니다.
예를 들어 여의도역에서 구로디지털단지역을 가기 위해 최적의 경로를 탐색해보겠습니다.
5호선을 타고 갈 경우 5정거장, 9호선을 타고 갈 경우 7정거장이 걸리는군요! 이럴 경우 우리는 가까운 경로인 5정거장을 선택할 것이고, 5호선을 타게 되겠지요~?
이처럼 거리(5정거장 or 7정거장)와 방향(5호선 or 9호선)만을 가지고 최적의 경로를 결정하는 라우팅 프로토콜이 바로 Distance Vector입니다!
Distance Vector는 라우터가 모든 라우팅 정보를 가지고 있을 필요가 없기 때문에 라우팅 테이블을 줄일 수 있어 메모리를 절약할 수 있고 라우팅 구성이 간단한 장점을 가지고 있습니다.
그러나 정해진 시간마다 한번씩 라우팅 테이블의 업데이트가 일어나기 때문에 트래픽이 낭비되고 시간이 많이 소요되기 때문에 Distance Vector는 작은 규모의 네트워크에 적합한 라우팅 프로토콜입니다.
대표적인 예로 RIP이 있으며, RIP이란 목적지까지 거쳐가야 하는 경로 수를 기준으로 패킷 경로를 결정하는 라우팅 프로토콜입니다.
그 다음으로 Link State를 살펴볼까요?
이번에는 여의도역에서 구로디지털단지역까지 가는 모든 경로 정보를 통해 최적의 경로를 찾아보겠습니다!
5호선을 타면 신길에서 환승해서 신도림에서 또 환승을 하여 총 23분이 걸리네요.
또 다른 경로인 9호선을 타면 당산에서 환승해서 총 20분이 걸립니다.
이처럼 각 역들이 어떻게 연결되어 있는지 각 구간에 대한 모든 연결 상태를 그림으로 그려 최적의 경로를 결정할 수 있는데 이러한 라우팅 프로토콜이 바로 Link State입니다.
Link State는 목적지까지의 모든 경로를 알고 있기 때문에 중간에 링크 변화가 생겨도 알아내는데 걸리는 시간이 짧아 트래픽 발생을 줄일 수가 있습니다.
하지만 Router가 모든 Routing 정보를 관리해야 하기 때문에 메모리를 많이 소모하고, SPF계산 등 여러 가지 계산을 해야 하기 때문에 Router CPU가 일을 많이 하게 됩니다.
때문에 Link State는 대규모 네트워크에 적용하는 것이 적합하며 대표적인 예로는 OSPF가 있습니다.
그럼 이제 마지막으로 앞에서 배운 내용들을 요약해볼까요!
Routing Protocol~ 어렵지 않아요~!