반응형

 

 

 

 

📌 OSPF란

OSPF는 링크 상태 프로토콜이며, 링크는 라우터 인터페이스라고 볼 수 있습니다. 인터페이스에 대한 설명에는 인터페이스의 IP 주소, 마스크, 연결된 네트워크 유형, 해당 네트워크에 연결된 라우터 등이 포함됩니다.

OSPF는 Open Shortest Path First 알고리즘을 사용하여 모든 대상에 도달하기 위한 최단 경로를 구축하고 계산합니다. 최단 경로는 Dijkstra 알고리즘을 사용하여 계산됩니다.

  1. OSPF 초기 구성 시 또는 라우팅 정보의 변경으로 인해 라우터는 링크 상태 알림을 생성합니다. 이 알림은 해당 라우터에 있는 모든 링크 상태에 나타냅니다.
  2. 모든 라우터는 플러딩을 통해 링크 상태를 교환합니다. 링크 상태 업데이트를 수신하는 각 라우터는 링크 상태 데이터베이스에 복사본을 저장한 다음 다른 라우터에 업데이트를 전파합니다.
  3. 각 라우터의 데이터베이스가 완료되면 라우터는 모든 대상에 대한 최단 경로 트리를 계산합니다. 라우터는 최단 경로 트리, 대상, 관련 비용을 계산하기 위해 Dijkstra 알고리즘을 사용하고 해당 대상에 도달하기 위한 다음 홉을 사용하여 IP 라우팅 테이블을 형성합니다.
  4. OSPF 네트워크에서 링크 비용 또는 네트워크 추가 또는 삭제와 같은 변경 사항이 발생하지 않는 경우 OSPF는 자동으로 실행됩니다. 변경 사항은 링크 상태 패킷을 통해 전달되며, 최단 경로를 찾기 위해 Dijkstra 알고리즘이 다시 계산됩니다.

📌 OSPF 장점

  • OSPF를 사용하는 경우 홉 수에 제한이 없습니다.
  • VLSM를 적용하여 IP 주소 할당이 매우 유용합니다.
  • OSPF는 멀티캐스트를 사용하여 링크 상태 업데이트를 전송합니다. 이렇게 하면 OSPF 패킷을 수신하지 않는 라우터에서 프로세스 리소스 사용이 줄어듭니다. 주기적으로 업데이트가 전송되는 것이 아니라 라우팅 변경이 발생하는 경우에만 업데이트가 전송됩니다. 따라서 효율적인 대역폭이 보장됩니다.
  • OSPF는 라우팅 변경 사항이 주기적으로 전파되는 것이 아니라 즉시 전파됩니다.
  • OSPF는 트래픽을 로드 밸런싱합니다.
  • OSPF는 라우터를 영역으로 나눌 수 있습니다. 이를 통해 전체 네트워크에서 링크 상태 업데이트가 급증하는 것을 제한할 수 있습니다. 또한 경로를 수집하고 서브넷 정보의 불필요한 전파를 줄이는 메커니즘을 제공합니다.
  • OSPF는 다양한 비밀번호 인증 방법을 통해 라우팅 인증을 허용합니다.
  • OSPF는 태킹을 이용하여, BGP같은 외부 경로 프로토콜에서 들어온 경로를 추적할수 있습니다.

📌 OSPF 구성

R1(config)# router ospf <process-id>
R1(config)# network <network or IP address> <mask> <area-id>

예시)
RTA(config)# router ospf 100 
RTA(config)# network 192.168.0.4 0.0.255.255 area 0.0.0.0 
RTA(config)# network 192.168.0.3 0.0.0.0 area 23
  • OSPF process-id는 라우터에 로컬인 숫자 값입니다. 다른 라우터의 process-id와 일치하지 않아도 됩니다.
  • 동일한 라우터에서 여러 OSPF 프로세스를 실행할 수는 있지만 라우터에 추가 오버헤드를 추가하는 여러 데이터베이스 인스턴스를 생성하므로 권장되지 않습니다

📌 OSPF 인증

  • 라우터가 사전 정의된 비밀번호를 기반으로 라우팅 도메인에 참여할 수 있도록 OSPF 패킷을 인증할 수 있습니다.
  • 기본적으로 라우터는 Null 인증을 사용하며, 이로 인해 네트워크를 통한 라우팅 교환이 인증되지 않습니다. 두 가지 인증 방법이 있습니다. 단순 비밀번호 인증 및 Message Digest 인증(MD-5)입니다.
**단순 비밀번호 인증**
R1(config)# ip ospf authentication-key key  (특정 인터페이스 아래에 있음)
R1(config)# area area-id authentication. (이 값은 아래에 router ospf <process-id>있음)

예시1)
RTA(config)# interface Ethernet0
RTA(config)# ip ospf authentication-key mypassword
예시2)
RTA(config)# router ospf 10 network 10.0.0.0 0.0.255.255 area 0 
RTA(config)# area 0 authentication
**Message Digest 인증**
R1(config)# ip ospf message-digest-key key-id md5 key  (인터페이스 아래에 사용) 
R1(config)# area area-id authentication message-digest (아래에서 router ospf <process-id>사용)

예시1)
RTA(config)# interface Ethernet0
RTA(config)# ip ospf message-digest-key 10 md5 mypassword 
예시2)
RTA(config)# router ospf 10 network 10.0.0.0 0.0.255.255 area 0 
RTA(config)# area 0 authentication message-digest 

📌 OSPF 백본 및 Area 0

  • 두개 이상의 영역이 설정된 경우 꼭 Area 0이 존재해야합니다. 이를 백본이라고 합니다.
  • 백본은 모든 Area의 중앙에 있어야 합니다.
  • 백본은 모든 Area의 라우팅 정보를 주입하고 다른 Area로 전파합니다.
  • Area내에서 생성된 경로는 라우팅 테이블에서 O로 표시가되고, 다른 Area에서 시작되는 경로는 inter-area또는 라우팅 테이블에서 O IA로 표시 됩니다.
  • 다른 라우팅 프로토콜에서 시작되고 재배포를 통해 OSPF에 주입되는 경로를 external routes라고 말하고, 라우팅 테이블에서 O E1, O E1로 표시됩니다.

📌 가상 링크

  • 백본에 물리적으로 연결되지 않은 영역을 가상으로 연결
  • Area 0의 불연속성이 발생하는 경우 백본 패치

Area 0에 물리적으로 연결되지 않은 경우 가상 링크를 사용하여 다른 Area 라우팅 경로를 제공합니다.

가상 링크는 하나의 ABR이 백본에 연결된 공통 영역이 있는 두 ABR간 설정되어야 합니다.

가상 링크를 구성하려면 RTA, RTB 모두에게 설정
R1(config)# area <area-id> virtual-link <RID>

예시)
RTA(config)# router ospf 10 area 2 virtual-link 10.0.0.22 
RTB(config)# router ospf 10 area 2 virtual-link 10.0.0.11
  • OSPF를 사용하다보면 두 개의 다른 OSPF 백본 Area 0 이 있는 네트워크를 연결하려는 경우가 있습니다. 이런 경우 서로 존재하지않은 Area를 만들어서 서로 가상링크로 연결하여 사용한다. 다른 경우 몇가지 라우터 장애로 인해 백본이 둘로 분할되는 경우에 대비하여 이중화를 위해 가상 링크를 이용합니다.

📌 Neighbor

  • 세그먼트를 공유하는 라우터는 서로간에 neighbor라고 합니다. Neighbor는 Hello 프로토콜을 통해 맺어집니다. Hello 패킷은 멀티캐스트를 통해 각 인터페이스에서 주기적으로 전송됩니다.
  • 라우터는 인접한 Hello 패킷에 나열되는 즉시 인접한 라우터가 됩니다.
  • Area-id : 공통 세그먼트가 있는 두 라우터이며, 해당 인터페이스는 해당 세그먼트의 동일한 영역에 속해야 합니다. 인터페이스는 같은 네트워크 서브넷을 가져야합니다.
  • Authentication : OSPF를 사용하면 특정 Area에 대한 비밀번호의 설정이 가능합니다. 네이버가 되려는 라우터는 특정 세그먼트에서 동일한 비밀번호를 교환해야 합니다.
  • Hello and Dead Intervals : OSPF는 각 세그먼트에서 Hello 패킷을 교환합니다. 이는 세그먼트에서 라우터의 존재를 확인하고 멀티 액세스 세그먼트에서 지정 라우터(DR)를 선택하기 위해 라우터에서 사용하는 keepalive 형식입니다.
  • Hello 패킷은 라우터가 OSPF 인터페이스에서 전송하는 Hello 패킷 간의 시간(초)을 지정합니다.
  • Dead 간격은 인접 디바이스에서 OSPF 라우터의 Hello 다운을 선언하기 전에 라우터 패킷이 표시되지 않은 시간(초)입니다.
  • OSPF에서는 이러한 간격이 두 네이버 간에 정확히 동일해야 합니다. 이러한 간격이 서로 다른 경우 이러한 라우터는 특정 세그먼트에서 인접한 라우터가 되지 않습니다. 이러한 타이머를 설정하는 데 사용되는 라우터 인터페이스 명령입니다.
R1(config)# ip ospf hello-interval seconds
R1(config)# ip ospf dead-interval seconds
  • Stub area flag : 두 라우터가 인접 디바이스가 되려면 패킷의 stub area Hello 플래그에 동의해야 합니다. stub area은 이후 섹션에서 설명합니다. stub area의 정의는 인접한 라우터 선택 프로세스에 영향을 미칩니다.

 

 

 

 

 

 

참고자료

https://www.cisco.com/c/en/us/support/docs/ip/open-shortest-path-first-ospf/7039-1.html

반응형

+ Recent posts