Routing Information Protocol은 다이나믹 프로토콜에 해당하며, 내부용 라우팅 프로토콜(IGP)이다. Distance와 Vector로 길을 찾아가는 Distance Vector Routing Protocol이다. RIP에서 길을 결정하는 기준은 Hop 카우늩이며 , 최대 홉카운트는 15이다. (16부터는 도착불가능) 이 프로토콜은 30초 단위로 업데이트를 한다.(디폴트)
RIP는
1. 가장 표준의 프로토콜이며
2. 설정하기가 쉽고
3. 메모리 사용량이 적다
하지만
1. 목적지까지의 경로탐색방법이 단순하다. 라우터를 몇번 거쳐서 도착하는지 파악하는 방식이며, 이를 홉카운트라고 부른다,
하지만 이 홉카운트방식은 문제가 하나 있는데, 바로 회선의 속도를 고려하지 않는것이다. 여러 회선을 거치더라도 속도차가 많이나게 되면 라우터를 경유하는 방식이 더 효과가 좋기마련이지만, 홉카운트만 계싼할떄는 이를 파악할 수 가 없다.
그리고 15개 이상의 홉카운트가 있을경우 도달할 수 없는 위치라 판단한다. 따라서 대형 네트워크에서는 사용이 부적절하다.
하지만 표준 라우터이고, 구성이 쉬우며 메모리의 이점을 인해 아직도 많이 사용하고있다.
한번 배운 라우팅 테이블을 계속 전달하기 때문에 모든 네트워크가 전달되는 시간(Convergence Time)이 많이걸린다. 이때 루핑이 발생할수도있다.
A B C라우터가 있다고하자. 이때 A라우터에 라우팅 테이블이 전달되고나면, 업데이트 시간후에 이는 B테이블에 전달될것이다. 그리고 다시 업데이트 타임이 소요된 후에 C테이블에 전달될것이다. 만약 디폴트 30초 세팅이라고 한다면, A에서변경된 테이블은 C까지 1분이나 걸리게된다.
만약 C뒤에 라우터가 더 있다면 이는 점점 커지게 된다.
A B C 라우터가 있고 모두 동일한 라우팅 테이블을 가지고있다고 하자.
이때 한 테이블 5.1.0.0 이 다운됐다고 하자. 아직 B, C는 업데이트 되기 전이라 이를 알지 못한다
이때 B가 라우팅테이블을 업데이트하면, A는 5.1.0.0한테 B를 통해서 갈 수 있다고 생각하게되고, 자신의 라우팅 테이블을 바꾸게 된다.
그 후, B는 다시 A의 정보를 보고 5.1.0.0의 홉값을 3으로 올리게된다(자신의 1에서 A의 2를 받아 3)
이런식으로 죽은 네트워크로 가는 데이터가 계속 반복을 통해 트래픽에 부담을 주게 된다.
앞서 말한대로 Maximum Hop을 지정해서 15까지만 측정하고 16부터는 갈 수 없다고 판단, 다운시키는 방법이다.
하지만 이는 네트워크 규모에 따라 약점이 되기도 한다.
Hold Down Timer
네트워크가 다운되면, A라우터는 Hold Down 타이머를 시작한다. 이때, B가 라우팅테이블 업데이트를 통해 A한테 A를 거쳐서 다운된 네트워크로 갈 수 있다고 하면, A는 이를 무시한다. 기존의 A라우터는 1의 홉카운트를 가지고 있었는데 B가 더 나쁜 홉카운트를 준다면 이를 무시하는 방식이다.
업데이트 시간이 지나고 A가 B D에 업데이트를 하면, B D역시 Hold Down 타이머를 시작한다.
이제 B D도 C가 A관련 정보를 주더라도 홉카운트가 나쁘다면 이를 무시하는것이다.
스플릿 호라이즌
라우팅 정보가 들어온 곳으로는 같은 정보를 내보낼 수 없다는 뜻이다.
어느 네트워크 정보를 인접한 라우터에서받았다면, 그 인접한 라우터가 그 네트워크에 더 가까이 있을 것이며, 이러한 정보를 다른 라우터로 부터 받을 필요가 없다는것이다.
라우트 포이즈닝
네트워크 A가 끊어졌다면 이 네트워크에 대한 메트릭 값을 16으로 바꾸서 더 이상 그 네트워크에 대한 정보를 받지 않는것이다.
포이즌리버스업데이트를사용한스플릿호라이즌
라우팅 정보를 돌려주기는 하나 이 값을 무한대로 바꾸는것이다.
RIP와 마찬가지로 라우팅 프로토콜이며, Vector Distance 방식을 앗용하며 IGP이다. 이는 표준 프로토콜이 아니라 CISCO에서 만들어낸 프로토콜이다. IGRP는 홉카운트만 보는것이 아니라대 대역폭, 지연, 신뢰성, 부하, MTU(전송가능 최대유닛)을 보고 결정하게 된다.
IGRP는 30초에 한번씩 업데이트가 발생하며, 홉카운트 방식이 아니기에 대형 네트워크 적용에도 문제가 없다
다만 시스코 라우터에서만 사용이 가능하다는 단점이 있다.
Open Shortest Path First
IP 패킷은 프레임 해더 | 프레임 페이로드 | CRC 로 구성되어 있다
그 중, 프레임 페이로드 안에는 IP 헤더 | 프로토콜 넘버 | 패킷 페이로드가 있다.
이 프로토콜 넘버 안에 OSPF는 10진수(89)로 들어가있다.
RIP와 비교했을때,
Convergence Time에서 바로바로 변화를 알아낼수 있어서 더 빠르다.
VLSM역시 OSPF는 지원할 수 있으며, 네트워크 대역폭 측면에서도 낭비가 적다.
또한 RIP의 홉카운트방식과 달리 OSPF의 경로탐색은 복합적이라 더 정확하고 빠르다.
무엇보다 OSPF는 Linked State Algorithm이다.
우선 A라우터가 켜지면서 이웃 라우터에게 헬로메시지를 보낸다. 이는 이웃 라우터가 OSPF인지 파악하는것이다.
이때 ID를 같이 보내는데 이 ID는 라우터의 IP중 가장 높은것을 사용한다
첫 상태에서 A는 누가 자신의 이웃인지 모르기에 특정 주소로 멀티캐스트를 보내게된다. 이떄 이 메세지를 받은 라우터B들은 이를 자신의 이웃으로 기록한다
그후 B라우터들이 A에게 유니캐스트로 메세지를 보낸다. 이 메세지 안에는 맣은 정보들이 들어있다.
이때 특정값 [Hello/dead interval, Area-ID, password, Stub area flag]가 동일하다면 서로 이웃으로 인정하는것이다.
ID의경우 아까 언급한데로 보통 가장 높은 IP를 쓰지만 (변동성을 줄이기 위함) Loopback 인터페이스가 있다면 높낮이에 상관없이 무조건 이 주소를 ID로 쓴다
OSPF 라우터들이 세그먼트에 참가하게되면 Designated Router, Back-up Designated Router를 선거를 통해 뽑게 된다.
이 두 라우터는 모든 OSPF의 링크정보를 받아서 Link State 교환시 발생하는 트래픽을 줄이고 일치성을 관리하기 위해서 존재한다.
따라서 OSPF에서 DR, BDR의 Link State 는 Sync하여 Adjacency를 가져야한다.
이 선출과정은 Priority로 선출된다.
모든 OSPF 라우터들은 기본값으로 1을 가지게된다. 이 Priority값을 세팅하는것으로 선출과정에 개입할 수 있다.
만약 Priority가 같다면 ID값이 큰 값으로 결정하게 된다.