Computer Network 07. 라우팅(3)

pastafromvictoriadesert·2023년 6월 8일
0

컴퓨터 네트워크

목록 보기
18/20

📌3. 디스턴스 벡터 알고리즘의 문제 해결책

디스턴스 벡터 알고리즘의 문제점

위 챕터에서 알아본 디스턴스 벡터 알고리즘의 문제점을 해결하기 위한 방법을 공부한다.


3.1 Maximum Hop Count 이용

RIP는 최대 홉 카운트를 15로 규정하고, 15를 넘어가는 라우팅 경로에 대해서는 unreachable로 간주한다.

  • flush time이 지난 후에는 라우팅 테이블에서 삭제처리한다.
  • 최대 홉 카운트를 정해놓으면 라우팅에서 루핑이 발생하더라도 16 이후로는 멈출 수 있다.

👉하지만, 15홉을 넘는 경우에는 아예 도달할 수가 없기 때문에, 대형 네트워크에서는 취약하다.


3.2 Hold Down Timer 이용

위 그림에서 라우터 E에 붙어있는 네트워크 A가 다운되었다고 가정한다.

  • 라우터 E는 네트워크 A가 다운되었다는 것을 라우터 A에 알린다.
  • 라우터 A는 네트워크 A에 대한 Hold Down 타이머를 시작한다.
  • 만약 이때 라우터 B가 라우팅 테이블을 업데이트 하면서 라우터 A에 네트워크 A를 자신을 통해서 갈 수 있고, 홉카운트는 4라고 얘기한다.
    👉라우터 A는 이 정보를 무시한다.

Hold Down 타이머가 동작하고 있는 동안에는 외부에서 해당 네트워크에 대한 라우팅 경로 정보를 받았을 때 원래 가지고 있던 메트릭 값보다 큰 값이 들어오면 무조건 무시한다.

메트릭 값 : 목적지까지의 거리에 대한 값으로, RIP의 경우는 홉 카운트가 된다.

Hold Down 타이머가 종료되거나 목적지에 대한 새로운 경로가 지금 가지고 있던 메트릭과 같거나 짧은 경로가 들어올 때만 이웃 라우터로부터의 업데이트를 받아들인다.

3.2.1 다른 상황

네트워크 A에 대해서 라우터 A는 홉 카운트 1을 가지고 있었다.

  • 이때, 아직 Hold Down 타이머가 끝나지 않은 상태에서 라우터 B가 네트워크 A에 대한 더 나쁜 홉 카운트(위 그림에서는 4)를 가지고 업데이트를 했다.
  • 이때, 라우터 A는 라우터 B의 업데이트 정보를 무시한다.
    👉메트릭 값이 원래 값과 같거나 더 좋지도 않고 Hold Down Timer가 아직 종료되지 않았기 때문이다.

라우터 A가 라우터 B와 D 쪽으로 업데이트를 하게 되면 이제 라우터 B와 D도 네트워크 A에 대해서 Hold Down 타이머를 작동시킨다.

  • 라우터 C가 라우터 B나 라우터 D에 네트워크 A를 홉 카운트 3으로 갈 수 있다고 업데이트를 해도 이들은 해당 정보를 무시한다.
    👉홉 카운트 3은 이미 갖고 있는 네트워크 A에 대한 메트릭 값과 같거나 좋은 값이 아니기 때문이다.

이렇게 Hold Down Time 동안 네트워크의 모든 라우터들은 네트워크 A가 다운된 것을 인지한다.

👉네트워크 A가 살아나게 되면 라우터 A는 라우터 B와 D에 홉카운트 1로 네트워크 A에 갈 수 있다고 알리게 되고, B와 D는 Hold Down Timer를 풀고 업데이트를 받아들인다.

Hold Down Timer : 어떤 경로가 죽었다고 판단되면 이 경로에 대한 상태를 바로 바꾸지 않고 일정 시간이 지난 후에 바꾼다는 뜻
👉이 일정 시간은 모든 라우터가 그 경로는 죽었음을 인식하는 시간이라고 생각하면 된다.


3.3 Split Horizon

라우팅 정보가 들어온 곳으로는 같은 정보를 내보낼 수 없다는 것

👉위 그림에서 라우터 A는 네트워크 A에 대한 정보를 이미 라우터 E에서 받았기 때문에, 네트워크 A에 대한 정보를 다시 라우터 E로 보낼수 없다는 뜻이다.

만약 하나의 라우터가 어느 네트워크 정보를 인접한 라우터에서 받았다면, 그 인접한 라우터가 그 네트워크에 더 가까이 있을 것이 분명하고, 이러한 정보를 다른 라우터로부터 더 이상 받을 필요가 없다는 뜻이다.

  • 라우터 A는 모든 라우팅 업데이트 정보를 라우터 E 쪽으로 보내지 않는 것이 아니라, 네트워크 A에 대한 정보만을 보내지 않는다.
  • 스플릿 호라이즌은 두 라우터 간의 루핑만을 막기 위한 기술이다.
    👉전체 라우터 네트워크의 루핑을 막기는 어렵다.

3.4 Route Poisoning

라우팅 테이블에 대한 극약처방(포이즈닝)

위 그림에서 네트워크 A가 다운된다면, 라우터 E가 네트워크 A에 대한 메트릭 값을 16으로 변경한다.
👉사용할수 없는 값으로 변경

라우팅 테이블에서 지워버리지는 않는다.

  • 이때 라우터 A에서 네트워크 A에 대한 업데이트 정보가 들어와도 라우터 E는 그 정보를 무시하고 네트워크 A에 대한 메트릭 값을 16으로 해서 내보낸다.
  • 따라서 라우터 A는 이후엔 네트워크 A에 대한 메트릭을 16으로 갖게 된다.
    👉다운 된 네트워크를 먼저 무한대로 바꾸어버리는 방식이다.

라우팅 테이블에서 지워버렸다가 잘못된 라우팅 정보를 받는 일을 방지한다.


3.5 Poison Reverse

스플릿 호라이즌을 약간 변형한 형태이다.

👉포이즌 리버스 업데이트를 사용한 스플릿 호라이즌 이라고도 한다.

스플릿 호라이즌처럼 라우팅 정보를 보내온 쪽으로 알려주지 않는 것이 아니다.
👉라우팅 정보를 되돌리긴 하지만 이 값을 무한대 값으로 쓰는 방식이다.

홉 개수가 무한대 라는 뜻은 경로를 사용할 수 없다는 말과 동치이다.
👉라우터는 이 경로에 대한 라우팅 업데이트를 무시한다.

경로의 정보를 아예 없애는 것보다 무한대 홉 값을 포함해서 라우팅 업데이트를 실시한다면 다른 라우터들이 실수로 잘못된 경로 정보를 사용하는 경우를 줄일 수 있다.

  • 스플릿 호라이즌은 포이즌 리버스 기능이 추가로 지원되든지 안되든지 라우팅 루프를 자기 라우터랑 붙어있는 인접 라우터에서만 방지할 수 있다.
    👉하나의 루핑 방지 방법만을 사용하는 것이 아니라 여러 가지 방식을 적절하게 활용하는 것이 중요하다.

0개의 댓글