본문 바로가기

네트워크/네트워크 기본

Distance-Vector 라우팅 알고리즘에서의 문제점과 해결책



◈ 거리벡터 라우팅 알고리즘에서는 다음과 같은 루핑이 발생할 수 있다.
1. 라우터 C의 200.200.5.0 의 네트워크가 down된다.
2. 라우터 B의 정보를 라우터 C가 받아서 5.0 .네트워크로 가는 테이블의 데이터를 업데이트한다. 
   (원래는 Down 되었으나, 라우터 C는 B를 통해서 갈 수 있다고 인식.)
3. 라우터 C로부터 다시 정보를 받은 B는 홉 카운트를 또 추가하고, 라우터 A도 B로부터 정보를 받아 증가시킨다.
4. 결국 계속 루핑을 돌게되고, 죽어있는 네트워크로 향하는 데이터는 목적지를 찾지 못하고 네트워크에 트래픽만 발생할 뿐 라우팅을 제대로 실시하지는 못한다.


▣ 대 책
 1.Maximum Hop Count 
   최대 홉 카운트를 지정하고 최대 홉 카운트를 초과하는 경우에는 unreachable로 설정.
 
 2. Hold down Timer
  가. 라우터 C의 200.200.5.0 의 네트워크가 down된다.
  나. 라우터 C가 B에세 5.0 네트워크의 down 사실을 알리고, 라우터 B는 C로부터 정보를 받고 바로 down 처리하지 않고, B는 Hold down 시킨다.
  다. 라우터 B는 5.0 네트워크에 관한 정보 중에서 자신이 가진 메트릭 값보다 큰 값은 무시하고, Hold down 카운터가 종료되거나 목적지에 대한 새로운 경로가 지금가지고 있던 메트릭과 같거나 좋은 경로가 들어올 때만 이웃 라우터로부터의 업데이트를 받아들임.
  라. 라우터 A는 B에게 네트워크 5.0에 관한 정보를 보내지만, 메트릭이 더 크기 때문에 B에서는 업데이트하지 않고, B에서 라우터 A로 5.0의 정보를 보내서 알리고, 라우터 A도 hold down이 된다. 이 Hold down 시간 동안에 나머지 라우터들에서는 5.0 네트워크의 다운 사실을 알게 되는 것이다.
  마. 만약 네트워크 5.0이 다시살아나게 되면, 라우터 C는 B와 A에게 새로운 메트릭 값으로 정보를 보내게 되고, 다시 B와 A 라우터에서도 5.0 네트워크의활성화 상태를 인식하게 된다.

3. Split Horizon ***
  라우팅 정보를 수신 시에 자신보다 메트릭이 작은 네트워크의 정보를 보내준 라우터에는 정보 송신시에 해당 네트워크에 대한 정보를 보내지 않는다는 것. 그 네트워크에 대한 정보는 자신에게 보내 준 그 라우터가 더 인접하다고 인식하기 때문에 자신의 데이터를 송신하지는 않음. (해당 네트워크에 대한 정보만)
 Split Horizon은 두 라우터 간의 루핑 방지 기술로, 전체 라우터의 루핑을 막는 것은 어렵다.

4. Route Poisoning
  네트워크 5.0이 down 되면, 라우터 C는 해당 메트릭 값을 최대치로 바꾸고, 해당 네트워크의 정보가 들어와도 무시하게 된다. 그리고 네트워크에 대한 정보를 보낼 때 최대 값으로 보내기 때문에 라우터 B에서도 최대치로 설정되어 해당 네트워크가 down된 것을 인식하게 된다. 또한 이는 라우팅 테이블에서 삭제 후 잘못된 라우팅 정보를 받게 되는 것 또한 방지할 수 있게 해 준다.

5. Poison Reverse
   라우팅 정보를 보내온 쪽으로 되돌려 보낼 때, 이 값을 최대치 값으로 쓰는 방식. 
  다른 경로의 정보를 아주 없애는 것 대신에 최대치 메트릭을 포함하여 라우팅 업데이트를 실시하여, 다른 라우터들로부터 잘못된 경로 정보를 사용하는 것을 방지함.






  • 2012.09.09 18:40

    비밀댓글입니다

    • 지기 지기(ZIGI) 2012.09.09 23:20 신고

      DV 라우팅 프로토콜을 동작하기 위해서, 내부적으로 해당 알고리즘을 사용하는 것입니다.
      쉽게 생각하면, 반에서 1등한 학생을 찾는 '1등 찾기 프로토콜'이 있는데 이를 찾아내기 위해서, 학생 한 명, 한명 점수를 비교해서 가장 높은 학생을 찾는 것을 '1등 찾기 알고리즘'이라고 할 수 있죠. 결국 해당 프로토콜을 동작 시키는 내부적인 원리라고 생각하시면 됩니다.