포이즌 리버스(Poison Reverse)
포이즌 리버스(Poison Reverse)는 라우팅 알고리즘에서 사용되는 기술로, 라우팅 루프(routing loops)를 방지하기 위해 쓰입니다.
이 기술은 라우팅 알고리즘 중 하나인 거리 벡터 라우팅 알고리즘(Distance Vector Routing Algorithm)에서 주로 사용됩니다.
Count to Infinity Problem는 무엇인가
포이즌 리버스는 Count to infinity problem의 해결책이기 때문에 Count to infinity problem를 먼저 짚고 가야 합니다
Count to infinity problem은 거리 벡터 라우팅 알고리즘에서 발생할 수 있는 문제입니다.
이 문제는 네트워크에서 특정 링크 또는 라우터가 실패할 때 라우팅 테이블이 빠르게 업데이트되지 않아 발생하는 라우팅 루프를 말합니다.
거리 벡터 라우팅 알고리즘에서 각 라우터는 이웃 라우터와 자신의 라우팅 테이블을 주기적으로 교환합니다.
링크 또는 라우터가 실패한 경우, 라우터들은 서로에게 이러한 변경 사항을 전파하여 라우팅 테이블을 업데이트해야 합니다.
그러나 이러한 업데이트가 느리게 전파되면 라우터들은 오래된 라우팅 정보를 기반으로 패킷을 전달하게 되어 라우팅 루프가 발생할 수 있습니다.
이 문제를 "count to infinity"라고 부르는 이유는 라우터들이 올바른 경로를 찾기 위해 거리 값을 무한대로 증가시키는 것처럼 보이기 때문입니다.
이 문제는 라우팅 프로토콜의 수렴 시간을 늘리고, 네트워크 성능을 저하시키며, 라우팅 루프를 발생시킬 수 있습니다.
포이즌 리버스나 스플릿 호라이즌과 같은 기술들은 이러한 문제를 완화하려고 사용되며, 라우팅 테이블 업데이트의 전파 속도를 높이고 라우팅 루프를 방지하는 데 도움이 됩니다.
포이즌 리버스의 원리
포이즌 리버스의 핵심 원리는 라우터가 경로 정보를 이웃 라우터들에게 전파할 때, 목적지로 향하는 경로가 자신을 통해 도달하는 경우 해당 경로의 거리를 무한대로 설정하여 전달하는 것입니다.
이로 인해 라우팅 루프 현상을 방지하며 거리 벡터 라우팅 알고리즘의 수렴 속도를 개선합니다.
다시 말해, 포이즌 리버스는 이웃 라우터들에게 자신이 경유지로 사용되는 경로의 거리를 무한대로 알리는 것으로, 이웃 라우터들이 해당 경로를 사용하지 않도록 하여 라우팅 루프를 예방하는 것이 핵심입니다.
포이즌 리버스의 예시
- 네트워크에 라우터 A, B, C, D가 있고, 각 라우터는 서로 인접하게 배치되어 있습니다. (A-B-C-D 순서로 연결)
- 각 라우터는 이웃 라우터까지의 거리를 알고 있으며, 초기 상태에서는 다음과 같습니다.
- A: B까지 거리 1
- B: A까지 거리 1, C까지 거리 1
- C: B까지 거리 1, D까지 거리 1
- D: C까지 거리 1
- 라우터 C와 D 사이의 연결이 끊어집니다.
- 라우터 C는 D까지의 거리를 무한대로 설정하고 포이즌 리버스를 적용하여 라우터 B에게 D까지의 거리가 무한대라고 알립니다.
- 라우터 B는 자신을 통한 경로가 D까지의 거리가 무한대임을 인지하고, 자신의 라우팅 테이블을 업데이트합니다.
- 라우터 B는 이 업데이트된 정보를 라우터 A에게 전달합니다.
- 라우터 A는 받은 정보를 토대로 라우팅 테이블을 업데이트하고, 더 이상 라우터 B를 통해 라우터 D에 도달할 수 없다고 인지합니다.
- 이 과정을 통해 라우팅 루프가 발생하지 않고, 네트워크 상태가 빠르게 수렴합니다
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
'Computer Science > 네트워크' 카테고리의 다른 글
링크 상태 알고리즘(Link State Algorithm) (0) | 2023.04.24 |
---|---|
거리 벡터 라우팅 알고리즘(Distance Vector Routing Algorithm) (0) | 2023.04.24 |
OSPF 프로토콜 (0) | 2023.04.06 |
서브넷 인터페이스 수와 프리픽스 계산하는 방법 (0) | 2023.04.03 |
Wireshark에서 HTTP 패킷이 안보여요 (0) | 2023.03.28 |