앞선 글에서는 routing protocol 두 가지를 배웠다. link state는 dijkstra 방식을 사용해서 네트워크에 속해있는 라우터의 정보를 모두 알고있는 상태에서 최적의 경로를 설정한다. distance vector는 bellman ford 방식을 사용해 인접 라우터로부터 오는 정보를 비교하여 업데이트하는 방식이다. 이 때, 링크 정보가 더 나빠졌는데도 인지하지 못하고 무한정으로 반복하게 되는 문제(count-to-infinity)가 발생할 수 있다.
그러나 네트워크에 존재하는 모든 라우터들이 각각의 라우터 정보를 다 가지고 있을 수는 없다. 또한 인터넷은 ISP들의 네트워크이고 ISP들이 네트워크를 관리하기 때문에 어떤 프로토콜을 사용할 수 있어야 한다. 그래서 AS(Autonomous System)를 통해서 각각의 포로토콜을 사용해서 네트워크를 관리한다. 예를 들어서 학교 내 네트워크는 각 건물의 LAN에 의해서 backbone에 연결된 상태인데 이러한 학내 망을 Autonomous System이라 할 수 있다.
AS 내부에서 동작하는 라우팅 알고리즘을 intra-AS, AS 간에 동작하는 라우팅 알고리즘을 inter-AS라고 한다.
Intra-AS
intra-AS에서 외부 AS와의 connection하는 것을 gateway라고 한다. 이 라우팅 알고리즘을 사용하는 것이 RIP, EIGRP, OSFP이다.
OSPF
먼저, OSPF는 Open Shortest Path First로 link-state 방식으로 정보를 flooding 하고 다익스트라 알고리즘을 사용한다. OFPF를 사용해서 전체 AS에 대한 정보를 가진다. 각각의 라우터는 자신을 루트노드로 하고 모든 서브넷에 가는 최단 경로 트리르 그리기 위해서 다익스트라 알고리즘을 수행한다. 개별적인 링크 비용은 시스템 관리자에 의해서 설정된다.
RIP
RIP 방식은 distance vector 방식으로 동작하며 전체 라우터들이 각각의 테이블을 형성한다. 그러나, 오버헤드가 커서 현재는 잘 사용하지 않는다.
Inter-AS
OSPF는 AS 내부 라우팅 프로토콜로 출발지와 도착지가 같은 AS 내에 위치하는 경우에 이 프로토콜에 의해서 경로가 결정된다. 그러나, AS에서 AS로 패킷을 전달해야 하는 상황에서 AS 간의 라우팅할 수 있는 프로토콜이 필요하다.
BGP
BGP는 인터넷에 있는 ISP들을 연결하는 distance vector 방식의 프로토콜이다. 먼저 X는 모든 라우터에게 경로 정보를 알리는 작업을 한다. AS3에서 AS2로 X가 AS3에 있음을 알린다. 또, AS2는 AS1에게 같은 사실을 알린다. 이 과정에서 TCP 연결을 통해서 BGP 메세지가 전송되는데, 이때 eBGP 연결 방식과 iBGP 연결 방식이 있다. eBGP는 외부 AS 간에 연결하는 방식이고 iBGP는 AS 내 같은 라우터 간 연결을 말한다. iBGP는 논리적 연결로 물리적 링크와 완전히 일치하지는 않는다.
아래 예시에서 보면, AS1, AS2, AS3에는 각각 iBGP로 동작하고 각각의 gateway끼리 연결할 때는 eBGP로 동작한다.
라우터 1b에서 목적지까지의 경로 중에서 자신의 AS 밖에 있는 부분에 대한 비용은 신경쓰지 않고 간으한 최소의 비용으로 패킷을 자신의 AS 밖으로 내보내는 방식이 Hot Potato Routing이다. 즉, 외부 AS에서는 모르겠고 자신이 속한 AS에서만큼은 비용을 줄여보겠다는 것이다.
Software Defined Networking
전통적으로 네트워크 계층은 Data Plane과 Control Plane으로 구성된다. Control Plane이 어떻게 동작하는지 알아보자.
먼저, Control Plane은 SDN 컨트롤러와 네트워크 제어 애플리케이션으로 구성된다. 먼저, SDN 컨트롤러는 네트워크 OS라고 불리며 네트워크 상태 정보를 유지한다. 또한 Northbound interface를 통해 네트워크 컨트롤 애플리케이션과 상호작용하며, Southbound interface를 통해서 네트워크 스위치와 상호작용한다.
SDN 컨트롤러 최하단에서 네트워크 장치와 상호작용하는 OpenFlow 프로토콜이 유명하다. 이렇게 유명한 프로토콜들은 대부분 같은 구조를 가지고 있고 SouthBound, Northbound로 Data Plane, Network Application과 상호작용하며 중간에 SDN 컨트롤러가 이를 관리하는 방식으로 동작한다.
'CS > 네트워크' 카테고리의 다른 글
[컴퓨터망] 6. Link Layer(링크 레이어 서비스, 에러 탐지와 정정) (0) | 2024.06.11 |
---|---|
[컴퓨터망] 5. Network Layer(ICMP, Network Management) (0) | 2024.06.08 |
[컴퓨터망] 5. Network Layer(Control Plane, Routing Protocols) (1) | 2024.06.08 |
[컴퓨터망] 4. Network Layer(Internet Protocol) (0) | 2024.06.08 |
[컴퓨터망] 4. Network Layer - Data Plane(개요, 라우터) (0) | 2024.05.30 |