✔ OSPF(Open Shortest Path First)
- 표준 개방형 최단거리 우선 라우팅 프로토콜
- Link State 라우팅 프로토콜
→ 각 라우터가 전체 네트워크의 상태 판단
→ 제공받은 Link 상태를 가지고 직접 네트워크에서 Cost 계산
→ 링크 변화 즉시 정보를 update / Convergence Time(수렴시간)이 짧음
→ 변화된 정보만 다른 라우터에게 전달
- Distance Vector 라우팅 프로토콜이 아니므로 Split Horizon이나 auto summary가 적용되지 않음
- 최적의 경로를 계산할 때 SPF(Shortest Path First) or Dijkstra 를 이용하여 각 목적지까지의 최적 경로를 계산
- Metric은 cost 사용(10^8 / Bandwidth)
- Multicast를 사용하여 정보를 전달
→ 224.0.0.5 (DR,BDR이 DROTHER에게 전송할 때 사용)
→ 224.0.0.6 (DROTHER가 DR, BDR에게 전송할 때 사용)
- AD 값은 110
- 네트워크에 변화가 없으면 라우팅 업데이트를 하지 않는다
→ Hello Time 10초
→ 변화가 없더라도 30분 간격으로 LSR을 통해 주기적으로 정보 교환
- 데이터베이스 테이블을 생성하여 네트워크 정보를 관리
- 데이터베이스 테이블을 참조하여 최적의 경로를 산출
- LSA를 통해서 LSDB를 동기화
◾장점
- OSPF는 Area 단위로 구성되어 대규모 네트워크를 안정되게 운영할 수 있음
→ 특정 Area 에서 발생하는 상세한 라우팅 정보가 다른 Area로 전송되지 않아 큰 규모에서 안정되게 운영 가능
→ 재분배 설정을 통해 다른 Area로 전송 가능
- Stub 이라는 강력한 축약 기능
→ 기존 라우팅 프로토콜과 달리 IP 주소가 연속되지 않아도 Routing table의 크기를 획기적으로 줄일 수 있음
- 표준 라우팅 프로토콜
- Convergence time(수렴 시간)이 전반적으로 빠른 편
◾OSPF에서의 ID
- Process ID
→ 한 라우터 안에서만 존재
→ 한 라우터에서 OSPF를 여러개 구동시킬 때 각각을 구분하기 위해 사용
→ 1 ~ 65335
- Router ID
→ 다른 라우터끼리 서로를 구분하기 위해 사용
→ 라우팅 정보를 주고 받을 때 라우터를 식별하기 위해 사용하는 ID
→ 라우터끼리 주고 받은 정보를 바탕으로 동일 에어리어의 구성도를 그리고 다른 에어리어나 외부 네트워크가
어느 라우터와 연결되어있는지를 파악함. 이때 라우터를 구분하기 위해 사용하는 것
→ 라우터 IP가 없으면 동작 안함
→ 만들어지는 우선순위
1. router-id 명령으로 직접 지정해 주는 방식 : IP 주소 형식
2. loopback 주소 중 가장 높은 값
3. 라우터에 설정된 IP 주소 중 가장 높은 값
- Area ID
→ 영역 구별용
→ 광고할 영역, 번호가 일치해야 라우팅 테이블을 교환
◾OSPF Area
- OSPF 중대형 망에서 관리하기 편한 작은 영역(AREA)들로 나눠서 관리
- SPF 계산 빈도 감소
→ OSPF에서는 네트워크의 변화에 직접 영향을 받는 에이리어 내부에서만 경로 계산
→ ABR 라우터가 다른 에이리어로 광고
- OSPF는 복수 개의 Area로 나눠서 설정
- 규모가 작은 경우 하나의 Area만 사용해도 상관없음
- Area가 하나 일 경우 아무 번호나 사용해도 상관없지만, 두 개 이상일 경우 하나는 반드시 0으로 설정
- Area 0은 Backbone Area라고 부름(다른 Area는 Area 0과 물리적으로 연결되어야 한다)
→ Backbon Router : Backbone Area에 소속된 라우터
→ Internal Router : 하나의 Area에만 소속된 라우터
→ ABR (Area Border Router) : 두 개 이상의 Area에 소속된 Area 경계 라우터
→ ASBR (As Boundary Router) : OSPF 네트워크와 다른 라우팅 프로토콜이 설정된 네트워크를 연결하는 AS 경계 라우터
◾구성 방법
(config)# router ospf [Process ID]
(config-router)# router-id [x.x.x.x]
(config-router)# network [네트워크 주소] [와일드카드 마스크] area [Area 번호]
# show ip protocols
# show ip ospf neighbor
# show ip ospf database
ospf는 루프백 주소를 호스트로 인식함
네트워크로 변경하는 명령어
(config)# int lo 0
(config-if)# ip ospf network point-to-point
◾OSPF 패킷
▫️ Hello
- 인접 라우터 간에 이웃 관계를 형성하고 유지하는데 사용
- Hello 패킷을 교환하여 안의 정보를 확인하고, 네이버 관계를 맺으며
일정 시간 동안 Hello 패킷을 수신하지 못하면 네이버 관계 해제
- Area ID, Stub 정보, Authentication, Hello / Dead Interval, Subnetmask, MTU, DR/BDR, Priority, 라우터 ID를 담고 있음
1~ 5번까지 정보가 일치해야 네이버 형성 가능
▫️ DBD
- Database Description Packet
- 링크 상태 데이터베이스에 있는 LSA들을 요약하는 정보
- LSA들을 교환하기 전에 자신의 링크 상태 데이터베이스에 있는 LSA 목록을 상대 라우터에게 알려주기 위해 사용
- OSPF는 네트워크 정보를 LSA (Link State Advertisement)라 부르는데
- 자신이 만든 LSA와 이웃으로부터 받은 LSA를 DBD에 저장
▫️ LSR
- Link State Request
- neighbor에게 전송받은 DBD에 자신의 DBD 정보가 없는 네트워크가 있다면
- 해당 정보를 요청할 때 사용
▫️ LSU
- Link State Update
- 상대 라우터에게 LSR을 받거나, 네트워크 상태가 변했을 경우 해당 정보를 전송할 때 사용
▫️ LS Ack
- Acknowlegement
- DBD, LSR, LSU 패킷을 수신하면 ACK를 사용하여 수신했음을 알림
- LSU 패킷을 전송했는데 LSA 패킷을 수신하지 못하면 16번 재전송, 그래도 못 받으면 네이버 관계 해제
◾OSPF가 라우팅 테이블을 만들고 유지하는 과정
1. 라우터 간 Hello 패킷을 주고받아 네이버 및 Adjancent 네이버 관계 구성
- OSPF는 모든 네이버간 라우팅 정보를 교환하지 않음
- 라우팅 정보를 교환하는 네이버를 어드제이션트 네이버라고 함(인접 관계에 있다)
2. 어드제이션트 네이버끼리 라우팅 정보를 교환, 각 라우터들은 전송받는 LSA를 링크상태 데이터베이스에 저장
3. LSA 교환이 끝나면 최적경로를 계산하고 라우팅 테이블에 저장
◾OSPF 상태 변화
▫️ Down
- OSPF 라우터가 네이버 라우터와 어떤 정보도 교환하지 않은 상태
- OSPF가 설정되고 헬로 패킷을 전송하지만 다른 라우터한테 받지 못한 상태
- Dead Interval 동안 헬로 패킷을 못 받은 상태
▫️ Init
- 자신은 Hello 패킷을 수신했지만 송신은 하지 않은 상태
- Hello 패킷을 수신했지만 수신받은 내역에서 자신의 Router-ID 가 없는 상태
▫️ Two-Way
- Hello 패킷 송/수신이 완료된 상태
- 네이버와 쌍방향 통신이 이루어진 상태
- DR/BDR 선출
▫️ Exstart
- 두 라우터 간에 마스터/슬레이브 관계가 수립
- Router-ID가 큰 라우터가 마스터 (마스터 라우터가 DBD를 먼저 전송함)
▫️ Exchange
- DBD 패킷을 교환
- DBD 패킷을 교환 후, 업데이트 내용이 없으면 Full State 진입
- 업데이트를 받아야 한다면 자신에게 없는 정보를 LSR에 보관 후 Loading으로 전환
▫️ Loading
- LSR 패킷을 사용하여 자신에게 없는 링크 정보에 대한 세부 정보 요청
▫️ Full(Full Adjacency State)
- 라우팅 정보 교환이 끝난 상태
- 어드제이션트 라우터들의 링크 상태 데이터베이스 내용이 모두 일치
- OSPF 장애가 생기거나 비정상적인 라우팅 상태가 되면 Down으로 돌아감
◾OSPF Metric
- 출발지에서 목적지까지의 모든 메트릭 값을 더함 ( Cost )
- Bandwidth 값을 기초로 함
- 대역폭은 넓을수록 값이 증가하고 빨라짐 → 메트릭 값은 낮아짐
- cost가 가장 낮은 경로가 최적경로로 선출
- ospf는 cost값을 고려하여 최적의 경로를 선택하기에 속도가 빠를수록 그 경로를 선택할 확률이 높다
- cost = 기준 대역폭 / 실제 대역폭 ( 비용 계산 시 소수점 이하는 전부 버린다. 만약 1 미만일 경우 1로 계산)
※ 각각의 링크당 거리 비용
→ 10 Mbps = Cost 10
→ 100 Mbps = Cost 1
→ T1(1,544 Mbps) = Cost 64
→ 만약, 거리 비용이 1보다 낮게 나오면 1로 계산
ex) 1 Giga, 10 Giga = 1
(config-if)# ip ospf cost [cost 값] : 로드 밸런싱을 위해 cost 값 변경
◾OSPF DR/BDR/DROTHER
- BMA 네트워크에서 정보교환을 효율적으로 하기 위해 대표, 부대표 라우터 선출
※ BMA(Broadcast Multi Access) 네트워크 : 라우터들이 이더넷으로 연결된 네트워크,
멀티 캐스트 통신도 브로드캐스트 통신처럼 동작한다
▫️ DR(Designated Router)
- BMA 네트워크에서 하나의 라우터가 DR로 선정
- DR은 모든 라우터와 인접 관계를 맺음
- 모든 지역 라우터의 정보를 가진 LSU 패킷을 보냄
▫️ BDR(Backup Designated Router)
- DR이 장애가 생겼을 때를 대비해 선정되는 라우터
- DR과 같은 특성을 가지고 있지만 LSU 패킷을 보내지 않음
- DR이 일정 시간 동작을 하지 않으면 BDR이 DR이 되고, BDR은 새로 선출됨
▫️ DROTHER
- DR과 BDR이 아닌 라우터
◾ DR/BDR 선출 절차
1. 우선순위(priority)가 높은 라우터가 DR, 그다음이 BDR
2. Router-ID가 가장 큰 라우터가 DR, 그 다음이 BDR
3. DR/BDR이 선출되면 더 높은 우선순위의 라우터가 추가되더라도 변동 없음(재선출 안 함)
4. DR이 다운되면 BDR이 DR이 되고, BDR은 새로 선출
※ Priority 변경 - Hello 패킷이 나가는 인터페이스에 적용 Router(config-if)# ip ospf priority [number]
※ OSPF 프로세스 재시작
Router# clear ip ospf process
※ DR BDR 확인
# show ip ospf neighbor
# show ip ospf database
LSA ( Link State Advertisement) 타입
- OSPF LSU 패킷을 통해 전달되는 링크 상태 정보 (show ip ospf database)
▫️ Type 1 : 라우터 링크 엔트리 (Router Link States)
- 라우터 LSA라고 부름, 모든 OSPF 라우터가 만듦
- OSPF가 설정되면 자신의 모든 인터페이스와 메트릭 값 등 정보를 다른 라우터들에게
전송할 때 사용, 동일 영역 내의 모든 라우터들에게 전송
▫️ Type 2 : 네트워크 링크 엔트리 (Net Link States)
- 네트워크 LSA라고 부름, DR이 만듦
- 영역 내에서만 플러딩 되고 이를 통해 학습된 경로는 "O"로 표기됨
▫️ Type 3 : 요약 네트워크 링크 엔트리 (Summary Net Link States)
- 네트워크 요약 LSA라고 부름, ABR이 만듦
- 다른 영역의 정보를 영역 내부로 알려줄 때 사용
- 백본 영역에 걸쳐서 다른 ABR로 플러딩
- 타입 3 LSA를 통해 학습된 경로 정보는 "O IA"로 표기됨
▫️ Type 4 : 요약 ASBR 링크 엔트리 (Summary ASBR Link States)
- ASBR 요약 LSA라고 부름, ASBR이 만듦
- ASBR의 라우터 ID와 메트릭 값을 영역 내부로 알려줄 때 사용하는 LSA - ABR 라우터가 ASBR 라우터의 위치를 알려 줄 때 - 타입 4 LSA를 통해 학습된 경로 정보는 "O IA"로 표기됨
▫️ Type 5 : 자율 시스템 외부 링크 엔트리 (Type-5 AS External Link States)
- AS 외부 LSA라고 부르고 ASBR이 만듦
- OSPF 외부의 네트워크에 대한 경로 정보를 알려주는 데 사용
- 스텁 영역을 제외한 모든 영역으로 전송
- 타입 5 LSA를 통해 학습된 경로 정보는 E1 or E2로 표기
▫️ Type 7 : 자율 시스템 외부 링크 엔트리
- NSSA에 연결된 ASBR에 의해 생성
- ASBR은 타입 7 LSA를 만들어 NSSA 내부로 전달하고,
이를 수신한 ABR에 의해 타입 5로 변환되어 다른 영역으로 전달
- 타입 & LSA를 통해 학습된 경로 정보는 N1 or N2로 표기
◾Virtual Link (가상 링크)
- OSPF의 모든 에어리어는 반드시 백본 에어리어와 직접 연결되어 있어야 한다
→ 백본 에어리어를 통해 다른 에어리어의 정보를 주고받기 때문
- 백본 에어리어와 연결된 링크에 장애가 생기거나 회사 합병 등과 같은 특수한 경우 백본 에어리어와 직접
연결하지 못하는 경우가 생김
→ 다른 영역의 정보를 받지 못하고 자신의 영역 정보를 주지도 못함
→ 임시적으로 가상 링크를 통해 다른 에어리어의 라우터를 통해 연결, 단 장시간 사용은 지양해야 함
- 가상 링크는 반드시 중계 영역을 지정해야하며 네이버 라우터의 ID를 사용하여 연결(ABR에서 사용)
- 장애 처리 등과 같이 잠시 사용하는 용도
▪️ 구성 방법
중계 지역을 통해 ABR 라우터 간 네이버 형성
R(config-router)# area [중계 지역] virtual-link [네이버 형성 할 라우터 ID]
show ip ospf virtual-link
show ip ospf neighbor // 가상링크 연결된 라우터는 interface에 OSPF_VL0라고 뜬다
◾스텁 및 특수 영역
- 여러 라우 프로토콜 운용하는 경우 모든 외부 네트워크의 정보를 유입하게 되면 데이터베이스 규모가 커지게 되고
그에 따른 자원 사용량 또한 높아짐
- 높은 자원 요구량은 성능이 좋지않은 라우터의 성능 저하가 발생하고 그 결과 네트워크의 성능 저하가 발생함
→ 특정 영역에 외부 네트워크의 정보를 차단하여 라우터의 자원을 아낄수 있음(스텁 에어리어)
▪️ 스텁 에어리어 종류
1. Stub Area
- 내부의 라우터들이 ospf 내 경로 정보는 알고 있지만, 외부에 대한 경로 정보를 알지 못함
- 즉, 스텁 영역의 ABR은 영역 내로 전달되는 외부 네트워크 정보를 차단하고 (Type 4,5), 디폴트 라우트 정보를 전달함
▫️ Stub Area 설정
- 백본 영역과 가상 링크가 있는 영역은 Stub이 될 수 없음
- ASBR이 있는 영역은 Stub이 될 수 없으며 NSSA로 만들어야 함
- Stub Area에 있는 모든 라우터에 설정
R(config-router)# area [area-id] stub
2. Totally Stubby Area (완전 스터비 영역)
- 시스코에서 고안한 영역
- 외부 네트워크뿐만 아니라 다른 영역의 정보도 차단하고 (Type 3,4,5) 자신의 영역을 제외한 모든 네트워크에 대해
디폴트 경로가 생성됨
▫️ Tottaly Stubby Area 설정
- ABR라우터에서만 no-summary 추가, 나머지는 stub 설정
R1(config-router)# area [area-id] stub no-summary
R2(config-router)# area [area-id] stub
3. NSSA (Not So Stubby Area)
- Stub 영역은 외부망과 직접 연결될 수 없지만 특수하게 외부망과 연결되어야 할 경우에 사용함
- 즉, Stub Area에 ASBR이 존재하는 경우 사용
- 스텁 및 완전 스터비 영역과 동일한 특성을 가지며 NSSA에 속한 ASBR이 Type 7 LSA 생성
▫️ NSSA 설정
- Stub Area의 특성을 가진 NSSA
R(config-router)# area [area-id] nssa
※ 다른 곳에 외부 네트워크가 더 존재하는 경우(ABR)
R(config-router)# area [area-id] nssa default-information-orginate
- Tottaly Stubby Area의 특성을 가진 NSSA
R(config-router)# area [area-id] nssa no-summary
'Network > Router' 카테고리의 다른 글
Authentication | 인증 (0) | 2024.07.15 |
---|---|
Redistribution | 재분배 (0) | 2024.07.15 |
EIGRP (0) | 2024.07.15 |
RIP (0) | 2024.07.02 |
Static Routing & Default Routing (0) | 2024.06.25 |