OSPF

OSPF(Open Shortest Path First)



IP패킷만 봐도 OSPF인지 알 수 있다.

Convergence Time(컨버전스 타임) : 라우터간에 서로 변경된 정보를 주고 받는데 걸리는 시간

RIP의 경우 업데이트 시간, 홀드타임, 에이징 등 으로 시간이 오래 걸리지만

OSPF의 경우 변화가 생길 때 바로 전달 가능(=> 훨씬 빠름)

또, Area라는 개념을 사용해서 효율적(큰 네트워크를 Area로 나눠서 관리)

VLSM 지원(IP주소를 효과적으로 사용가능, 라우팅 테이블을 줄여줌)

라우트 서머리제이션(Route Summarization) 지원 (여러개의 라우팅 경로를 하나로 묶는 기능)

네트워크 크기 제한 없음 (RIP의 경우 15홉 제한)

대역폭 활용이 유용함 (RIP의 경우 30초에 한 번 브로드 캐스트 -> 대역폭 낭비 / OSPF는 변화가 있을때 멀티 캐스트로 알림)

경로 결정에서 많은 관련 요소를 합쳐 경로를 선택하기 때문에 정확한 경로 선택 가능

표준 라우팅 프로토콜. 링크 스테이트 라우팅 알고리즘


RIPv1 

RIPv2 

EIGRP 

OSPF 

브로드 캐스트 

멀티 캐스트 

멀티 캐스트 

멀티 캐스트 

255.255.255.255 

224.0.0.9 

224.0.0.10 

224.0.0.5

224.0.0.6






라우팅 프로토콜이 라우팅 테이블 업데이트시 사용하는 전송 방법 및 멀티캐스트 주소



 

DR 

헬로/데드 주기 

BROAD CAST 

10/40 

POINT TO POINT 

10/40 

POINT TO MULTICAST 

30/120 

NON BROAD CAST 

30/120 

<OSPF>



OSPF 토폴로지(Topology)

1) 브로드 캐스트 멀티 액세스 포톨로지(Broadcast Multi-access Topology)

하나의 메세지를 내보내면 이 네트워크 상에 있는 모든 라우터들이 정보를 받아 볼 수 있는 구조 ex) 이더넷 세그먼트

2) 포인트 투 포인트 토폴로지(Point to Point Topology)

네트워크에 한 쌍의 라우터만 존재하는 경우 ex) 전용선

3) NBMA 토폴로지(Non Broadcast Multi-access)

브로드캐스트 멀티 액세스에서 브로드캐스트 기능이 없음 ex) 프레임 릴레이, X.25



OSPF의 이웃사랑

OSPF는 주위의 OSPF 라우터들을 찾아서 자신의 데이터베이스안에 저장

-> 주위 라우터들은 Neighbor(이웃)이라고 함.

1) 주변의 이웃을 찾기 위해 OSPF 라우터는 Hello 패킷을 내보냄

라우터 A가 켜지면 이웃이 누가 있나 알기위해 Hello 패킷을 보냄

멀티 캐스트 224.0.0.5를 이용(OSPF로 동작하는 라우터만 수신)

2) 헬로 패킷을 받은 라우터 B는 자신의 이웃 목록(Neighbor list)에 넣음(Init 과정)

3) A에게서 헬로 메세지를 받은 OSPF 라우터들이 A에게 유니캐스트로 자신들의 정보를 보냄.

4) 마지막으로 라우터 A는 Neighbor들로 부터 받은 정보를 자신의 Neighbor 리스트에 넣어 관리하게 됨


헬로 패킷에 포함되어 있는 내용

Router ID / Hello/Dead intervals / Neighbors / Area-ID / DR IP Address / BDR IP Address / Authentication Password / Stub area flag

헬로 패킷에 있는 정보 중 헬로 데드 인터벌 / 에어리어 아이디 인증 패스워드 스툽 에어리어 플래그가 최소한 같아야 이웃으로 인식함.

헬로 패킷은 10초마다 발생



Router ID

보통 Loopback 주소를 Router ID로 사용. 없다면 인터페이스 IP 중에 젤 높은 IP를 Router ID로 사용.

--> Router ID가 정해진 OSPF 프로토콜에서 더 높은 Loopback을 설정해도 Router ID가 바끼지 않는다.

껏다 켜거나 프로토콜을 내렸다가 다시 올려야 바낀다.


DR 과 BDR

DR(Designated Router), BDR(Backup Designated Router)

반장과 부반장


OSPF 세그먼트에서는 각 라우터들이 OSPF에 참여하게 되면 DR과 BDR에게 자신의 Link State를 알리게 됨.

--> 모든 라우터들에게 Link State를 교환할 경우 발생하는 트래픽을 줄이고 Link State의 Sync(일치성)를 제대로 관리하기 위함

정보를 받은 DR은 이 정보를 모두 관리하면서 링크의 상태를 항상 일치시키는 역할

BDR은 DR이 제대로 작동하는지 보고있다가 DR이 다운 된다면 바로 DR역할을 한다.


--> OSPF에서는 모든 라우터가 반드시 DR, BDR과 Link State를 Sync(일치)해야함(->Adjacency(어드제이션시))



OSPF에서의 DR / BDR 선출 과정

1) DR이 되기 위해서는 Priority 값이 높아야 함

(OSPF로 동작하는 Router는 모두 Priority를 갖음) (기본값=1)

2) Priority 값이 같다면 Router ID를 비교함 (더 높아야 DR될 수 있음)

--> 가장 높은 라우터가 DR / 그 다음이 BDR이 됨.

만약 DR이 다운된다면 BDR이 DR역할을 하고 BDR을 다시 뽑음


안정적으로 OSPF가 돌아 갈 때 새로운 Router가 OSPF에 포함되더라도 DR / BDR을 다시 뽑지는 않음 (프로토콜 다운시켰다가 활성 시키거나 장비가 껏다 켜지않는 이상)


DR과 BDR이 되면 안되는 Router에는 Priority 값을 0으로 바구면 DR / BDR이 될 일은 없다.



OSPF에서 링크 변화 눈치 채기

1) 라우터가 처음 켜지거나 새로 OSPF 라우팅으로 구성되면 그 라우터는 멀티캐스트 주소(224.0.0.5: 모든 OSPF 라우터들에게 전송되는 주소)를 이용해서 헬로 패킷을 보냄

2) 헬로 패킷을 이용하여 새로운 라우터는 DR과 BDR의 주소를 알게 됨

3) 이제 새 라우터는 자신이 가지고 있는 링크정보를 LSA(Link-State Advertisement)에 담아 모든 DR에게 전송함.(이 때 멀티캐스트 주소 224.0.0.6을 사용 / 모든 DR과 BDR에게 전송됨) DR에 LSA가 도착하면 BDR은 자신의 타이머(Timer)를 세팅하고 DR이 새로운 라우터에게서 받은 이 정보를 다른 OSPF라우터들에게 재전송하는지 기다리게 됨

4) DR이 새로 받은 LSA 정보를 멀티캐스트 주소 224.0.0.5를 이용해서 다른 모든 OSPF 라우터들에게 전송함(새 라우터 포함). 전송 후 DR은 모든 라우터들로 부터 Ack를 받으므로써 자기가 보낸 정보가 잘 도착했는지 알게 됨.

5) 이 때 만약 DR이 BDR의 타이머가 끝날 때까지 LSA정보를 다른 OSPF 라우터들에게 전송하지 않으면 BDR은 DR이 되고, 헬로 패킷을 이용해서 bDR을 새로 선출하게 됨.

6) 만약 링크기 끊어지면 해당 라우터는 그 정보를 즉시 DR에게 알리고 DR은 그 LSA 정보를 다시 모든 OSPF 라우터들에게 전송함. 또 새로운 정보를 받은 라우터들은 그 LSA를 다시 가까운 네트워크로 Flooding(플로딩)해서 네트워크에 대한 정보를 업데이트하게 함


--> OSPF 라우터에서 링크에 어떤 변화가 생기면 우선 그 네트워크에 있는 DR에게 알리고, DR은 다른 OSPF라우터에게 알려 각자의 라우팅 테이블을 업데이트한다는 말.



간단한 OSPF 구성

(config) # router ospf [process-id] -> 다른 라우터와 꼭 일치하지 않아도 된다. 하지만 굳이 안맞출 필요도 없다

(config-router) # network 150.100.1.0 0.0.0.255 area 0

area : 확장성 있는 라우팅 업데이트를 위해서 사용하는 개념

area의 가장 기본은 백본 area라 불리는 area 0

(OSPF 영역을 보다 작은 area 단위로 나누어 그 영역 안에 있는 OSPF 라우터끼리만 우선 링크 정보를 업데이트하고, 다른 area와의 통신은 area 사이에 있는 라우터들(Area Border Router , ABR)이 정보를 전달하도록 하는 방식)

일단 여기서는 OSPF가 area라는 단위로 나누어져 통신이 일어난다는 것과 area의 가장 기본은 백본 area라는 단위로 나누어져 통신이 일어난다는 것과 area의 가장 기본은 백본 area라 불리는 area 0 이라는 것만 알아두자. 따라서 area를 구성할 때는 백본 area를 중심으로 다른 area를 구성해 주는 것이 가장 일반적이다.


show ip protocols

현재 라우터에서 돌아가고 있는 IP 라우팅 프로토콜 보기

show ip route

라우팅 테이블 보기

show ip ospf interface

OSPF의 인터페이스 방식 보기

Hello 10, Dead 40, Wait 40, Retransmit 5

(Point to Point) : DR, BDR 필요 없음

(Broadcast) : DR, BDR 필요함

show ip ospf neighbor

주변 이웃들 정보 보기