Routing Protocol OSPF (Open Shortest Path First)
OSPF
(Open Shortest Path First)
-------- : Open : 개방형 : 아무나 들어올 수 있다.
------------------------- : SPF 알고리즘 : 최단거리 먼저 사용
Cost ---> RIP : Hop
EIGRP : 대역폭 지연 신뢰도 부하 MTU
OSPF : 대역폭에 따라 지정값 --> Serial : 1.544 MBps ---> 64
Fast : 100MBps ---> 애보다 빠르면 전부1을 사용
OSPF 의 특징
1. 계증적 구조를 갖는다.
---> Area 개념
---> DR / BDR / DROTHER
---> ABR / ASBR 역할 수행
2. 토폴로지 테이블을 구성한다. ---> 링크스테이트의 특징
출발지 ---> 도착지까지의 모든 경우의 수를 계산
---> EIGRP ---> SIA 발생 요인
발생된 Query에 대한 응답이 늦다.
---> 네트워크의 규모가 너무 크다.
---> 네트워크의 혼잡상태가 너무 높다.
해결책 : 네트워크의 규모를 조정하자.
OSPF는 Area구조를 이와같은 문제점을 해결
: 대규모 네트워크 구축에 적합하다.
기본 테스트 랩 : 동일 네트워크간 ping통신만 가능하게 하시오
R1# conf t int lo 0 ip add 1.1.1.1 255.255.255.0 int s1/0 enc fr no sh int s1/0.123 mul ip add 1.123.0.1 255.255.255.0 fram map ip 1.123.0.2 102 b fram map ip 1.123.0.3 103 b |
R2# conf t int lo 0 ip add 2.2.2.2 255.255.255.0 int s1/0 enc fr no sh int s1/0.123 po ip add 1.123.0.2 255.255.255.0 fram int 201 int s1/0.23 po ip add 1.23.0.1 255.255.255.0 fram int 203 end |
R3# conf t int lo 0 ip add 3.3.3.3 255.255.255.0 int s1/0 enc fr no sh int s1/0.123 mul ip add 1.123.0.3 255.255.255.0 fram map ip 1.123.0.1 301 b fram map ip 1.123.0.2 301 b int s1/0.23 po ip add 1.23.0.2 255.255.255.0 fram int 302 int s1/0.34 mul ip add 1.34.0.1 255.255.255.0 fram map ip 1.34.0.2 304 b int s1/0.43 po ip add 1.43.0.1 255.255.255.0 fram int 314 end |
R4# conf t int lo 0 ip add 4.4.4.4 255.255.255.0 int s1/0 enc fr no sh int s1/0.34 mul ip add 1.34.0.2 255.255.255.0 fram int 403 int s1/0.43 po ip add 1.43.0.2 255.255.255.0 fram int 413 end |
핑 테스트 완료.
OSPF 설정
conf t
router ospf 숫자(process ID)
router-id (생략가능)
network 1.1.1.0 0.0.0.255 area AREA-ID
network 1.1.1.0 0.0.0.255 area 0 <--- 해당 네트워크의 인터페이스가 포함된 Area 번호를 써 준다.
EIGRP와 비교
conf t
router eigrp 100(AS넘버)
no au (Eigrp 디스턴스벡터 : 자동축약 껐다.)
eigrp router-id IPv4주소 (생략가능)
network 1.1.1.0 0.0.0.255 --> 1.1.1.0 255.255.255.0 : VLSM을 지원한다.
R1 OSPF 설정
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#router ospf 1
R1(config-router)#network 1.1.1.0 0.0.0.255 area 0
R1(config-router)#network 1.123.0.0 0.0.0.255 area 0
<R1 ospf 설정> conf t router ospf 1 network 1.1.1.0 0.0.0.255 area 0 network 1.123.0.0 0.0.0.255 area 0 neighbor 1.123.0.2 neighbor 1.123.0.3 --------------------- conf t int s1/0.123 ip ospf priority 255 |
<R2 ospf 설정> conf t ip ospf network point-to-multipoin --------------------- conf t router ospf 1 network 1.23.0.0 0.0.0.255 area 0 network 1.123.0.0 0.0.0.255 area 0 network 2.2.2.0 0.0.0.255 area 0 --------------------- conf t int s1/0.23 ip ospf priority 0 |
<R3 ospf 설정> conf t router ospf 1 net 1.123.0.0 0.0.0.255 area 0 net 1.23.0.0 0.0.0.0255 area 0 net 3.3.3.3 0.0.0.255 area 0 net 1.34.0.0 0.0.0.255 area 1 net 1.43.0.0 0.0.255.255 area 1 nei 1.34.0.2 nei 1.123.0.1 nei 1.123.0.2 ( 멀티는 네이버 주소를 등록해줘야 한다. ) --------------------- conf t int s1/0.34 ip ospf priority 0 |
<R4 ospf 설정> conf t router ospf 1 log-adjacency-changes network 1.34.0.0 0.0.0.255 area 1 network 1.43.0.0 0.0.0.255 area 1 network 4.4.4.0 0.0.0.255 area 1 neighbor 1.34.0.1 |
R1(config-router)#end R1# R1#sh ip *Jul 17 13:17:43.051: %SYS-5-CONFIG_I: Configured from console by console R1#sh ip ospf database OSPF Router with ID (1.1.1.1) (Process ID 1) Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 39 0x80000002 0x007ED9 2 R1# |
R2# router ospf 1 network 1.23.0.0 0.0.0.255 area 0 network 1.123.0.0 0.0.0.255 area 0 network 2.2.2.0 0.0.0.255 area 0 |
기본 등록 후 네이버가 맺어지지 않는다.
해결책
po ---> OSPF는 각 네트워크 타입에 따라 hello / dead interval이 다르다.
mul
기준 : R1에 맞추자.
R2(config)#int s1/0.123
R2(config-subif)#ip osp
R2(config-subif)#ip ospf netw
R2(config-subif)#ip ospf network ?
broadcast Specify OSPF broadcast multi-access network
non-broadcast Specify OSPF NBMA network
point-to-multipoint Specify OSPF point-to-multipoint network
point-to-point Specify OSPF point-to-point network
R2(config-subif)#ip ospf network po
R2(config-subif)#ip ospf network point-to-mu
R2(config-subif)#ip ospf network point-to-multipoint
R2(config-subif)#
*Jul 17 13:29:23.871: %OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.1 on Serial1/0.123 from LOADING to FULL, Loading Done
R2(config-subif)#
계층적 구조
1. Area 구조
2. 각 라우터의 역할
역할 : 1. Area 구분 ----> Area 0 : 백본 Area
동일 OSPF의 모든 정보를 교류한다.(코어/백본)
나머지 Area (각 지역 Local)
area - area 연결 : ABR
AS - AS 연결 : ASBR
2. 강력한 축약을 지원한다. ---> 축약 : ABR / ASBR
3. 동일 세그먼트 ---> Point --> 1:1연결 굳이 역할을 구분하지 않는다.
Multi --> n:m 연결 다수의 호스트간 네이버가 성립된다.
역할 : 모든 경로를 계산 --> 대장 --> DR
DR의 부재를 대비 --> 평상시에 DR과 정보를 공유(상세정보) ->부대장 ->BDR
DR / BDR 을 제외한 모든 라우터 ---> DROTHER
평소에 DR에게 자신의 경로값을 전달
DR이 알려준 정보를 라우팅 테이블에 세팅
MC : DR - BDR : 224.0.0.6 (상세 정보 동기화)
DR - DROTHER : 224.0.0.5
실습 문제
1. 네이버 관계를 맺는 조건 --> wireshark ---> Hello 패킷 관찰
OSPF -->
헬로 패킷 ---> 인접한 라우터와 먼저 네이버 관계를 수립
물리적으로 직접 연결되는 라우터 중에서 헬로 패킷을 수신하고, 헬로 패킷에
포함된 네이버 리스트에 자신의 라우터 ID가 포함되어 있으면 네이버관계임을'
알 수 있다.
네이버 관계를 맺기 위한 요솟값
1. Area ID가 일치해야 한다.
2. Authentication : 인증 정보 일치
3. 서브넷마스크의 길이가 같아야 한다.
4. Hello / Deat Inteval이 같아야 한다. : 10 / 40, 30 / 120
po mul
5. Stub Flags 가 일치해야 한다.
2. OSPF 패킷 종류 (5가지) --> wireshark
Hello : 네이버 관계 성립 / 유지 --> adj
DBD : DB 간략한 정보
LSR(LSQ) : DBD에서 자신의 DB와 상태값이 다른 정보 Request 요청
LSU : Request에 대한 응답
LSAck : 응답 확인 ---> 수신 확인 (DBD / LSR / LSU)
3. 상태값 확인 --> debug ip ospf adj
----- : 상태값을 전달하는 패킷 : LSA
Down state. ---> Neighbor Down
Init state. ---> 상대방에게 Hello를 전달한 후 상대방의 Hello패킷에서 나의 정보를 발견하지
못한 상태
1. Mul ---> Attempt state. ---> DR / BDR 선출단계에서 다른 라우터의 참가를 기다린다.(40초)
2-Way state. ---> DR / BDR Election : priority / Router-id
2. Po ---> -
OSPF database의 동기화
Exstart state. -----> MASTER/SLAVE : Router-id
Exchange state. ----> DBD 교환(DDP)
Loading state. ---> LSQ / LSU ----동기화 완료
Full state. ----> 라우팅 테이블 적용 완료 ---->< 패킷 전달 가능
추가 정리
다운(down)상태 : OSPF가 설정되고 헬로 패킷을 전송하지만 아직 다른 라우터에게서는 헬로 패킷을 받지 못한 상태
풀상태에서 데드주기(dead interval)동안 OSPF패킷을 받지 못하고 비정상적인 상황이 발생하면 다운상
어템트(attempt)상태 : 논브로드캐스트에서만 적용되는 상태
neigbor명령어를 사용하여 지정한 네이버에게서 헬로 패킷을 수신하지 못한 상태
해당 네이버와의 연결이 끊긴 경우에 어템트 상태가 된다
이닛(init)상태 : 헬로 패킷을 받았으나 수신 라우터는 아직 나의 헬로 패킷을 수신하지 못한 상태 이 경우 수신 라우터가 보 낸 헬로 패킷
투 웨이(two-way)상태 : 네이버와 쌍방향 통신이 이루어진 상태
상대 라우터가 보낸 헬로 패킷내의 네이버 리스트에 나의 라우터 ID가 포함되어 있는 경우 투웨이 상태
멀티 액세스 네트워크라면 DR,BDR을 선출한다
DROTHER라우터간에는 어드제이션트를 맺지 않으므로 투웨이상태로 남게 되고 포인트 투 포인 트 및 포인
연결된 라우터간에는 풀상태가 된다
엑스스타트(exstart)상태 : 어드제이션트 네이버가 되는 첫 단계
마스터 라우터와 슬레이브 라우터를 선출한다 라우터ID가 높은 것이 마스터가 된다 다음단계에 서 DDP
익스체인지(exchange)상태 : DBD(database descriptor)패킷을 교환하는 상태
링크에 대한 정보가 저장된 데이터베이스를 요약하여 LSA헤더만 DDP,DBD패킷에 실어보낸고 DBD패
저장해둔다 일치하면 풀상태로 들어간다
로딩()loading상태 : 상대로부터의 DDP수신이 끝난후 링크상태 요청리스트에 기록해두는 상태
만약 기록해둔 것이 있으면 링크상태 요청 패킷(LSR)을 보내 특정 LSA의 상세정보를 보내줄 것을 요 청한다 요
풀(full)상태 : 어드제이션트 라우터들의 링크 상태 데이터베이가 일치한 경우 라우터들간에 라우팅 정보 교환이 끝난 상태
4. OSPF 네트워크 타입 총 5가지가 있다.
네이버 선출 DR 헬로 데드
broadcast 자동 선출 10 40 : 이더넷
non-broadcast 지정 선출 30 120 : mul 서브
point-to-multipoint 자동 없음 30 120 : 없음
point-to-point 자동 없음 10 40 : po 서브
OSPF 의 장점!!!
강력한 축약을 제공한다.
1. LSA 패킷 타입에 따른 전달 범위 제한
2. 네트워크 정보 축약 기능 제공 ---> ABR / ASBR
ABR 축약 ---> 대상 : O IA ---> LAS 3
conf t
router ospf 1
area 2 range NI SM
- :축약할 Area 번호
(자신이 속한 Area 정보를 백본 Area에게 축약 전달한다.)
ABR은 축약된 네트워크에 대해 Null0를 설정한다.
ASBR축약 ---> 대상 O E2 ---> LSA 5
conf t
router ospf 1
summary-address NI SM
(자신이 속한 외부 네트워크 정보를 같은 Area에게 축약 전달 ---> ABR에 의해 ---> 백본에 전달)
다른 네트워크에서 전달되는 정보를 우리 네트워크로 가져올 때 (ASBR)
---> 디폴트 경로를 갖고 있다!!!
( ip route 0.0.0.0 0.0.0.0 )
전달하는 방법
1. 재분배 ( red static ) ===> 원래 되야하는데 안떠서 2번으로 진행.
2. default-information originate metric 100 metric-type 1
OSPF STUB Area
※ 네트워크에 인입/인출 경로가 하나인경우
일반적인 LAN환경을 STUB Network 라고 한다.
RIP구간을 RIP를 지우고 OSPF환경으로 만듬. -----> ASBR존재가 사라졌다.
-----> STUB Area 가 되었다.
Area 중 STUB 환경을 갖고 있는 Area는 IA / E 경로를 차단해도 된다.
단, ABR에 대한 디폴트 경로가 필요하다.
(SUTB 선언된 Area에서는 ABR을 대상으로하는 디폴트 경로가 생성된다.) O* IA
E2/E1 ---> 외부 네트워크의 경로값을 알 필요가 없다.
Area의 모든 멤버 라우터에게 해당 Area가 STUB임을 알려준다. (STUB선언)
Area1에 해당하는 멤버 라우터들에게 STUB Flag를 세워줘야 한다.
#STUB선언
conf t
router ospf 1
area 1 stub
O*IA 0.0.0.0/0 [110/75] via 1.128.144.1, 00:00:56, Serial1/0.103 ---> ABR을 대상으로 디폴트 경로가 됨
완전 STUB 환경을 구현하자!!
IA ---> 도 차단하고 싶다.
ABR ---> area 1 stub no-summary
O* IA 경로가 보이지 않게 된다. ----> default-information originate metric 100 metric-type 1 실행
Totaly Stub Area 환경이 되었다
※STUB 제약 사항
1. 백본 Area가 될 수 없다.
2. 가상 링크 설정 시 (Vutual-link) 트랜짓Area(Transit)가 될 수 없다.
3. Area 내부에 ASBR을 둘 수 없다. (단, NSSA는 예외다)
NSSA ( Not So Stuby Area) ---> Stub이지만 Stuby 하지는 않다.
#NSSA설정 (ASBR에서)
conf t
router ospf 1
area 1 nssa
NSSA : Not So Stuby Area : Stub 이지만 Stub하지 않다
------- :E를 차단하겠다.
---------------------------- : E를 차단하지 않겠다
------------- E코드는 차단 --> 대신에 N 코드를 전송
NSSA를 선언할 Area의 모든 라우터에서 area 2 nssa를 선언
디폴트 경로가 자동으로 생성 되지 않는다.
ABR에서 area 2 nssa default-information-originate
totally nssa ---> ABR : area 2 nssa no-summary 추가한다.