1. 라이브러리
  2. 라우팅과 네트워크
  3. 라우팅 프로토콜

업데이트됨 1개월 전

OSPF(Open Shortest Path First)는 라우터가 네트워크를 인식하는 방식에 있어 근본적인 전환을 나타냅니다. 이웃 라우터에게 "X까지 얼마나 멀어요?"라고 묻고 그 답을 신뢰하는 대신, OSPF 라우터는 완전한 토폴로지 정보를 공유합니다. 모든 라우터가 동일한 지도를 만듭니다. 모든 라우터가 스스로 경로를 계산합니다.

이것이 모든 것을 바꿉니다.

지도 vs. 길 안내

RIP과 같은 거리 벡터 프로토콜은 교차로마다 길을 물어보는 것과 같습니다. "시내까지 얼마나 걸려요?" "저쪽으로 세 블록이요." 당신은 그 답을 믿습니다. 앞에 공사 중인 곳이 있는지, 그 사람이 언급하지 않은 더 빠른 경로가 있는지 알 수 없습니다. 그냥 안내를 따를 뿐입니다.

OSPF는 다르게 작동합니다. 각 라우터는 자신이 볼 수 있는 것—직접 연결된 링크—을 다른 모든 라우터와 공유합니다. 이 조각들로부터 각 라우터는 전체 네트워크의 동일하고 완전한 지도를 구성합니다. 지도가 있으면 길을 물어볼 필요가 없습니다. 직접 최적 경로를 계산합니다.

이것이 링크 상태 방식입니다: 경로가 아닌 토폴로지를 공유합니다.

라우터가 지도를 구성하는 방법

발견: 라우터는 OSPF가 활성화된 인터페이스에서 Hello 패킷을 전송합니다. 두 라우터가 서로의 Hello를 수신하고 타이밍 파라미터에 동의하면 이웃(neighbor)이 됩니다.

공유: 각 라우터는 직접 연결된 네트워크를 설명하는 링크 상태 광고(LSA)를 생성합니다. 이 LSA들은 네트워크 전체에 플러딩됩니다. 모든 라우터는 다른 모든 라우터의 LSA를 수신합니다.

동기화: 라우터는 링크 상태 데이터베이스가 서로 일치하는지 확인합니다. 자신이 갖고 있지 않은 LSA를 수신하면 전체 데이터를 요청합니다. 결과적으로 모든 라우터는 완전한 토폴로지의 동일한 사본을 보유하게 됩니다.

계산: 완전한 지도를 바탕으로 각 라우터는 다익스트라 알고리즘(OSPF 이름의 "Shortest Path First")을 실행하여 모든 목적지까지의 최적 경로를 계산합니다. 라우터는 모든 네트워크에 도달하는 최단 경로 트리의 루트가 됩니다.

이것의 우아함: 어떤 라우터도 다른 라우터의 라우팅 결정을 신뢰하지 않습니다. 모든 라우터는 동일한 진실의 원천으로부터 스스로 결정을 내립니다.

이것이 중요한 이유

빠른 수렴: 링크에 장애가 발생하면, 이를 감지한 라우터가 새 LSA를 플러딩합니다. 모든 라우터가 이를 수신하고, 경로를 재계산하며, 라우팅 테이블을 업데이트합니다—보통 수 초 내에. 홉 단위로 업데이트가 전파되기를 기다릴 필요가 없습니다.

태생적으로 루프 없는 구조: 모든 라우터가 동일한 알고리즘으로 동일한 지도에서 계산하므로 라우팅 루프가 형성될 수 없습니다. 거리 벡터 프로토콜을 괴롭히는 카운트 투 인피니티(Count to Infinity) 문제가 없습니다.

대역폭 효율성: LSA는 변경이 발생할 때만 플러딩됩니다. 주기적인 전체 라우팅 테이블 교환이 없습니다.

동일 비용 다중 경로(ECMP): 여러 경로의 비용이 동일한 경우, OSPF는 부하 분산을 위해 이 모두를 동시에 활용할 수 있습니다.

에어리어로 확장하기

완전한 지도 방식에는 비용이 따릅니다: 네트워크가 커질수록 지도도 커집니다. 수천 개의 라우터가 있는 토폴로지에서 다익스트라 알고리즘을 실행하는 것은 부담이 큽니다. 라우터가 많을수록 더 많은 LSA, 더 많은 메모리, 더 많은 CPU가 필요합니다.

OSPF는 복잡성을 묶어두는 논리적 그룹인 에어리어(Area)로 이를 해결합니다.

에어리어 0 (백본): 모든 것을 연결하는 코어입니다. 다른 모든 에어리어는 에어리어 0에 연결되어야 합니다.

일반(비백본) 에어리어: 각각 자체적인 완전한 토폴로지를 유지하지만, 다른 에어리어로의 요약된 경로만 볼 수 있습니다. 에어리어 1의 라우터는 에어리어 2의 상세 토폴로지가 필요하지 않습니다—"네트워크 X, Y, Z는 에어리어 0을 통해 접근 가능합니다"로 충분합니다.

에어리어 경계 라우터(ABR): 여러 에어리어에 걸쳐 인터페이스를 가진 라우터입니다. 각 에어리어에 대해 별도의 링크 상태 데이터베이스를 유지하고 에어리어 간 경로를 요약합니다.

이를 통해 2단계 계층이 만들어집니다: 각 에어리어 내의 상세 토폴로지, 에어리어 간의 요약 라우팅. 각 에어리어를 관리 가능한 크기로 유지함으로써 네트워크는 수천 개의 라우터 규모로 확장될 수 있습니다.

스텁 에어리어는 이를 한 단계 더 발전시킵니다. 스텁 에어리어는 외부 경로(다른 프로토콜에서 재배포된 경로)를 받지 않고, 기본 경로만 사용합니다. 완전 스텁 에어리어는 에어리어 간 경로도 받지 않습니다. 저장해야 할 정보가 적고, 수행해야 할 계산도 적습니다.

비용 지표

OSPF는 보통 대역폭에서 파생된 비용으로 경로를 선택합니다:

비용 = 기준 대역폭 / 인터페이스 대역폭

기본 100 Mbps 기준으로:

  • 10 Mbps 링크: 비용 10
  • 100 Mbps 링크: 비용 1
  • 1 Gbps 링크: 비용 1 (계산 결과가 1로 내림됨)

마지막 항목에서 문제가 드러납니다. 현대 네트워크에서는 기준 대역폭을 10 Gbps 이상으로 높여야 더 빠른 링크가 실제로 더 낮은 비용을 갖게 됩니다.

경로 비용은 모든 링크 비용의 합입니다. OSPF는 항상 총 비용이 가장 낮은 경로를 선택합니다.

지정 라우터 선출

이더넷 같은 브로드캐스트 네트워크에서 OSPF는 문제에 직면합니다. 열 개의 라우터가 같은 세그먼트를 공유한다면, 각각이 나머지 아홉과 인접 관계를 형성해야 할까요? 그것은 45개의 인접 관계와 45개의 별도 데이터베이스 동기화를 의미합니다.

OSPF의 해결책: 지정 라우터(DR)와 백업 지정 라우터(BDR)를 선출합니다. 모든 라우터는 DR과 BDR에만 인접 관계를 형성합니다. DR은 네트워크를 대표합니다—세그먼트를 대신하여 LSA를 생성하고 동기화를 관리합니다.

생각해 보면 정말 흥미롭습니다. 라우터들이 선거를 합니다. 가장 높은 우선순위(동점일 경우 가장 높은 라우터 ID)를 가진 라우터가 그룹의 대변인이 됩니다. 기계들 사이의 민주주의입니다.

점대점(Point-to-Point) 링크는 이 과정을 건너뜁니다—두 라우터가 그냥 직접 인접 관계를 형성합니다.

장애와 복구

라우터가 이웃으로부터 Hello 패킷을 받지 못하면, 기다리다가(기본: 40초, 4번의 Hello를 놓침) 이웃이 죽었다고 선언합니다. 더 빠른 감지를 위해 타이머를 줄이거나, 서브초 수준의 장애 감지를 위해 양방향 포워딩 감지(BFD)를 사용할 수 있습니다.

감지한 라우터는 변경된 토폴로지를 반영하는 새 LSA를 생성합니다. 이 LSA들은 신뢰성 있게 플러딩됩니다—라우터가 수신을 확인(ACK)하고, LSA는 확인될 때까지 재전송됩니다.

업데이트된 LSA를 수신한 모든 라우터가 SPF 재계산을 실행합니다. 현대 라우터에서 이는 밀리초 내에 완료됩니다. 새 경로가 설치되고 트래픽이 살아있는 경로로 전환됩니다.

총 수렴 시간: 타이머를 세밀하게 조정하고 BFD를 사용하면 종종 1초 미만입니다.

인증

OSPF는 악의적인 라우터가 잘못된 토폴로지 정보를 주입하는 것을 막기 위해 인증을 지원합니다:

  • 없음(Null): 인증 없음 (기본값, 보안 미적용)
  • 평문: 패스워드를 평문으로 전송 (최소한의 보안)
  • 암호화: MD5 또는 SHA 기반 (이것을 사용하세요)

운영 네트워크에서는 반드시 암호화 인증을 사용하세요.

OSPF vs. 대안 프로토콜

vs. RIP: OSPF는 더 큰 규모로 확장되고, 더 빠르게 수렴하며, 대역폭을 더 효율적으로 사용하고, 더 나은 경로 결정(홉 카운트 대신 대역폭 기반 비용)을 내립니다.

vs. EIGRP: 시스코의 독점 프로토콜로 유사한 성능을 제공하지만 벤더 선택을 제한합니다. 다중 벤더 환경에서는 개방 표준인 OSPF가 우위를 가집니다.

vs. IS-IS: 또 다른 링크 상태 프로토콜로 대형 서비스 제공업체에서 인기가 있습니다. 유사한 기능이지만 다른 역사를 가집니다(OSI vs. IP). OSPF는 기업 네트워크를 지배하고, IS-IS는 통신사 네트워크를 지배합니다.

OSPF가 적합한 경우

  • 수십에서 수천 개의 라우터를 가진 중대형 네트워크
  • 개방 표준이 필요한 다중 벤더 환경
  • 빠른 페일오버가 필요한 네트워크
  • 중복 경로가 있는 복잡한 토폴로지
  • 대규모 성장을 계획하고 있는 조직

대안을 고려해야 할 경우

  • RIP의 단순함으로 충분한 소규모 네트워크
  • EIGRP의 효율성이 유리한 전체 시스코 환경
  • IS-IS 관례가 지배하는 대규모 서비스 제공업체 백본

핵심 요약

OSPF의 핵심 통찰은 지도를 공유하는 것이 길 안내를 공유하는 것보다 낫다는 것입니다. 모든 라우터는 동일한 토폴로지 데이터베이스를 유지하고, 스스로 최단 경로를 계산하며, 공유된 진실로부터 독립적인 라우팅 결정을 내립니다. 이것은 라우팅 루프를 없애고, 빠른 수렴을 가능하게 하며, 계층적 에어리어 설계를 통해 확장됩니다. 백본 에어리어(에어리어 0)는 다른 모든 에어리어를 연결하며, 에어리어 경계 라우터(ABR)가 에어리어 간 경로를 요약합니다. 대역폭 기반 비용 지표가 경로 선택을 안내하며, 동일 비용 경로 간 부하 분산도 지원합니다. 범용 벤더 지원을 갖춘 개방 표준으로서, OSPF는 확장 가능하고 빠른 수렴이 필요한 기업 및 서비스 제공업체 네트워크의 내부 라우팅 프로토콜로서 압도적인 선택으로 남아 있습니다.

OSPF에 관한 자주 묻는 질문

왜 에어리어 0이 백본이어야 하나요?

OSPF의 2단계 계층은 다른 에어리어들을 연결하는 전송 에어리어가 필요합니다. 에어리어 0을 백본으로 지정하는 것은 규칙을 단순화하는 설계 선택입니다: 모든 에어리어가 에어리어 0에 연결되고, 에어리어 간 트래픽은 에어리어 0을 통해 전송됩니다. 이는 에어리어 간 라우팅 루프를 방지하고 라우팅 계층을 예측 가능하게 만듭니다.

두 에어리어가 에어리어 0에 직접 연결할 수 없으면 어떻게 되나요?

에어리어 0에 도달하기 위해 중간 에어리어를 통과하는 논리적 터널인 가상 링크(virtual link)가 필요합니다. 가상 링크는 최적이 아닌 물리적 토폴로지에 대한 임시방편입니다. 새 네트워크를 설계한다면, 모든 에어리어가 백본에 물리적으로 연결될 수 있도록 하여 가상 링크가 필요 없게 하세요.

적절한 에어리어 경계를 어떻게 선택하나요?

상세한 토폴로지 가시성이 필요한 라우터들을 함께 묶으세요. SPF 계산이 빠르게 유지될 수 있도록 에어리어 크기를 적절히 제한하세요(보통 에어리어당 50~100개 라우터 이하). 요약이 자연스럽게 이루어지는 네트워크 경계에 ABR을 배치하세요. 관리 경계는 종종 에어리어 경계와 잘 맞습니다.

왜 10 Gbps 링크가 1 Gbps 링크보다 선호되지 않나요?

기준 대역폭이 아마도 기본값인 100 Mbps로 설정되어 있어서 두 링크 모두 비용이 1이 됩니다. 더 빠른 링크가 그에 맞는 낮은 비용을 갖도록 모든 라우터에서 기준 대역폭을 10 Gbps 이상으로 높이세요(모든 라우터에서 동일한 값으로 설정해야 합니다).

이 페이지가 도움이 되었나요?

😔
🤨
😃
OSPF (Open Shortest Path First) • 라이브러리 • Connected