OSPF(Open Shortest Path First)

OSPF(Open Shortest Path First)는 IP 네트워크를 위해 개발되고 SPF(Shortest Path First) 알고리즘을 기반으로 하는 링크 상태 라우팅 프로토콜입니다. OSPF는 IGP(Interior Gateway Protocol)입니다.

OSPF 네트워크에서 동일한 영역에 있는 라우터 또는 시스템은 영역의 토폴로지를 설명하는 동일한 링크 상태 데이터베이스를 유지보수합니다. 영역의 각 라우터 또는 시스템은 동일한 영역의 다른 모든 라우터 또는 시스템에서 받는 링크 상태 광고(LSA)와 자체에서 생성하는 LSA에서 링크 상태 데이터베이스를 생성합니다. LSA는 네이버와 경로 비용에 대한 정보가 포함된 패킷입니다. 링크 상태 데이터베이스를 기반으로 각 라우터 또는 시스템은 SPF 알고리즘을 사용하여 자신을 루트로 두고 최단 경로 스패닝 트리를 계산합니다.

OSPF에는 다음과 같은 주요 장점이 있습니다.
  • RIP(Routing Information Protocol)와 같은 거리 벡터 라우팅 프로토콜과 비교해서, OSPF는 대형 이기종 인터네트워크를 서비스하는 데 보다 적합합니다. 네트워크 토폴로지가 변경되면 OSPF는 단시간에 라우트를 다시 계산할 수 있습니다.
  • OSPF를 사용하면 AS(Autonomous System)를 영역으로 나누고 계속적으로 영역 토폴로지를 분리하여 각 영역의 OSPF 라우팅 트래픽과 링크 상태 데이터베이스 크기를 줄일 수 있습니다.
  • OSPF는 동가 다중 경로 라우팅을 제공합니다. 다른 다음 홉을 사용하여 중복 라우트를 TCP 스택에 추가할 수 있습니다.

OSPF Hello 프로토콜 및 링크 상태 데이터베이스 교환

OSPF 네트워크의 라우터나 시스템이 해당 인터페이스가 작동하는지 확인한 후 OSPF 인터페이스를 통한 Hello 프로토콜을 사용하여 네이버를 검색합니다. 네이버는 공통 네트워크에 대한 인터페이스가 있는 라우터 또는 시스템입니다. 그런 다음, 네이버 라우터 또는 시스템이 인접성을 설정하기 위해 해당 링크 상태 데이터베이스를 교환합니다.

다음 그림은 9.7.85.0 서브네트에 있는 두 시스템에 대한 네이버를 검색하고 인접성을 설정하는 프로세스를 설명합니다. 각 시스템에는 공통 서브네트 9.7.85.0(시스템 A의 인터페이스 9.7.85.1 및 시스템 B의 인터페이스 9.7.85.2)에 OSPF 인터페이스가 있습니다. 서브네트 9.7.85.0은 영역 1.1.1.1에 속합니다.

그림 1. OSPF Hello 프로토콜 및 데이터베이스 교환
OSPF Hello 프로토콜 및 데이터베이스 교환
EXSTART 단계
이는 링크 상태 데이터베이스 교환의 첫 번째 단계입니다. 두 시스템은 어느 시스템이 마스터이고 하위인지 협상합니다.
EXCHANGE 단계
두 시스템 교환 데이터베이스 설명은 각 시스템의 링크 상태 데이터베이스가 포함하지 않는 LSA를 찾기 위해 패킷화됩니다. 각 시스템은 해당 링크 상태 데이터베이스에 포함되지 않는 LSA를 재전송 리스트에 저장합니다.
LOADING 단계
각 시스템은 EXCHANGE 단계 동안 재전송 리스트에 저장된 전체 LSA를 보내기 위해 네이버(이 예의 다른 시스템)을 요청하는 링크 상태 요청 패킷을 보냅니다. 네이버는 링크 상태 업데이트 패킷의 LSA를 사용하여 요청에 응답합니다.
FULL 단계
두 시스템이 LSA 교환을 완료하고 해당 링크 상태 데이터베이스가 동기화되면 인접성이 두 시스템 사이에 설정됩니다.

인접성이 영역의 모든 라우터 또는 시스템 사이에 설정되면 영역의 각 라우터 또는 시스템이 해당 인접성을 공유하고 해당 상태 변경을 보고하기 위해 주기적으로 LSA를 보냅니다. 설정된 인접성을 LSA와 비교하여, 영역의 라우터 또는 시스템은 영역 토폴로지 변경사항을 검색하고 해당 링크 상태 데이터베이스를 적절하게 업데이트할 수 있습니다.

지정 라우터 및 백업 지정 라우터

접속된 라우터가 두 개 이상인 다중 액세스 OSPF 네트워크에서 라우터는 Hello 프로토콜을 사용하여 지정 라우터와 백업 지정 라우터를 선출합니다. (다중 액세스 네트워크는 다수의 장치가 연결되어 동시에 통신할 수 있는 네트워크입니다.)

지정 라우터는 전체 다중 액세스 네트워크에 대한 LSA를 생성하고, 네트워크의 다른 라우터에 LSA를 플러드하고, 인접해야 하는 라우터를 판별합니다. 네트워크에서 다른 모든 라우터는 지정 라우터에 인접합니다. 지정 라우터는 이 네트워크의 네트워크 트래픽과 링크 상태 데이터베이스 크기를 줄입니다.

백업 지정 라우터는 네트워크의 모든 라우터(지정 라우터 포함)와 인접성을 설정해야 한다는 점을 제외하고 다른 라우터와 동일합니다. 현재 지정 라우터가 실패하면 백업 지정 라우터가 지정 라우터로 승격됩니다.

그림 1에서 9.7.85.0 서브네트는 브로드캐스트 네트워크입니다. 그러므로 9.7.85.0 서브네트의 라우터는 Hello 프로토콜을 사용하여 지정 라우터와 백업 지정 라우터를 선출합니다. 이 예에서 시스템 A는 지정 라우터로 선출되고 시스템 B는 백업 지정 라우터로 선출됩니다.

OSPF AS를 영역으로 분할

RIP와 달리 OSPF는 계층 내에서 작동할 수 있습니다. 계층 내에서 가장 큰 엔티티가 AS입니다. AS는 공통 라우팅 전략을 공유하는 공통 관리 아래에 있는 네트워크 그룹입니다. AS는 영역으로 나뉠 수 있으며, 영역은 라우터에 의해 서로 연결됩니다. 영역은 인접한 네트워크 그룹 및 접속한 호스트로 구성됩니다. 영역의 토폴로지는 영역 외부에 엔티티에 보이지 않습니다. 동일한 영역에 있는 라우터에는 동일한 링크 상태 데이터베이스가 있습니다. 각 영역의 라우팅 트래픽과 링크 상태 데이터베이스 크기를 줄이기 위해 영역 토폴로지를 분리할 수 있습니다.

OSPF 영역의 경계에 있고 해당 영역을 백본 네트워크에 연결하는 라우터를 영역 경계 라우터라고 합니다. 영역 경계 라우터는 여러 영역에 대한 여러 인터페이스를 가지고 있으며 각 영역에 대한 별도의 링크 상태 데이터베이스를 유지보수합니다.

다음 그림에서는 두 영역(영역 1.1.1.1 및 영역 2.2.2.2)이 구성됩니다. 시스템 B는 영역 경계 라우터로, 인터페이스 9.7.85.2가 영역 1.1.1.1에 접속되고 인터페이스 9.5.104.241가 영역 2.2.2.2에 접속됩니다. 시스템 B에는 각 영역당 하나씩, 두 개의 링크 상태 데이터베이스가 있습니다. 시스템 B는 인터페이스 9.7.85.2를 통해 영역 1.1.1.1에서 시스템 A와 라우터 C와의 인접성을 설정하고 9.5.104.241을 통해 영역 2.2.2.2에서 시스템 D와의 인접성을 설정합니다.

그림 2. OSPF AS를 영역으로 분할
OSPF AS를 영역으로 분할