RIP(Routing Information Protocol)?
: 가장 널리 사용되는 거리 벡터 라우팅 기반 내부용 라우팅 프로토콜이다.
특징
- 거리 벡터 알고리즘을 사용한다.
- 홉 카운트(Hop Count)를 통해 최적의 경로를 찾아낸다.
- 포트 번호 520에서 UDP의 서비스를 사용하는 프로세스로 수행된다.
- Classful Routing을 수행한다.
- 매 30초마다 주기적으로 자신의 라우팅 테이블를 브로드캐스팅하여 전달한다.
장점
- 구조가 간단하여 라우터의 메모리를 적게 사용한다.
- 모든 라우터에서 지원이 가능한 표준 라우팅 프로토콜이다.
단점
※ RIP 단점 대부분은 거리 백터 알고리즘의 문제점들이다.
- 단순히 홉 카운트에 의존하여 적게 거치는 것만 선택하므로 속도나 회선의 신뢰도, 회선의 로드 등을 확인할 수가 없다.
- 최대 라우팅 할 수 있는 거리가 매우 짧아 (최대 홉수가 15개) 큰 네트워크에선 사용하기가 불리하다.
- 주기적인 브로드 캐스트로 인해 트래픽 부하를 준다
- 전달 주기가 느려 테이블의 변화를 빠르게 알아채기 어렵다.
사용 용도
- 소규모 네트워크
RIP 메시지 패킷 구조
![]() |
|
왼쪽 사진에 Entry라고 하는 메시지의 한 부분은 필요로 하는 만큼 반복 될 수 있다. 즉, 라우팅 테이블 데이터가 담겨 있는 곳이다.
RIP 동작 과정
RIP는 한 네트워크 상에서 모든 라우터들이 라우팅 테이블을 전달하고, 또 받은 라우팅 테이블을 현재와 비교후 적용하여 모든 목적지에 대한 최적 경로를 유지하게 해준다. 한번 이 과정을 자세히 알아보자
라우팅 테이블?
: 라우터가 같은 네트워크 상에 존재하는 모든 목적지의 경로 상태를 담고 있는 테이블이다. 일반적으로 아래와 같은 목적지 /방향 /경로 값 형태로 되어있다.
- Destination - 목적지 네트워크
- Direction- 목적지에 대한 방향 (자신과 Next Router가 같은 자신 내부 네트워크이다.) 월래는 방향 쪽으로 연결된 인터페이스명을 넣는다. 하지만 해당 파트에선 보기 좋게 간단한 라우터 이름을 사용하겠다.
- Cost in hops - 경로 값이다.
라우팅 테이블을 수신했을때 아래 규칙에 따라 비교하여 자신의 라우팅 테이블에 적용시킨다.
RIP 알고리즘 규칙
- 수신된 경로가 현재 포워딩 테이블에 존재 하지 않는 경우 새로운 경로로 추가
- 수신된 경로의 비용이 이전 것보다 낮은 경우 현재 경로와 새로운 경로로 선택
- 수신된 경로의 비용이 이전 것보다 높으면서 다음 라우터의 값이 동일할 경우 새로운 경로로 선택
이제 현재와 같은 네트워크 환경이 있을때 RIP가 어떻게 동작하는지 알아보도록 하자
처음일때 각 라우터의 라우팅 테이블이다. 현재는 아무런 패킷을 보내지 않아 각자 자기 내부 네트워크만 알고 있다.
라우터 A를 기준으로 보겠다. 라우터 B, C의 라우팅 테이블을 수신하였다. 그림에는 보이지 않으나 같은 시간에 라우터 B는 A,C로 부터 라우터 C는 A,B로 부터 수신 받아 적용하였다.
다시 라우터 A를 본다 라우터 B의 라우팅 테이블이 넘어왔다.
오른쪽으로면 데이터의 변경상항이 있는데 N3을 제외한 다른 네트워크는 자기 자신(라우터 B)를 한번 더 거쳐야 하기 때문에 1이 증가된 것이다. 비교했을때 받은 데이터는 어느 하나 적은 값이 없기 때문에 라우터 A의 라우팅 테이블은 그대로 유지된다. (만약에 적은 값이 들어왔다면 값은 분명이 변경되었다.)
라우터 A만 봤는데 라우터 B와 라우터 C도 위 방식과 똑같이 작동한다.
라우팅 루핑
마지막으로 라우팅 루프에 대해 살펴보자 라우팅 루프는 거리 벡터 알고리즘의 취약점에서 발생한다.
아래와 같은 네트워크 환경이 있다. (마지막 부분이고 해서 라우팅 테이블은 약간 실제와 가깝게 간단한 이름이 아닌 인터페이스명과 ip주소를 사용했다.)
A라우터의 E0이 갑자기 꺼져버렸다. 하지만 아직 업데이트 주기가 되지 않아. 라우트 B, C는 알지 못한다.
그때 B라우터로부터 라우팅테이블이 들어왔고 위의 3번째 규칙에 의해(라우터 A가 192.168.0.1를 라우터 B를 통해 갈 수 있다 생각하고) cost가 2로변경되었다.
그 후 라우터 A의 갱신 주기가 돌아왔고 라우터 B는 라우터 A로 받은 라우팅 테이블에서 3번째 규칙에 의해 cost 값이 3으로 변경 되 었고 라우터 C도 라우터 B로 부터 받아 cost 4로 변경되었다.
이러한 과정은 계속 반복될 것이며 결국은 cost hops이 무한히 증가해버리는 라우팅 루핑에 빠지게 된다.
RIP도 거리 벡터 알고리즘을 사용하므로 이러한 문제가 발생할 수 있다. RIP는 아래와 같은 방법으로 해결한다.
- Maximum Hop Count
- Hold Down Timer
- 스프릿 호라이즌
- 포이즌 리버스