본문 바로가기

교육세미나관련/CCNP - 네버스탑

Day 2 - OSPF

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

네트워크 타입
   ► Interface 종류에 따라서 다음과 같이 OSPF 네트워크 타입이 결정.
      ▪ 포인트 투 논브로캐스트
      ▪ 브로드캐스트
      ▪ 포인트 투 포인트
      ▪ 포인트 투 멀티포인트
      ▪ 논브로캐스트
   
   ► Interface 설정 모드에서 ip ospf network 명령어를 사용하면 인위적인 변경 가능.
   ► 현업에서는 [포인트 투 포인트] / [포인트 투 멀티포인트] 를 사용
   ► DR을 사용하는 것끼리, DR을 사용하지 않는 것끼리 사용 가능하나, 헬로/데드 주기를 동일하게 설정


Non-broadcast : 네이버를 직접 지정
Point Type은 DR을 선출하지 않음.

네이버끼리 network type이 동일해야 네이버 관계를 맺을 수 있음.
만약 동일하지 않을 경우에 양쪽 Interface에서 인위적으로 Network type을 설정해서 맞출 수 있음.
 Ex) R4(config-if)#ip ospf network point-to-multipoint

OSPF 패킷 (p324)
   ► 1,5번 EIGRP와 동일
   ► Hello 패킷 : 네이버 관계를 형성 및 유지, 미 수신시에 네이버 관계 해제.
      ▪ 네이버 구성 및 유지
      ▪ 목적지 주소 : Broadcast 네트워크(224.0.0.5) / NonBroadcast 네트워크(상대방 IP:Unicast)
      ▪ 라우터 ID
      ▪ 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 만 수신
      
 
 ◈ 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로 재분배 시키는 라우터

   ► Router를 DR, BDR로 지정하지 않는 방법 
      ▪  OSPF 우선순위를 0으로 조정. : 인터페이스에서 설정
      ▪  Router(config-if)# ip ospf priotiry 0

◈ 네트워크 타입별 OSPF 설정 
 네트워크 타입 네이버  DR  Hello/Dead Time (sec) 기본 인터페이스 
Broadcast 자동  선출  10 / 40  Ethernet, FDDI, 토큰링 
Point to Point 자동 - 10 / 40 포인트 투 포인트 서브인터페이스, HDLC, PPP
Potin to MultiPoint 자동  - 30 / 120 -
 Non-Broadcast 지정 선출  30 / 120  멀티포인트 서브인터페이스, FR, ATM, X.25

   ► OSPF 네이버 구성 규칙
      ▪  Hello / Dead Time가 동일 해야함.
            -  ip ospf network  으로 네트워크타입을 변경
            -  ip ospf hello-interval 으로 Hello / Dead Time을 변경
      ▪  네이버 간의 DR을 모두 선출하도록 되어 있거나, 모두 선출 안해야 함.
            - Broadcast 와 Non-Broadcast 간의 Hello / Dead Time을 맞춰주면 네이버 가능.
      ▪  BEST : 양단 간의 네트워크 타입을 동일하게 일치
      
   ►  네트워크 광고 시에 32bit로 광고하는 경우는 Loopback interface와 Point-to-Multi

   ► Loopback 인터페이스를 원래 서브넷 마스크 길이로 광고하는 방법 3가지 
     ▪ ip ospf network point-to-point 로 Loopback 명령어로 네트워크 타입을 변경
     ▪ 축약 : ospf에 Area를 추가하고 해당 AREA를 area area-Num  range 명령어로 축약.
     ▪ 재분배 : ospf에서 loopback을 network로 광고하지 않고, redistribute connected subnets 으로 재분배한다.
               : OSPF 재분배에서 subnets 옵션을 넣으면 서브넷팅된 네트워크로 재분배 됨.

◈ OSPF 경로
   ► 동일 AD 내에서도 우선 순위가 있기 때문에 metric 값이 더 큰 경로가 선택될 수 있음(우선순위가 높을 경우)

 경로타입 코드  우선순위  내용 
 Area 내부 경로(Intra Area)  1 동일한 Area에 속한 네트워크 
Area간 경로(Inter-Area)  O IA   2 다른 Area에 속한 네트워크 
 다른 라우팅 프로토콜에서 재분배  O E1  3 OSPF 라우터 수신 시, Metric 값이 누적.
(재분배시 metric-type 1 옵션 사용) 
 다른 라우팅 프로토콜에서 재분배  O N1  4 다음 장에서 설명
 다른 라우팅 프로토콜에서 재분배  O E2  5 OSPF라우터 수신 시, OSPF 내부에서의 Metric 값 동일 
(재분배 시 default 설정 - Metric : 20) 
 다른 라우팅 프로토콜에서 재분배  O N2  6  다음 장에서 설명
※ 네트워크 경로가 하나뿐이면, E1, E2 모두 상관없지만, 경로가 두 개 이상인 경우에서는 최적경로를 E1으로 설정해야함.


Stub Area
    ► ABR이 내부 라우터에게 외부 경로에 대한 광고 대신에 Default Route를 전달
         - Routing Table 감소, 네트워크 안정성 향상. 
    ►  제약사항
        1. 백본 Area 불가
        2. Virtual Link 설정 시, Transit Area 불가
        3. Area 내부에 ASBR을 둘 수 없다. (NSSA는 가능)

    ► 종류
       Stub Area
       Totally Stub Area
       NSSA(Not -So-Stubby-Area) : Area 내부에 ASBR이 존재하는 경우에 사용하는 Stub Area.
    ► 설정 명령
      ▪  Stub Area : OSPF 외부 경로 차단
         config-router# area area_num stub
      ▪  Totally Stub Area : OSPF 외부 경로 + OSPF 중 다른 Area 경로 차단
         config-router# area area_num stub no-summary
      ▪  NSSA : Not-So-Stubby-Area 
         config-router# area area_num default-information-originate  [ABR]
         config-router# area area_num nssa                                   [ABR 내부의 Router]
      ▪  NSSA Totally Stub Area
         config-router# area area_num no-summary

◈ OSPF 네트워크 축약
    ▪  축약된 네트워크의 세부 네트워크 Down 될 경우에 Routing Loop를 방지하기 위해 축약한 네트워크의  Routing은
       ABR/ASBR에서 Null 라우팅으로 설정


    ► ABR에서 네트워크 대역 축약
      ▪  OSPF 네트워크 대역으로 축약.
      ▪  config-router)# area area_num range 200.200.32.0 255.255.240.0              : 200.200.32.0 ~ 200.200.47.0
      ▪  ABR에서 200.200.32.0 /20 는 Null0 로 Routing에 등록

    ► ASBR에서 네트워크 대역 축약
      ▪  OSPF 네트워크 대역 외의 축약 시
      ▪  config-router)# summary-address 200.200.32.0 255.255.240.0
      ▪ ASBR에서 200.200.32.0 /20 는 Null0 로 Routing에 등록
 

◈ OSPF Default Route
    ▪  config-router)# default-information originate                       : Default Route를 분배. 없거나 Down되면 분배 안함.
    ▪  config-router)# default-information originate always            : 무조건 분배


◈ OSPF Default Route
Default-information originate : default Route를 분배 (down되면 분배 안함)

▪ redistributes 명렁어보다 Network 명령어가 우선 순위(분배시키는 것보다 내부 네트워크가 우선)


◈ 재분배
    ► type 2 : Metric 값을 재분배 시키는 곳의 Metric에서 변경하지 않고 그대로 광고
                  R2(config-router)#redistribute connected subnets
    ► type 1 : Metric 값 누적해서 광고
                  R3(config-router)#redistribute connected subnets  metric-type 1


▪ IS-IS : OSPF와 거의 유사
         애니티? 라는 특이한 값을 사용… ??



◈ LSA와 링크 상태 데이터베이스


◈ OSPF Stub Area (p389)
▪ 외부에서 오는 Stub Area로 LSA4, 5를 차단하고 디폴트 게이트웨이를 전송
▪ ABR이 내부 라우터에게 외부 경로에 대한 LSA(4,5)를 차단하고 Default Route를 전송.
▪ 외부 Area의 정보를 받지 않음.
▪ Routing Table 감소 및 네트워크 안정성과 성능 향상.

◈ Stub Area의 종류
► Stub Area
► Totally Stubby
► NSSA
► NSSA Totally Stubby : 이걸 사용

◈ Stub Area의 제약 
► 



◈ OSPF 네트워크 축약 (ASBR과 ABR에서만 축약 가능)
► 외부 네트워크는 그 네트워크를 포함된 ASBR에서만 축약.
► 내부 네트워크 그 네트워크가 소소된 ABR에서만 축약

 


◈ OSPF 네트워크 보안
► 패스워드 지정 / 인증 
► Area 인증
 ▪ 인증방식은 Area 내에서 동일
 ▪ 인증 Password는 네이버 간에만 일치하면 됨.

► 인증키 변경
 ▪ 다수의 key 전송 시에 key 번호가 높은 것 먼저 확인

► OSPF Passive Interface
 ▪ 현업에서 사용해야 함.
▪ 

► Virtual link
▪ 임시 사용을 제외한 지속적인 virtual link 필요 시 네트워크 구성 재 구성.
▪ virtual link 설정 시에 연결된 Area와 인증방식 일치시키지 않으면 통신이 안됨.

◈ OSPF Demand Circuit


◈ OSPF Timer
► Hello / Dead 
▪Hello를 조정하면 Dead도 함께 조정 됨. (반대의 경우에는 해당 안 됨)
► LSA Group pacing
▪ 조정할 일은 별로 없음.
► OSPF Throttle timer
▪ 현업에서 대부분 조정하는 것이 좋음.
▪ R1(config-router)#timers throttle spf 1 2000 10000


► 네트워크 Flapping 등의 상황에서 늦게 Up되지 않도록.
▪ STP 사용X ,: 30초
▪ BR,BDR을 선출하지 않도록 네트워크 타입 변경 : 40초
▪ throttle 변경 : 5초


▪ IS-IS : OSPF와 거의 유사
         애니티? 라는 특이한 값을 사용… ??

R3(config-router)#area 4 nssa default-information-originate
R4(config-router)# area 4 nssa


Sh ip ospf database : 한 라우터에서 동일한 area내의 네트워크 구성도를 알 수 있음.