라우팅 정보 프로토콜
라우팅 정보 프로토콜(RIP, Routing Information Protocol)은 경유할 가능성이 있는 라우터를 홉수로 수치화하여 거리 벡터 알고리즘으로 인접 호스트와의 경로를 동적으로 교환하고, 패킷이 목적지에 도착할 때까지 최단 경로를 결정하는 것이다. 흔히 영어 약자인 RIP(알아이피)라고 부른다.
목차
개요[편집]
관리자가 일일이 경로를 지정하지 않아도 패킷이 알아서 경로를 찾아 나가는 동적 라우팅 프로토콜의 방식 중, 거리 벡터 라우팅 프로토콜을 사용하여 거리와 방향을 기준으로 데이터가 담긴 패킷을 전달하는 프로토콜이다.[1] 기업의 근거리 통신망이나 랜(LAN)들이 서로 연결된 그룹과 같이 독립적인 네트워크 내에서 라우팅 정보 관리를 위해 광범위하게 사용된다. 경유하는 라우터의 대수(Hop count)에 따라 최단경로를 동적으로 결정하는 프로토콜로, 버전 1과 버전 2 두 가지 버전이 있다. 버전 1은 인터넷이나 인트라넷에 널리 사용되고 있으며, 유닉스의 routed가 유명하다. 버전 2는 사이더(Classless Inter-Domain Routing, CIDR)에 대응될 수 있도록 기능이 확장되어 있는 것으로, 버전 1은 RFC 1058, 버전 2는 RFC 1723으로 각각 규정되어 있다.[2] 목적지 네트워크 주소, 다음 홉의 IP 주소, 목적지 네트워크까지의 홉 수 등의 정보는, 라우터 내의 라우팅 데이터베이스에 기록되어 라우터끼리 정기적으로 정보를 교환한다. 그 중 유효한 경로를 추출한 테이블을 라우팅 테이블이라 한다. 라우팅 정보 테이블은 전송 프로토콜로, 사용자 데이터그램 프로토콜(UDP)을 사용하기 때문에 사용자 데이터그램 프로토콜 세그먼트에 캡슐화되어 포트 번호 520으로 할당된다.[3]
특징[편집]
라우팅 정보 프로토콜은 자율 시스템(Autonomous System, AS) 내부를 구성하는 내부 게이트웨이 프로토콜(Interior Gateway Protocol, IGP)로 내부 네트워크에서 사용된다. 홉 카운트를 경로 설정 기준으로 삼는데, 홉 카운트는 라우터 1개를 통과할 때마다 1씩 증가한다. 최대 홉 카운트는 15로 하고, 디폴트 라우팅 업데이트 주기는 30초다. 업데이트 시 모든 정보를 동시에 갱신하여 경로 이상이나 새로 생긴 경로 등의 정보를 업데이트한다.[1] 단일 경로 라우팅 프로토콜로 경로 지정을 하나밖에 할 수 없고, 다양한 네트워크 주소 중 IP 네트워크만을 지원하여 IP 네트워크 주소를 이용한다. 이웃한 라우터들과 대등한 관계로 정보를 교환하는 플랫(Flat) 구조 방식을 지원하고, 라우팅 광고는 클래스 형태로 이루어지며, 네트워크를 세분할 수 있는 서브넷 단위로는 전송할 수 없다.[2] 소규모 네트워크 상에서 사용할 경우 메모리 등의 자원을 적게 사용할 수 있어 효율적이고, 비교적 구성이 간편하다. 표준 라우팅 프로토콜로써 모든 제조사의 라우터에서 지원하는 프로토콜로 호환성이 좋고, 시스코(Cisco) 라우터의 경우 최소 4개에서 최대 6개의 경로에 대한 로드 밸런싱이 가능해, 패킷을 여러 경로로 나누어 보낼 수 있어 부하를 분산 시켜 처리할 수 있다. 그러나 최대 홉이 15이기 때문에 16홉 이상이면 네트워크를 찾지 못해 데이터를 보내지 못하기 때문에, 대규모 네트워크에서는 적합하지 않고, 속도나 거리 지연 등을 고려하지 않아 최적의 경로 산정에는 비효율적일 수 있다. 전체 경로를 담은 라우팅 테이블을 주기적으로 브로드캐스트 하여 전체 네트워크에 트래픽을 유발시켜 부하를 주고, 모든 라우터들 사이를 동기화 시키지 않을 경우 패킷의 경로가 부적절하게 될 수도 있다. 30초마다 주기적인 경로 업데이트를 하고, 경로를 재계산하기 때문에 몇 개의 라우터만 지나도 수 분 이상이 소요되는 늦은 수렴성이 있고, 이는 결국 나쁜 경로를 다른 라우터에게 전하여 더 나쁜 정보를 다른 라우터에게 전달하게 만들어 16 이상의 무한 홉 수로 가는 현상을 발생시킬 수 있다. 또한 30초마다 업데이트되기 때문에 홉의 다운 등 정보가 늦게 전달되어 잘못된 경로로 무한 루프에 빠지는 사태가 발생할 수 있다.[1]
동작[편집]
과정[편집]
매 30초마다 라우팅 정보 프로토콜 응답 메시지를 브로드캐스팅 하여 상대에게서 수신된 네트워크 정보를 제외한 모든 네트워크 정보를 상대에게 알려준다. 그러면 수신한 라우터는 네트워크 경로에서 더 짧은 홉 수를 수신 받았을 경우 라우팅 경로 항목을 교체하는 등 자신의 라우팅 테이블을 재작성한다. 이 과정을 반복하여 최적 경로를 찾는 것이 목표다.
패킷[편집]
라우팅 정보 프로토콜의 패킷은 요청 패킷과 응답 패킷 두 가지가 있다. 요청 패킷은 라우터가 처음 부팅되었을 때, 혹은 어떤 특정한 목적지 정보가 타임아웃 되었을 때 보내는 패킷이다. 요청 패킷을 통해 전체 목적지 정보 혹은 특정 부분의 목적지 정보를 요청할 수 있다. 응답 패킷은 실제 목적지에 대한 정보를 담고 있는 패킷으로, 응답 패킷을 수신한 경우, 라우터는 수신된 정보를 통해 최적 경로를 결정한다.[4]
타이머[편집]
라우팅 정보 프로토콜의 타이머는 업데이트 타이머, 타임아웃타이머, 가비지 컬렉션 타이머, 플러시 타이머, 트리거 업데이트 타이머가 있다. 업데이트 타이머는 라우팅 정보 프로토콜의 주기인 30초로, 라우팅 테이블 전체를 브로드캐스트 또는 멀티캐스트 방식으로 송출한다. 타임아웃 타이머는 180초로, 라우팅 테이블에 있는 매 경로마다 있어, 업데이트 정보에 해당 경로가 있으면 타임아웃 타이머를 초기화하고, 타임아웃 타이머 종료 시까지 해당 경로가 없으면, 무한대로 표시한다. 가비지 컬렉션 타이머(Garbage Collection Timer)는 120초로, 무한대로 표시하고 주변에 알리며, 즉각 삭제하기까지의 유예기간이다. 플러시 타이머는 240초로, 240초 동안 업데이트가 없는 경로에 대해서는 라우팅 테이블에서 해당 경로를 제거한다. 트리거 업데이트 타이머는 토폴로지 변화 시 업데이트를 하는 기준이 되며, 타이머 종료 전이라도 즉각적으로 라우팅 업데이트 정보를 송출한다.[5]
비용 계산[편집]
라우팅 정보 프로토콜은 메트릭에 홉 수만을 사용하기 때문에, 비용 계산 또한 홉 수를 세는 것과 마찬가지다. 먼저 직접 연결되어 있는 네트워크에 대한 비용은 0으로 계산하고, 인접한 라우터 간의 비용은 1로 계산한다. 인접한 라우팅 정보를 광고할 때, 기존의 비용 값에 1을 더한다. 주기적으로 라우팅 정보를 광고하여 라우팅 테이블을 만들게 되면, 목적지까지 갈 수 있는 경로 중 홉 수가 가장 작은 것이 경로로 선택된다. 또한 홉 수가 15를 넘으면 해당 경로는 없는 것으로 판단한다.[6]
버전[편집]
버전 1[편집]
라우팅 정보 프로토콜 버전 1은 간단하게 RIPv1이라고 쓰기도 하며, 앞의 특징들을 대부분 가지고 있다. 거리 벡터 알고리즘을 사용하는 대표적인 라우팅 프로토콜로, 소규모 또는 교육용 등 비교적 간단한 네트워크에 주로 사용되는 클래스풀 라우팅 프로토콜로, 모든 네트워크가 동일한 마스크를 사용한다고 여겨 서브넷 마스크를 무시한다. 거리를 가지고 최적 경로를 선출하는데, 거리는 라우터 개수 즉, 홉 수를 이용한다. 네트워크 변화가 있든 없든, 30초마다 주기적인 전체 라우팅 업데이트를 실시한다. 사용자 데이터그램 프로토콜 기반으로 포트 번호 520번을 사용하고, 1부터 15까지의 메트릭을 사용할 수 있고 16부터는 장애로 인식한다. 라우팅 업데이트 전송방식에 브로드캐스트 전송방식을 사용하고 신뢰도 값(AD)는 120이다.[7] 가변 길이 서브넷 마스크를 지원하지 않고, 자동 축약이 불가능하다.
버전 2[편집]
라우팅 정보 프로토콜 버전 2는 버전 1의 단점으 보완한 것으로, 버전 1과 마찬가지로 간략하게 RIPv2라고 쓰기도 한다. 버전 1과 다르게 클래스리스 라우팅 프로토콜로, 라우팅 업데이트 시 네트워크 정보와 함께 서브넷 마스크 정보도 전달하며, 자동 요약은 설정할 수도, 해제할 수도 있다. 버전 1에 비해 보안성이 강화되었고, 버전 1은 라우팅 정보 전달 시 브로드캐스트 방식을 사용하였지만, 버전 2는 멀티캐스트 방식을 사용한다. 멀티캐스트란 한 번의 송신으로 메시지나 정보를 목표한 여러 특정 컴퓨터에 동시에 전송하는 것이다. 설정 방법은 버전 1과 같지만, 버전 2 명령어를 추가해주어야 한다.[8] 버전 2의 패킷은 출발지 IP, 목적지 IP, 프로토콜, 출발지 포트, 도착지 포트, 라우팅 정보 등의 내용을 가지고 있어야 한다. 출발지 IP는 라우팅 정보를 사용하는 인터페이스의 IP 주소를 사용하고, 목적지 IP는 멀티캐스트 IP주소를 사용한다. 프로토콜에서는 사용자 데이터그램 프로토콜를 사용하여 네트워크 정보를 전송하기 때문에 사용자 데이터그램 프로토콜이라는 것을 알 수 있게 17이라는 정보를 담고 있어야 하고, 출발지 포트와 도착지 포트는 모두 사용자 데이터그램 프로토콜의 520번 포트를 이용한다. 라우팅 정보에는 목적지 네트워크, 서브넷 마스크 길이, 홉 카운트 등 라우팅 네트워크 정보를 세그먼트 내부에 가지고 있어야 한다.[9] 버전 1과 달리 가변 길이 서브넷 마스크(VLSM)를 사용할 수 있고, 자동 축약이 가능하다. 외부 게이트웨이 프로토콜(Exterior Gateway Protocol)에서 얻어진 자율 시스템 번호 등의 정보를 통지하기 위해 사용되는 외부 루트택(route tag) 기능이 있다. 버전 1과 달리 서브넷 마스크를 비트 단위로 인식할 수 있고, 멀티 라우팅 프로토콜 환경에서 라우팅 수행 중, 다음에 전송될 최적 라우터 선택이 가능하도록 다음 홉 주소를 사용한다.[10]
문제[편집]
라우팅 정보 프로토콜의 문제점은 늦은 수렴성, 라우팅 트래픽 부하, 라우팅 루프, 무한 홉 수 현상 크게 4가지가 있다. 늦은 수렴성은 라우터들이 30초마다 주기적으로 경로 업데이트를 한 뒤 경로를 재계산하기 때문에 생기는 문제로, 몇 개의 라우터만 지나도 수 분 이상이 걸리게 되는 것이다, 라우팅 트래픽 부하는 전체 경로를 담은 라우팅 테이블을 주기적으로 브로드캐스트하기 때문에 생기는 문제로, 네트워크에 트래픽 부하를 주게 된다. 라우팅 루프는 전체 라우터를 동기화시켜 주지 않으면 패킷의 경로가 부적절하게 될 수 있고, 다운 등 중요한 소식이 늦게 전달되어 잘못된 경로에서 무한 루프를 돌게 되는 것이다. 무한 홉 수 현상은 낮은 수렴성으로 인해, 나쁜 경로를 다른 라우터에게 전달하면, 그 라우터는 더 느리게 더 나쁜 정보를 다른 라우터에게 전달하여 최대 홉 수를 넘게 되는 현상이다. 라우팅 정보 프로토콜은 이와 같은 문제들을 해결하기 위해 다음과 같은 방법들을 사용하고 있다.[5]
해결 방안[편집]
라우팅 루프를 해결할 수 있는 첫 번째 방안은 최대 홉 수를 제한하는 것이다. 장애가 발생하는 즉시 해당 경로의 홉 카운트를 무한대로 인식하는 최댓값으로 조정하는 방법이다. 만약 라우터에서 무한대로 인식하는 최댓값을 16으로 정의하면, 라우팅 루프에 의해 비용이 16에 도달할 경우 해당 목적지 망은 끊어졌다고 인식하여 더 이상의 라우팅 루프가 발생하지 않는다. 라우팅 루프를 방지하기 위한 두 번째 방법은 스플릿 호라이즌(Split Horizon)이다. 스플릿 호라이즌은 상대방에게서 받은 라우팅 정보는 상대방에게 다시 보내지 않는 방법이다. 하나의 라우터가 어느 네트워크 정보를 인접한 라우터에게서 받았다면 그 망에 대한 정보는 다시 보낼 필요가 없다. 이미 알고 있는 똑같은 망 정보를 보낸다는 것은 무의미한 일이기 때문에 오히려 비활성화 된 망이 마치 자신을 통해서 연결된 것과 같은 현상이 발생한다. 세 번째 방법은 포이즌 리버스(Poison Reverse)로, 스플릿 호라이즌을 변형시킨 것이다. 상대방에게서 받은 라우팅 정보를 다시 상대방에게 넘겨주는 상황이 발생하면, 지금 보내는 라우팅 정보가 자신이 만든 것이 아닌, 상대방에게서 받았다는 것을 알려주기 위해 비용을 무한대로 설정하여 보내주는 방법이다. 네 번째 방법은 홀드 다운(Hold Down)으로, 라우팅 정보의 갱신을 일정 시간 유보시키는 개념이다. 홀드 다운 시간은 네트워크의 사태 변화가 전체 망에 전달될 수 있을 정도의 충분한 시간 값으로 정의된다. 마지막 방법은 트리거 업데이트(Triggered update)로 네트워크 토폴로지 변화에 대한 정보를 즉각적으로 전달하여 인접한 라우터들이 변화된 정보를 라우팅 테이블에 반영할 수 있도록 하는 방법으로, 잘못된 라우팅 정보의 전송을 사전에 차단하는 효과가 있다.[2]
전망[편집]
홉 수가 15를 넘어서는 인터넷과 같은 큰 규모의 망에는 적합하지 않고, 서브넷 마스크를 지원하지 않기 때문에 IP 주소 영역의 활용을 제한한다는 단점을 가지고 있으며, 경로 테이블의 전체를 매 30초마다 전송하기 때문에 효율적인 네트워크 대역폭의 사용을 제한한다. 또한 최적의 경로를 산출하기 위한 정보로서 홉만을 고려하기 때문에, 라우팅 정보 프로토콜이 선택한 경로가 최적의 경로가 아닌 경우가 많이 발생할 수 있다. 물론 이런 단점들을 보완하기 위해 버전 2가 개발되었지만, 실제로는 잘 쓰이지 않기 때문에, 대규모 네트워크에 적용할 수 있고, 지능적인 기능을 갖는 최단 경로 우선 프로토콜과 같은 링크 상태 알고리즘을 사용하는 것이 일반적인 추세이다.[11]
각주[편집]
- ↑ 1.0 1.1 1.2 Steven (Admin), 〈(이해하기) 라우팅 프로토콜 – RIP (Routing Information Protocol)〉, 《워드프레스》, 2020-06-23
- ↑ 2.0 2.1 2.2 스윗봉봉, 〈RIP 라우팅 프로토콜〉, 《네이버 블로그》, 2007-08-22
- ↑ 〈라우팅 정보 프로토콜〉, 《위키백과》
- ↑ printf7, 〈RIP 라우팅 프로토콜〉, 《네이버 블로그》, 2013-06-14
- ↑ 5.0 5.1 〈RIP Routing Information Protocol RIP 라우팅 프로토콜〉, 《정보통신기술용어해설》
- ↑ 혜민, 〈RIP 프로토콜 (Routing Information Protocol)〉, 《네이버 블로그》, 2012-10-24
- ↑ 미래해커, 〈(라우팅)RIP〉, 《티스토리》, 2017-02-20
- ↑ 〈라우팅 프로토콜: RIPv1과 RIPv2〉, 《장안대학교 인터넷정보통신과》
- ↑ 전진해가는 Cisco_Study, 〈Routing Protocol – RIPv2 (Routing Information Protocol version 2)〉, 《넷스터디》
- ↑ milktea_good, 〈5. 네트워크 계층과 라우팅 기법〉, 《티스토리》, 2020-02-25
- ↑ itmoa, 〈RIP(Routing Information Protocol)〉, 《아이티모아》, 2005-11-07
참고자료[편집]
- Steven (Admin), 〈(이해하기) 라우팅 프로토콜 – RIP (Routing Information Protocol)〉, 《워드프레스》, 2020-06-23
- 스윗봉봉, 〈RIP 라우팅 프로토콜〉, 《네이버 블로그》, 2007-08-22
- 〈라우팅 정보 프로토콜〉, 《위키백과》
- printf7, 〈RIP 라우팅 프로토콜〉, 《네이버 블로그》, 2013-06-14
- 〈RIP Routing Information Protocol RIP 라우팅 프로토콜〉, 《정보통신기술용어해설》
- 혜민, 〈RIP 프로토콜 (Routing Information Protocol)〉, 《네이버 블로그》, 2012-10-24
- 미래해커, 〈(라우팅)RIP〉, 《티스토리》, 2017-02-20
- 〈라우팅 프로토콜: RIPv1과 RIPv2〉, 《장안대학교 인터넷정보통신과》
- 전진해가는 Cisco_Study, 〈Routing Protocol – RIPv2 (Routing Information Protocol version 2)〉, 《넷스터디》
- milktea_good, 〈5. 네트워크 계층과 라우팅 기법〉, 《티스토리》, 2020-02-25
- itmoa, 〈RIP(Routing Information Protocol)〉, 《아이티모아》, 2005-11-07
같이 보기[편집]