5. 동적 라우팅 프로토콜(OSPF)

Easycelsius·2021년 9월 3일
0

Network

목록 보기
9/10

5강 동적 라우팅 프로토콜

OSPF 라우팅 프로토콜

OSPF란

  • Link-state 라우팅 프로토콜
  • Classless 라우팅 프로토콜 (VLSM, CIDR 지원)
  • Metric은 cost 사용(10^8/bandwidth(bps))
  • Multicast를 사용해서 정보를 전달
    • 224.0.0.5 (DR이 DROTHER에게 전송할 때 사용)
    • 224.0.0.6 (DROTHER가 DR에게 전송할 때 사용)
  • AD값은 110
  • SPF (Shortest Path First) 또는 Dijkstra(다익스트라) 알고리즘을 이용해서 각 목적지까지의 최적 경로를 계산
  • 장점
    • OSPF는 area 단위로 구성 -> 대규모 네트워크를 안정되게 운영할 수 있음
    • 특정 area에서 발생하는 상세한 라우팅 정보가 다른 area로 전송되지 않아 큰 규모에서도 안정적으로 운영할 수 있는 것
    • Stub이라는 강력한 축약 기능이 있음
      • 기존 Routing Protocol과는 달리 IP 주소가 연속되지 않아도 Routing table의 크기를 획기적으로 줄일 수 있음
      • 표준 Routing Protocol
      • Convergence time이 전반적으로 빠른 편
  • 단점
    • 설정이 이전 Routing Protocol 보다 조금 더 복잡
      • 네트워크 종류에 따라 동작하는 방식과 설정이 다름
    • 네트워크의 종류
      1. Broadcast Multi Access
      2. Point-to-Point
      3. Non Broadcast Multi Access
    • 라우팅 정보 계산 및 유지를 위해 CPU, DRAM 같은 자원을 많이 사용

OSPF의 네트워크 분류

  • 네트워크에 따라서 설정 방식과 동작 방식이 다름
  1. Broadcast Multi Access

    • 하나의 Broadcast 패킷을 전송할 경우 동일 네트워크 상의 모든 장비에게 전달되는 네트워크를 Broadcast 네트워크라 함
    • 하나의 인터페이스를 통해 다수의 장비와 연결된 네트워크를 Multi Access 네트워크라 함
    • 예시 : Ethernet
    • Broadcast나 Multicast 방식을 사용해 하나의 packet만 전송해도 연결된 모든 장비에 전송
  2. Non Broadcast Multi Access (NBMA)

    • Broadcast가 지원되지 않는 Multi Access 네트워크를 의미 (ex. ATM, X.25, Frame Relay)
    • 대부분 내부에 Virtual Circuit (가상회로) 방식을 사용
    • NBMA에서는 Broadcast를 사용하여 전송할 경우 가상회로 하나당 하나씩 Broadcast packet을 전송
  3. Point-to-Point

    • 하나의 Interface와 연결된 장비가 하나뿐인 네트워크

      (ex. HDLC, PPP, F/R의 sub interface 중 point-to-point)

OSPF패킷

패킷의 종류

  1. Hello packet
    • 인접한 라우터간 네이버 관계 형성
    • 네이버 관계 유지를 위해 사용
    • 일정 주기로 hello 패킷 전송하고 정해진 주기 안에 hello 패킷 수신받지 못하면 네이버 관계를 끊음
    • 라우터 ID, area ID, 인증 암호, 서브넷 마스크, hello 주기, dead 주기, stub area flag, 라우터 Priority, DR, BDR, 네이버 리스트의 정보를 담고 있음
  2. DBD(DBC) packet
    • 자신이 만든 LSA(Link state advertisement)와 네이버에게서 받은 LSA를 DB에 저장
  3. LSR packet
    • 내 DB에 없는 정보가 있으면 그 네트워크에 대한 상세정보(LSA)를 요청
  4. LSU packet
    • LSR 패킷을 받거나 자신이 알고 있는 네트워크 상태가 변했을 경우, 해당 라우팅 정보를 전송할 때 사용하는 패킷 (LSA를 실어나르는 패킷)
  5. LSAck packet
    • OSPF 패킷을 정상적으로 수신했음을 알려줄 때 사용하는 패킷
  1. OSPF를 설정하는 Router끼리 Hello packet을 교환해서 Neighbor 혹은 Adjancent Neighbor을 맺음
    • Adjancent Neighbor : 라우팅 정보(LSA)를 교환하는 네이버
    • LSA(Link State Advertisement) : OSPF에서의 라우팅 정보
  2. adjancent 네이버인 Rotuer 간 라우팅 정보(LSA)를 서로 교환 후 전송 받은 LSA를 Link-state DataBase에 저장
  3. LSA를 모두 교환하고 SPF (Shortest Path First) 또는 Dijikjstra 알고리즘을 이용해서 각 목적지까지의 최적 경로를 계산 한 후 Routing Table에 올림
  4. 그 후에도 주기적으로 Hello packet을 교환하며 정상 동적을 확인
  5. 네트워크 상태가 변하면 다시 위 과정을 반복해서 Routing table을 생성

OSPF의 테이블

네이버 테이블(OSPF Neighbor Table)

  • 이웃 관계를 맺은 라우터의 목록
  • OSPF가 설정된 Router 간에 인접관계를 성립한 Neighbor 정보 저장
  • 주기적으로 Hello packet을 교환하여 Neighbor 관계 유지 여부 확인
  • EIGRP의 Neighbor Table과 비슷함

네이버 상태

  • Down 상태에서 시작해서 Neighbor와 routing 정보 교환을 끝내고 Full 상태로 완료
  1. Down 상태

    • OSPF가 설정되고 Hello packet을 전송했지만 아직 상대방의 Hello packet을 받지 못한 상태
  2. Init 상태

    • 근접 Router에게 Hello packet을 받았지만 상대 Router가 아직 내가 보낸 Hello packet을 받지 못한 상태

    • 즉, 상대방이 전송한 Hello packet안의 네이버 리스트에 내 Router-ID가 없는 경우

  3. Two-way 상태

    • Neighbor와 쌍방향 통신이 이루어진 상태
    • Multi Access 네트워크일 경우 이 단계에서 DR/BDR 선출
    • 즉 서로 전송한 Hello packet 안의 네이버 리스트에 서로의 Router-ID가 있는 경우
  4. Exstart 상태

    • adjacent neighbor가 되는 첫번째 단계
    • Master와 Slave Router를 선출 (Router-ID가 높은 Router가 Master)
  5. Exchange 상태

    • 각 Router가 자신의 Link-state Datebase에 저장된 LSA의 Header만을 DBD packet에 담아 상대방에게 전송
    • DBD packet을 수신한 라우터는 자신의 database 내용과 비교한 후 자신에게 없거나 자신의 것보다 더 최신 정보일 경우 상대방에게 상세 정보 (즉, LSA)를 요청하기 위해 Link State Request List에 기록
    • DBD packet의 정보에 자신이 모르는 정보가 없다면 바로 Full 상태가 됨
  6. Loading 상태

    • DBD packet 교환이 끝난 후 자신에게 없는 정보를 LSR packet으로 요청
    • LSR 요청 받은 Router는 정보를 LSU packet에 담아 전송
  7. Full 상태

    • adjacent neighbor간 라우팅 정보 교환이 모두 끝난 상태

데이터베이스 테이블(OSPF DataBase Table)

  • 라우팅 업데이트 정보를 관리하는 table

OSPF의 동작 과정

DB/BDR 선출

  • 중계역할을 하는 DR(Designated Router)를 선출
  • DR에 문제가 발생할 경우를 대비해 Backup 용으로 BDR(BackupDR)을 선출
  • DR, BDR은 Broadcast 및 Non Broadcast 네트워크에서만 사용
    • Point-to-Point 네트워크에서는 사용하지 않음
  • Ethernet, NBMA 등의 Multi Access 네트워크에 접속된 Router가 1:1로 LSA를 교환할 경우 중복된 LSA와 ACK가 많이 발생
  1. OSPF priority가 가장 높은 Router가 DR로 선출 (다음으로 높은 Router가 BDR로 선출)

  2. OSPF priority가 동일할 경우 Router-ID가 높은 것이 DR, BDR로 선출

  3. DR, BDR이 선출된 후에 더 높은 순위의 Router가 추가되어도 DR, BDR은 변경되지 않음

    (Router를 재부팅하거나 clear ip ospf prcess 명령어를 사용하여 변경 가능)

  4. DR이 다운될 경우 BDR이 DR이 되고 다시 BDR을 선출 (DR과 BDR이 아닌 Router를 DROTHER라고 함)

Adjacent 네이버

  • OSPF에서 라우팅 정보(LSA)를 서로 교환하는 Neighbor를 adjacent 네이버라고 함
  1. DR과 다른 Router
  2. BDR과 다른Rotuer
  3. Point - to - Point 네트워크로 연결된 두 Router
  4. Point - to - Multipoint로 연결된 두 Router
  5. Virtual-link로 연결된 두 Router

OSPF 메트릭

  • Cost라고 부름
  • 10^8/bandwidth(bps) = cost
  • 코스트 계산시 소수점 이하는 생략 (1미만이면 1로 계산)
  • 인터페이스에서 명령어로 코스트를 변경할 수 있음 (ip ospf cost ?)

OSPF area

  • 여러 개로 나누어서 관리하는 OSPF의 area
  • OSPF는 복수 개의 Area로 나누어서 설정
  • 규모가 작을 경우 하나의 Area만 사용해도 상관없음
  • Area가 하나일 경우 아무 번호나 사용해도 상관없지만, Area가 두 개 이상일 경우 하나는 반드시 0으로 진행
  • Area 0는 Backbone Area, 다른 Area는 Area 0 와 물리적으로 연결되어 있어야 함
  • Area로 나눠서 구성하면 안정된 대규모 네트워크 운영 가능
  • OSPF는 다른 Area의 라우팅 정보를 획기적으로 줄이는 Stub Area 기능이 있음

OSPF 라우터의 종류

  • Backbone Router
    • Backbone Area (Area 0)에 소속된 Rotuer
  • Internal(내부) Router
    • 하나의 Area만 소속된 Router
  • ABR (Area Border Router)
    • 두 개 이상의 Area에 소속된 Area 경계 Router
  • ASBR (AS Boundary Router)
    • OSPF 네트워크와 다른 Routing protocol이 설정된 네트워크를 연결하는 AS 경계 Router
profile
항상 성장하고 싶은 개발자

0개의 댓글