Computer Science/Computer Network

[컴퓨터네트워크] 7주차: 링크-상태 라우팅 프로토콜

kangkyunghyun 2026. 2. 8. 15:49
728x90
반응형

경희대학교 유인태 교수님의 컴퓨터네트워크 강의를 기반으로 정리한 글입니다.

링크 상태 라우팅 프로토콜(Link State Routing Protocol)

  • 개방형 프로토콜(RFC; Request For Command 2328)
    • IETF(Internet Engineering Task Force) 국제 인터넷 표준화 기구에서 붙인 이름
  • 네트워크 토폴로지 변화에 빠르게 대처 가능
  • 영역 기반의 트리거 업데이트 및 부분적 업데이트 → 주기 X, 변경이 있는 부분만 업데이트
  • 링크 비용을 메트릭(metric)으로 사용
  • 멀티캐스트 라우팅 업데이트(224.0.0.5 및 224.0.0.6)
    • OSPF로 동작하는 라우터들만 업데이트에 참여함

OSPF (Open Shortest Path First)

  • 전체가 하나의 로컬 랜
  • Area 0을 백본 Area, 나머지는 노말 Area → 노말 Area는 백본 Area에 직접 연결이 돼야 함
  • 각각의 영역 내에서 일어나는 라우팅 업데이트는 해당 영역 내에서만 업데이트가 이뤄짐(영역 기반)
  • 외부에 반드시 알려야 될 정보만 요약된 정보로 경계 지점에 있는 라우터를 통해 다른 영역으로 전달 → 라우팅 업데이트의 양을 최소화

OSPF 동작 방식

  1. OSPF 라우팅 프로토콜이 설정되어 있는 이웃 라우터와 Hello 패킷을 교환
  2. 이웃 라우터와의 인접 관계를 나타내는 데이터베이스 구축
  3. 이웃 라우터와 라우팅 정보(LSA)를 교환하고, 이를 바탕으로 네트워크 토폴로지에 대한 데이터베이스 구축 → LSDB(Link State Database)
  4. 구축한 토폴로지 데이터베이스 정보를 바탕으로 Dijkstra 알고리즘을 통해 다른 모든 목적지까지의 최적의 경로 계산 → 라우팅 테이블에 등록
  5. 주기적으로 Hello 패킷을 교환하면서 이웃 라우터의 상태 확인
  6. 네트워크 상태 변화 시 위 과정을 반복하여 새로운 라우팅 테이블 생성 → Partial 업데이트(변화된 정보만 주고 받음)

OSPF 패킷 유형

  1. Hello: OSPF가 설정된 이웃 라우터와 인접 관계를 맺기 위해 사용하는 패킷
  2. DBD(DataBase Description): 링크 상태 정보에 대한 데이터베이스, OSPF 라우터들 간 데이터베이스 동기화 검사에 사용
  3. LSR(Link-State Request): DBD를 받은 후, 자신에게 없는 경로가 있을 경우 해당 경로에 대한 상세한 링크 상태 정보를 요청할 때 사용
  4. LSU(Link-State Update): LSR에 대한 응답, 이웃 라우터와 경로 비용과 같은 경로 상태 정보를 LSA(Link State Advertisement)로 전송하는 것을 포함
  5. LSAck(Link-State Acknowledgement): 상기의 다른 패킷 유형에 대한 수신 확인

OSPF 데이터베이스 유형

  1. Adjacency Database(Neighbor Table): (Router#show ip ospf neighbor)
    • 인접 관계를 맺은 이웃한 라우터에 대한 정보
  2. Link-State Database(Topology Table): (Router#show ip ospf database)
    • 네트워크에 있는 다른 모든 라우터에 대한 정보
    • 영역 내의 모든 라우터는 동일한 LSDB를 가짐
  3. Forwarding Database(Routing Table): (Router#show ip route)
    • LSDB에 SPF 알고리즘을 실행할 때 생성되는 경로 정보
    • 각 라우터의 라우팅 테이블은 고유함

DR(Designated Router) 및 BDR(Backup Designated Router)의 필요성

  1. 복수의 인접 관계 형성: 모든 이웃 라우터와의 인접 관계 형성으로 너무 많은 LSA가 교환될 수 있음
  2. 광범위한 LSA 플러딩: OSPF 초기화 및 토폴로지 변경 시마다 라우터들은 자신의 LSA를 플러딩 해야 함
  3. DR 및 BDR 선출: 모든 라우팅 정보는 DR/BDR을 통해서만 교환

즉, DR/BDR을 통해 모든 교환이 이뤄짐 → 모든 인접 관계 필요 X, DR/BDR과만 필요

OSPF 라우터 ID

  1. IPv4 주소로 표시되는 32비트 값
  2. OSPF를 고유하게 식별하기 위해 사용됨, OSPF 패킷 내에 포함
  3. OSPF 영역에 참여하려면 라우터 ID가 필요
  4. 관리자에 의해 수동 설정 또는 OSPF 프로세스에서 자동으로 설정
  5. OSPF 데이터베이스 동기화 과정 및 DR 선출 과정에서 사용됨
  6. 라우터 ID 결정 기준(우선 순위 순서)
    • router-id rid 라우터 컨피그레이션 모드 명령으로 관리자에 의한 수동 설정
    • 라우터 루프백 인터페이스 중 가장 큰 IPv4 주소 선택
    • 라우터 물리 인터페이스 중 가장 큰 활성(active) IPv4 주소 선택

DR/BDR 선출 프로세스

  1. 네트워크 영역 내에서 인터페이스 우선 순위가 가장 높은 라우터가 DR, 두 번째로 높은 라우터가 BDR로 선출
    • OSPF 인터페이스 우선 순위 범위: 0~255, 기본값은 1 (ip ospf priority value)
    • 우선 순위가 0이면 이 인터페이스는 DR/BDR 선출 불가능
  2. 인터페이스의 우선 순위가 같을 경우 → 라우터 ID가 가장 큰 라우터가 DR, 두 번째로 높은 라우터가 BDR로 선출
  3. DR/BDR 선출 프로세스는 OSPF가 활성화 된 인터페이스를 갖는 첫 번째 라우터가 네트워크에 등장할 때 수행(라우터 ID가 가장 낮은 라우터가 DR이 될 가능성 있음)
  4. 새로운 라우터가 연결되더라도 DR/BDR 선출 프로세스가 새로 시작되지 않음

DR/BDR 인접성 확인

show ip ospf neighbor 명령

  1. FULL/DROTHER: DR도 BDR도 아닌 라우터와 완전한 인접 관계에 있는 DR 또는 BDR 라우터임 → 나: DR or BDR, 이웃: DROTHER
  2. FULL/DR: 선출된 DR 이웃 라우터와 완전한 인접 관계에 있는 라우터임 → 나: BDR or DROTHER, 이웃: DR
  3. FULL/BDR: 선출된 BDR 이웃 라우터와 완전한 인접 관계에 있는 라우터임 → 나: DR or DROTHER, 이웃: BDR
  4. 2-WAY/DROTHER: DR도 BDR도 아닌 이웃 라우터와 인접 관계에 있는 DR도 BDR도 아닌 라우터임 → 나: DROTHER, 이웃: DROTHER

OSPF 비용 메트릭

  1. OSPF 비용은 인터페이스 대역폭에 반비례
  2. OSPF 비용 계산 공식
    • cost = reference bandwidth(100,000,000 bps) / interface bandwidth in bps

  1. 비용 값은 정수여야 하며 오늘날 100 Mbps를 초과하는 링크를 지원해야 함
  2. 기준 대역폭(reference bandwidth)을 변경하여 OSPF 비용을 조정
    • auto-cost reference-bandwidth bandwidth (in terms of Mbits per second)
    • 10,000,000,000을 원하면 10,000 입력
  3. 또 다른 옵션은 ip ospf cost cost 명령을 사용하여 인터페이스 비용을 직접 설정
  4. reference bandwidth는 영역 내 모든 라우터에 동일하게 적용해야 함
728x90
반응형