Count-To-Infinity 문제
주로 네트워크에서 링크가 끊어지거나 특정 경로가 더 이상 유효하지 않을 때 발생할 수 있다.
이 문제는 벨만-포드 알고리즘을 사용하는 거리 벡터 라우팅 프로토콜에서 잘못된 경로 정보가 무한대로 증가하면서 전파되는 상황이다. 특히, 라우터들이 자신의 경로 정보를 주기적으로 이웃 라우터들과 교환하는 방식에서 발생할 수 있다.
시나리오 (given by GPT)
- 네트워크 설정:
- 라우터 A, B, C가 직선 형태로 연결되어 있습니다.
- 초기 경로는 A - B - C로 구성되며, 각 링크의 가중치는 1입니다.
- 링크 실패:
- A와 B 사이의 링크가 끊어집니다.
- B와 C는 여전히 서로 연결되어 있습니다.
- 라우터의 동작:
- 링크가 끊어진 후, 라우터 A는 B로 가는 경로가 더 이상 유효하지 않다는 것을 인지합니다.
- 라우터 A는 무한대 값(∞)으로 B로의 경로를 설정합니다.
- 라우팅 업데이트:
- 라우터 B는 여전히 C로 가는 유효한 경로를 가지고 있으며, A로부터의 경로가 업데이트되지 않았음을 인지하지 못합니다.
- B는 A로의 경로가 무한대(∞)임을 모르고, C로부터 받은 경로를 사용하여 A로 가는 경로를 업데이트합니다. (A -> B -> C)
- 경로 갱신:
- 라우터 B는 A에게 자신이 C를 통해 A로 갈 수 있다고 잘못된 정보를 보냅니다.
- 라우터 A는 B로부터 받은 정보를 기반으로 다시 경로를 업데이트하고, 이 과정이 반복됩니다.
- 이 과정에서 각 라우터는 잘못된 경로 정보를 가지고 반복적으로 업데이트를 수행하여, 경로 길이가 무한대까지 증가하게 됩니다.
해결하기 위한 기법들
Split Horizon
라우터가 특정 경로 정보를 그 정보를 받은 방향으로 다시 보내지 않도록 한다. 이를 통해 잘못된 경로 정보의 순환을 방지할 수 있다.
Example
- 라우터 A가 B로부터 받은 경로 정보를 다시 B에게 보내지 않는다.
- A가 C를 통해 B로의 경로 정보를 받았다면, A는 B에게 C를 통해 B로의 경로가 있다고 말하지 않는다.
Split Horizon with Poison Reverse
Split Horizon 기법을 강화한 방법이다. 라우터가 특정 경로 정보를 무한대 값으로 설정하여 해당 경로가 유효하지 않음을 명시적으로 알린다.