Network/Routing Protocol

OSPF(Open Shortest Path First)

Habilis 2022. 5. 10. 17:15

OSPF

링크상태 라우팅 프로토콜에 기초하여, ,자치시스템(AS) 내부의 라우터들끼리 라우팅 정보를 교환하는 라우팅 프로토콜이다. 1980년대 중반에 RIP 라우팅 프로토콜이 대규모 이질적인 망간 라우팅에 비효율이여서 SPF 알고리즘에 기초하여 공개적으로 개발되었다.

 

OSPF 특징

1. Interior Gateway Protocol 속한다.

 - 동일 자치시스템(AS) 내에 있는 라우터끼리만 라우팅

2. Link State 기술에 의한 최단경로 선택 라우팅 알고리즘

 - 최단 경로를 선택하기 위해 SPF 알고리즘을 사용

3. 빠른 재수렴  부분 갱신

 - OSPF 라우터 각각이 전체 네트워크 토폴로지 정보를 갖으므로토폴로지 변화에 빠른 대처가능

 - 네트워크가 안정되면 라우팅 갱신 정보만이 전달된다

    (링크 상테의 변화시에만 라우팅 정보를 전송)
4. 
라우팅 메트릭으로 링크 비용 사용

 - 목적지까지의 최적 경로 선택을 위한 라우팅 메트릭으로는 Link cost 사용

5. 네트워크를 영역 단위로 나누어 구분 관리

 - AS 내부에 영역 개념을 두어, 2-level 의한 계층적 라우팅 구현

6. 라우터 인터페이스에 접속된 OSPF 네트워크 종류에 따라 동작 방식이 달라짐

7. VLSM(Variable Length Subnet Mask) alc CIDR(Classless InterDomain Routing) 지원

 - Classless Routing

8. IP Protocol 89번을 사용한다.

9. 정보 교환은 DR -> DROther 경우에는 멀티캐스트 224.0.0.5 사용하고, DROther -> DR 경우 에는 멀티캐스트 224.0.0.6 사용한다.

10. Stub이라는 축약 기능이 있는데 기존 라우팅 프로토콜과 달리 연속되지 않은 네트워크 주소를 사용해도 라우팅 테이블의 크기를 줄일  있다.

11. 다른 Area들은 항상 Backbone Area라고 부르는 Area 0 물리적으로 직접 연결되어야 한다.

 

OSPF 라우터가 유지관리하는 테이블

1. Neighbor Table : 모든 인접 라우터들의 리스트 관리

2. Link State Database(LSDB) : 소속 망에 대한 Topology 관리 (LSA 패킷들로부터 구축됨)

3. Routing Table : LSDB이용하여 최적 경로 루트의 리스트 관리

 

OSPF 패킷 구성

IP 헤더

 SHAPE  \* MERGEFORMAT  

OSPF 공통 헤더

 SHAPE  \* MERGEFORMAT

 

version(8비트) : 현재는 version 2사용

Type(8비트) : 전송되는 메세지의 종류를 다음과 같이 표시

- type 1 : Hello Packet

- type 2 : Database Description Packet

- type 3 : Link State Request Packet

- type 4 : Link State UPdate

- type 5 : Link State Acknowledgement

Lenght(16비트) : OSPF 헤더를 포함한 전체 길이

Router ID(32비트) : 

 - OSPF 패킷의 발신지가 되는 라우터를 식별하는 ID :  AS 내에서의 모든 OSPF 라우터는 32비트의 유일한 값을 갖도록 한다.

 - 통상발신지 라우터 IP 주소 : 라우터 자신의 Local Loopback 주소를 많이 사용하며 여의치 않으면살아있는 인터페이스의 IP 주소  가장 숫자가 높은 것을 주로 사용

 - RIP, EIGRP, BGP처럼 거리백터 라우팅 프로토콜들을 라우팅 정보 전송시에 목적지 네트워크라우팅 메트릭  만을 알려주는 것과 달리, OSPF에서는 목적지 네트워크라우팅 메트릭  이외에도 라우팅 정보를 만든 라우터  해당 라우팅 정보를 전송하는 라우터를 알려주므로 라우터 ID 반드시 필요하게 된다.

Area ID(32비트) : OSPF 패킷을 생성발송하는 라우터가 속한 OSPF Area 식별 ID

Checksum(16비트) : 16 bit CRC 뒤에 인증 관련 필드들을 제외한 나머지에 대해 체크섬 계산

                   (IP 패킷 체크섬 계산 방식과 유사함)

Authentication type(16비트) : 

0 : No Authentication

1 :  Simple Password Authenticatiom

2 : MD5

Authentication value(64비트) :  Authentication type 따라 달라짐

 

 

OSPF 메세지 패킷의 5가지 종류

Hello Packet (type 1)

이웃 라우터의 발견인접관계 확립  유지

OSPF 라우터는 부팅시 이웃간 정보를 위해 Hello 프로토콜을 송출한다.

 

LSDB(Link State Database) 정보 유지관리

Database Description Packet (type 2)

회선이 멈추었을  또는 새로 발견된 OSPF 라우터의 정보 구축을 위해 사용

자신이 가지고 있는 Link State Database 내용을 보냄

 

Link State Request Packet (type 3)

상대 라우터에게 링크 상태 정보 요구

 

Link State Update Packet (type 4)

 라우터들은 정기적으로 또는 토폴로지 상에 변화가 생기면 인접 라우터에게  메세지를 송부

 

Link State Ackowledgement (type 5)

링크 상태 갱신 메세지를 받으면 그에 해당하는 링크 상태 승인 메세지를 보냄, LSA 플러딩을 신뢰성 있게 만드는데 사용

 

OSPF 패킷 특징

주로 다음과 같은 멀티캐스트 IP 주소를 사용

224.0.0.5(AllSPFRouters) : OSPF 지원하는 모든 라우터

224.0.0.6(AllDRouters) : DR BDR에게

전달 범위 : TTL 1 설정하여 멀티캐스트 패킷이 이웃라우터를 넘어서 전달되지 않게 

TOS : 110 - OSPF 패킷은 일반 Best-effort 패킷 보다  우선시 처리되어야 

OSPF 네트워크 타입 구분

공식적인 구분

Point-to-Potint Network

  대의 라우터 만이 존재하며서로 일대일 통신을 

상대 목적지 IP주소 : 224.0.0.5 사용함

직렬 시리얼 인터페이스와 같은 WAN링크(HDLC,PPP,SONET/SDH )

Broadcast Multi-Acess Network

2 이상의 라우터가 하나의 네트워크/링크에 공존하며, Broadcast  Multicast특징을 제공함

이더넷(하나의 이더넷 스위치에 여러 OSPF 라우터가 접속되어 있는 구조)

Non-Broadcast Multi-Access Network

2 이상의 라우터가 하나의 네트워크에 공존하지만, Broadcast 특징을 제공 안함

X.25, ATM, 일반 프레임 릴레이

NBMA, BMA DR/BDR 선출이 있게 

비공식적으로 시스코사에서 추가

Point-to-Multipoint Network

Point-to-Point Network 특수한 경우로써여러 Point-to-Point Network들이 합쳐진 형태로 PTP 동일한 동작

멀티 포인트 Frame-relay

Virtual Network

백본에 물리적으로 직접 연결되지 않고다른 영역을 경유하는 경우

Point-to-Point Network 특별한 경우로써 취급

Loopback Network

OSPF Mode 권장 NBMA
Topology
Subnet
Address
Hello
Timer
Adjacency RFC or
Cisco
인터페이스
Broadcast 전체 메시   
동일
10 자동 감지
DR/BDR 선출 필요
CISCO 이더넷
Nonbroadcast(NBMA) 전체 메시   
동일
30 수동설정
DR/BDR
RFC 프레임릴레이
X.25
ATM
Point-to-Multipoint 부분 메시형 또는 스타   
동일
30 자동 감지
DR/BDR 선출 불필요
RFC  
Point-to-multipoint
Nonbroadcast
부분 메시형 또는 스타형  
동일
30 수동 설정
DR/BDR 선출 불필요
CISCO  
Point-to-point 부분 메시형 또는 서브인터페이스를 이용한 스타형 서브인터페이스 마다 하나의 서브넷을 가짐 10 자동 감지
DR/BDR
CISCO 전용회선
(PPP,HDLC)

 

OSPF Neighbor States

Down : active router 감지되지 않은 상태

INIT : Hello Packet 수신한 상태

Two-way : 수신한 Hello Packet내에 자신의 RouterID 존재함을 확인한 상태

Exstart : master slave 라우터를 선출

Exchage : DBD(Database Description) Packet 전달

Loading : LSR LSU 교환

Full : Neighbor Fully Adjacent관계를 형성

 

 

LSA(Link State Advertisement)

OSPF에서 라우팅 기초 정보가 담겨진 패킷 형태의 단위 정보의 광고 패킷 형태의 단위 정보는 주로 LSU패킷, DDP 패킷에 실려서 전달이 된다.

여기서 라우팅 기초정보는 OSPF 링크 상태 정보이다. OSPF 라우터에 연결된 링크들의 링크 상태 관련 정보인접관계 형성요약 정보등 다양한 링크 상태에 대한 정보를 가지고 있다 정보는 주로 해당 네트워크/링크의 경로 비용과 관련된 정보를 나타냄

 

LSA 패킷

 라우터는 LSA 정보를 모든 라우터에게 Flooding 방식으로 광고 함으로써다른 라우터들과 서로 정보를 교환하게 된다그러한 광고성 패킷을 LSA라고 하고 이는 네트워크 정보의 일치를 위해 통상 30 마다 발생된다.

 

LSA 헤더

LS age(16비트) : LS 패킷 생성 시에 0으로 셋팅되고이후  단위의 경과시간

 LSA Flooding되면서 또하 LSD에서 유지되는 동안 계속 경과시간이 증가함

만일 동일 LS sequence number이나 다른 LS age 갖는 여러 LSA 함께 도착하면이들의 시간 차이가 MasAgeDiff 이내에 있으면  네트워크가 정상적이라 간주하고 원래 유지하던 정보를 유지한다이때 Flooding 하지도 않는다하지만 MasAgeDiff 범위를 벗어나면 네트워크 이상이라 간주하고가장 나이 어린 시간으로 자신의 LSD 갱신하고 재빨리 Flooding한다.

주기적인 LSA 유효성 검증/갱신 메커니즘

MaxAge : 1시간

LSD  어떤 LSA 어떤 이유로 해서든지 MaxAge 만큼 지나면 자동 삭제되고 이웃라우터들에 이를 Flooding한다.

LSRrefreshTime : 30

MaxAge 오기전에, LSRefreshTime 주기로 LSA 대한  정보를 Flooding 

Options(8비트)

 

 

LS type(8비트)

1 : Router link LSA(라우터와 연결된 링크)

2 : Network link LSA(네트워크에 연결된 링크)

3 : Network Summary link LSA(영역 구분된 네트워크 요약 정보)

4 : ASBR Summary link LSA(Autoomous System Border Router)

5 : AS External LSA (AS 외부로 가는 링크)

6 : Group Membership LSA

7 : NSSA (Not-So-Stubby-Area)

8 : External Attibute LSA

 

Link State ID(32비트)

OSPF 링크의 식별 : LS type 따라 다른 의미로 사용 주로라우터에 연결된 링크 또는 네트워크 IP 주소를 사용함

 

Advertising Router ID(32비트)

LSA 생성한 라우터의 라우터 ID

 

LS Sequence Number(32비트)

중복 LSA 등을 찾기위한 순서번호

 

LS Checksum(16비트)

 

length(16비트)

LSA 헤더(20 바이트) 포함한  LSA 길이

 

 

Flooding 방식에 따라 LSA 중복전달 문제점 해결방법

Sequence Number 사용

Age 방식 사용

Maxage Prematuring Age 방식 사용 

 

 

 

 

LSA Types

LSA type Description
1 Router LSAs(라우터 링크 광고)
2 Network LSAs(네트워크 링크 광고)
3 or 4 Summary LSAs(요약 링크 광고)
5 Autonomous system external LSAs
(AS 외부 링크 광고)
6 Multicast OSPF LSA(Cisco에서 지원하지 않음)
7 Defined for not-so-stubby areas(NSSA)
8 External attributes LSA for Broder GW Protocol
(BGP)
9,10,11 Opaque LSAs(( 지정 LSA)

 

라우터 링크 LSA 패킷 구조 (LS type 1)

링크의  : 수록된 링크 정보 갯수를 말한다.

Link ID : Link type 따라 달라짐

Link Data : Link type 따라 달라진다.

Link type 

1 : Point to Point Link

2 : Link to Transit Network

3 : Link to Stub Network

4 : Virtual Link

 

TOS   :  링크에 알려진 TOS(서비스 유형)  수를 나타냄

TOS IP 패킷 헤더  `서비스 유형 `혼잡 알림` 나타내는 8 비트 필드

 

Metric :  라우터 링크에 대한 링크 비용을 의미한다. 1 ~ 165535까지의 값을 가진다

 

하나의 라우터는 자신의 영역 안의 모든 라우터에게 LSA 1 Flooding한다.

Type 1 LSA 라우터에 직접 연결된 링크의 상태 정보를 포함한다.

LSA  링크마다 링크 ID 표현되는 어드레스와 마스크 정보를 나타낸다.

Router ID 유형 1 개별적인 LSA 식별하는데 이용된다.

Flooding 자신의 Area 한정된다.

 

 

Network Link LSA (LS type 2)

네트워크 링크들을 알린다.

DR 만들어내며동일 영역 내의 모든 라우터에게 이를 전달하게 된다.

현재의 DR 관련 서브넷 마스크를 알려줌현재의 DR 연결된 라우터들의 라우터 ID 알려준다.

중계 네트워크 링크의 DR 네트워크 LSA 광고해야 하는 책임이 있다.

Flooding 자신의 Area 한정된다.

시스코 라우터 타입2 LSA 내용을 보는 명령어 : show ip ospf database network

 

Network Summary Link LSA (LS type 3)

지역 경계 라우터(ASBR) 지역 밖에 있는 다른 네트워크의 존재를 알림

ASBR 만들어내며 영역 네트워크를 현재의 영역  라우터에게 알려줌

기본적으로 OSPF 연속적인 서브넷을 자동 요약하거나 Classful 경계라고 해서 네트워크 주소를 요약하지는 않는다네트워크 운영자는 어떻게 요약할 것인지를 명령어를 이용하여 반드시 수동으로 설정해야 한다.

시스코 라우터 타입3 LSA 내용을 보는 명령어 : show ip ospf database summary

 

ASBR Summary Link LSA(Autonomous System Border Router (LS type 4)

Type 4 요약 LSA 영역안에 ASBR 존재할 경우에만 사용된다. Type 4 LSA 모든 ASBR 식별하며이에 대한 도달 경로 정보를 제공한다.

외무 AS 향하는 모든 트래픽을 위해서 외부 경로 정보의 제공자인 ASBR 대한 정보가 라우팅 테이블에 존재해야 한다.

ASBR 자신이 ASBR임을 식별 하는 비트를 Type 1 Router LSA 전달하고 ABR 유형 1 LSA 수신하고유형 4 LSA 생성한  영역 0 백본 영역으로 Flooding한다.

시스코 라우터타입4 LSA 내용을 보는 명령어 : show ip ospf database asbr-summary

 

AS External LSA (LS type 5)

 

Type 5 외부 LSA OSPF AS 외부 영역으로 향하는 경로 정보를 표현한다.

Type 5 외부 LSA ASBR에서 발생하며전체 AS 안으로 Flooding 된다.

외부 LSA Flooding 범위와 외부 네트워크 정보 크기에 따라 달라지기 때문에 경로 정보를 요약하지 않을 경우 문제가 야기될  있다.

라우팅 테이블요약  Default Routing 처리

 

NSSA (Not-So-Stuuby-Area) (LS type 7)

Type 7 NSSA 외부 LSA NSSA 통해 OSPF AS 외부 영역으로 향하는 경로를 표현한다.

Type 5 외부 LSA 같은 형태를 가진다.

ASBR 생성하고 광고한다.

Type 7 광고된 LSA  다음 ABR이후부터는 Type 5 변경되어 광고된다.

기본적으로 경로 축약은 하지 않는다.

 

Interpreting the Routing table : Types of Routes

Router Designator Description
O OSPF 영역 내부
(Router LSA)
라우터의 영역 안에서 생성된 네트워크 정보
Router LSA 통해 광고
O IA OSPF inter-area(영역 사이)
(summary LSA)
라우터의 영역 밖에서 생성된 네트워크지만 OSPF AS 안의 네트워크 정보
Summary LSA 통해 광고
O E1 Type 1 external routes 라우터의 AS 밖의 네트워크 정보
외부 LSA 통해 광고
O E2 Type 2 external routes

 

E1 - 하나의 이상의 ASBR 최적화되지 않는 라우팅을 피하기 위하여 동일한 AS 향하는 외부 경로를 광고   사용된다.

E2(기본) - 단일 ASBR 외부 경로 정보를 AS 광고   사용된다.

Summariztion

Network들은 일반적으로 Type 3 LSAs 이용하여 다른 Area 전달된다.

경로 축약은 광고 되는 주소를 합하여 전달하는 과정이다.

ABR type 3 LSAs summarize

ASBR type 5 LSAs summarize

 

Summariztion 장점

라우팅 테이블을 줄이고네트워크의 안정성을 높이며불필요한 LSA Flooding 줄인다.

LSA Type3 Type5 flooding 감소 시킨다. CPU, 메모리 자원 등에 직접적으로 영향을 미친다.

 

Router(config-router)#

area area-id range address mask [advertise | not-advertise] cost cost

ABR에서 Type 3 축약

 

Router(config-router)#

Summary-address ip-address mask [not-advertise] tag tag

ASBR에서 Type 5 축약

 

OSPF Area types and Structure

OSPF 두가지 레벨의 계층적 구조를 가진 Area 기반한다

 영역(Area)  라우터의 Topology Database 해당 구조를 가지고 있다.

Area Type

Backbone Area 모든 Area 연결되어 있다
Normal Area 내부와 외부 경로 정보를 모두 가지고 있다
Stub Area 내부정보와 영역 경로 정보만 가지고 있다외부 정보는 가지고 있지 않다.
Totally stubby area 영역 정보 경로만 포함한다. Cisco 독자적인 영역이다.
Not-so-stubby area 같은 영역 정보와 외부정보만 포함한다.

ABR Summary LSA 생성한다.

ASBR External LSA 생성한다.

Summary External LSA default 경로를 전달함으로써 차단할  있다.

 

Stub and Totally Stub Area   없는 환경

1. Backbone Area

2. Virtual-link 있는 Area

3. ASBR 있는 Area (NSSA stub으로 대체)

 

Stub Areas

 영역은 AS 향하는 외부 경로에 대한 정보를 받아들이지 않는다.

라우터에서 AS외부로 향하는 네트워크에 대한 경로가 필요할 경우 0.0.0.0으로 명시되는 기본 경로를 이용한다.

Stub영역이 ASBR 포함해서는 안된다.

 

R2(config-router)#

area 2 stub

stub area networking 활성화

stub area내에 있는 모든 router stub 명령어를 사용

 

 

Totally Stubby Areas

 영역은 외부 AS경로나 다른 영역 내부에서 AS 향하는 요약 경로도 받아들이지 않는다

AS외부로 향하는 네트워크로 패킷을 전송할 경우에는 기본 경로를 이용하여 패킷을 전송한다.

Tootally Stub Area ASBR 포함하면 안된다.

 

 

Not-So-Stubby Areas(NSSAs)

1. NSSA Stub area 규칙을 따르지 않는다.

2. NSAA 내부에 ASBR(R1) 포함한다.

3. LSA type 7 ASBR 전달한다.

4. ABR (R2) LSA type 7 LSA type 5 변환해서 전달한다.

5. ABR 다른 ASBR로부터 전달된 외부 경로를 대신해서 NSSA 내부로 default route 전달한다.

6. NSSA RFC 부록에 정의 되어있다.

 

R3(config-router)#

area 2 nssa

Area 모든 internal-router에서 입력

ABR(config-router)#

area 2 nssa default-information-originate (라우팅 테이블에 기본 경로가 없는 다른 라우터에 알리지 않는다)

ABR에서 Totally NSSA Area 설정

 

 

 

실습

 

논리 구성도

 

물리 구성도

FR-SW

 

 

 

R1 routing table

 

R1 ospf neighbor NBMA환경이여서 수동으로 맺어준다

 

R1 ospf database

 

R2 routing table

 

R2 ospf neighbor NBMA환경이여서 R1 수동으로 맺어준다, R2 R3 PTP환경이여서 neighbor  맺는다

R2 ospf database

 

R3 routing table

 

R3 ospf neighbor DR/BDR 선출 프로세스 맞춰주고 hello-interval 맞춰줘야 한다.

R3 ospf database

 

R4 routing table

 

R4 ospf neighbor DR/BDR 선출 프로세스 맞춰주고 hello-interval 맞춰줘야 한다.

 

R4 ospf database

 

R1, R2 stub 설정하기

 

R1 ospf database

 

R3, R4

area 4번을 stub nssa 설정 만들기

 

R3 routing table

 

R4 routing table

R3 ospf database

R4 ospf database

 

R4 4.4.x.x대역 축약하기

R3에서 확인하기