네트워크 계층 - 제어 평면

이윤설·2024년 8월 12일

1. 개요

네트워크 계층은 2개로 나눌 수 있는데, 하나는 데이터 평면이고, 하나는 제어평면이다.

데이터 평면 (Data Plane): 실제 사용자 데이터의 전송을 처리합니다.

  • 패킷 포워딩(수신된 패킷을 적절한 출력 포트로 전달)
  • 패킷 필터링(보안 정책에 따라 패킷을 허용하거나 차단)
  • 큐잉, 스케쥴링(네트워크 혼잡을 관리하고 QoS(서비스 품질)를 보장)

제어 평면 (Control Plane):네트워크의 동작을 제어하고 관리합니다.

  • 정책 결정(트래픽 제어, 보안 정책 등을 결정)
  • 라우팅 프로토콜 실행(최적의 경로를 계산하고 라우팅 테이블을 유지함)
  • 네트워크 모니터링(네트워크 상태를 감시하고 문제를 감지)

라우터별 제어

개별 라우팅 알고리즘들이 제어 평면에서 상호작용한다.
포워팅과 라우팅 기능이 모두 개별 라우터에 포함되어 있다.
각 라우터는 다른 라우터의 라우팅 구성요소와 통신하여 자신의 포워딩 테이블의값을 계산하는 라우팅 구성요소를 갖고 있다.
OSPF, BGP 프로토콜이 이 라우터별 제어 방식을 기반으로 한다.

논리적 중앙 집중형 제어

위 그림은 논리적 중앙 집중형 컨트롤러가 포워딩 테이블을 작성하고,
이를 모든 개별 라우터가 사용할 수 있도록 배포한 경우를 나타낸다.

전통적인 네트워크 vs SDN
전통적인 네트워크:
각 라우터가 독립적으로 라우팅 프로토콜을 실행하고 포워딩 테이블을 생성한다.
분산된 방식으로 동작하며, 각 장치가 자체적으로 결정을 내린다.

SDN 기반 네트워크:
중앙 컨트롤러가 네트워크 전반의 상태를 파악하고 포워딩 규칙을 결정한다.
이 규칙들이 각 네트워크 장치의 포워딩 테이블에 반영된다.

SDN의 증가:
클라우드 컴퓨팅, 대규모 데이터 센터 등의 등장으로 SDN의 필요성이 증가하고 있다.
네트워크의 유연성, 확장성, 관리 용이성을 높이기 위해 많은 기업들이 SDN을 도입하고 있다.

결론:
현재로서는 "논리적 중앙 집중형 컨트롤러"가 포워딩 테이블을 작성하는 방식이 모든 네트워크에서 일반적이지는 않지만, 점점 더 보편화되고 있는 추세이다.
특히 대규모 네트워크나 클라우드 환경에서는 이러한 접근 방식이 많이 사용된다.

2. 라우팅 알고리즘

알고리즘 유형

라우팅 알고리즘 유형에는 크게 두가지 종류가 있다.

전체적인 네트워크 상황을 알고, 이를 토대로 라우팅 경로를 판단하는 Link State 알고리즘,
특정 라우터와 연결된 이웃 라우터의 정보만을 가지고 판단하는 Distance Vector 알고리즘이 있다.

라우팅 프로토콜

라우팅 프로토콜은 네트워크에서 데이터를 전송할 때 최적의 경로를 찾는 역할을 한다.
이를 위해 라우터들 사이에서 네트워크 정보를 교환하고 공유한다.

최단 경로 계산 알고리즘

한편, 최단 경로 계산 알고리즘은 라우터가 수집한 네트워크 정보를 바탕으로 실제로 최단 경로를 계산하는 알고리즘이다.

라우팅 프로토콜 vs 최단 경로 계산 알고리즘

라우팅 프로토콜 = 내비게이션 앱
내비게이션 앱은 실시간으로 주변 도로 상황 정보를 수집하고 공유한다.
RIP는 주변 지역의 정보만 수집하고, OSPF는 전체 도로 네트워크 정보를 수집한다.

최단 경로 계산 알고리즘 = 최적 경로 계산 기능
내비게이션 앱이 수집한 도로 정보를 바탕으로 실제 최적 경로를 계산한다.
다익스트라 알고리즘은 일반 도로에서 최단 경로를 계산하고,
벨만-포드 알고리즘은 통행료 도로 등 가중치가 있는 도로에서 최단 경로를 계산한다.

따라서 라우팅 프로토콜은 네트워크 정보를 수집하고 공유하는 역할을,
최단 경로 계산 알고리즘은 수집된 정보를 바탕으로 실제 최적 경로를 계산하는 역할을 한다.

이 두 가지가 함께 작동하여 효율적인 데이터 전송 경로를 찾게 되는 것이다.

알고리즘 유형

Distance Vector

특징:
각 라우터가 직접 연결된 이웃 라우터의 정보만을 가지고 있다.
목적지까지의 거리와 다음 홉(hop)만을 저장한다.

동작 방식:
각 라우터가 주기적으로 자신의 라우팅 테이블을 이웃 라우터와 공유한다.
라우터는 이웃으로부터 받은 정보를 기반으로 자신의 테이블을 업데이트한다.
Bellman-Ford 알고리즘을 기반으로 한다.

장점:
구현이 간단하고 계산이 덜 복잡함
작은 네트워크에서 효율적

단점:
수렴 속도가 느림
카운트-투-인피니티(count-to-infinity) 문제 발생 가능
대규모 네트워크에서는 확장성 문제 발생 가능

특징:
전체 네트워크 토폴로지에 대한 정보를 수집하고 유지한다.
각 라우터가 네트워크의 완전한 맵을 가지고 있다.

동작 방식:
각 라우터가 자신의 링크 상태 정보를 네트워크 전체에 플러딩(flooding)한다.
모든 라우터가 동일한 네트워크 맵을 구축한다.
최단 경로 계산을 위해 주로 Dijkstra 알고리즘을 사용한다.

장점:
빠른 수렴 시간
더 정확한 라우팅 결정

단점:
더 많은 메모리와 처리 능력 필요
큰 네트워크에서 오버헤드 증가 가능성 존재

정리

Distance Vector (거리 벡터)

거리 벡터 라우팅은 라우터가 자신의 이웃 라우터로부터 거리(또는 비용) 정보를 받아, 목적지까지의 최단 거리를 계산하는 방식이다.

각 라우터는 이웃 라우터와 자신의 거리 벡터를 주기적으로 공유한다.
이 벡터는 목적지까지의 거리(또는 비용)를 포함한다.

라우터는 이웃으로부터 받은 정보를 기반으로 최적의 경로를 결정한다.
이 과정에서 "Count to Infinity" 문제가 발생할 수 있다.

ex. 라우터 A, B, C가 있을 때, A는 B를 통해 C로 가는 거리 정보를 업데이트한다.

링크 상태 라우팅은 네트워크 내의 모든 라우터가 네트워크의 전체 구조에 대해 알고 있어야 하는 방식이다.

각 라우터는 자신과 직접 연결된 모든 링크의 상태(예: 가용성, 비용)를 네트워크 내의 모든 다른 라우터와 공유한다. 이 정보를 바탕으로 각 라우터는 전체 네트워크 맵을 구성하고, 다익스트라 최단 경로 알고리즘을 사용하여 최적의 경로를 계산한다.

ex. 라우터 A는 자신과 직접 연결된 링크의 정보를 네트워크에 공유하고, 이 정보를 바탕으로 전체 네트워크의 최적 경로를 계산한다.

작은 규모의 네트워크에서는 단순성과 관리의 용이성 때문에 Distance Vector가,
반면에 크고 복잡한 네트워크에서는 더 높은 성능과 정확성을 위해 Link State 프로토콜이 선호된다.

(혼동 주의) Link State는 계산이 비교적 간단하지만 기술적으로 더 복잡하므로 대규모 네트워크에서 사용된다.

ex. 하버드 대학교: Link State, 강원도의 어느 한적한 시골 마을: Distance Vector

3. OSPF vs BGP

AS


'AS'는 'Autonomous System'의 약자로, 하나의 기술적, 관리적 단위로 운영되는 네트워크 집합이다.

각 AS는 인터넷에서 고유한 식별 번호인 ASN(Autonomous System Number)으로 식별된다.

AS는 일반적으로 하나의 네트워크 운영자에 의해 관리되며, 이 운영자는 AS 내에서의 라우팅 정책을 단독으로 결정하고 제어할 수 있다.

AS는 다음과 같은 특징을 가지고 있다.

  1. 자율성: 각 AS는 자체적인 라우팅 정책을 가지고 있으며, 이를 기반으로 네트워크 내에서 패킷을 전송한다.

  2. 단일 관리자: 하나의 조직이나 기관이 AS의 네트워크 운영을 관리한다.

  3. 외부 연결: AS는 인터넷의 다른 부분과 통신하기 위해 다른 AS와 연결되어 있으며, 이러한 연결을 통해 다른 AS로의 라우팅 정보를 교환한다.

AS간의 라우팅 정보 교환은 BGP(Border Gateway Protocol)라는 외부 라우팅 프로토콜을 사용하여 이루어어진다. BGP를 통해 서로 다른 AS 사이에서 최적의 경로를 결정하고, 인터넷 전체의 연결성을 유지한다.


9년전 자료이긴 하지만, 마지막 AS 넘버가 62870이다.
네트워크 숫자만 62870개이므로, 호스트 숫자는 엄청나게 많을 것이다.

예를 들어, 하버드 대학교 학생이 와이파이를 통해 마이애미 대학교 학생에게 이메일을 보낼 때, 이 데이터는 여러 AS를 거쳐 전송된다.

  1. 출발지에서의 처리: 하버드 대학교 학생이 와이파이를 통해 이메일을 보내면, 이메일은 먼저 하버드 대학교의 로컬 네트워크를 통해 학교의 AS로 전송된다. 대학교의 네트워크는 일반적으로 하나 이상의 AS 번호를 가지고 있으며, 이는 대학교가 인터넷에 연결되는 방식을 관리한다.

  2. AS 간의 전송: 하버드 대학교의 AS에서 이메일 데이터는 인터넷으로 전송되어, 도착지인 마이애미 대학교의 AS로 가기 위해 여러 AS를 거칠 수 있다. 이 과정에서 Border Gateway Protocol (BGP) 같은 외부 게이트웨이 프로토콜이 사용되어, 여러 AS를 거쳐 데이터가 전송된다.

  3. 도착지에서의 처리: 이메일이 마이애미 대학교의 AS에 도착하면, 마이애미 대학교의 로컬 네트워크를 통해 최종 수신자인 학생에게 전달된다.

이러한 예시 외에도 온라인 회의, 온라인 게임, 복싱 경기 스트리밍 등 다양한 분야에서 AS를 사용한다.


Q) 만약 한국에서 미국의 복싱 경기를 스트리밍하는 것은 중간에 태평양을 두기 때문에 거리가 상당히 먼데 어떻게 AS간에 통신이 가능할까?

A) key는 해저케이블이다.

출발지 AS (미국 라스베가스): 스트리밍 서비스의 데이터 센터가 위치한 AS에서 스트리밍이 시작된다.

이 AS는 미국 내의 다른 AS로 데이터를 전송한다.

미국 내 중간 AS: 라스베가스 AS에서 전송된 데이터는 미국 내 하나 이상의 중간 AS를 거칠 수 있다. 이러한 AS는 대형 통신 회사나 인터넷 서비스 제공업체(ISP)가 운영할 수 있으며, 데이터를 태평양을 건너 한국으로 보내는 데 필요한 연결을 제공한다.

해저 케이블을 통한 통신: 태평양 바닥에 설치된 해저 광케이블을 통해 데이터는 미국에서 한국으로 전송된다. 이 과정에는 여러 해저 케이블이 관여할 수 있으며, 이 케이블들은 대륙 간 통신의 근간을 이룬다.

한국 내 중간 AS: 해저 케이블을 통해 한국에 도착한 데이터는 한국 내 하나 이상의 중간 AS를 거쳐 최종 목적지로 전송된다. 이 AS도 대형 통신 회사나 ISP(kt, skt, lg)가 관리한다.

목적지 AS (서울): 최종적으로, 데이터는 서울에 위치한 사용자의 ISP AS에 도달한다.

여기서 데이터는 사용자가 연결된 로컬 네트워크를 통해 스트리밍으로 전송된다.


Hierarchical Routing

Hierarchical routing은 link state나 distance vector와 같은 구체적인 라우팅 알고리즘의 종류라기보다는, 네트워크를 관리하고 최적화하기 위한 접근 방식 중 하나이다.

Hierarchical routing의 기본 아이디어는 큰 네트워크를 여러 개의 작은 영역이나 계층으로 나누어 관리함으로써 라우팅을 효율적으로 수행하는 것이다.

이 방식에서 네트워크는 여러 레벨로 구성되며, 각 레벨 내에서는 독립적인 라우팅을 수행한다.

이렇게 함으로써 각 영역 또는 계층은 자체적인 라우팅 정보를 유지하고, 전체 네트워크의 라우팅 테이블 크기를 줄이며, 라우팅 프로세스를 단순화할 수 있다.

결과적으로, 네트워크의 확장성이 향상되고, 라우팅 정보의 교환으로 인한 오버헤드가 감소하며, 네트워크 관리가 용이해진다.

Hierarchical routing 내에서는 link state나 distance vector와 같은 다양한 라우팅 알고리즘을 사용할 수 있다.

예를 들어, 네트워크의 각 영역 내에서는 distance vector 알고리즘을 사용하고, 영역 간의 라우팅에는 link state 알고리즘을 사용하는 방식으로 조합할 수 있다.

AS와 계층적 라우팅의 관계

AS는 인터넷의 계층적 구조에 기초한다. 각 AS는 하나의 계층으로 간주되며, 인터넷을 구성하는 여러 AS 간에는 계층적 라우팅 프로토콜이 사용된다.

AS 간 관계

AS 간의 관계는 크게 customer-provider 관계와 peer(동등) 관계로 나눌 수 있다.

하지만 AS를 운영하려면 많이 비용이 든다. 즉, 돈이 없으면 AS를 운영할 수 없다.

그래서 AS간에도 갑을 관계가 존재한다.

한양대학교는 학생들에게 돈을 받고 SK에게 돈을 주어서 SK트래픽을 사용할 수 있는 것이다.

일반적으로 소규모 AS가 큰 ISP에게 인터넷 서비스를 받는 경우에 해당된다.

Peer 관계는 두 AS가 서로의 네트워크로 데이터를 전송할 수 있도록 서로에게 접근 권한을 주는 관계다.

이때 양측은 서로에게 비용을 지불하지 않는다.

SKT와 KT는 경쟁관계임과 동시에 peer 관계이다. 서로간의 이득을 위해 peer 관계를 유지하는 것이다.

이러한 관계는 주로 서로의 네트워크를 통해 데이터를 교환함으로써 양쪽 모두의 네트워크 성능을 향상시키고자 할 때 형성된다.

Peer 관계는 주로 같은 수준의 네트워크 용량과 범위를 가진 AS들 사이에서 이루어진다.

OSPF (Open Shortest Path First)

목적:
OSPF는 내부 게이트웨이 프로토콜(IGP)로, 주로 하나의 자율 시스템(AS) 내에서 라우팅 정보를 교환하기 위해 사용된다.
즉, 같은 네트워크 내의 라우터 간에 최적의 경로를 찾아주는 역할을 한다.

특징:
링크 상태 라우팅: OSPF는 링크 상태 라우팅 프로토콜로, 네트워크 내의 모든 라우터가 네트워크의 전체 토폴로지를 알고 있다. 각 라우터는 자신이 직접 연결된 네트워크의 상태 정보를 다른 라우터들과 공유한다.

다익스트라 알고리즘 사용: OSPF는 최단 경로를 계산하기 위해 다익스트라(Dijkstra) 알고리즘을 사용한다. 이를 통해 패킷이 전달될 때 가장 효율적인 경로를 선택한다.

계층적 구조: OSPF는 계층적 라우팅을 지원하여, 대규모 네트워크를 여러 개의 영역(Area)으로 나눌 수 있다. 이는 라우팅 정보의 전파를 줄이고, 네트워크의 효율성을 높인다.

빠른 수렴 속도: 네트워크 토폴로지의 변화(예: 링크 다운)가 발생하면, OSPF는 빠르게 새로운 최적 경로를 계산하여 반영한다.

사용 사례: OSPF는 기업 내부의 LAN 환경, 대규모의 복잡한 네트워크, 또는 다양한 연결 상태를 가진 네트워크 환경에서 흔히 사용된다.

BGP (Border Gateway Protocol)

목적: BGP는 외부 게이트웨이 프로토콜(EGP)로, 자율 시스템(AS) 간의 라우팅 정보를 교환하는 데 사용됩니다. BGP는 인터넷의 백본을 구성하는 주요 프로토콜이며, 전 세계 네트워크 간의 라우팅을 관리한다.

특징:
패스 벡터 라우팅: BGP는 패스 벡터 라우팅 프로토콜로, 각 경로의 경로 속성(예: AS 경로)을 통해 최적의 경로를 선택한다. BGP는 네트워크 내의 루프를 방지하기 위해 각 경로의 AS 경로를 유지 관리한다.

정책 기반 라우팅: BGP는 다양한 정책을 설정하여 경로 선택을 제어할 수 있다.
예를 들어, 특정 경로를 선호하거나 회피하는 등의 정책을 적용할 수 있다.

확장성과 안정성: BGP는 대규모 네트워크에서의 안정성과 확장성을 고려하여 설계되었다. 수많은 경로 정보를 관리할 수 있으며, 인터넷의 규모에 적합하다.

느린 수렴 속도: OSPF에 비해 수렴 속도가 느리지만, BGP는 안정성이 매우 중요하다.

사용 사례: BGP는 인터넷 서비스 제공자(ISP) 간의 경로 설정, 대형 데이터 센터 간의 네트워크 연결, 또는 복잡한 멀티홈 네트워크 환경에서 사용된다.


똑같은 라우터 갯수를 지나가는데 삼성전자에서는 google을 통해 지나는것이 꺼려질수도 있다. 그래서 Ebone을 통해서 가는 길을 선택할수도 있다.

peer link로 2단계만에 갈수 있지만 을에게 보내는 것이 더 선호 되기에 2번이나 거쳐서 AS1에게 보내는 장면이다

Intra-AS와 Inter-AS

  1. 내부 자율 시스템(Intra-AS) 라우팅:

내부 자율 시스템 라우팅은 하나의 AS 내부에서 이루어지는 라우팅이다.
Intra-AS 라우팅의 주된 목표는 성능을 최적화(속도를 우선시)하는 것이다.

AS 내부에서는 네트워크 장비, 정책 등이 예상 가능하기 때문에 속도를 우선시 해도 무방하다.

OSPF(Open Shortest Path First)와 같은 라우팅 프로토콜은 네트워크의 각 링크 상태 정보를 공유하고, 이 정보를 기반으로 최적의 경로를 계산한다.

  1. 외부 자율 시스템(Inter-AS) 라우팅:

외부 자율 시스템 라우팅은 서로 다른 AS 간에 이루어지는 라우팅을 말한다.

이는 인터넷과 같은 글로벌 네트워크에서 데이터 패킷이 다양한 AS를 거쳐 이동하는 경우에 해당한다.

Inter-AS 라우팅에서는 정책이 성능보다 우선시 된다.
AS 간에 운영자가 다르고, 보안을 고려해야 하기 때문에 당연히 정책을 우선시 해야한다.

각 AS는 자신의 네트워크 정책, 상업적 이해관계, 보안 요구사항 등에 따라 라우팅 결정을 내린다.

ICMP

ICMP(Internet Control Message Protocol)는 네트워크에서 오류 메시지와 진단 기능을 제공하는 중요한 프로토콜이다.

  • 오류 보고
    오류 메시지 전송: ICMP는 네트워크 장치(예: 라우터, 호스트) 간에 문제가 발생했을 때 오류 메시지를 전송한다. 예를 들어, 목적지에 도달할 수 없거나 라우팅 문제가 있을 때 ICMP 메시지를 통해 이를 알린다.

  • 진단 기능
    Ping: ICMP의 가장 유명한 기능으로, 특정 호스트가 네트워크에서 접근 가능한지 확인하는 데 사용된다. Ping 명령은 ICMP Echo Request를 보내고 Echo Reply를 받는 방식으로 작동한다.
    Traceroute: 네트워크 경로를 추적하는 도구로, ICMP 메시지를 사용하여 데이터가 목적지에 도달하기까지 거치는 라우터를 확인할 수 있다.

  • 네트워크 상태 모니터링
    ICMP는 네트워크 관리자에게 네트워크의 상태와 경로 문제를 모니터링하고 진단할 수 있는 중요한 도구를 제공한다.

  • 비연결성
    연결 유지 없이 동작: ICMP는 비연결성 프로토콜로, 별도의 연결 설정 없이도 필요한 정보를 교환할 수 있다.

  • 보안 고려
    취약점: ICMP는 DDoS 공격(예: Smurf 공격)이나 네트워크 스캐닝과 같은 공격에 악용될 수 있어, 보안 정책에서 이를 적절히 관리해야 한다.


출처

https://github.com/IT-Book-Organization/Computer-Networking_A-Top-Down-Approach/tree/main/Chapter_5/5.6%20%EC%9D%B8%ED%84%B0%EB%84%B7%20%EC%A0%9C%EC%96%B4%20%EB%A9%94%EC%8B%9C%EC%A7%80%20%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C(ICMP)

profile
화려한 외면이 아닌 단단한 내면

0개의 댓글