OSPF(Open Shortest Path First) 란?
- Link-State 계열의 Routing Protocol로 SPF(Short Path First, 다익스트라) 알고리즘을 사용한다.
Link State Routing Protocol 장점
- Topology의 변화에 빠른 반응을 수행한다.
- Topology를 이해하므로 SFP 알고리즘에서 Routing Loop를 방지한다
- 계층적 Design에 따라 Network 확장성이 보장된다
Link State Routing Protocol 단점
- Router의 내부 Resource 소모가 많다
- CPU → 잦은 SPF 알고리즘 수행한다.
- Memory → Network Topology 정보 관리가 필요하다.
- 반드시 계층적 Design Rule을 따라야 한다
- 경우에 따라서는 많은 Tuning Option을 이해해야 한다
- Link-State 계열의 Routing Protocol이 설정된 라우터들은 자신의 Link(=interface) 상태를(state) LSA라는 정보로 생성하여, 동일 Area에 포함된 모든 라우터들에게 Flooding 한다.
- 동일 Area에 포함된 모든 Router들은 Topology에 대한 상세 정보를 모아서 'Link-State Database(LSDB)'를 구성하게 된다. (모든 Router는 동일한 LSDB를 구성하게 된다.)
(show ip osfp database route 명령어를 통해 확인이 가능하다.)
★LSA, LSDB 개념을 확인하고 싶다면 아래 링크를 클릭 하세요★
https://peemangit.tistory.com/44
- OSPF 설정 시 사용되는 Process-ID의 경우 EIGRP의 AS 번호와 다르게 인접 Router 사이에서 서로 일치하거나 혹은 불일치하는 경우에도 OSPF Neighbor 관계를 형성하고 교환하는 것이 가능하다.
- OSPF에서 Process-ID를 사용하는 이유는 하나의 Router에 다수의 OSPF를 설정하는 경우 이를
구분하기 위한 목적이다. (일반적으로 하나의 Router에 다수의 OSPF를 구성하는 경우는 거의 없다.)
Ex) MPLS VPN - 해당 네트워크를 공용의 인터넷과 분리하기 위해 전용의 라우팅 테이블을 각각 별도로 구축
- Auto Summary가 없기 때문에 OSPF 설정하는 경우 반드시 wildcard mask를 사용해야 한다.
(쓰지 않으면 command 가 입력되지 않는다.)
- OSPF의 AD값은 110이다.
OSPF Metric Cost
- Cost는 각 벤더마다 구하는 방식이 다르다. Cisco 장비의 경우 다음 공식을 사용한다.
- Cost = 10^8/bandwidth(bps)
- 위의 공식으로 각 Link의 Cost를 구한 후 목적지 interface까지의 Cost 값을 합한 것이 Cisco에서 사용되는 방식이다.
- f0/1 Bandwidth: 100,000,000 bps(100,000kbps)
- 결과 값: 10^8 / 100,000,000 = 1
- f0/0 Bandwidth: 800,000,000 bps(800,000kbps)
- 결과 값: 10^8 / 800,000,000 = 0.0125 이지만 올림 처리를 해서 1이 된다.
- 결과 값 1은 f0/0 → f0/1, f0/1 → f0/0 경로의 Cost 값이 된다.
- 위의 공식에서 [10^8]은 reference-bandwidth라고 부른다.
- 과거에는 10^8으로 Best Path를 충분히 식별이 가능했지만 오늘날에는 Gigabit 이상의 대역폭도 많이 사용되기 때문에 다음과 같은 명령어로 reference-bandwidth를 증가시킬 필요가 있다.
router ospf 1 auto-cost reference-bandwidth => 단위는 Mbps |
- OSPF의 경우도 기본적으로 Multicast 방식으로 정보를 교환한다.
-> 224.0.0.5 (All OSPF Router 수신)
-> 224.0.0.6 (DR/BDR 수신)
- OSPF는 EIGRP와 동일하게 IP 기반으로 동작한다.
- 사용되는 IP Protocol 번호는 89이다. (EIGRP의 경우 88번 사용)
OSPF Router-ID
- OSPF의 경우 Link-State Routing Protocol로 각 Router가 전체 Topology를 이해할 수 있어야 하고 모든 Router가 고유한 Router-ID를 갖는다. 이를 위해 각 Router는 고유한 Router-ID로 서로를 식별할 수 있어야 한다.
- Router-ID는 IPv4 형태를 갖는다. 하지만 형태만 IPv4일뿐 실제 IP 주소와 아무런 관련이 없다.
즉, 다른 Router의 IP 주소를 사용하거나 혹은 실제 Topology에 없는 IP 주소를 Router-ID로 사용해도
전혀 문제가 없다.
- 주의점은 인접 Router와 동일한 Router-ID를 사용해서는 안된다. 만약 인접 Router와 동일한 Router-ID를
사용할 경우 OSPF 네이버 관계를 형성할 수 없다. (응답 패킷이 보낸 패킷과 같은 ID이므로 Loop로 간주)
- Router-ID를 설정하는 방법은 다음과 같다.
1. 관리자가 수동으로 router-id x.x.x.x 명령어를 사용하여 직접 입력하는 방식.
2. 만약 관리자가 수동으로 Router-ID를 지정하지 않았을 경우 Router가 다음과 같은 방법으로 자동 결정한다.
1) 가상 interface의 IP 주소 중 숫자가 가장 큰 IP를 Router-ID로 사용한다. (Loopback, SVI)
2) 가상 interface가 존재하지 않는 경우 물리적 interface의 IP 주소 중 숫자가 가장 큰 IP를 Router
ID로 사용한다.
OSPF Area
- OSPF는 네트워크를 여러 개의 Area로 나누어서 설정한다.
- A와 B는 Backbone Router이다
- Backbone Router들은 Area 0으로 설정한다
- Router C, D, E는 ABR 라우터이다(ABR : Area Border Router)
- ABR은 Area 0에서 다른 Area로 물리적으로 직접 연결된다
(만약 직접 연결할 수 없다면 OSPF Virtual Link를 이용해서 직접 연결해야 한다.)
- Routing Table의 최소화
- Topology 변화에 영향을 단일 영역 내로 제한
- Area 경계에서 상세한 LSA Flooding 방지
- 계층적인 네트워크 설계 필요
OSPF Packet
- OSPF의 경우도 5개의 OSPF Packet을 사용하여 Neighbor 관계를 형성하고, 정보(LSA)를 교환할 수 있다.
1. Hello
- 인접 OSPF Router와 Hello Packet을 교환하여 Neighbor 관계를 형성하고, 주기적으로 교환하면서
Keepalive를 확인하는 목적으로 사용된다.
- Hello Packet에 들어있는 다음 내용이 모두 일치해야만 Neighbor 관계를 형성할 수 있다.
- Area ID / Authentication(인증) / Subnet mask / Hello와 Dead 주기 / Stub flag / DR과 BDR 선출 여부 / MTU Size 등..
- 다음과 같이 서브넷 마스크를 다르게 설정한 경우 패킷을 분석해보면
- 위와 같이 Subnetmask 값이 달라서 서로 Neighbor 관계를 등록할 수 없다.
- OSPF는 EIGRP와 다르게 Neighbor 관계를 다음과 같이 구분한다.
1) 일반 Neighbor : 정보(LSA)를 교환 X, Hello Packet만 교환.
2) Adjacent Neighbor : 정보(LSA)를 교환 O, Hello Pakcet도 교환.
- Hello Packet 교환 후 Neighbor 형성 조건이 만족되면 '일반 Neighbor' 관계를 형성한다. 그 후 다음 조건을 추가적으로 확인하여 하나라도 만족되는 경우 'Adjacent Neighbor' 관계를 형성하게 된다.
1) Point-to-Point 네트워크(HDLC/PPP)로 연결된 경우.
2) DR--DROTHER / BDR--DROTHER 관계로 연결된 경우.
3) Virtual-Link로 연결된 경우.
2. DBD(Database Description)
- Link-State Routing Protocol이 설정된 각 Router들은 LSDB(Link-State Database)를 갖고 있다.
- EIGRP와 다르게 Adjacent Neighbor 관계를 형성한 OSPF 라우터들은 LSDB의 모든 정보를 Update 하는 것이 아니라 요약된 목차 정보들만 먼저 상대방 장비에게 전송하게 된다.
- 이때 요약된 LSDB의 정보가 들어있는 패킷이 DBD 패킷이다.
3. LSR(Link-State Request)
- 상대방 장비로부터 수신한 DBD 정보와 자신의 LSDB의 정보를 비교한 후 자신의 LSDB에 없는 정보가 상대방 장비에게 있다고 확인되면 해당 정보에 대해서 상세한 내용을 부탁해야 한다.
- 이때 상대방 장비에게 특정 정보의 상세 내용을 부탁하는 패킷이 바로 LSR이다.
4. LSU(Link-State Update)
- 상대방 장비로부터 LSR을 수신할 경우 요청받은 정보의 상세 내용을 Update 할 때 사용되는 Packet이다.
- 망에 변화가 발생했을 경우에도 LSU 패킷을 사용하여 상대방 장비에게 해당 내용을 즉시 Update 할 수 있다.
5. LSAck
- EIGRP와 동일하게 OSPF의 경우도 IP 기반으로 동작하기 때문에 상대방 장비가 패킷을 수신했는지 확인할 수 없다. 때문에 자체적으로 OSPF 패킷의 수신 여부를 상대방 장비에게 확인시켜주기 위한 목적의 패킷을 사용한다.
- LSAck가 위의 역할을 수행하는 OSPF 패킷이다.
OSPF Packet 교환 순서
★OSPF Network-Type, DR BDR정의 및 선출 과정을 보고 싶다면 아래 링크를 클릭하세요★
https://peemangit.tistory.com/41
'Network > Router' 카테고리의 다른 글
OSPF(Open Shortest Path First) 개념 (2) (0) | 2019.10.16 |
---|---|
OSPF(Open Shortest Path First) Single Area 구성 (0) | 2019.10.15 |
EIGRP 개념, 특징, Metric, Packet (0) | 2019.10.14 |
NAT(Network Address Translation),PAT 개념 및 구성 (0) | 2019.10.10 |
ACL(Access Control List)개념 및 구성 (0) | 2019.10.10 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊