Network

Network | Routing Protocol_OSPF

만두는정말맛있어 2022. 11. 16. 20:25

OSPF(Open Shortest Path First) – Link State

1. 특징

- Metric : cost(10^8/Bandwidth(bps)), 속도만을 고려함

- Link-state 라우팅 프로토콜 -> 동일한 protocol을 사용하는 인접 장비와 Link 상태 정보 교환

- Classless 라우팅 프로토콜 (VLSM, CIDR 지원)

- AD : 110

- 정보 교환의 거리 제한 없음 -> 큰 범위의 네트워크에서 사용

- 경로 정보 교환 주기 : 토폴로지에 변화 발생 -> 즉시 Flooding => 수렴 속도 빠름

- Link State refresh : 30분 간격으로 모든 라우터 간의 sync 확인 위한 업데이트 ( 모든 LSA에는 각각 Aging time이 있어 Time out이 되면 LSA를 발생시켰던 라우터가 LSA 재전송 )

- 계층적 구조 가짐 => Looping 방지


1) 장점

- Area 단위로 구성 -> 안정적인 대규모 네트워크 운영 가능 (특정 area에서 발생하는 상세한 라우팅 정보가 다른 area로 전송되지 않아 큰 규모에서도 안정되게 운영 가능)

- Stub이라는 축약 기능이 있음 -> 기존 Routing protocol과는 IP 주소가 연속되지 않아도 Routing table의 크기를 획기적으로 줄일 수 있음

- 표준 Routing protocol

- Convergence time이 전반적으로 빠른 편이다.

 

2) 단점

- Dijkstra Algorithm 실행을 위해서 빠른 계산 속도가 요구됨

- link state를 처음 업데이트할 경우 link state packet을 Flooding하는 경우에 발생하는 막대한 traffic을 수용할 수 있는 대역폭 요구됨

- 설정이 다른 Routing Protocol보다 복잡함 -> 네트워크 종류에 따라 동작하는 방식과 설정이 다름

- 라우팅 정보 계산 및 유지를 위해 CPU, DRAM 같은 자원을 많이 사용함


2. 라우팅 정보 교환 순서

1) 다른 라우터와 LSA(Link-State Advertisements, 라우팅 정보) 교환 -> 복잡한 네트워크 토폴로지 데이터베이스 유지

2) Topology 형성이 가능한 database 생성

3) SPF를 이용하여 도착 가능한 논리적인 network topology tree 생성

4) Routing List에 최적 경로 생기고 다른 상태 정보는 필요시 유지함

 

* LSA 수렴을 위한 라우터의 작동

- 인접 라우터의 정보, 이름, 상태, cost 유지

- 인접 라우터의 정보 변화를 담은 LSA 생성

- LSA 패킷을 모든 라우터에 전송

- LSA 패킷을 받은 라우터는 LSA 패킷을 데이터베이스에 저장, 가장 최근 LSA 패킷 사용

- LSA 패킷을 전부 모으고 SPF 알고리즘을 수행하여 각 목적지 네트워크에 최적 경로 구함

- SPF (Shortest path First) 또는 Dijkstra 알고리즘을 이용해서 각 목적지까지의 최적 경로를 계산


3. OSPF Packet Type

1) Hello Packet : 인접한 Router 간 Neighbor 관계 형성 및 유지

2) DBD(DataBase Description) Packet : LSA의 요약된 정보 알려줌

3) LSR(Link-State Request) Packet : 수신한 DBD에 자신이 모르는 네트워크가 있을 때 상세 정보 요청

4) LSU(Link-State Update) Packet : LSR을 받거나 네트워크 상태에 변화가 있을 때 네트워크 정보 전송

5) LSAck(Link-State Acknowledgement) Packet : packet을 정상적으로 수신했음을 알려줄 때 사용 (Hello Packet 제외)


4. OSPF Area

- AS –세분화-> Area => LSA 감소

- Area가 두 개 이상일 경우 하나는 반드시 0으로 설정 => Backbone Area

- 모든 Area는 Area 0과 물리적으로 연결되어야 함

- Stub Area : 다른 Area의 라우팅 정보를 줄임


5. OSPF 동작 방식

1) Cost 계산 : SPF 알고리즘으로 각 Link별로 Cost 값 계산 -> Topology Database에 등록함

2) Neighbor 관계 형성 : OSPF 설정 Router끼리 Hello packet을 교환해서 Neighbor 혹은 adjacent Neighbor(라우팅 정보를 교환하는 neighbor)를 맺음 -> Neighbor Table에 등록함

3) 인터페이스 상태정보 교환 : adjacent neighbor인 Router간 LSA를 서로 교환. 전송받은 LSA를 LSDB(Link-State DataBase)에 저장 -> 전체 네트워크 토폴로지 구성

4) 도달 가능한 전체 경로의 Cost 계산 : SPF(Shortest Path First) 또는 Dijkstra 알고리즘을 이용해서 각 목적지까지의 최적 경로를 계산 후 Routing table에 등록

5) 백업 경로 지정 : 최적 경로 다음으로 낮은 Cost를 가진 경로를 백업 경로로 지정

6) 선택된 경로 관리 : 주기적으로 Hello packet을 교환하면서 정상 동작을 확인, 네트워크의 상태가 변하면 다시 위의 과정을 반복해서 Routing table을 생성


6. Neighbor State

1) Down : OSPF가 설정되고 Hello Packet을 전송했지만 아직 상대방의 Hello packet을 받지 못한 상태 (Active Router가 감지되지 않은 상태) -> Init 상태가 될 때까지 대기

2) Init : Hello Packet을 수신했지만 상대 Router가 아직 내가 보낸 Packet을 받지 못한 상태, 10초 간격으로 Hello Packet 전송

 => 즉, 상대방이 전송한 Hello Packet 안의 Neighbor list에 내 Router-ID가 없는 경우

3) Two-way : Neighbor와 쌍방향 통신이 이루어진 상태(서로 전송한 Hello Packet 안의 Neighbor List에 서로의 Router-ID가 있는 경우) 기본적인 neighbor 관계이므로 full adjacent 관계가 될 때까지 라우팅 정보를 공유하지 않음

- Multi Access 네트워크일 경우 이 단계에서 DR, BDR 선출

4) ExStart : DBD Packet을 사용하여 초기 교환 상태가 됨. adjacent neighbor가 되는 첫 번째 단계

- Master와 Slave Router를 선출 (Router-ID가 높은 Router가 master)

5) Exchange : 각 Router가 자신의 Link-State Database에 저장된 LSA의 Header만을 DBD Packet에 담아 상대방에게 전송

-> DBD Packet을 수신한 라우터는 자신의 Database 내용과 비교한 후 자신에게 없거나 더 최신 정보일 경우 상대방에게 LSA를 요청하기 위해 Link State Request List에 기록함

-> DBD Packet 정보에 자신이 모르는 정보가 없다면 Full 상태가 됨

6) Loading : DBD Packet 교환이 끝난 후 자신에게 없는 정보를 LSR Packet으로 요청함 -> 요청받은 Router는 정보를 LSU Packet에 담아서 전송함(LSA를 포함함) -> LSAck 패킷으로 응답함

7) Full : adjacent neighbor간 라우팅 정보 교환이 모두 끝난 상태, Neighbor와 Fully adjacent 관계 형성


7. Database

1) adjacent database : Two-way를 수립한 모든 adjacent router들의 리스트, 각 router마다 고유함

2) Link-State database (Topology database)

- network 내의 모든 router들에 과한 정보 리스트, Network Topology를 나타냄

- 하나의 area에 있는 모든 router들은 같은 link-state database 가짐

3) Forwarding database (Routing Table)

- Link-State database가 알고리즘에 의해 작동될 때 발생된 route list

- 각 routing table은 고유하고, 다른 router들에게 packet을 어떻게 / 어디로 보낼 것인지에 대한 정보 포함함(best-path 포함)


8. 네트워크 전송 방식에 따른 타입

1) Broadcast Multi Access

- Broadcasting 방식을 이용, 하나의 인터페이스를 통해 다수의 장비와 연결된 네트워크

- DR과 BDR 선출을 필요로 함

- 모든 Router들은 오직 DR, BDR과 Full 인접을 형성함

ex) Ethernet 연결 -> LSA 증가

 

2) Point-to-Point

- 하나의 인터페이스와 연결된 장비가 하나뿐인 네트워크

- DR 또는 BDR 선출을 필요로 하지 않음

- Serial Interface type 자동감지

- 224.0.0.5 Multicast address를 이용하여 Packet 전송

- Serial 연결

ex) HDLC, PPP, F/R의 sub interface 중 point-to-point

 

3) Non Broadcast Multi Access

- Broadcast가 지원되지 않는 Multi Access 네트워크

- DR과 BDR이 다른 모든 Router와 물리적으로 연결되어야 함

- 대부분 내부에 Virtual Circuit(가상 회로) 방식을 사용

- 하나의 IP Subnet 사용함

- Fully-Meshed Network에서 사용됨 -> 별도의 Fully mesh 연결이 필요하지 않기 때문에 DR, BDR 선출을 수동으로 설정해야 함

- Broadcast를 사용하여 전송할 경우 가상 회로 하나당 하나씩 Broadcast packet 전송

ex) ATM, X.25, Frame Relay


9. OSPF Router

1) Backbone Router : Backbone Area에 소속된 Router

2) Internal Router : 하나의 Area에만 소속된 Router

3) ABR(Area Border Router) : 두 개 이상의 Area에 소속된 Area 경계 Router

4) ASBR(AS Boundary Router : OSPF 네트워크와 다른 Routing Protocol이 설정된 네트워크를 연결하는 AS 경계 Router


* DR / BDR

1) DR(Designated Router) : 중계 역할

2) BDR(Backup Designated Router) -> DR과 BDR은 Broadcast, Non Broadcast에서만 사용, Point-to-point에서는 사용 안 함

3) DR 선출 방법

- OSPF priority가 가장 높은 Router가 DR로 선출 (priority는 기본값 1, 범위는 0~255)

- OSPF priority가 동일한 경우, Router-ID가 더 높은 것이 DR 및 BDR로 선출

- DR, BDR이 선출된 후에 더 높은 순위의 Router가 추가되어도 DR, BDR 변경되지 않음

- DR이 다운될 경우 BDR이 DR이 되고 다시 BDR 선출

- DR과 BDR이 아닌 Router를 DROTHER(Designated Router other)라고 함

=> Multicast Group : 224.0.0.5(DR->DROTHER), 224.0.0.6(DROTHER->DR)


10. 계층화

- Routing Table 최소화, Topology 변화의 영향을 단일 영역 내로 제한함, Area 경계에서 상세한 LSA Flooding 방지

- ABR(Area Border Router)

1) Transit Area (운반 영역)

- 다른 OSPF Area 사이를 연결함

- Backbone 영역인 Area 0은 Transit Area로 정의됨

2) Regular Area (일반 영역)

- 사용자와 자원을 연결함

- 일반 영역 간 직접 traffic 전송 허용하지 않음

- Stub, Totally Stub, NSSA와 같은 하위 유형이 있음

728x90