Dynamic Routing 에서 OSPF에 대해 정리해 보았습니다.
OSPF
- Link State 라우팅 프로토콜
- 같은 Area 내 모든 다른 라우터와 LSA(Link State Advertisements)를 주고 받는다.
- 다른 라우터로 부터의 Link State 정보를 수신, 축적한 후 SPF 알고리즘을 사용하여 각 노드로의 Shortest Path를 계산
LSA
- 포함된 내용
- 연결된 인터페이스에 대한 정보
- 사용되는 메트릭
- 그 외 다른 변수들
Routing Hierarchy (계층적 라우팅)
- RIP와 달리, OSPF는 계층 구조 안에서 동작하며 이런 계층 구조 내의 가장 큰 단위를 AS(Autonomous System)이라 한다.
- AS는 하나 이상의 Area로 구성된다.
- OSPF는 비록 다른 AS로 루트를 보내고 받을 수 있지만 AS내에서 동작하는 Intra-AS 라우팅 프로토콜이다.
계층구조 토폴로지
AS
- AS란 공통의 관리 하에 놓인, 같은 라우팅 전략을 공유하는 네트웍의 집합
- 하나 이상의 Area로 구성
Area
- Area는 연속적인 네트워크와 그에 연결된 호스트의 집합
- 여러 개의 인터페이스를 가진 라우터는 여러 개의 Area에 참여할 수 있으며, 이런 라우터를 ABR(Area Border Router)라고 한다.
- ABR은 각 Area에 대해 각각의 토폴로지 데이타베이스를 유지한다.
ABR (Area Border Router)
- 여러 개의 Area에 속한 라우터 → Area 간의 경계에 있는 라우터
토폴로지 데이터베이스
- 라우터와 관계된 네트워크의 전반적인 그림
- 같은 Area내의 모든 라우터로부터 수신된 LSA들의 집합
- 같은 Area내의 라우터는 같은 정보를 공유하기 때문에 같은 토폴로지 데이터베이스를 갖는다.
- Area 토폴로지를 분리하여 유지하여, AS가 나누어지지 않았을 때에 비해 라우팅 테이블을 적게 유지한다.
OSPF 라우팅 유형 및 백본
- 같은 Area (Intra-area Routing) 혹은 다른 Area (Inter-area Routing)에 따라 두개 유형의 OSPF 라우팅이 존재한다.
- OSPF 백본이 이런 Area 간의 라우팅 정보를 분배하는 역할을 한다.
- OSPF 백본은 ABR로 구성되며, 백본 네트웍과 그들에 연결된 라우터들은 어떤 Area에 완전히 포함되지는 않는다.
- 모든 백본 라우터는 같은 프로시져와 알고리즘을 사용하여 백본 내의 라우팅 정보를 유지한다.
- 백본 토폴로지는 같은 Area(Intra-area) 라우터에게 보이지 않고, 각 Area 토폴로지는 백본에 보이지 않는다.
- 백본이 연속적이지 않을 때는 Virtual Link를 통해 연속적으로 구성할 수 있다.
SPF Algorithm
- SPF 알고리즘은 OSPF 동작의 기초를 이룬다.
- OSPF Hello 프로토콜을 통해 Neighbor를 획득한다.
- 라우터는 Hello패킷을 자신의 Neighbor에게 보내고 받음으로써 Neighbor를 획득한다.
- Hello 패킷은 다른 라우터가 여전히 기능을 다 하고 있는지 알기 위한 Keepalive로도 동작한다.
멀티액세스 네트웍에서, Hello 프로토콜은 DR과 BDR을 설정한다. DR은 전체적인 멀티액세스 네트웍을 위한 LSA를 발생한다. DR은 네트웍 트래픽과 토폴로지 데이타베이스의 크기를 감소시킨다.
두 Neighboring 라우터의 Link State 데이타베이스가 Synchronize되면, 이 라우터는 Adjacent된 것으로 불리운다. 멀티액세스 네트웍에서, DR은 어느 라우터가 Adjacent가 될 것인지 결정한다. 토폴로지 데이타베이스는 Adjacent 라우터 페어간에 Synchronize된다. Adjacency는 라우팅 프로토콜 패킷의 분배를 제어한다. 이런 패킷들은 Adjacency상에서 보내지고 받아진다.
각 라우터는 주기적으로 LSA를 보낸다. LSA는 라우터의 상태 변화시에도 보내진다. LSA는 라우터의 Adjacency에 대한 정보를 포함한다. 구축된 Adjacency와 링크의 상태를 비교함으로써, Fail이 난 라우터는 빨리 검출되고 네트웍의 토폴로지가 적절히 변경된다. LSA로 부터 발생된 토폴로지 데이타베이스로 부터, 각 라우터는 자신을 Root로 하여 Shortest Path Tree를 계산한다. Shortest Path Tree는 라우팅 테이블을 만든다.
Link-State
- Link란 라우터 인터페이스의 상태로 생각할 수 있다.
- 링크의 상태 (State of the link)는 인터페이스와 Neighbor 라우터와의 관계라 할 수 있다.
- 인터페이스는 IP address, mask, 네트워크 유형, 네트워크에 연결된 라우터 등을 포함한다.
Link-State Algorithm
- OSPF는 모든 알려진 수신측으로의 Shortest Path를 구성하고 계산하기 위해 Link-State 알고리즘을 사용
- 모든 라우터는 Flooding을 통해 Link-States를 교환한다. Link-States를 받은 각 라우터는 자신의 Link-State 데이터베이스에 복사본을 저장하고 그 업데이트를 다른 라우터에 전파한다.
- 각 라우터의 데이터베이스가 완성되면 Dijkstra 알고리즘을 사용하여 모든 수신측으로 Shortest Path Tree를 계산한다.
- 수신측, 연관된 Cost, Next Hop은 IP 라우팅 테이블을 구성한다.
Shortest Path Algorithm
- Shortest 알고리즘은 Dijkstra 알고리즘을 사용하여 계산된다. 이 알고리즘은 각 라우터를 Shortest Path Tree의 루트로 놓고, 각 수신측에 도달하기 위해 요구되는 누적 Cost에 기초하여 각 수신측으로의 Shortest Path를 계산한다.
OSPF Cost
- 한 인터페이스의 Cost란 그 인터페이스를 거쳐 패킷을 보내기 위해 요구되는 오버헤드를 나타낸다.
- 한 인터페이스의 Cost는 그 인터페이스의 대역폭에 반비례한다.
Areas and Border Routers
- Flooding과 Dijkstra 알고리즘의 계산은 Area 내의 변화로 제한, 한 Area 내의 모든 라우터들은 정확히 같은 Link-State 데이터베이스를 갖는다.
- 여러 Area에 속하는 라우터-ABR(Area Border Router) 들은 라우팅 정보 혹은 Area간의 라우팅 변화를 분배하는 의무를 갖는다.
IR (Internal Router) : 자신의 모든 인터페이스가 같은 Area에 속하는 라우터
ABR (Area Broder Router) : 자신의 인터페이스가 여러 Area에 속하는 라우터
ASBR (Autonomous System Border Routers) : OSPF와 다른 라우팅 프로토콜(IGRP, EIGRP, IS-IS, RIP, BGP, Static) 혹은 다른 OSPF 라우팅 프로세스간의 게이트웨이 (redistribution)으로 동작하는 라우터
Link State Packets
- 라우터 링크(Router Link) : 어떤 Area에 속하는 라우터 인터페이스의 상태
- 각 라우터는 자신의 모든 인터페이스에 대해 라우터 링크(Router Link)를 발생한다.
- 서머리 링크(Summary Link) : ABR에 의해 발생, 어떻게 네트워크 도달 정보(Network Reachability Information)이 Area 간에 발산 되는가를 나타냄
- 모든 정보가 백본 Area로 삽입되고, 백본은 그 것을 다른 Area로 전달한다.
- 네트워크 링크(Network Links) : 한 세그먼트 상의 DR(Designated Router)에 의해 발생되며, Ethernet, Token Ring, FDDI (NBMA also) 같은 특정한 멀티액세스 세그먼트에 연결된 모든 라우터를 나타냄
- 외부 링크(External Links) : AS 외부의 네트워크를 나타낸다. 이 네트워크는 Redistribution을 통해 OSPF로 삽입된다. (ASBR은 이런 루트를 한 AS로 삽입하는 일을 한다.)
OSPF Authentication
- OSPF 패킷을 인증함으로써, 미리 정의된 패스워드에 기초한 라우팅 도메인에 참여할 수 있다.
- 라우팅은 기본적으로 Null을 사용
- 인증 방법은 Simple Password Authentication, Message Digest Authentication(md5) 두가지가 있다.
Simple Password Authentication
- 패스워드가 Area 별로 설정될 수 있도록 한다. 라우팅 도메인에 참여하길 원하는 같은 Area내 라우터는 같은 패스워드로 설정되어야 한다.
- Message Digest Authentication(md5)에 비해 공격에 취약하다.
- 링크 아날라이저를 가진 자는 쉽게 Wire상에서 패스워드를 획득할 수 있다.
Message Digest Authentication
- 암호식의 인증 방법
- Key(password)와 Key-Id는 각 라우터에 설정된다.
The Backbone and Area 0
- 반드시 하나의 Area는 백본(Area 0) 이어야 한다.
- 네트워크를 디자인 할 때, 백본 Area로 시작해서 다른 Area로 확장해 가는 것이 좋다.
- 백본은 모든 Area의 중앙에 있어야 한다. → 모든 Area는 물리적으로 백본에 연결 되어야 한다.
- OSPF는 모든 Area 들이 라우팅 정보를 백본으로 삽입하고 백본은 그 정보를 다른 Area로 발산한다.
- 백본에 연결되지 않은 새로운 Area가 생길 경우 Virtual Link를 사용해 연결해 준다.
OSPF 라우팅 정보의 유형
- Area 내부 루트 (Intra-area Routes) : 한 Area 내에서 발생한 루트 (수신 측도 한 Area에 속할 때), IP 라우팅 테이블에서 “O” 로 표시된다.
- Inter-area 혹은 Summary 루트 : 다른 Area에서 발생한 루트로 IP 라우팅 테이블에서 “O IA”로 표시
- External Routes : 다른 라우팅 프로토콜 혹은 다른 OSPF 프로세스에서 발생한 루트와 Redistribution을 통해 OSPF로 삽입된 루트, IP 라우팅 테이블에서 “O E2”, “O E1”으로 표시
- 같은 수신측에 여러 루트가 존재하는 경우 아래와 같은 순서로 우선권 부여
- Intra-area
- Inter-area
- External E1
- External E2
Virtual Link
- 두가지 목적으로 사용
- 백본 Area에 물리적 접속을 가지고 있지 않은 Area를 연결 할 경우
- 백본 Area가 연속적이지 않을 경우
Neighbors
- 공통의 세그먼트를 공유하는 라우터들은 그 세그먼트 상에서 Neighbors가 되며, 이런 Neighbors는 Hello 프로토콜을 통해 선정된다.
- Hello 패킷은 각 인터페이스로부터 IP 멀티캐스트를 사용하여 주기적으로 외부로 보내어진다.
- Hello 패킷 내에 자신이 리스트 되어 있음을 확인하면 곧바로 Neighbors가 된다.
Hello 패킷의 역할
- Neighbor 관계의 설정 및 유지
- 멀티액세스 네트워크상에서의 DR 선정
Hello 패킷 구성
- Router Priority
- Hello Interval
- Router Dead Interval
- Network Mask
- Options(T-bit, E-bit)
- List of Neighbors
두 라우터간 Neighbor 구성 조건
- Area-id : 두 라우터는 공통의 세그먼트를 가지고 있어야 한다. 같은 Area, 같은 서브넷, 유사한 마스크
- Authentication : OSPF는 특정 Area에 대해 패스워드의 설정이 가능하다. Neighbors가 되려는 두 라우터는 특정의 세그먼트에서 같은 패스워드를 교환해야 한다.
- Hello and Dead Intervals : OSPF는 각 세그먼트 상에서 Hello 패킷을 교환, 라우터가 한 세그먼트에서 자신의 존재를 알리기 위해 그리고 멀티액세스 세그먼트상에서 DR(Designated Router)을 선정하기 위해 사용하는 Keepalive의 형태
- Hello Intervals : 라우터가 OSPF 인터페이스 상에 보내는 Hello 패킷간의 시간이 길이를 초 단위로 나타낸 것
- Dead Intervals : 자신의 Neighbors 가 OSPF 라우터 Down이라고 선언하기 전까지 Hello 패킷이 보이지 않는 시간의 길이를 초 단위로 나타낸것
- 두 인터벌은 두 Neighbors 간에 정확히 일치하여야 한다.
- Stub area flag : Neighbor가 되려는 두 라우터는 Hello 패킷 내의 Stub area flag에 동의하여야 한다.
Adjacencies
- Adjacent 라우터 : 간단한 Hello 교환 과정을 지나 테이터베이스 교환 과정에 들어선 라우터
- 특정 세그먼트에서 정보의 교환 양을 최소화 하기 위해 OSPF는 각 멀티 액세스 세그먼트당 하나의 라우터를 DR(Designated Router)로, 다른 하나를 BDR(Backup Designated Router)로 선정한다.
- BDR은 DR이 Down될 경우 백업으로 선정된다.
- DR인 라우터가 정보 교환의 중앙점
- 모든 라우터가 업데이트를 교환하는 대신 각 라우터는 DR & BDR과 정보를 교환하고 DR과 BDR이 모든 라우터에 중계한다. → 정보 교환의 양이 대폭 줄어든다.
DR Election (DR 선거)
- DR 및 BDR의 선정은 Hello 패킷을 통해 이루어진다.
- Hello 패킷은 각 세그먼트 상에서 IP 멀티캐스트 패킷을 통해 교환된다.
- 한 세그먼트에서 가장 높은 OSPF Priority를 가지고 있는 라우터가 그 세그먼트의 DR이 된다.
- BDR또한 같은 선정 과정 거침
- 만약 OSPF Priority가 같은 라우터가 존재한다면, RID가 높은 라우터가 DR및 BDR이 된다.
- 멀티 액세스 세그먼트 단위로 이루어진다.
'Network' 카테고리의 다른 글
[Network] 장비별 패킷 추출 방법 [Catalyst, Nexus, ESXi, NSX-T] (0) | 2024.08.02 |
---|---|
[Network] 외부 네트워크와의 ARP 동작 방식 (0) | 2024.07.05 |
[Network] ARP 동작 방식 (0) | 2024.07.03 |
[Network] STP (Spanning Tree Protocol) (0) | 2024.05.08 |
[Network] 기초 네트워크 용어 (0) | 2024.04.24 |