네트워크/네트워크 기초

네트워크 기초) 6. RIP(Routing Information Protocol)

마리사라 2022. 12. 21. 16:23
반응형

이번 강의는 동적 라우팅 기술인 RIP에 대해서 알아보겠습니다.


1. RIP

RIP(라우팅 정보 프로토콜)은 1988년에 RFC 1058로 정식 채택된 라우팅 프로토콜입니다. RIP는 해당 Network로 도달할 때 경유할 수 있는 라우터의 숫자를 Hop으로 수치화하고 거리 백터 알고리즘(DVA)을 통해 해당 Network로 도달하는 경로를 계산합니다. 이때 Hop 수가 똑같다면 갈 수 있는 경로를 2개까지 채택하여 하나의 경로에 문제가 생기더라도 다른 경로로 보낼 수 있게 합니다.

 

RIP는 시간이 지나면서 점점 개량되어 1988년에 채택된 RFC 1058을 RIP Version 1(RIPv1), 1994년에 채택된 RFC 1723을 RIP Version 2(RIPv2), 1997년에 채택된 RFC 2080을 RIP Next Generation(RIPng)라고 합니다. RIPv2는 RIPv1에서 Subent Mask를 알려주는 기능, 라우팅 정보 전송에 멀티캐스트 주소 사용, RIP를 사용하는 장비에만 데이터 전송, 보안 기능 등이 추가되었으며, RIPng는 IPv4에만 사용되는 RIP를 IPv6에서 사용할 수 있게 하며 라우팅을 Network 단위가 아니라 Link 단위로 선언, Link Local Address 사용, Process ID 부여 등의 기능이 추가되었습니다. 현재 가장 많이 사용되는 RIP는 RIPv2입니다.

 

RIP는 UDP를 사용하며 포트 번호 520번을 통해 전달됩니다.


2. 특징

RIP의 특징은 가장 많이 사용되는 RIP인 RIPv2를 기준으로 설명하겠습니다. RIPv2는 다음과 같은 특징을 가지고 있습니다.

  • R : RIP로 Routing된 Network는 Routing Table에서 R로 표기한다.
  • Classful : RIP는 Classful한 Network만 지원한다.
  • 업데이트 : 30초마다 RIP Table을 업데이트한다.
  • AD : AD 값(Administratvie Distance)으로 120을 갖는다.
  • Hop : 최대 15 Hop을 가질 수 있으며 그 이상의 Hop(16)은 도달할 수 없다.
  • 축약 : 자동 축약을 지원한다.

이제 이것들을 자세히 알아보겠습니다.

 

[R]

라우터는 Routing Table을 작성합니다. 이때 어떻게 Table을 만들었는지 표기하게 되는데, 이때 RIP로 만들어진 값들은 R이라는 값이 붙게 됩니다.

 

[Classful]

RIP는 Subnetting, Supernetting과 같이 Classless한 Network가 아닌 Classful 한 Network만 지원합니다. 예를 들어 1.1.1.0/24라는 Network가 있을 때 RIP로 Routing Table을 작성한다면 1.1.1.0/24의 C Class가 아니라 1.1.1.0의 Classful인 A Class로 인식하여 1.0.0.0/8으로 작성합니다.

 

[업데이트]

Routing Table을 만들기 위해서 각각의 라우터들은 자신에게 연결된 라우터에게 변동사항이 있는지 질의하게 됩니다. RIP는 이 주기가 30초입니다.

 

[AD]

라우터 하나에 여러 라우팅 기술이 한번에 동작할 수도 있습니다. 이때 라우팅 테이블에서 어떤 경로로 보낼지를 결정해야 하는데, 이때 참조되는 값이 AD값입니다. RIP는 기본적으로 AD값이 120이며, Table에 있는 경로 중에서 AD값이 낮을수록 우선순위가 높습니다. 예를 들어 다른 라우팅 기술로 AD값이 140인 경로와 RIP로 만들어져 AD값이 120인 경로가 있다면 RIP로 만들어진 라우팅 경로로 전송하게 됩니다.

 

[Hop]

해당 네트워크와 얼마나 먼 곳에 있는지를 표현하는 값입니다. 예를들어 바로 옆 라우터에 연결된 Network는 Hop이 1이며 라우터를 하나씩 더 거칠 때마다 Hop의 값은 1씩 증가하게 됩니다. 즉 최대 15 Hop을 가질 수 있다는 말은 자신으로부터 15단계 이상 떨어진 라우터까지 통신할 수 있다는 뜻입니다. 따라서 도달 불가능한 Network는 Hop을 16으로 표기합니다.

 

[축약]

만약 Router0과 Router1이 1.1.12.0/24 대역으로 연결되어 있고, Router0의 내부 Network가 2.1.1.0/24, 1.1.23.0/24가 있다고 가정하겠습니다. 이때 RIP를 통해 전달한다면 2.1.1.0/24는 2.0.0.0/8로, 1.1.23.0/24는 그대로 1.1.23.0/24로 전달하게 됩니다. 이것은 라우터끼리 연결된 대역(1.0.0.0)과 다른 대역(2.0.0.0)의 경우 Classful 하게 축약해서 전달하는 RIP의 특성 때문입니다. 따라서 같은 대역인 1.1.23.0(1.0.0.0)은 그대로 전달되지만 다른 대역인 2.1.1.0은 2.0.0.0으로 축약해서 전달하게 됩니다.

물론 이로인한 부작용도 존재합니다. 예를 들어 R1에 또 다른 라우터인 Router2가 연결되었고, Router2에 2.2.2.0/24 Network가 있다고 가정하겠습니다. Router2에서는 Router0와 Router1에게 자신의 Network인 2.0.0.0/8을 보내게 됩니다. 이때 Router0에는 문제가 없습니다. 2.0.0.0이 중복되었지만 두 패킷 모두 Router1로 부터 받기 때문입니다. 하지만 Router1에서는 문제가 발생합니다. Router2로 부터 받은 2.0.0.0/8자신에게 붙어있는 대역이기 때문입니다. 따라서 Router2로 받는 2.0.0.0/8버려버립니다. 이제 Router0에서 2.2.2.0/24 대역(Router2)에 데이터를 보낸다면 Router1에서는 자신에게 붙어있는 2.0.0.0 대역을 목적지로 한다고 판단하여 자신의 Network에게만 주게 되고 Router2에게는 주지 않습니다. 즉, 라우팅을 하기는 했지만 제대로 되지 않은 것입니다. 이를 방지하기 위해서는 라우터에서 auto-summary기능을 끄는 no auto-summary를 입력해 주어야 합니다.


3. 단점

RIP는 오래된 역사와 함께 단점이 많습니다.

 

[업데이트 주기]

RIP의 특징에서 30초마다 업데이트를 한다고 했습니다. 즉, Network의 상태가 변한다면 이웃 라우터가 알게 되는데 30초가 걸린다는 뜻이며 최대 Hop인 15 Hop 거리에 있는 라우터는 15 * 30 = 450초 이후에나 알 수 있다는 뜻입니다.

 

[트래픽]

RIP는 30초마다 업데이트를 위한 Routing Table을 전송합니다. 이는 Network가 변화하지 않아도 전송하기 때문에 Network에 필요 없는 부하를 줍니다.

 

[무한 루프]

만약 Router1에 연결되어 있던 2.1.1.0 Network가 사라졌다고 가정하겠습니다. 이때 Router1이 Routing Table을 업데이트하기 전에 Router0에서 Router1에게 "2.1.1.0을 가는 방법은 내가 알고 있다"라는 Routing Table을 전달받을 수 있습니다. 만약 이렇게 된다면 Router1은 자신의 Routing Table에 2.1.1.0은 Router0로 보내라고 기록하게 될 것이며 Router0에는 2.1.1.0은 Router1로 보내라고 기록되어 있을 것입니다. 따라서 만약 2.1.1.0 대역으로 데이터를 보내게 된다면 두 라우터 사이에서 무한히 루프가 돌게 될 것입니다.


4. 마치며

RIP는 간단히 설정할 수 있다는 장점을 가지고 있지만 여러 단점 때문에 대규모 Network에서는 사용하지 않고 소규모 Network에만 적용되고 있습니다.

반응형