Limetime's TimeLine
article thumbnail
반응형

와~ 여러분 마지막 동적 라우팅 개념 설명 시간입니다~

방금 제가 30분 동안 쓰던 OSPF글이 순식간에 'Internet Explorer 가 응답이 없습니다.'에 의해 

날아 갔습니다.~~(와!!~~) ㅋㅋ 티스토리의 임시저장마저 저를 배신하고...

이런 멍멍이 같은 경우가 다 있나여.. 

그래도 다시한번 써봅니다... 크롬으로..

가운데 정렬로 써봅니다.

9) 네트워크의 기본 9. <OSPF (Dynamic Routing)>


자! 여러분 앞에서 RIP, EIGRP를 잘 공부 하고 오셨나요?

간단히 말하자면 OSPF는 규모가 크고 성장하는 Network를 위해 고안되었습니다.

사실 RIP은 소규모 네트워크에 적당하고, 대규모를 위한 EIGRP는 시스코 장비만 사용할 수 있으니

이 한계를 극복하기 위해 고안 된게 바로 OSPF입니다.

OSPF(Open Shortest Path First)입니다.

음.. '열린 짧은 경로를 먼저 선정한다?' 

사실상 개념은 '링크 상태의 라우팅 프로토콜에 기초하여 자치시스템(AS, 내부랜 관할장치)내부의 라우터들 끼리(IGP) 라우팅 정보를 교환하는 라우팅 프로토콜' 이랍니다.

ㅋㅋㅋㅋㅋㅋㅋ 일단 알고 갑시다.

아! 그리고 Neighbor라는 단어가 많이 나올텐데 그냥 '이웃' 입니다.

따져 보면 

하나의 라우터에 있어 라우팅 정보교환하는 다른 라우터.

네이버를 잘 맺어야 라우팅 정보 주고 받을 수 있음.

한 라우터를 기준으로 볼 때 직접 연결된 라우터.

뭐 이겁니다. ㅎㅎ 당연 한거죠?

<OSPF의 특징>

1. 각 라우터는 OSPF 데이터베이스를 토대로 Dijkstra Algorithm을 수행하여 최적의 경로를 산출하여 라우팅 테이블에 적재 합니다.

"Dijkstra가 뭔가요?" 바로! 최단경로를 알아내주는 알고리즘입니다.

2. IGP(Interior Gateway Protocol) 입니다.

3. Open Architecture로서 특정 Vendor에 종속적이지 않습니다.

(Vendor가 여기서 정확히 어떤의미인지.... 판매상?)

4. Convergence의 속도는 Routing Change가 즉시 Flooding 되어 

각 Router에서 병렬 계산이 이루어 지므로 엄청나게 빠릅니다.

(Default : 5초 ~ 46초)

5. VLSM 및 CIDR을 지원합니다.

6. OSPF는 Network 확장에 한계가 없습니다.

(와우...)

7. Network에 변화가 있을 때만 Multicast (224.0.0.5)로 Link State Update를 하기 때문에 대역폭 사용이 적습니다.

8. OSPF는 Bandwidth에 기초한 Cost Value를 Path Selection Method로 사용합니다.

(OSPF는 Equal-Cost Multiple Path를 최대 4까지 지원합니다.)


"OSPF 라우팅 테이블을 만들고 유지하는 과정"

* OSPF가 설정된 라우터간에 헬로 패킷을 주고 받아 이웃및 어드제이션트 이웃관계를 구성합니다.

다른 라우팅 프로토콜들과는 달리 OSPF는 모든 네이버간에 라우팅 정보를 교환하는 것은 아닙니다.

라우팅 정보를 교환하는 이웃을 '어드제이션트 네이버' 라고 합니다.

네이버(이웃)가 아니면 Adjacency neighbor도 아니겠죠?


* 어드제이션트 라우터끼리 라우팅 정보를 교환합니다.

OSPF에서는 라우팅 정보를 LSA(Link State Advertisement)라고 합니다. (★)

각 라우터들은 전송 받은 LSA를 링크 상태 데이터베이스에 저장 합니다.


* LSA교환이 끝나면 이를 근거로 SPF(Shortest Path First) 또는 디지크스트라(Dijkstra)라는 알고리즘을 사용하여 각 목적지까지의 최적경로를 계산하고 이를 라우팅 테이블에 저장 합니다.


* 이후 주기적으로 헬로 패킷을 전송하여 각 라우터가 정상적으로 동작하고 있음을 인접라우터에게 알립니다.


"AREA(영역)의 개념"

그림을 못그리는 데 잘 봐주세요 ㅋㅋ


* OSPF에서는 네트워크를 여러 AREA로 나누고 OSPF 라우팅 정보를 몇 가지로 구분하여 적당히 작은 라우팅 테이블을 구성합니다.

* AREA를 나누는데 있어서 중요한 기준 중 하나는 AREA 0 (중심이 되는 AREA)가 있어야 하며, 다른 AREA들은 모두 AREA 0 과 붙어 있어야 합니다.(★)

* 만약 그렇지 않다면(?), 가상링크(Virtual Link)를 통해 연결해야 합니다.)


<그림을 보면서 따라와 주세요~>

● IR(Internal Router)

* Area 내에 포함되어 있는 라우터를 IR이라 합니다.

* IR의 인터페이스는 모두 해당 AREA의 번호를 가집니다.


◎ ABR(Area Border Router)

* Area와 Area경계선에 있는 라우터를 ABR이라 합니다.

* ABR은 적어도 하나의 인터페이스는 AREA 0 에 속해야 합니다.

* 만약 AREA에 붙지 못하는 경우 가상링크(Virtual Link)를 통해 속하게 합니다.


◎ ASBR(Autonomous System Border Router)

* 라우터의 인터페이스 중 일부가 OSPF영역 밖에 있는 경우의 라우터를 ASBR이라고 합니다.

* 예를 들면 RIP과 OSPF는 다른 프로토콜이므로 재분배를 해야하며 이럴때 ASBR이 됩니다.


● ABR/ASBR

* ABR이면서 ASBR인 경우로,  AREA경계와 AS경계 모두 있는 경우 입니다.


"OSPF에서 사용하는 패킷"

패킷타입 

패킷이름 

역할 

Hello 

이웃 구성및 유지 

Database Description 

데이터베이스 내용 요약 

Link State Request

데이터베이스 상세내용 요청 

Link State Update 

데이터베이스 업데이트 

Link State Ack

ACK전송 


● Hello Packet

* Hello패킷을 이용하여 인접한 라우터와 먼저 이웃을 구성합니다.

* 물리적으로 직접 연결된 인터페이스를 통하여 이웃을 구성 합니다. (★)

* 물리적으로 직접 연결되어 있지 않으면 이웃 관계가 구성되지 않습니다.


* OSPF 이웃을 형성하고 유지하는데 사용되는 패킷입니다.

* 기본 값으로 Hello패킷은 10초, 데드 주기는 Hello패킷의 4배를 사용합니다.


< ※ Hello 패킷의 데이터 값 중 반드시 일치해야 하는 것들 >

 Router ID

Hello/Dead Intervals * 

 Neighbors

Area-ID *

 DR IP Address

BDR IP Address 

Authentication Password *  

Stub Area Flag * 


* Hello/Dead 주기(intervals)값

- 라우터는 상대방 라우터가 이웃으로서 연결이 되었는지 안되었는지 Hello패킷을 통해 알 수 있습니다.

- OSPF의 경우 Hello패킷을 4번, EIGRP의 경우 3번 보내고 응답이 없는 경우 문제가 있는 것으로 인식합니다.

- 이렇게 라우터가 Hello패킷을 보내는 주기를 Hello주기, Hello에 대한 응답이 없어 네이버 테이블에서 삭제할 때까지 기다리는 주기를 DEAD주기라 합니다.

- Hello/Dead 주기는 디폴트 값이 있지만 인터페이스에서 아래와 같이 변경할 수 도 있습니다.

R1(config-if)# ip ospf hello-interval 10

R1(config-if)# ip ospf dead-interval 10


* AREA ID/AREA 종류

- 이웃을 맺으려면 서로의 인터페이스는 동일 AREA이면서, 그 AREA의 종류가 동일해야 합니다.

- 예를 들어, 한 라우터에서는 STUB AREA라고 하고, 다른 라우터에서는 일반(STANDARD AREA)라고 하면 이웃을 맺을 수 없습니다.


* 인증(Authentication)

- 인증을 사용할 경우 인증 패스워드 및 인증 방법이 동일해야 합니다.


● DDP(Link State Advertisement) = DBD

* OSPF의 네트워크 정보를 LSA라고 부릅니다.

* 자신이 만든 LSA및 이웃에게서 수신한 LSA를 모두 링크 상태의 데이터베이스라고 하는 곳에 저장 됩니다.

* DDP는 OSPF라우터의 링크 상태 데이터베이스에 있는 LSA들을 요약한 정보를 알려주는 패킷입니다.

* OSPF 이웃 라우터간에 LSA들을 교환하기 전에 자신의 링크 상태 데이터베이스에 있는 LSA목록을 상대 라우터에게 알려주기 위해서 사용됩니다.


● LSR(Link State Request)

* 상대 라우터가 보낸 DDP를 보고, 자신에게 없는 네트워크 정보(LSA) 가 있으면, 상세한 내용(LSA)을 요청할 때 사용하는 패킷입니다.


● LSU(Link State Update)

* 상대 라우터에게서 LSR을 받거나 네트워크 상태가 변했을 경우 해당 라우팅 정보를 전송할 때 사용하는 패킷입니다. 즉 LSU는  LSA를 실어 나를 때 사용하는 패킷 입니다.


● LS ACK(Link State Acknowledgement)

* OSPF는 DDP, LSR, LSU패킷을 수신하면 반드시 LS ACK패킷을 사용하여 상대에게 정상적으로 수신 했음을 알려야 합니다.


<OSPF 단계별 사용하는 OSPF 패킷 종류>

INT → 2WAY → EXSTART

→ EXCHANGE → LOADING → FULL 

 HELLO 패킷

DBD, LSR, LSU, LSAck패킷 




"OSPF 메트릭"

OSPF의 메트릭을 코스트(COST)라고 부르며, 출발지부터 목적지까지의 각 인터페이스에서 기준 대역폭을 실제 대역폭으로 나눈 값의 합계입니다.

시스코사의 IOS의 OSPF기준 대역폭은 입니다.!

코스트 계산시 소수점 이하의 수는 버립니다.

그러나 전체 코스트 값이 1미만이면 1로 계산합니다.

문제를 내드리죠!

Bandwidth는 대역폭인거 아시져?

계산기로 푸세요! 꼭!

Quiz1. R1에서 R3의 1.1.2.1 네트워크에 대한 OSPF 코스트 값은? (기준 대역폭 )

답은 :


"OSPF 구성하기"

router     ospf     process-id

network     networkIP     Wildcardmask     area0

※ 프로세스 ID(Process-ID)

- 라우터 내부적으로 사용하는 ID이며, 다른 라우터와 동일할 필요가 없습니다.

- 운용상의 편리성을 위해 서로 동일하게 사용하는것을 권장합니다.

- 한 라우터는 여러 개의 OSPF프로세스를 운용할 수 있는데, 이는 여러 개의 OSPF 데이터베이스를 사용한다는 것입니다.


"DR과 BDR"

DR, BDR은 브로드캐스트 및 논브로드캐스트 네트워크에서만 사용되며, 포인트 투 포인트 

네트워크에서는 사용되지 않습니다.

* DR이 다운되면 BDR이 DR이 되고, BDR을 새로 선출 합니다. BDR이 다운되면 BDR을 새로 선출 합니다. DR, BDR이 아닌 라우터를 DROTHER 라우터라 합니다.

* DR, BDR이 선출되면 DROTHER라우터들은 DR 및 BDR 라우터와 라우팅 정보를 교환합니다.

또 DR과 BDR도 서로 라우팅 정보를 교환합니다.

그러나! BUT!, DROTHER 라우터 끼리는 라우팅 정보를 교환하지 않습니다. (★)



다음 부터는 이제 개념은 다 했으니 실습을 해봅시다.


반응형
profile

Limetime's TimeLine

@Limetime

포스팅이 좋았다면 "공감❤️" 또는 "구독👍🏻" 해주세요!