네트워크 세계에서의 라우팅 (Routing) 이란, 패킷에 포함된 주소 등의 상세 정보를 이용하여 목적지까지 데이터 또는 메세지를 체계적으로 다른 네트워크에 전달하는 경로 선택 (Path Determination) 그리고 스위칭 (Switching) 하는 과정을 의미 합니다. (OSI 7계층을 기준으로 한 전체적인 데이터의 흐름 참조 : 클릭)
이 과정을 능동적으로 수행하는 장치를 라우터 (Router) 라고 합니다. 라우터는 가장 좋은 경로를 찾기 위해 라우팅 알고리즘, 즉 라우팅 프로토콜 (Routing Protocol) 을 사용하여 계산된 경로를 만들어 내며, 이것을 라우팅 테이블 (Routing Table) 에 저장합니다. 이를 위해 라우터 장비에는 서로 다른 네트워크 들에 대한 정보가 저장되어 있어야 하며, 이것을 네트워크 엔지니어 또는 관리자가 수행합니다.
이 번 포스트 에서는 네트워크 세계에서 다루는 라우팅의 종류와 라우팅 프로토콜에는 어떤 것들이 있는지 간략히 알아보도록 하겠습니다.
1. 라우팅 정보
라우팅 결정에 이용하는 주요 정보들은 다음과 같습니다.
– 토폴로지 : 네트워크 요소들을 물리적으로 연결하는 방식을 의미합니다.
– 트래픽 부하 : 특정 라우터에 트래픽이 많이 몰려있을 경우, 다른 라우터로 경로를 안내하여 네트워크의 성능을 높일 수도 있습니다.
– 링크 비용 (라우팅 메트릭) : 홉 수 (거쳐가야 하는 지점의 갯수), 비용, 지연 (레이턴시), 처리율 등과 같은 변수들을 참조하여 최적의 라우팅 경로를 계산합니다.
– 메세지 : 라우터 끼리 라우팅을 위해 주고 받는 정보를 의미합니다. (예> 이웃 도달 메세지, 라우팅 정보 등을 전파)
– 라우팅 테이블 : 패킷을 목적지로 전달하기 위해 참조하는 테이블입니다. 위와 같은 라우팅 계산에 필요한 요소들을 기반으로 라우팅 프로토콜을 통해 계산된 라우팅 정보들을 저장하는 것을 의미합니다.
2. 라우팅 방식
정보를 교환/전달 하기 위한 라우팅 방식은 다음과 같이 여러 가지로 구분할 수 있습니다. (아래의 라우팅 방식들은 패킷 교환망을 포함한 모든 라우팅 방식들을 참고로 나열하였습니다.)
(1) 주요 라우팅 방식
– 고정 라우팅 (Fixed Routing) / 정적 라우팅 (Static Routing) : 미리 정해진 루트를 따라 경로선택 (수동 경로 설정) 하는 방식을 의미합니다.
– 동적 라우팅 (Dynamic Routing) / 적응적 라우팅 (Adaptive Routing) : 망의 상태에따라 경로선택 (자동 경로 설정) 하는 방식을 의미합니다. (아래에서 동적 라우팅의 프로토콜 세부 내용에 대해 다시 기술 됩니다.)
(2) 네트워크 정보를 참조하지 않는 라우팅 방식
– 홍수 라우팅 (Flood Routing) / 플러딩 (Flooding) : 수신 경로 이외의 모든 경로로 전파하는 매우 간단한 경로선택 방식입니다. (예> 브로드캐스트)
– 랜덤 라우팅 (Random Routing) : 무작위로 경로를 선택 방식입니다.
(3) 기타 방식
– 소스 라우팅 (Source Routing) : 경로를 모두 리스트로 만들어 패킷의 헤더에 넣어 보내는 경로선택 방식 입니다.
– 계층적 라우팅 (Hierarchical Routing) : 큰 그룹에서 점차 작은 그룹으로 계층적 경로선택 방식입니다.
3. 라우팅 프로토콜 종류
(1) 라우팅 경로의 고정 여부에 따른 구분
먼저 라우팅 프로토콜은 위에서 설명한 것과 같이 크게 고정/정적 라우팅 방식이냐 동적/적응적 라우팅 방식이냐 로 구분합니다.
– 정적 라우팅 (Static Routing)
> 말 그대로 관리자가 일일이 경로를 입력하는 방식입니다.
> 장점 : 라우터의 부하를 경감할 수 있고 복잡한 계산이 필요 없으므로 빠른 라우팅이 가능
> 단점 : 관리자가 관리해야 할 부분이 많아집니다. 정해진 경로 상 장애가 발생할 경우 네트워크 전체 이용에 장애가 발생할 수 있는 단점이 있습니다.
– 동적 라우팅 (Dynamic Routing)
> 라우터가 프로토콜에 의한 계산에 따라 스스로 라우팅 경로를 결정하는 방식입니다.
(2) 내/외부 라우팅, 그리고 AS(Autonomous System) 에 따른 구분
AS(Autonomous System, 자율시스템) 란, 하나의 거대한 네트워크 관리자에 의해 관리되는 라우터들의 집단이라고 할 수 있습니다. 예를 들어, 특정 통신 사업자나 회사가 관리하는 모든 라우터들의 집단이 하나의 AS 라고 표현됩니다. 이 때, AS 내부에서는 내부 라우팅 프로토콜, 즉 IGP (Interior Gateway Protocol) 에 의해 라우팅이 이루어 집니다. 다른 AS 끼리 통신하는 문지기 라우터를 ASBR (Autonomous System Boundary Router) 라고 하는데 이 ASBR 라우터들 끼리는 다른 AS 들 간의 통신을 위한 외부 라우팅 프로토콜, 즉 EGP (Exterior Gateway Protocol) 에 의해 라우팅이 이루어집니다.
– IGP (Interior Gateway Protocol)
AS 내에서의 내부 라우팅을 담당하는 라우팅 프로토콜입니다. (예> RIP, IGRP, OSPF, is-is ERGRP, iBGP)
– EGP (Exterior Gateway Protocol)
AS 끼리의 외부 라우팅을 담당하는 라우팅 프로토콜입니다. (예> eBGP, EGP)
(3) 라우팅 테이블 관리 알고리즘에 따른 구분
– 디스턴스 벡터 (Distance Vector)
말 그대로 목적지 까지 도달하는데 필요한 거리와 방향만을 계산하여 기록하는 알고리즘 방식입니다. (예> RIP, IGRP)
– 링크 스테이트 (Link State)
목적지까지 도달하는 경로를 SPF (Shortest Path First), 즉 최단 경로를 찾는 알고리즘을 통해 가능한 모든 최단 경로를 라우팅 테이블에 기록해두는 방식입니다. (예> OSPF – 다익스트리 알고리즘 이용)
– 하이브리드 (Hybrid)
대표적으로 Cisco 에서 개발한 EIGRP (Enhanced Interior Gateway Routing Protocol) 이 그 예인데, DUAL (Diffusing Update Algorithm) 이라는 방식의 알고리즘을 통해 위와 같은 디스턴스 벡터 방식과 링크 스테이트의 방식의 장점을 차용했다는 것이 특징입니다. 요약하여, Distance Vector 라우팅 기반이지만 Link State 처럼 동작하는 방식입니다. 자세한 내용은 EIGRP 에 대해 별도의 포스팅에서 다루어 보도로 하겠습니다.
– 경로 벡터 (Path Vector)
디스턴스 벡터와 같이 실제 거리를 기반으로 계산하는 라우팅이 아닌 경로 (AS 들의 순차적인 목록) 에 기반하여 계산하는 라우팅 방식을 의미합니다. (예> BGP)
3. 라우팅 프로토콜 & 라우티드 프로토콜
(1) 라우팅 프로토콜 (Routing Protocol)
라우팅을 ‘하는’ 프로토콜을 의미합니다. 위에서 다룬 BGP, EIGRP, OSPF 등이 모두 해당됩니다. ‘라우팅 알고리즘’
(2) 라우티드 프로토콜 (Routed Protocol)
라우팅을 ‘당하는’ 프로토콜들을 의미합니다. (예> TCP, IPX 등)
다음 포스트에서는 주요 라우팅 프로토콜 (예> OSPF, EIGRP 등) 에 대한 개념, 작동 원리, 패킷 등의 상세 내용에 대해 다루어 보도록 하겠습니다.
#Steven