본문 바로가기

네트워크/R&S 일반

OSPF - Part 1


OSPF (Open Shortest Path First)
   ► 대규모 망에서 사용
   ► 설정 방법이 어려움
   ► 네트워크 자원 소모 (but 요즘 장비가 좋아서 큰 문제가 되지 않음)
   ► IP 패킷에서 프로토콜 번호 89번 사용하여 라우팅 정보 전송.
   ► 안정되고 다양한 기능
   ► RFC 2328

OSPF 용어
    ► Adjancent neighbor : 라우팅 정보를 교환하는 네이버
    ► LSA(Link State Advertisement) : OSPF 에서의 라우팅 정보
    ► Process ID : 라우터에서 복수개의 OSPF 프로세스 동작 시, 상호 구분하기 위한 목적
                         변동되지 않는 IP주소로 사용해야함
    ► Router ID : LSA 전송 시 포함. 변동되지 않는 주소로 해주어야 함(Ex. Loopback), 
                      미설정 시 현 IP중 가장 높은 IP로 선정.
                      OSPF 설정 시, IP가 설정된 인터페이스가 없으면, Router ID를 가질 수 없어서 에러 발생.
                      라우터 ID는 한 번 결정되면, 라우터를 재부팅하거나,
                     clear ip ospf process를 사용하여 리셋전까지 유지.               

OSPF 라우팅 테이블 생성 및 유지 과정
      ► Hello 패킷을 이용한 네이버와 Adjancent 네이버 관계 구성
      ► Adjancent 라우터끼리 라우팅 정보(LSA)를 교환. 전송 받은 LSA는 Link State Database에 저장.
      ► LSA교환 후, SPF알고리즘을 이용 최적경로 계산하여 라우팅 테이블 작성.
      ► 이후 주기적 Hello 패킷을 이용 상태 유지. Topology 변경 시 동일 방법으로 재구성.

네트워크 타입
   ► Interface 종류에 따라서 다음과 같이 OSPF 네트워크 타입이 결정.
      ▪ 포인트 투 논브로캐스트
      ▪ 브로드캐스트
      ▪ 포인트 투 포인트
      ▪ 포인트 투 멀티포인트
      ▪ 논브로캐스트
   
OSPF 패킷 (p324)
   ► Hello 패킷 : 네이버 관계를 형성 및 유지, 미 수신시에 네이버 관계 해제.
      ▪ 네이버 구성 및 유지
      ▪ 목적지 주소 : Broadcast 네트워크(224.0.0.5) / NonBroadcast 네트워크(상대방 IP:Unicast)
      ▪ 라우터 ID : OSPF 라우터를 구분. (OSPF 도메인 내 유일한 값)
      ▪ Area ID :  OSPF가 설정된 interface가 소속된 ospf Area ID.
      ▪ 암호 : 네이버 간에는 라우팅 정보 송수신을 위해서 같은 인증방식과 암호로 인증해야 함.
      ▪ 서브넷 마스크 : 인터페이스의 서브넷 마스크 표시
      ▪ Hello 주기 : Broadcast 네트워크와 Point-to-Point 네트워크에서는 10초 / NBMA에서는 30초
      ▪ Stub Area Flag
      ▪ Router Priority : DR, BDR 선출 시 사용되는 우선 순위
      ▪ Dead 주기 : Hello 패킷을 수신하지 못할 시에 네이버 다운으로 간주하는 시간 : Hello의 4배
      ▪ DR : Designated Router의 Router ID가 표시
      ▪ BDR : Backup DR 라우터 ID
      ▪ Neighbor List : Hello 패킷을 송신한 라우터가 네이버라고 여기는 라우터의 Router ID를 표시


   ► DDP / DBD (Database Description Packet)
      ▪ LSA (Link State Advertisement) : OSPF의 네트워크 정보
      ▪ 자신이 만든 LSA와 네이버에게 받은 LSA를 Link State Database에 저장.
      ▪ DDP는 Link State Database에 있는 LSA들을 요약한 정보를 알려주는 패킷.
       자기의 패킷과 비교
   ► LSR (Link State Request)
      ▪ 네이버에게 받은 DDP를 확인 후, 자신에게 없는 네트워크 정보(LSA)가 있으면 상세내용(LSA)을 요청할 때
       사용하는 패킷.
      ▪ 데이터베이스 상세 내용 요청    
   ► LSU (Link State Update)
      ▪ 네이버 라우터에게서 LSR을 받거나 네트워크 상태가 변했을 때, 해당 라우팅 정보를 전송할 때 사용
      ▪ LSA를 실어나를 때 사용하는 패킷.
      ▪ 데이터베이스 업데이트
      세부 정보 전송
   ► LS ACK (Link State Ack)
      ▪ OSPF 패킷을 정상적으로 수신했음을 알려주는 것.  DDP, LSR, LSU 수신 시, 이 패킷으로 수신에 대한 응답을 함.
        전송받은 정보 확인

◈ 네이버 조건
   ► Area 번호, 암호, Subnet Mask 길이, Hello/Dead 주기, Stub Area 표시.
   ► 네이버는 물리적으로 연결된 경우에만 네이버 관계를 형성한다.

DR, BDR
   ► 멀티 액세스 네트워크에서 필요 : 중복된 LSA/ACK 패킷을 예방함.
       -  Point to Point 네트워크에서는 DR, BDR 선출 안 함.
   ► DR (Designated Router)
      - LSA를 중계하는 역할
      - 반드시 물리적으로 다른 라우터와 연결되어 있어야 함.
   ► Broadcast 와 NBMA에서만 선출하며, Point-to-Point  네트워크에서는 사용 안함.
   ► DR/BDR 선출 기준:
      ▪ OSPF Priority : 0~255 ( default : 1 , DR선출제외 : 0)  [우선순위가 더 큰 쪽이 DR로 선출]
      ▪ Router ID : Priority가 동일할 경우 Router ID가 높은 쪽이 DR로 선출
      ▪ BR이 선출되면, clear ip ospf process  명령어를 실행하기 전까지는 
        순위가 높은  라우터가 추가되어도 DR, BDR유지
   ► DROther : DR, BDR이 아닌 라우터
   ► DR과 BDR은 각 Broadcast 네트워크, NBMA네트워크에서 각 네트워크 당 하나씩 DR이 선출된다.
   ► 224.0.0.5 : DR과 BDR이 DROther 에게 중계할 때 사용하는 주소
   ► 224.0.0.6 : DROther이 DR과 BDR에게 업데이트 내용 전송하는 주소
   ► DR/BDR은 224.0.0.5/6 모두 수신. 
   ► DROther은 224.0.0.5 만 수신
      
 ◈ Neighbor
      - 물리적으로 직접 연결된 라우터 중에 Hello Packet를 수신하고 Hello Packet에 포함된 Neighbor List에 자신의 
        Router ID가 포함되어 있는 라우터.

 ◈ OSPF Adjacent Neighbor(p334)
         - OSPF 라우팅 정보를 주고받는 네이버
   ► DR과 다른 라우터들
   ► BDR과 다른 라우터들
   ► Point-to-Point 네트워크로 연결된 두 라우터
   ► Point-to-Multi Point 네트워크로 연결된 라우터들
   ► 가상링크 (Virtual link)로 연결된 두 라우터
      
 ▪ DROther 라우터 간에는 어드제이션 네이버가 되지 못함.

OSPF 네이버 상태
   ► down 상태
     ▪ OSPF 설정 후, Hello 패킷은 전송하지만 Hello 패킷을 전송받지 못한 상태
     ▪ full 상태에서 dead interval 동안 OSPF 패킷을 전송받지 못하거나, 장비의 문제로 인해서 발생할 수 있음.

   ► attempt 상태 
     ▪ 네이버를 인위적으로 맺은 라우터 간에 헬로패킷을 받지 못한 상태(down상태와 같음)- NBMA 네트워크에서만 적용

   ► init 상태
     ▪ 네이버에게서 Hello 패킷을 받았으나, 네이버는 나의 Hello 패킷을 수신하지 않은 상태
     ▪ 이 때 받은 Hello 패킷 안의 네이버 List에는 나의 Router-ID가 존재하지 않는다
   ► two-way 상태
     ▪ 네이버 간의 서로 Hello 패킷을 받은 상태. 
     ▪ 이 상태에서 BR, BDR 선출 (wait time을 거친 후 선출-40/120초) - Broadcast / NBMA 네트워크에서만 해당
        - 현업에서는 이러한 wait time 때문에 BR, BDR을 선출하지 않는 네트워크 타입으로 해야 한다.
     ▪ DROther 간에는 Two-way 상태 유지. (라우팅 정보를 교환하지 않고 어드제이션시 네이버를 맺지 않음)
     ▪ Two-way 상태에서는 DR과 BDR의 선출을 위해서 wait시간만큼(dead주기와 동일) 기다린 후, DR과 BDR선출
   ► exstart 상태
     ▪ Master 라우터와 Slave 라우터 선출
     ▪ DDP(Database Description Packet) 패킷 교환 시 사용하는 DDP 패킷의 순서번호(Sequence Number)를 결정한다.
   ► exchange 상태
     ▪ Link State Database에 저장된 LSA의 Header만을 DDP(or DBD) 패킷에 담아 상대방에게 전송
     ▪ DDP 패킷을 수신한 라우터는 자신의 Link State Database와 비교하여 
       받은 패킷이 Update된 것이면,  Link State request List기록
     ▪ DDP 수신이 끝난 후 Link State request List를 확인하고 기록해 둔 것이 없으면 Full상태,
       기록한게 있으면 Loading상태로 전환
   ► loading 상태
     ▪ LSR을 보내어 특정 LSA의 상세 정보를 보내줄 것을 요청. 
     ▪ 요청을 받은 라우터는 LSA의 상세정보를 LSU에 담아 전송
   ► full 상태 
     ▪ 어드제이션트 라우터들 간의 라우팅 정보 교환이 끝난 상태. 
     ▪ 어드제이션트 라우터들 간의 Link State Database가 모두 일치

   ▪ debug ip ospf adj : OSPF 정상적으로 동작하지 않을 시에 사용하는 debug.

◈ OSPF Metric
   ▪ 기준 bandwidth : 10^8
   ▪ Metric 값 = 기준 Metric / 회선Bandwidth
   ▪ 회선 Bandwidth가 100M 이상은 Metric가 동일하게 나오므로, 기준 값을 변경해서 사용.
       - Router(config-router)# auto-cost reference-bandwidth [1 -4294967 Mbit]
   ▪ Interface Cost변경 : 다른 벤더의 장비 연결 시 주로 사용. (Metric 값의 계산 방법이 다를 경우)
       - Router(config-if)# ip ospf cost [1-65535]


OSPF AREA
  ► OSPF는 네트워크를 복수개의 Area로 나누어서 설정
  ► 규모가 작은 네트워크에서는 하나의 Area만 사용
  ► 규모가 큰 네트워크에서는 복수개의 Area를 사용하는 데, 이들은 항상 Backbone Area에 물리적으로
    직접 연결되어야 한다.
  ► OSPF의 라우팅 정보를 LSA라 하는데, 이 중 type 1과 type2동일 Area로만 전달 된다. 
  ► Area 별 축약이 가능하다. (LSA type3은 특정 에어리어의 네트워크 정보를 전송하는 데, 이것의 전송을 줄일 수 있다)
  ► Stub Area는 OSPF 외부 네트워크(재분배된 네트워크)or
     다른 Area의 라우팅 정보가 모두 차단되어 라우팅 테이블이 줄어든 Area.
  ► OSPF Area는 인터페이스별로 설정.
   ► OSPF Area는 1개 사용 시에는 Area 번호가 상관없지만 2개 이상 사용 시
      반드시 백본 Area(Area 0 고정)을 포함해야 한다
 
◈ OSPF 라우터의 종류
   ► 백본 라우터
      ▪ 백본 Area에 속한 라우터
   ► 내부 라우터
      ▪ 하나의 Area에만 속한 라우터
   ► ABR
      ▪ 두 개 이상의 Area에 소속된 Area 경계 라우터.
   ► ASBR
      ▪ OSPF 네트워크와 다른 라우팅 프로토콜이 설정된 네트워크를 연결하는 AS 경계 라우터
      ▪ 다른 라우팅 프로토콜을 OSPF로 재분배 시키는 라우터