티스토리 뷰

5. 네트워크 계층: 제어 평면

🤨

네트워크 계층을 두개로 나누면?

Control Plane: 네트워크 장비를 제어하는 뇌에 해당

Data Plane: 데이터를 전송하는 역할


5.1 개요

포워딩과 라우팅 개념은 네트워크 계층 학습 시 계속 등장하는 개념이다. 정확하게 짚고 넘어가자!

 

포워딩

  • 라우터의 입력 포트에서 출력 포트로 패킷을 이동시키는 것

라우팅

  • 출발지에서 목적지까지의 경로를 결정하는 것

라우터별 제어

  • 각 라우터는 다른 라우터의 라우팅 구성요소와 통신하여 자신의 포워딩 테이블의 값을 계산하는 라우팅 구성요소를 가지고 있다.
  • OSPF와 BGP 프로토콜이 이 라우터별 제어 방식을 기반으로 한다.

라우터별 제어: 개별 라우팅 알고리즘들이 제어 평면에서 상호 작용

논리적으로 중앙 집중된 제어

  • 컨트롤러가 포워딩 테이블을 작성하고 이를 모든 개별 라우터가 사용할 수 있도록 배포한 경우

논리적으로 중앙 집중된 제어: 별개의, 일반적으로 원격에 위치한 컨트롤러가 지역의 제어 에이전트(CA)와 상호 작용

 

SDN

  • 소프트웨어 애플리케이션과 API를 이용하여 네트워크를 프로그래밍하고, 중앙에서 전체 네트워크를 제어하고 관리하는 것이다.

 


5.2 라우팅 알고리즘

라우팅 알고리즘의 목표

  • 송신자부터 수신자까지 라우터의 네트워크를 통과하는 좋은 경로를 결정하는 것이다.
  • 좋은 경로 -> 최소 비용 경로

 

✅ 네트워크 제어 평면이 라우터별 제어 방식을 채택하든 논리적으로 중앙 집중된 방식을 채택하든 상관없이 패킷이 전송 호스트에서 수신 호스트로 이동하기 위한 잘 정의된 일련의 라우터가 항상 존재해야 한다.

 

그래프

  • G=(N, E)로 나타내는데 N과 E는 각각 노드(node)와 에지(edge)의 집합
  • 노드(node) 
    • 패킷 포워딩 결정이 이루어지는 지점
  • 에지(edge) 
    • 물리 링크, 그 비용을 나타내는 값을 가진다.
  • 경로
    • 노드의 연속
  • 경로의 비용
    • 경로상 모든 에지 비용의 단순합
  • 최소 비용 경로는 하나일 수도 여러개 일 수도 있다.
  • 최단 경로(shortest path) 만약 그래프의 모든 에지가 같은 비용을 갖는다면 최소 비용 경로가 바로 최단 경로

 

라우팅 알고리즘 분류

방법1️⃣. 알고리즘이 중앙 집중형인지 분산형인지

  • 중앙 집중형 라우팅 알고리즘 👉 링크 상태 알고리즘
    • 네트워크 전체에 대한 완전한 정보를 가지고 출발지와 목적지 사이의 최소 비용 경로를 계산한다.
    • 핵심적인 특성은 이 알고리즘이 연결과 링크 비용에 대한 완전한 정보를 가진다는 점이다.
    • 전체 상태 정보를 가지는 알고리즘
  • 분산 라우팅 알고리즘 👉 거리벡터 알고리즘
    • 최소 비용 경로의 계산이 라우터들에 의해 반복적이고 분산된 방식으로 수행된다.
    • 각 노드가 네트워크 내 모든 다른 노드까지 비용(거리)의 추정값을 벡터 형태로 유지한다.
    • 이웃한 라우터들끼리 반복적으로 메시지를 교환하는 분산형 알고리즘

 

방법2️⃣. 정적 알고리즘과 동적 알고리즘으로 분류

  • 정적 라우팅 알고리즘(static routing algorithms)
    • 경로는 아주 느리게 변한다.
    • 종종 사람이 개입한 결과로 그렇게 된다.
  • 동적 라우팅 알고리즘(dynamic routing algorithms)
    • 네트워크 트래픽 부하나 토폴로지 변화에 따라 라우팅 경로를 바꾼다.

✅ 토폴로지: 컴퓨터 네트워크의 요소들(링크, 노드 등)을 물리적으로 연결해 놓은 것, 또는 그 연결 방식

 

방법3️⃣. 라우팅 알고리즘이 부하에 민감한지 아닌지

  • 부하에 민감한 알고리즘
    • 링크 비용은 해당 링크의 현재 혼잡 수준을 나타내기 위해 동저긍로 변한다.
  • 부하에 민감하지 않은 알고리즘
    • 오늘날 인터넷 라우팅 알고리즘(RIP, OSPF, BGP 등)은 링크 비용이 현재(또는 가장 최근)의 혼잡을 반영하지 않기 때문에 부하에 민감하지 않다.(load-insentive)

 


5.2.1 링크 상태(LS) 라우팅 알고리즘

  • 중앙 집중형 알고리즘에 속한다.
  • 네트워크 토폴로지와 모든 링크 비용이 알려져 있어서 링크 상태 알고리즘의 입력값으로 사용될 수 있다.
  • 다익스트라 알고리즘을 이용해 최적의 경로를 계산할 수 있다.
    • 하나의 노드에서 네트워크 내 모든 다른 노드로의 최소 비용 경로를 계산한다.

 


5.2.2 거리 벡터(DV) 알고리즘

  • 분산형 알고리즘에 속한다.
  • " 비동기적, 반복적, 자기 종료, 분산 알고리즘 "
  • 즉 각 노드는 자신에게 연결된 이웃의 링크의 비용만 알고 있기 때문에 벨만-포드 알고리즘을 이용해 최적의 경로를 계산할 수 있다.
  • 이웃끼리 반복해서 정보를 교환해 최적의 경로를 갱신하는 식이다.
  • 분산적(distributed)
    • 각 노드는 하나나 그 이상의 직접 연결된 이웃으로부터 정보를 받고, 계산을 수행하며, 계산된 결과를 다시 그 이웃들에게 배포한다는 점
  • 반복적(iterative)
    • 이웃끼리 더 이상 정보를 교환하지 않을 떄까지 프로세스가 지속된다는 점
  • 비동기적(asynchronous)
    • 톱니바퀴 돌듯이 모든 노드가 서로 정확히 맞물려 동작할 필요가 없다는 점

 

링크 상태(LS) 라우팅 알고리즘 VS 거리 벡터(DV) 알고리즘

LS 알고리즘 DV 알고리즘
네트워크 전체 인식 이웃한 라우터의 정보 인식
다익스트라 알고리즘 벨만-포드 알고리즘
링크 상태 정보만을 교환 이웃한 라우터와 라우팅 테이블 교환
이벤트 기반의 갱신 신호 교환 주기적으로 갱신 데이터를 교환

 


5.3 인터넷에서의 AS 내부 라우팅: OSPF

자율시스템: AS(Autonnomous System)

하나의 관리 집합 내의 라우터들의 집합을 의미

 

  •  inter-AS
    • AS와 AS간의 관계를 의미
    • IGBP(Interior Gateway Protocol)라고 불리기도 함
    • OSPF, RIP, EIGRP가 inter-AS 라우팅 프로토콜에 해당
  • intra-AS
    • 하나의 AS 내의 라우터끼리 관계를 의미

 

개방형 최단 경로 우선 프로토콜: OSPF(Open Shortest Path First)

inter-AS 라우팅 프로토콜의 하나로, 특정 라우터에서 다른 라우터까지의 최단거리를 찾는 프로토콜

 

  • 확장성에 굉장히 신경을 많이 썼다!
  • link state 알고리즘을 사용한다.
  • OSPF를 사용하는 라우터는 인접한 라우터만이 아니라 자율 시스템 내의 다른 모든 라우터에게 라우팅 정보를 브로드캐스트 한다.
  • 링크의 가중치 설정 방법을 특정하지 않고, 주어진 링크 가중치들에 대해 최소 비용 경로를 결정하는 방법(프로토콜)만을 제공한다.
  • TCP나 UDP 등의 상위 레이어 서비스를 사용하지 않고 직접 IP 프로토콜을 이용해서 메시지를 전달한다.
    • 상위 계층 프로토콜 번호로는 OSPF를 의미하는 89를 가진다. 따라서 OSPF 프로토콜은 신뢰할 수 있는 메시지 전송과 링크 상태의 브로드캐스트와 같은 기능을 스스로 구현해야 한다.
  • 링크 상태의 주기적인 갱신으로 링크 상태 알고리즘에 견고성을 더한다.
    • 라우터는 링크 상태가 변경될 때마다 링크 상태 정보를 브로드캐스트 한다.
    • 링크 상태가 변경되지 않았더라도 정기적으로 링크 상태를 브로드캐스트 한다.

 

OSPF에 구현된 몇 가지 개선 사항

  • 보안
  • 복수 동일 비용 경로
  • 유니캐스트와 멀티캐스트 라우팅의 통합 지원
  • 단일 AS 내에서의 계층 지원

 


5.4 인터넷 서비스 제공업자(ISP) 간의 라우팅: BGP

여러 AS들을 연결시켜주는 Inter-AS 라우팅 프로토콜

 

  • 거리 벡터 라우팅과 같은 줄기에서 나왔다고 볼 수 있는 분산형 비동기식 프로토콜이다.
  • 인터넷 AS 간 라우팅의 사실상 표준이다.

 

5.4.1 BGP의 역할

  • BGP에서는 패킷이 특정한 목적지 주소를 향해서가 아니라 CIDR(Classless Inter-Domain Routing) 형식으로 표현된, 주소의 앞쪽 접두부(prefix)를 향해 포워딩된다.
  • 라우터의 포워딩 테이블은 (x, I) 같은 형식의 엔트리들을 갖게 된다.
    • x: 주소 접두부
    • I: 라우터 인터페이스의 인터페이스 번호
  • AS 간 라우팅 프로토콜로서 BGP는 각 라우터에게 다음과 같은 수단을 제공한다.
    • 1. 이웃 AS로부터 도달 가능한 서브넷 접두부 정보를 얻는다.
    • 2. 서브넷 주소 접두부로의 "가장 좋은" 경로를 결정한다.

 


5.4.2 BGP 경로 정보 알리기

  • 각 AS에서 각각의 라우터들은 게이트웨이 라우터 또는 내부 라우터이다.
  • 게이트웨이 라우터
    • AS의 경계에 있는 라우터로서 다른 AS들에 있는 하나 또는 여러 개의 라우터와 직접 연결된다.
  • 내부 라우터
    • 자신의 AS 내에 있는 호스트 및 라우터와만 연결된다.

 

eBGP와 iBGP

  • 외부 BGP(external BGP, eBGP)
    • 두 개의 AS에 걸친 BGP 연결
  • 내부 BGP(internal BGP, iBGP)
    • 같은 AS 내의 라우터 간 BGP 연결

 

보통 서로 다른 AS에 속하는 게이트웨이 라우터들을 직접 연결하는 링크에는 eBGP 연결이 존재한다.

아래 그림에서 게이트웨이 라우터 1c와 2a 간에, 그리고 2c와 3a 간에 eBGP 연결이 존재한다.

 

🟢 iBGP 연결은 물리적인 링크와 항상 일치하지는 않는다.

 

 


5.4.3 최고의 경로 설정

라우터가 BGP 연결을 통해 주소 접두부를 알릴 때 몇몇 BGP 속성(attributes)을 함께 포함한다.

BGP 용어로서의 경로(route)는 주소 접두부와 그 속성을 함께 말한다.

중요한 속성 두 가지는 AS-PATH와 NEXT-HOP이다.

 

AS-PATH

  • 알림 메시지가 통과하는 AS들의 리스트를 담는다.
  • AS-PATH 값을 생성하기 위해서 접두부가 어떤 AS에 전달되었을 때 그 AS는 자신의 ASN을 AS-PATH 내 현재 리스트에 추가한다.

 

NEXT-HOP

  • AS 간 프로토콜과 AS 내부 라우팅 프로토콜 사이에 매우 중요한 연결을 제공하는 NEXT-HOP 속성은 미묘하지만 중요한 활용도를 갖는다.
  • NEXT-HOP은 AS-PATH를 시작하는 라우터 인터페이스의 IP 주소이다.

아래 그림을 통해 NEXT-HOP에 대해 살펴보자

  • AS1에서 AS2를 통과하여 x로 가는 "AS2 AS3 x" 경로의 NEXT-HOP 속성은
    • 라우터 2a의 왼쪽 인터페이스의 IP 주소이다.
  • AS1에서 AS2를 우회하여 X로 가는 "AS3 x" 경로의 NEXT-HOP 속성은
    • 라우터 3d의 맨 왼쪽 인터페이스의 IP 주소이다.

 

정리하면, AS1의 각 라우터는 접두부 X로 가는 두 개의 BGP 경로를 알게 된다.

 

라우터 2a의 왼쪽 인터페이스의 IP 주소; AS2 AS3; x

라우터 3d의 맨 왼쪽 인터페이스의 IP 주소; AS3; x

 

✅ 여기서 각 BGP 경로는 NEXT-HOP, AS-PATH, 목적지 주소 접두부, 이렇게 세 개의 구성요소의 리스트로 기술된다. 

 

 

뜨거운감자 라우팅(Hot Potato Routing)

각각의 시작점인 NEXT-HOP 라우터까지의 경로 비용이 최소가 되는 경로가 선택된다.

 

  • 감자가 너무 뜨겁기 때문에 여러분은 그것을 되도록 빨리 다른 사람(다른 AS)에게 건네주기를 원한다.
  • 그러므로 뜨거운감자 라우팅은 전체 경로 중에서 자기 AS 외부에서 얼마의 비용이 들지는 신경쓰지 않고 오로지 자신의 AS 내부비용만 줄이려는 이기적인 알고리즘이다.
  • 뜨거운감자 라우팅을 사용하면 한 AS 내 두 개의 라우터가 동일한 목적지 주소에 대해 서로 다른 AS 경로를 선택할 수도 있음을 알아야 한다.

 

경로 선택 알고리즘

실제로 BGP는 뜨거운감자 라우팅보다는 더 복잡한 알고리즘을 사용하지만, 여전히 뜨거운감자 라우팅을 포함하고 있다.

 

  • 목적지 주소의 접두부가 주어지면, 지금까지 라우터가 알아낸 해당 목적지까지의 모든 경로가 BGP의 경로 선택 알고리즘에 입력으로 주어진다.
  • 경로가 하나뿐이면 당연히 그 경로가 선택되겠지만, 하나의 목적지에 대해 두 개 이상의 경로가 존재한다면 BGP는 하나의 경로가 남을 때까지 제거 규칙을 계속 수행한다.

 

과정을 거치면 짧은 AS-PATH를 가진 경로를 먼저 찾기 때문에 결과적으로 종단 간 지연시간이 줄어들 것이다.

 


5.4.4 IP 애니캐스트(anycast)

 


5.4.5 라우팅 정책

 


5.4.6 조각 맞추기: 인터넷에서의 존재 획득

 


5.5 소프트웨어 정의 네트워크(SDN) 제어 평면

SDN

  • SW를 통해 네트워크 리소스를 가상화하고 추상화하는 네트워크 인프라에 대한 접근방식을 의미한다.
  • SW 애플리케이션과 API를 이용하여 네트워크를 프로그래밍하고 중앙에서 전체 네트워크를 제어하고 관리하는 것이다.
  • 핵심은 네트워크 장비의 Control Plane(제어부)와 Data Plane(전송부)의 분리이다.

 


5.6 인터넷 제어 메시지 프로토콜(ICMP)

ICMP

  • 주로 오류 보고를 위해 사용된다.
  • 예) HTTP 연결을 수행할 떄 "목적지 네트워크에 도달할 수 없음(Destination network unreachable)" 같은 오류 메시지가 ICMP가 만든 것이다.

 


5.7 네트워크 관리와 SNMP

네트워크 관리

  • 애플리케이션, 장치, 시스템을 이용하여 관리하고 감독하여 컴퓨터 네트워크의 리소스를 보호하는 시스템이다.

 

SNMP

  • IP 기반 네트워크 상의 각 호스트로부터 정기적으로 여러 관리 정보를 자동으로 수집하거나 실시간으로 상태를 모니터링 및 설정할 수 있는 서비스로 SNMP는 프로토콜이다.