loading
본문 바로가기
BACK-END/CS

[네트워크] 라우팅 프로토콜

by pikiforyou 2024. 4. 5.

 

정적라우팅과 동적라우팅

앞선 포스팅에서 작성한 정적라우팅(Static Routing)은 동적라우팅에 비해 부하는 적지만, 관리자가 직접 모든 경로를 다 수동설정해줘야 하는 번거로움이 있었다. 네트워크 규모가 커질수록 모든 경우의 수를 다 하나하나 잡아줘야하기때문에 소규모 네트워크, 경로가 정해진 라우팅에 적합한 방식이다.

동적라우팅은 라우터끼리 통신하면서 최적의 경로를 찾는 방식으로, 장애가 발생해도 라우터끼리 통신에 의해 우회로를 개척하며 수동으로 라우팅해주지 않아도 되는 장점이 있다. 하지만 라우터끼리 통신하는 자체도 통신의 부하가 발생하며 라우터 리소스를 할당해야한다.

동적라우팅은 거리벡터, 링크상태로 나뉘며 소규모 네트워크와 대규모 네트워크에 적합한 방식등으로 분류된다.  

 

 

 

AS(Autonomous system) 및 프로토콜 분류

동일한 라우팅 정책으로 하나의 관리자에 의해 운영되는 네트워크를 얘기하는데, 각 시스템마다 고유한 AS번호(망식별번호)가 부여되어있다. 네트워크 규모가 점점 커질수록, 라우팅도 많아지고 관리해야할 포인트도 많아지기 때문에 이를 내부/외부로 나누면 모든 네트워크의 라우팅 정보를 알 필요가 없어 관리도 간단하고 보안도 강화된다. 이때 AS를 기준으로 내부에서 라우팅하는 프로토콜을 IGP(Interior Gateway Protocol), 외부에서 각각의 AS끼리 라우팅하는 것을 EGP(Exterior Gateway Protocol) 이라고 부른다.

 

 

분류에 따라 나뉠수있는데,

IGP / EGP를 기준으로 분류하면 EGP에서는 BGP 프로토콜이 대표하며, IGP에는 RIP, IGRP, OSPF, IS-IS, EIGRP 가 속해있다.

거리벡터와 링크상태등 알고리즘을 기준으로 분류하면, 거리벡터(Distance-Vector:최단거리)에는 RIP(v1, v2가 있다), IGRP 가있으며 링크상태(Link-state:최단시간)에는 OSPF, IS-IS가 있다. 추가로 거리벡터와 링크상태를 모두 포용한 EIGRP(시스코 독자)도 있다.

 

 

 

Metric, AD(Administrative Distance)

동적라우팅 프로토콜에서 최적의 경로를 선택하는 기준을 얘기한다. 최단거리와 최소시간등 각각의 프로토콜의 기준에서 최적의 경로를 찾기때문에, 프로토콜마다 메트릭이 다르다. 간단하게 적자면 아래와 같다.

- RIP : 목적지까지 거치는 라우터(홉)의 수 - Hop count

- OSPF : 대역폭/속도에 기초한 Link cost, 최소비용

- IS-IS : RIP와 비슷한 cost(hop count와 유사)

- EIGRP : 대역폭, 지연, 신뢰도, 부하, MTU등을 시스코 자체로 대입한 결과값 사용

- BGP : 속성값

 

 

 

거리벡터 라우팅(Distance Vector Routing ) 

Bellman-Ford 알고리즘을 사용하고, 홉 단위로 거리를 측정해 목적지까지의 최단경로(최소 홉수)를 최적의 경로로 친다. 거리벡터는 이웃(neighbor)에게 정보를 수신받는데, 이 때 라우팅 테이블 전체를 받기때문에 수렴 속도가 느리다. 또한 업데이트를 주기적으로 수행하여, 장애가 발생시에도 도달하는데 시간이 걸린다. 하지만 구현과 관리가 간단하다. 

거리벡터에 대해서 설명을 잘 해놓은 이미지가 있어서 가지고 왔다 (참고사이트에 표시)

이 때 인접한 라우터끼리 라우팅테이블을 전체교환하고, 순서대로 전파되며, 주기적으로 정보가 업데이트 되기때문에 공유할때까지 걸리는 시간이 소요된다. 거리벡터는 가는데 걸리는 비용(홉수)만 계산하기때문에, 실제 걸리는 시간까지 계산하지는 않는다

 

 

 

링크상태  라우팅(Link State Routing)

Dijkstra(다익스트라) 알고리즘을 사용한 링크상태 프로토콜은 이웃한 라우터의 정보와, 거리만 알고있는 거리벡터와는 다르게 전체 토폴로지를 가지고 있다. 속도와 대상 경로의 총 비용까지 측정해 최단 경로를 계산하고, 이를 네트워크 맵으로 만들어 알고있다. 또한 계층적 구조를 가질수있기에 거리벡터보다 대규모 네트워크에서 사용하기 적합하고, 실제로 소규모나 대규모에서 많이 채택하는 프로토콜이다. 링크상태는 라우터 테이블 전체를 받는게 아니라, 트리거된 업데이트, 즉 변경이 있을때 수행하기때문에 더 빠르게 정보가 수렴된다. 물론 거리벡터보다 소모하는 자원이나 관리도의 어려움은 더 높다.

 

 

 

하이브리드 라우팅(Hybrid Routing)

거리벡터와 링크상태 라우팅 프로토콜을 모두 사용하는 프로토콜이나, 시스코 독점으로만 운영된다. IGRP(현재 사용하지 않음)에서 개선된 EIGRP 프로토콜이 있다. 링크상태 프로토콜을 통해 Hello packet 을 사용하고 트리거 업데이트가 되며, 거리 벡터 프로토콜을 이용해 직접 연결된 이웃에게 경로를 학습하는 하이브리드형이다.  

 

 

 

클래스풀, 클래스리스 (Classful, Classless)

초기에 사용하던 RIP(RIPv1)이 대표적인 클래스풀 라우팅 프로토콜이다. A~E클래스로 나눠진 네트워크 대역대로 계산되는데, 예를 들어 1.168.2.0 으로 대역대를 잡는다면 클래스풀하게 가정하여 해당 아이피를 A클래스로 잡게 된다. 이 경우, 다른 연결된 아이피가 A클래스가 아닌 다른 클래스에 속한다면 통신이 되지않으며 제한 사항이 많아 현재는 더 이상 사용되지 않는다.

클래스리스 프로토콜은, 서브넷 마스크를 포함하여 트래픽을 효율적으로 라우팅할수있고, 데이터가 변경될때만 업데이트를 보내기때문에 더 적은 대역폭을 사용한다. VLSM(가변 길이 서브넷마스크)를 지원할 수 있어 현재 표준으로 사용되고있다. 가령 RIPv1은 클래스풀이지만, RIPv2는 클래스리스 방식이다.

 

 

 

 

 

참고용 사이트 : https://afrozahmad.com/blog/understanding-dynamic-routing-protocols-types/

벨만포드, 다익스트라 알고리즘 및 거리벡터 이미지 : https://daengsik.tistory.com/45


- 궁금한 점 / 수정 요청사항 등은 언제든 댓글 달아주세요 :)

- 도움이 되셨다면 ❤️ 하트 한 번 눌러주세요! 감사합니다 ! 

댓글