상세 컨텐츠

본문 제목

동적 라우팅의 개념 및 RIP 프로토콜

네트워크 기초

by 찌르렁 2020. 10. 27. 02:51

본문

정적 라우팅은 최종 목적지까지 경로를 직접 설정하여 통신을 하였다. 그러나 동적 라우팅은 라우터에 경로를 설정하는 것이 아닌 각각의 라우터가 자신의 정보를 다른 라우터에게 "광고"하도록 하여 직접적인 경로 설정 없이 목적지까지 도달할 수 있도록 하는 것을 의미한다. "광고"란 내 정보를 남에게 알리는 행위이다. 특정 라우터가 자신의 정보를 남에게 알리면 다른 라우터들은 경로를 직접적으로 설정하지 않아도 해당 라우터의 정보를 수신할 수 있을 것이다. 이를 통해서, 관리자가 일일이 경로를 지정하지 않아도 길을 찾아갈 수 있다. 동적 라우팅은 라우트 간 서로 "광고"라는 의사소통으로 연결되기 때문에, 라우팅의 정보를 교환하는 여러 가지 방식(언어, 프로토콜)이 존재한다.

 

동적 라우팅의 첫 번째로는 프로토콜로는 각각의 라우터들이 자신의 정보를 광고하면서, 라우팅 할 때 서로서로 정보를 교환한다는 의미의 프로토콜인 RIP(Routing Information Protocol)이다. (해당 프로토콜은 실제 사용은 잘 하지 않지만 동적 라우팅의 개념을 쉽게 알 수 있기 때문에 공부하기 좋다.)

 

Routing Infomation Protocol 라우터의 정보를 서로 교환하는 프로토콜 RIP

 

동적 라우팅에서 간단한 프로토콜 중 하나이다. RIP는 서로의 라우터 정보를 교환하는데 적어도 30초마다 한 번씩 교환한다. 사용자가 동기화 명령을 직접적으로 하지 않아도 라우터가 자체적으로 30초마다 광고한다. 라우터들은 다음과 같이 지속적으로 서로의 정보를 교환한다.

 

RIP는 다음과 같은 특징을 가진다.

 

1 AS 내부를 구성하는 내부용 라우팅 프로토콜(IGP, Interior Gateway Protocol)이다.
여기서 AS는 "Autonomous System"을 뜻하며, 자율신경계 네트워크를 의미하는데, 같은 프로토콜(언어)를 사용하는 환경은 같은 AS라고 한다. 즉 RIP는 프로토콜이 서로 다른 시스템끼리의 통신은 불가능한 AS 내부용 라우팅 프로토콜이다.
(외부용 라우팅 프로토콜은 EGP, Exterior Gateway Protocol 이라고 말한다.)
2 디스턴스디스턴스 벡터(Distance Vector) 라우팅 프로토콜로서 거리(홉)과 방향으로 길을 찾아가는 프로토콜이다.
디스턴스 벡터 라우팅은 인접해 있는 라우터 간의 거리(Distance)와 방향(Vector)에 대한 정보를 이용하여 최적의 경로를 찾고  그 최적 경로를 이용할 수 없을 경우 다른 경로를 찾는 라우팅 알고리즘으로, 대표적인 프로토콜에는 RIP와 IGRP가 있다.
여기서 홉은 현재 경로까지 몇 개의 "광고하는 장비(라우터)"를 거쳐서 넘어왔는가를 측정하는 단위이다.
따라서 RIP는 라우터가 거리(몇 개 측정했는가?)와 방향(어디로부터 왔는가?)의 정보를 광고하도록 한다.
3 경로 설정 기준은 홉(Hop)을 사용하며 최대 15개까지(소규모) 허용한다.
이는 라우터가 15개(15 Hop)가 넘어가면 통신이 불가능하다는 의미이며, 따라서 RIP는 실무에서는 거의 사용되지 않는 프로토콜이다.
4 라우팅 업데이트 주기는 30초이다.
이는 라우터가 자신의 정보를 30초마다 근접한 라우터로 "광고"를 한다는 의미이며, 이를 통해 각각의 라우터들은 경로 이상이나 새로 생긴 경로들을 갱신한다.
따라서 RIP는 30초마다 네트워크에 상태가 변하지 않아도 지속적으로 라우팅 정보를 송수신하기 때문에 네트워크 트래픽을 낭비한다.
5 디폴트 4부터 지정 6까지 로드 밸런싱(부하 분산)이 가능하다.
이는 경로가 4개 있을 경우 패킷을 4곳으로 나누어서 보낼 수 있다는 의미이다.

 

RIP는 설정이 간편하고 소규모 네트워크에서는 사용이 용이한 장점이 있다. 그러나 RIP는 최적 경로 선택에서 Hop 수를 기준으로 경로 하는데, 이것은 RIP의 단점이 될 수도 있다. 다음과 같은 네트워크 구성을 보자.

 

C1에서 C2로 간다고 할 때, RIP의 기준에서는 R1에서 R3, R4, R2를 거처 가는 경로가 R1에서 R2를 거쳐 가는 경로보다 홉 수가 크기 때문에 RIP는 후자의 경로를 선택할 것이다. 그러나 각 경로의 전송 속도를 보게 되면, 전자가 훨씬 빠른 전송이 가능한 것을 확인할 수 있는데, RIP는 오로지 경로의 수만 확인하기 때문에 이러한 경우에서는 비효율적인 경로 선택이 발생할 수 있다.


다음과 같은 네트워크가 존재한다.

 

각각의 라우터(R1, R2)는 서로 경로를 2개만 가지고 있기 때문에 2번만 광고하면 된다. R1의 RIP 설정 과정이다.

 

 

명령어 설명
router rip Grobal-Config 모드에서 RIP router 설정 명령으로 이동한다.
network [네트워크 주소] 광고하고자 하는 자신에게 연결된 IP 주소의 네트워크 주소를 입력한다.

 

해당 명령어 입력 후 running-config를 확인하면 다음과 같은 설정이 생긴다.

 

R1

여기서 의문점이 생길 수 있는데, 첫 번째 연결된 네트워크 주소를 보면 "1.1.1.0"이 아닌 "1.0.0.0"으로 설정되어 있다. 이것이 RIP의 한계이다. RIP는 현시대와 맞지 않은 프로토콜이다. 과거 약 40년 전에 만들어진 프로토콜로 당시에는 컴퓨터가 별로 없고 인프라가 복잡하지 않고 단순했다. 그렇기 때문에 서브넷팅(Subnetting)의 개념이 존재하지 않았다. 즉 당시에는 classful network로 분할해도 충분한 시기였다. 따라서 RIP는 "Classful Routing" 밖에 지원하지 않는다. 첫 번째 옥텟이 1이기 때문에 RIP에서는 서브넷팅과 관계없이 무조건 A 클래스로 인식하여 "1.0.0.0"으로 나타나는 것이다.

 

R2 설정도 다음과 같이 설정한다.

 

R2

여기서 또 의문점이 생길 수 있는데, 만약 R1에 "1.1.1.1/24" 주소 이외에 "1.2.2.2/16"과 같은 주소가 존재하는 경우, 두 개가 서로 구분이 가능한가에 대한 문제이다. RIP는 Classful Routing으로 두 개 "1.0.0.0"으로 인식할 것이다. 그러나 라우터는 두 개를 구분 가능하다. 이유는 라우터에 IP를 입력할 때 ("ip address [라우터 주소]" 명령 입력 시) 서브넷 마스크를 입력해 주었기 때문이다. 따라서 이런 경우에는 IP 주소를 여러 개 입력할 이유 없이 "network 1.0.0.0" 하나만으로도 라우터는 통신이 가능하다. (이런 건 오히려 RIP가 좋다.)

 

R2까지 설정을 완료한 후, R1의 라우팅 테이블을 보면 다음과 같다.

 

붉은색으로 표시한 부분을 보면 "R"로 표시된 것이 생겼다. Code에서 R을 보면 "RIP"를 나타낸다는 것을 볼 수 있다. 우리는 정적 라우팅과 같이 다른 라우터의 경로를 설정한 적이 없다. 단지 각각의 라우터에 자신의 정보를 "광고"하라고만 설정하였다. 그런대도 R1의 라우터에는 R2의 라우터 정보가 들어왔다. 이는 서로가 광고를 한 정보를 각각의 라우터가 서로 정보를 수신하였다는 의미이다. 이러한 과정을 통해서 동적 라우팅에서는 경로 설정 없이도 동적으로 다른 라우터의 정보를 수신 가능하다.

여기서 R2의 광고 정보가 2개("192.168.20.0"과 "1.0.0.0")였는데 하나만 수신된 이유는 "1.0.0.0" 경로 정보는 이미 R1이 알고 있는 정보이기 때문에 제외하고 수신한 것이다.

 

붉은색으로 표시된 부분의 정보를 알아보겠다.

 

표시 설명
R RIP를 의미한다.
192.168.20.0/24 RIP를 통해서 수신한 IP 주소 대역폭 정보이다.
[120/1] 첫 번째 숫자 정보(120은 "AD (Administrative Distance) 값"이다.

두 번째 숫자 정보(1)은 "Metric 값"이라고 하며, RIP에서는 "홉(hop)"이라는 단위를 사용한다. hop의 의미는 라우터의 개수이다. R1에서 R2까지는 라우터 1개만큼 넘어가기 때문에 1이다. 만약 R2 뒤에 R3가 붙어있다면, R1에서 R3까지는 2가 될 것이다.

RIP는 소규모 네트워크에 적합하기 때문에, 15홉이 넘어가게 되면 통신이 불가능하다.
AD와 Metric 값은 작을수록 빠른 통신이 가능하다.
via 1.1.1.2 어느 라우터에서부터 넘어온 정보인지 알려준다.

 

다음을 보면, 설정 완료 후 192.168.10.1에서 192.168.20.1로 ping을 보냈을 때, 통신이 되는 것을 확인할 수 있다.

 

또한 "debug ip packet"을 통해서 현재 라우터의 활동 상태를 확인할 수 있다.

 

붉은색으로 된 부분의 정보가 30초 간격으로 정보가 올라오는데, d=255.255.255.255로 모든 곳으로 30초마다 broadcast 하고 있는 것을 확인할 수 있다. "no debug all"로, 현재 진행 중인 debug를 모두 종료할 수 있다.


다른 예시를 통해서 살펴보자. 다음과 같은 네트워크 구성이 존재한다.

 

RIP를 이용하여 동적 라우팅 구성을 하겠다.

 

R1 라우터의 명령어는 다음과 같다.

 

R1

R2 라우터의 명령어는 다음과 같다.

 

R2

R3 라우터의 명령어는 다음과 같다.

 

R3

설정 후 R1의 라우팅 테이블은 다음과 같다.

 

R1

R1의 라우팅 테이블을 확인하면, 2개의 C(Directly Connected)와 3개의 R(RIP)의 정보를 가지고 있는 것을 확인할 수 있다. 라우터 R1은 동적 라우팅을 통해서, 자신에게 직접적으로 연결된 두 개의 통신로에 대한 정보 (1.1.1.0 192.168.10.0 대역대)와 자신이 가지고 있지 않은 다른 통신로 ("2.0.0.0"과 "192.168.20.0", "192.168.30.0")의 정보를 가지고 있는 것이다. 특히 2.1.1.0 대역대는 RIP의 특징으로 인해서, classful로 자동 축약되어 R1은 2.0.0.0의 정보를 수신하게 된다. 제일 마지막 줄을 보면 metric 값(RIP에서는 홉의 값)이 2인 것을 확인할 수 있는데, 이는 192.168.30.0의 대역대 정보가 "광고하는 장비" R3와 R2를 거쳐 R1으로 와서 총 2개의 장비를 거치기 때문이다. R의 모든 정보라 "1.1.1.2(via 1.1.1.2)"로부터 넘어온 것을 확인할 수 있다. 각각의 라우터는 자신의 근접한 라우터에게만 광고를 한다. 따라서 R3 라우터의 정보는 R2로 넘겨주고 이 R2 정보를 다시 R1이 수신한 것이기 때문에 모든 정보는 R2(1.1.1.2)로부터 넘어오게 되는 것이다.

 

설정 후 R2의 라우팅 테이블은 다음과 같다.

 

R2

R2는 3개의 C("1.1.1.0", "2.1.1.0", "192.168.20.0")와 2개의 R("192.168.10.0", "192.168.30.0")의 정보를 가지게 된다.

 

설정 후 R3의 라우팅 테이블은 다음과 같다.

 

R3

R3는 2개의 C("2.1.1.0", "192.168.30.0")와 2개의 R("1.0.0.0", "192.168.10.0", "192.168.20.0")의 정보를 가지게 된다.


동적 라우팅은 각 라우터에서 광고하는 정보들을 서로 송수신하여 경로를 직접적인 설정 없이 동적으로 선택 가능하도록 하는 라우팅 방식이다. 그러나 동적 라우팅은 전달받는 정보에 대한 검사는 할 수 없기 때문에, "사기"당하기 딱 좋은 프로토콜이다. 정보에 대한 보안 및 인증은 3 계층에서는 처리할 수 없고, OSI 6 계층으로 올라가야 적용할 수 있는 프로토콜이 존재한다.

'네트워크 기초' 카테고리의 다른 글

Wildcard mask  (0) 2020.10.27
RIP Version 2 (동적 라우팅)  (0) 2020.10.27
라우팅 경로 결정 순서  (0) 2020.10.27
정적 라우팅(2)  (0) 2020.10.27
정적 라우팅(1)  (0) 2020.10.27

관련글 더보기

댓글 영역