[네트워크] 네트워크 계층 : 제어 평면
라우터별 제어와 논리적으로 중앙 집중된 제어
라우터별 제어
- 라우터별 제어는 라우팅 알고리즘들이 모든 라우터 각각에서 동작하는 방식을 말한다.
- 포워딩 및 라우팅 기능이 모두 각 라우터에 포함되어 있다.
- OSPF와 BGP 프로토콜은 라우터별 제어 방식을 기반으로 한다.
논리적으로 중앙 집중된 제어
- 논리적으로 중앙 집중된 제어란 논리적으로 중앙 집중된 단일 컨트롤러가 포워딩 테이블을 작성하고, 이를 개별 라우터가 사용할 수 있도록 배포하는 방식을 말한다.
- 여러 개의 서버에 라우팅 서비스가 구현된다 하더라도, 마치 하나의 중앙 서비스 지점에 있는 것처럼 서비스에 접근한다는 의미이다.
- 컨트롤러는 각 라우터의 제어 에이전트(CA)와 상호 작용하여 라우터의 플로우 테이블을 구성 및 관리한다.
- CA는 서로 상호 작용하지 않으며, 포워딩 테이블을 계산하는 데에도 참여하지 않는다.
라우팅 알고리즘
- 라우팅 알고리즘의 목표는 송신자부터 수신자까지 라우터의 네트워크를 통과하는 최소 비용 경로를 결정하는 것이다.
라우팅 알고리즘을 분류하는 세 방법
- 중앙 집중형 vs. 분산형
- 정적 알고리즘 vs. 동적 알고리즘
- 부하에 민감한 알고리즘 vs. 부하에 민감하지 않은 알고리즘
중앙 집중형 라우팅 알고리즘과 분산 라우팅 알고리즘
- 중앙 집중형 라우팅 알고리즘
- 중앙 집중형 라우팅 알고리즘은 네트워크 전체에 대한 모든 정보를 갖고 출발지와 목적지 사이의 최소 비용 경로를 계산한다.
- 전체 상태 정보를 가지는 알고리즘을 링크 상태 알고리즘(link-state, LS)이라고 한다.
- 분산 라우팅 알고리즘
- 분산 라우팅 알고리즘은 최소 비용 경로 계산이 라우터들에 의해 반복적이고 분산된 방식으로 수행한다.
- 각 노드는 연결된 링크에 대한 비용 정보만을 가지고 시작한다.
- 거리 벡터 알고리즘(distance-vector, DV)이라고도 한다.
정적 라우팅 알고리즘과 동적 라우팅 알고리즘
- 정적 라우팅 알고리즘 : 사람의 개입으로 인한 결과로 경로는 아주 느리게 변한다.
- 동적 라우팅 알고리즘 : 네트워크 트래픽 부하나 토폴로지 변화에 따라 라우팅 경로를 바꾼다.
부하에 민감한 알고리즘과 부하에 민감하지 않은 알고리즘
- 부하에 민감한 알고리즘에서 링크 비용은 해당 링크의 현재 혼잡 수준을 나타내기 위해 동적으로 변한다.
- 현재 사용중인 인터넷 라우팅 알고리즘들은 링크 비용이 현재의 혼잡을 반영하지 않기 때문에 부하에 민감하지 않다.
링크 상태(link-state, LS) 라우팅 알고리즘
- 링크 상태 알고리즘에서는 네트워크 토폴로지와 모든 링크 비용이 알려져 있어서 링크 상태 알고리즘의 입력값으로 사용된다.
- 이는 각 노드가 자신과 연결된 링크의 식별자와 비용을 포함하는 링크 상태 패킷을 네트워크 상의 모든 다른 노드로 브로드캐스트 함으로써 가능해진다.
- 링크 상태 알고리즘은 다익스트라 알고리즘을 사용한다.
- 다익스트라는 우선순위 큐를 이용하여 구현 시, 최악의 경우 O(ElogV)의 시간 복잡도를, 우선순위 큐를 이용하지 않고 구현 시 O(V^2)의 시간 복잡도를 갖는다.
거리 벡터(distance-vector, DV) 라우팅 알고리즘
- 거리 벡터 알고리즘은 반복적이고 비동기적이며 분산적이다.
- LS 알고리즘은 모든 링크 정보들을 다 알고 시작한는 반면, DV 알고리즘에서 하나의 노드가 갖는 정보는 오로지 직접 연결된 이웃 링크 비용과 그 이웃들로부터 수신하는 정보뿐이다.
- 각 노드는 이웃으로부터의 업데이트를 기다리고, 업데이트를 수신하면 새로 거리 벡터를 계산하고, 이 새로운 거리 벡터를 다시 이웃들에게 배포한다.
- 거리 벡터 알고리즘은 벨만-포드 알고리즘을 사용한다.
자율 시스템(Autonomous System, AS)
- AS는 동일한 관리 제어하에 있는 라우터의 그룹으로 구성된다.
- 같은 AS 안에 있는 라우터들은 동일한 라우팅 알고리즘을 사용하고, 상대방에 대한 정보를 가지고 있다. 자율 시스템 내부에서 동작하는 라우팅 알고리즘을 AS 내부 라우팅 프로토콜이라고 한다.
개방형 최단 경로 우선(Open Shortest Path First, OSPF) 프로토콜
- OSPF는 링크 상태 정보를 플러딩(flooding)하고, 다익스트라 최소 비용 경로 알고리즘을 사용하는 링크 상태 알고리즘이다.
- OSPF를 사용하는 라우터는 인접한 라우터뿐만 아니라, 자율 시스템 내의 다른 모든 라우터에게 라우팅 정보를 브로드캐스트 한다.
- 라우터는 링크 상태가 변경될 때마다, 링크 상태 정보를 브로드캐스트 한다.
- 링크 상태가 변경되지 않았더라도, 정기적으로 링크 상태를 브로드캐스트 한다.
경계 게이트웨이 프로토콜(Border Gateway Protocol, BGP)
- 인터넷 모든 AS들은 자율 시스템 간 라우팅 프로토콜로 BGP를 사용한다.
- BGP는 각 라우터에게 이웃 AS로부터 도달 가능한 서브넷 프리픽스 정보를 제공하고, 서브넷 주소 프리픽스로의 가장 좋은 경로를 결정하도록 해준다.
BGP를 통한 최고의 경로 결정
- 라우터는 BGP 속성(AS-PATH, NEXT-HOP)을 포함시켜, BGP 연결을 통해 주소의 프리픽스를 알린다.
- AS-PATH 속성은 메세지가 통과하는 AS들을 담는다. 메세지 루프를 감지하고 방지하기 위해 활용된다.
- NEXT-HOP 속성은 AS-PATH를 시작하는 라우터(AS 내 처음 통과하는 라우터) 인터페이스의 IP 주소이다.
뜨거운 감자 라우팅(Hot Potato Routing)
- 뜨거운 감자 라우팅에서는 경로 각각의 시작점인 NEXT-HOP 라우터까지의 경로 비용이 최소가 되는 경로를 선택한다.
- AS 바깥 부분의 비용에는 신경쓰지 않고, 패킷을 최대한 신속히 자신의 AS 밖으로 내보내자는 아이디어이다.
- 따라서, 자기 AS 외부에서 얼마의 비용이 들지는 신경쓰지 않고, 오로지 자신의 AS 내부 비용만 줄이려는 이기적인 알고리즘이다.
AS간 경로 선택 알고리즘
- BGP는 아래 절차에 따라 경로를 선택하게 된다.
- 지역 선호도가 높은 경로를 선택한다.
- 최단 AS-PATH를 갖는 경로를 선택한다.
- 뜨거운 감자 라우팅을 수행하여, NEXT-HOP 라우터까지의 거리가 가장 가까운 경로를 선택한다.
- 아직도 여러 경로가 남아 있다면, BGP 식별자를 이용하여 경로를 선택한다.
- 경로 선택 알고리즘을 사용하면, BGP는 뜨거운 감자 라우팅만을 수행하지 않기에, 더 이상 이기적인 알고리즘이 아니게 된다.
- 최단 AS-PATH를 가진 경로를 먼저 찾기 때문에, 결과적으로 종단 간 지연시간이 줄어들 것이다.
IP 애니캐스트
- BGP는 IP 애니캐스트를 구현하는 데도 활용된다.
- DNS 시스템에서는 DNS 질의를 가장 가까운 루트 DNS 서버로 전달하기 위해 IP 애니캐스트가 광범위하게 사용된다.
소프트웨어 정의 네트워크(Software Defined Network, SDN) 제어 평면
- 제어 평면은 SDN 컨트롤러와 네트워크 제어 응용들의 집합으로 구성된다.
-
SDN 컨트롤러는 크게 세 개의 계층으로 구성된다.
- 통신 계층
- SDN 컨트롤러와 제어받는 장치들간의 통신은 사우스바운드(south-bound) 컨트롤러 인터페이스를 통해 이루어진다.
- 네트워크 전역 상태 관리 계층
- 플로우 테이블 등의 상태 정보들을 관리한다.
- 네트워크 제어 응용 계층과의 인터페이스
- SDN 컨트롤러와 네트워크 제어 응용들간의 통신은 노스바운드(northbound) 컨트롤러 인터페이스를 통해 이루어진다.
- 이 API는 네트워크 제어 응용들이 상태 관리 계층 내의 네트워크 상태 정보와 플로우 테이블을 읽고 쓰도록 해준다.
- 통신 계층
인터넷 제어 메세지 프로토콜(ICMP)
- 인터넷 제어 메세지 프로토콜(Internet Control Message Protocol, ICMP)은 호스트와 라우터가 서로 간에 네트워크 계층 정보를 주고받기 위해 사용된다.
- ICMP는 IP 바로 위에 존재한다. TCP/UDP 와 같은 전송 계층 프로토콜과 마찬가지로, ICMP도 다중화와 역다중화를 거친다.
- 오류 보고 목적으로 가장 많이 사용되지만, 오류 상태를 알리기 위해서만 사용되는 것은 아니다.
- 출발지 억제 메세지로도 사용된다. 혼잡이 발생한 라우터가 호스트의 전송 속도를 늦추도록 ICMP 출발지 억제 메세지를 해당 호스트에 보낸다.
네트워크 관리 프로토콜(SNMP)
- 네트워크 관리 프로토콜(Simple Network Management Protocol, SNMP)은 관리 서버와 그 관리 서버를 대표하여 실행되고 있는 에이전트 사이에서 네트워크 관리 제어 및 정보 메세지를 전달하기 위해 사용된다.
댓글남기기