본문 바로가기
CS/클라우드 컴퓨팅

[클라우드] 5. 네크워크 가상화(Network Virtualization)

by J-rain 2024. 4. 4.

 

네트워크 가상화 역시 네트워크 개념부터 알아보자

 


네트워크의 구성

네트워크는 ① 컴퓨터, ② 전송 매체, ③ 네트워크 장비로 구성

 

 

  • 스위치
    • 여러 대의 컴퓨터를 네트워크에 연결하기 위해 한 네트워크 안에서의 데이터 전송을 담당
  • 라우터
    • 네트워크를 구분 짓고 서로 연결하는 역할을 담당

로컬 네트워크 환경에서는 스위치를 쓰고 실질적으로 라우터를 볼일이 없다. 라우터는 주로 통신사, 은행 등등 사용

 

 

네트워크 접속장치

  • 네트워크 접속장치는 통신망 구성에서 가장 기본이 되는 하드웨어
  • 물리적으로 떨어져 있는 다양한 형태의 LAN을 연결하면 좀 더 복합하고 큰 WAN 형성
  • 컴퓨터나 네트워크 장치는 NIC를 사용하여 네트워크 연결
  • 허브, 중계기, 스위치, 라우터, 게이트웨이 등을 사용하여 다양한 네트워킹 문제 해결

1. 스위치 (= 스위칭 허브)

  • 데이터 링크 계층 장비 (OSI 기준)
  • MAC (물리주소, 랜카드 하드웨어) 주소를 이용하여 패킷 전송 (L2)
  • Point-to-point 방식

MAC (= 네트워크 장비의 고유 주소, 물리적 주소)

IP (= 네트워크의 논리적 주소)

 

2. 라우터

  • 서로 다른 네트워크 간에 통신하는 데 사용하는 장치
  • IP주소를 바탕으로 데이터가 수신지까지 갈 수 있는 경로를 검사, 효율적으로 경로를 선택하는 라우팅 기능 수행
  • IP 주소를 이용하여 패킷 전송 (L3)
  • 오류 패킷 폐기, 혼잡 제어 등의 기능도 수행

 

 

3. 게이트웨이

  • 네트워크의 최상위 계층에서 작동
  • 다른 두 개 이상의 네트워크를 상호 접속하여 정보를 주고 받을 수 있게 해주는 장치

          • 서로 다른 네트워크 프로토콜을 사용하는 네트워크 간에 데이터를 전송

 

 

 

네트워크 접속형태

 

네트워크 토폴리지

• 네트워크에 연결되어 있는 노드와 링크가 물리적/논리적으로 배치

네트워크 내의 장치들이 물리적이거나 논리적으로 어떻게 해야 효율적일까?

 

1. 성형 (= Star Topology)

  • 설명: 스타 토폴로지에서는 모든 장치가 하나의 중앙 장치(예: 스위치나 허브)에 연결된다.
  • 장점: 중앙 장치에 문제가 발생하지 않는 한, 한 장치의 오류에도 네트워크 전체에 영향을 미치지 않는다. 설치 및 구성이 비교적 간단
  • 단점: 중앙 장치에 과도한 의존성, 중앙 장치에 문제가 발생하면 네트워크 전체가 마비

 

2. 버스형 (= Bus Topology)

  • 설명: 버스 토폴로지에서는 모든 장치가 하나의 공통 통신 라인(케이블)에 연결된다. 이 라인의 양 끝은 종단 저항으로 마감된다.
  • 장점: 설치가 간단하고 비용이 적게 든다.
  • 단점: 케이블에 문제가 발생하거나 네트워크에 장치가 많아지면 성능이 저하될 수 있다.

 

3. 링형 (= Ring Topology)

  • 설명: 링 토폴로지에서는 각 장치가 두 개의 인접 장치에만 연결되며, 모든 장치가 하나의 닫힌 루프를 형성한다.
  • 장점: 데이터 전송이 단방향으로 진행되어 네트워크 관리가 용이하다.
  • 단점: 하나의 장치에 문제 발생시 전체 네트워크에 영향을 미칠 수 있다.

4. 그물형 (= Mesh Topology)

  • 설명: 메시 토폴로지에서는 장치들이 서로 다양한 경로로 연결된다. 이는 전체 메시(full mesh) 또는 부분 메시(partial mesh)로 구성될 수 있다.
  • 장점: 네트워크의 신뢰성과 내결함성이 높다. 여러 경로를 통해 데이터를 전송할 수 있어 하나 이상의 경로에 문제가 생겨도 네트워크 운영에 큰 지장이 없다.
  • 단점: 설치 및 유지 관리 비용이 높다.

 

5. 트리형 (= Tree Topology)

  • 설명: 트리 토폴로지는 계층적 구조로, 하나의 루트 노드가 하위 노드들과 연결되며, 이러한 패턴이 반복된다. 스타 토폴로지의 확장 버전으로 볼 수 있다.
  • 장점: 확장성이 뛰어나며, 계층적 구조로 인해 네트워크 관리와 모니터링이 용이하다.
  • 단점: 상위 레벨의 장치에 문제가 발생하면 하위 네트워크에 큰 영향을 미칠 수 있다.
관점에따라 성형 으로 볼 수 있음

 

 
 

네트워크 전송매체

 

1. 꼬임선 (Twisted Pair) - 이중 나선 케이블

  • 구리선을 꼬는 이유 = 두선 사이의 전자 간섭을 최소화
  • 신호 간섭을 최소화하기 위해 금속망으로 전선을 감싸는 차폐 보호망을 사용하기도 함
  • 일반적으로 전화선이나 네트워크 케이블로 사용

카테고리 숫자가 높을수록 더 높은 전송 속도와 더 긴 전송 거리를 지원

 

2. 광섬유 케이블 (Optical Fiber Cable)

  • 꼬임선처럼 구리선에 전기를 통하게 하여 데이터를 전송하는 것이 아니라 빛을 이용하여 데이터를 전송,
    휘는 범위에 한계가 있음
  • 매우 높은 전송 속도와 거리를 지원하며, 전자기 간섭에도 영향을 받지 않는 장점
  • 광섬유 케이블은 대용량의 데이터를 빠른 속도로 전송해야 하는 곳(예: 데이터 센터, 대규모 엔터프라이즈 네트워크, 인터넷 백본)에 주로 사용

 

 

 

 

네트워크 통신 방식

 

1. 유니캐스트 (Unicast)

• 네트워크에서 가장 많이 사용하는 일대일 통신 방식

네트워크상의 한 장치에서 다른 단일 장치로 데이터 패킷을 전송하는 방식

 

특징

  • 송신자와 수신자가 1:1 관계
  • 네트워크 트래픽을 최소화하며, 특정 목적지에만 데이터를 전송
  • 개인적인 데이터 전송이 필요할 때 적합한 방식
  • ex): 이메일 보내기, 웹 페이지 요청하기 등

 

2. 멀티 캐스트 (MultiCast)

 

  네트워크상의 한 장치에서 특정 다수의 장치로 데이터 패킷을 동시에 전송하는 방식

특징

  • 송신자는 멀티캐스트 그룹 주소를 사용하여 특정 그룹의 구성원들에게만 데이터를 전송 (그룹 기반 통신)
  • 동일한 데이터를 그룹 내 여러 수신자에게 전송함으로써 네트워크 대역폭을 보다 효율적 사용

 

3. 브로드 캐스트 (Broadcast)

• 로컬 LAN에 있는 모든 네트워크 단말에 데이터를 보내는 방식

 

특징

  • 송신자와 수신자가 1:모두(N) 관계
  • 네트워크상의 모든 장치가 송신된 데이터 패킷을 받음
  • 네트워크 트래픽과 부하를 증가시킬 수 있음
Q. 집에서는 인터넷이 빠른데 학교에서 유독 지멋대로인 이유?
A. 집 컴퓨터들은 정상적으로 웹주소를 가지고 정상적인 IP대역을 가져서 충돌이 나는 경우가 없다.
하지만 학교에서는 연구실마다 공유기도 쓰고 스위치도 쓰다보니 네트워크 성능이 좌지우지 되는데 즉, 서로 다른 MAC 주소를 가진 기기들이 동일한 IP 주소로 통신을 하려고 하니 브로드캐스트가 늘어나 트래픽 + 부하 증가한다.

 

 

OSI (Open System Interconnection) 참조 모델

• 통신 기술의 도입과 통신 기능의 확장을 목표로 계층화

 

OSI 참조 모델의 데이터 전송

 

  • 패킷 = 데이터 단위
  • 전송 계층의 PDU = 세그먼트
  • 네트워크 계층의 PDU = 패킷
  • 데이터 링크 계층의 PDU = 프레임

* PDU = Protocol Data Unit

SDU = Service Data Unit , PCI = Protocol Control Information

 

 

TCP/IP 모델

• OSI 참조 모델의 7계층을 4계층으로 단순화

MAC(L2)   ->   IP (L3)  ->  Port (L4)  -> Application (L7) 

 

Ethernet

물리 계층과 데이터 링크 계층의 통신 회선의 접근 제어 기술
    •
IEEE 802.3 규약

  • 네트워크 기술 중 가장 널리 사용되는 유형 중 하나로, 지역 네트워크(LAN)에서 데이터를 전송하기 위한 표준 프레임워크, 기술 및 프로토콜 세트이다. 
  • 가정, 학교, 기업 등에서 일반적으로 사용

 

스위치

  • 네트워크에서 데이터 패킷을 수신하여 적절한 목적지 포트로 전달하는 네트워크 장치

• MAC 주소 학습
    •
컴퓨터에서 수신지 MAC 주소가 추가된 프레임(=데이터 링크 계층 PDU)이 전송되면, MAC 주소 테이블을 확인하여          송신지 MAC주소가 등록되어 있지 않으면, MAC 주소를 포트와 함께 등록

Forwarding Table                                                                                                                                                                                           

 

 

 

네트워크 계층 프로토콜

 

• IP 주소 = 8비트 크기의 필드 4개를 모아서 구성

IP 주소는 네트워크 ID와 호스트 ID로 구성

 

 

우리학교는 B 클래스

 

•  IPv4는 인터넷에서 데이터 패킷을 소스 호스트로부터 목적지 호스트까지 전송하기 위해 사용되며, 대부분의 인터넷 트래픽을 담당하는 주요 프로토콜

 

 

A 클래스

  • 0.0.0.0 ~ 127.255.255.255 => 1.0.0.0 ~ 126.255.255.255
    • 0.0.0.0은 사용하지 않는 주소
    • 127.x.x.x는 시스템 루프백 주소
    • 기본 network mask는 255.0.0.0

 

특징

  • A 클래스 주소는 가장 큰 네트워크를 지원
  • 첫 8비트는 네트워크를 식별하고, 나머지 24비트는 호스트를 식별
  • 한 A 클래스 네트워크는 약 1천6백만 개의 호스트를 지원

 

B 클래스

  • 128.0.0.0 ~ 191.255.255.255
    • 기본 network mask는 255.255.0.0

 

특징

  • B 클래스 주소는 중간 크기의 네트워크에 적합
  • 첫 16비트는 네트워크를 식별하고, 나머지 16비트는 호스트를 식별
  • 한 B 클래스 네트워크는 최대 약 6만 5천 개의 호스트를 지원

 

C 클래스

  • 192.0.0.0 ~ 123.255.255.255
    • 기본 network mask는 255.255.255.0

 

특징

  • C 클래스 주소는 소규모 네트워크에 사용
  • 첫 24비트는 네트워크를 식별하고, 마지막 8비트는 호스트를 식별
  • 한 C 클래스 네트워크는 최대 254개의 호스트를 지원

 

클래스별 공인/사설 IP주소의 범위

 

D 클래스

  • 멀티캐스트 용도로 사용
    • IP주소는 224 ~ 239로 시작

 

특정 네트워크 대 호스트 할당이 아니라 멀티캐스트 전송에 사용

 

E 클래스

  • 연구 및 특수 용도
  • IP주소는 240 ~ 250으로 시작
  • 255.255.255.255는 전체 컴퓨터에 대한 브로드캐스트 주소로 사용

일반적인 네트워킹 용도로는 사용되지 않음

 

서브넷

• 기존 클래스의 네트워크를 좀 더 작은 네트워크로 분할한 네트워크
• IP 주소를 보다 효율적으로 활용

 

 

 

 

IPv4 주소 공간의 이러한 분류는 네트워크의 다양한 크기와 요구 사항을 충족하기 위해 설계되었지만 실제 사용에서는 CIDR(Classless Inter-Domain Routing) 같은 더 유연한 주소 할당 방식이 널리 사용된다.

 

 

CIDR (Classless Inter-Domain Routing)

  • 클래스를 사용하지 않는 IP 주소 할당 방식
  • CIDR은 기존의 클래스 기반 네트워킹의 한계를 극복하고, IP 주소 공간을 더 효율적으로 사용할 수 있다.
  • CIDR을 사용하면 어떤 네트워크 크기든지 IP 주소 블록을 할당할 수 있으며, 이는 라우팅 테이블을 간소화하고 인터넷의 확장성을 향상시킨다.
  • 표기법은 "IP 주소/서브넷 마스크의 비트 수" 형태로 표현

 

 

NAT (Network Address Translation) -> 클라우드 개념에서 중요

  • 공인/사설 IP 분리를 위해 NAT 사용
  • 네트워크의 IP 주소를 다른 주소로 변환하는 기술로, 주로 사설 IP 주소를 공용 IP 주소로 변환하는 데 사용

PC1 -> Gateway -> Server -> Gateway -> PC1

작동 방식

NAT는 주로 라우터에 구현되어 있으며, 다음과 같은 기본 작동 원리를 가진다.

  • 아웃바운드 트래픽(내부에서 외부로의 트래픽): 내부 네트워크에서 인터넷(외부 네트워크)으로 데이터를 보낼 때, NAT 장비는 패킷의 출발지 IP 주소(사설 IP)를 공용 IP 주소로 변환한다. 이 과정에서 포트 번호를 사용하여 여러 내부 주소를 구분할 수 있다.(PAT, Port Address Translation).
  • 인바운드 트래픽(외부에서 내부로의 트래픽): 인터넷에서 내부 네트워크로 데이터가 도착할 때, NAT 장비는 공용 IP 주소와 포트 번호를 기반으로 적절한 내부 IP 주소로 패킷을 전달한다.
클라우드 개념에서 우리가 클라우드로 접속한다는 말은 => 외부 네트워크에서 내부 네트워크로 들어간다는 것 => 내부 네트워크가 외부 네트워크로 노출이 된다.
Q. PC1에서 구글로 접속하려면?
A. 데스트네이션 주소는 구글 서버IP이다. 그러면 데스트네이션 맥(MAC) 주소는 게이트웨이 주소가 된다.
  • 만약 두 기기가 동시에 접속을 요청 하면?

PC1도 서버에 접속하고 싶고 PC2도 서버에 접속하고 싶은데 실제 정보가 같아서 서버에서 돌와왔을때 어느 PC한테 줘야되나? => IP정보만 가지고서는 부족하기 때문에 NAPT 개념이 등장

NAPT (Network Address Port Translation) (=PAT Port Address Translation)

  • 사설망 – 외부망 IP 주소를 바꿔서 보내주는 역할 + 포트까지 바꿈

 

SNAT (Source NAT)와 DNAT (Destination NAT)

NAT를 구현하는 두 가지 주요 방식

  • SNAT
    • MASQUERADING  => 가면(= 내부 네트워크의 개별 IP 주소를 외부에 노출x)

내부 네트워크의 여러 장치들이 공용 IP 주소를 사용하여 외부 네트워크(인터넷)와 통신할 수 있게 한다.

  • DNAT
    • LOAD BALANCING

외부에서 접근하는 요청을 내부 네트워크의 특정 서버나 서비스로 전달한다.

 

 

 

네트워크 계층 프로토콜 - IPv4

  • Ipv4 헤더의 기본 길이는 20 바이트
    • IP 옵션에 따라 길이가 바뀔 수 있음

IP의 전송단위: 패킷(Packet)

 

자세한 형식은 아래참고

https://j-ra1n.tistory.com/entry/Chapter-4-Network-Layer-The-Data-Plane

 

Chapter 4 네트워크 계층 (The Data Plane)

4.1 Overview of Network layer - datagram transport layer에서는 segment였던 것이 network layer에서는 datagram이라고 부른다. 그래서 보내는 쪽이 segment를 datagram으로 encaptulation하고, 받는 쪽에서 segment로 바꾸어줘서

j-ra1n.tistory.com

 

 

네트워크 계층 프로토콜 - ARP

  • 주소 변환 프로토콜 ( Address Resolution Protocol )
  • 네트워크 상에서 IP 주소를 해당 네트워크 인터페이스의 물리적 (MAC) 주소로 변환하는 통신 프로토콜

작동 방식

  1. ARP 요청: 네트워크 상의 기기가 특정 IP 주소에 해당하는 MAC 주소를 알아내고자 할 때, ARP 요청을 네트워크에 브로드캐스트한다. 이 요청은 해당 IP 주소를 가진 기기를 찾기 위해 전체 네트워크에 전송
  2. ARP 응답: 해당 IP 주소를 가진 기기는 ARP 응답을 보내 자신의 MAC 주소를 알린다. 이 응답은 요청을 한 기기에 직접 유니캐스트로 전송
  3. ARP 테이블 업데이트: 요청을 한 기기는 받은 MAC 주소를 자신의 ARP 테이블에 저장한다. (ARP 테이블은 IP 주소와 해당하는 MAC 주소의 매핑 정보를 보관하는 내부 데이터베이스)

 

네트워크 계층 프로토콜 - ICMP

• 인터넷 제어 메시지 프로토콜 (ICMP)
   • 네트워크의 호스트나 라우터에서 발생한 오류를 송신 측에 전송

 ICMP 메시지 캡슐화                                                                                                ICMP 내용 

IP 네트워크의 통신 중에 발생하는 다양한 문제를 진단하고 주로 네트워크 기기 간의 오류 메시지 전송과 운영 정보의 교환을 목적으로 한다.

 

 

전송 계층 - TCP

• Transmission Control Protocol (TCP)

신뢰성 있는 데이터 전송을 보장하는 통신 프로토콜

TCP 헤더 전송단위: 세그먼트(Segment)

 

네트워크 통신에서 패킷이나 프레임을 구성하는 데이터의 구조는 다양한 계층의 헤더로 이루어져 있다. 이더넷 프레임, IP 패킷, 그리고 TCP 세그먼트 각각에는 정보를 담고 있는 헤더가 포함되어 있는데 보통 이더넷 헤더 + IP 헤더 = TCP 헤더의 위치로 계산하는 경우가 많다. 하지만 옵션-패딩 값을 간과해버리면 위치가 틀리는 경우도 발생한다. ex) TCP헤더의 옵션 -> TimeStamp값 , IP헤더의 옵션 -> 라우팅관련옵션 등

 

• 3-way Handshake (데이터 전송의 신뢰성과 효율성을 높이기 위한 메커니즘)

 

 

• 흐름 제어 (데이터의 송수신 사이의 속도 차이를 관리하는 메커니즘)

   윈도우 크기 확인

수신자가 한 번에 받을 수 있는 데이터의 양을 지정한다. 윈도우 크기는 수신자의 처리 능력에 따라 동적으로 조절한다.

 

 

• 슬라이딩 윈도우

흐름 제어와 함께 사용되는 기술로, TCP 연결의 효율성을 최대화하기 위해 데이터 패킷의 순차적 전송 및 확인을 관리

송신된 데이터가 수신자로부터 확인(ACK)을 받으면, 윈도우는 그만큼 "슬라이드"하여 새로운 데이터를 전송할 수 있는 공간을 만든다.

 

전송 계층 - UDP

 

• User Datagram Protocol (UDP)

빠른 데이터 전송 속도를 제공하는 통신 프로토콜

 

 

• DNS (Domain Name System)

  인터넷상의 도메인 이름(예: www.example.com)을 해당하는 IP 주소(예: 192.0.2.1)로 변환하는 분산 데이터베이스 시스템

 

- DNS Query Request

 

클라이언트(예: 웹 브라우저)가 특정 도메인 이름에 대한 IP 주소를 요청할 때 발생

이 요청은 보통 사용자가 웹 브라우저에 URL을 입력하면 시작된다. 요청은 먼저 로컬 DNS 서버로 전송되고, 만약 로컬 서버가 해당 도메인에 대한 정보를 가지고 있지 않다면, 요청은 다른 DNS 서버로 전달되어 답을 찾을 때까지 이 과정이 반복

 

- DNS Query Response

DNS 서버가 쿼리 요청에 대해 도메인 이름에 해당하는 IP 주소(또는 다른 필요한 정보)를 클라이언트에게 보내는 과정

응답에는 요청받은 도메인 이름에 대한 정보 외에도 다양한 유형의 레코드 정보가 포함될 수 있다. 예를 들어, A 레코드는 도메인 이름에 대한 IP 주소를, MX 레코드는 메일 서버의 주소를 나타낸다. 클라이언트는 이 응답을 받아 해당 IP 주소로 접속을 시도함으로써 웹 사이트나 서비스에 접근할 수 있다.

 

 

TCP, UDP에 대한 자세한 내용은 아래참고

https://j-ra1n.tistory.com/entry/Chapter-3-%EC%A0%84%EC%86%A1%EA%B3%84%EC%B8%B5-Transport-Layer?category=1088427

 

Chapter 3 전송계층 (Transport Layer)

3.1 transport-layer services 네트워크 계층이 호스트들 간의 논리적 통신이라면 전송계층은 프로세스 간의 논리적 통신이다. 3.2 multiplexing and demultiplexing Multiplexing (다중화) 다중화는 여러개의 데이터

j-ra1n.tistory.com

 

 

 

응용 계층 프로토콜

응용 계층 프로토콜과 포트번호

 

• POP3 (Post Office Protocol version 3)

이메일 클라이언트가 메일 서버로부터 이메일을 다운로드하고, 로컬 장치에서 이메일을 읽을 수 있게 해주는 프로토콜

POP3는 일반적으로 메일을 서버에서 삭제한 후 클라이언트에만 저장

 

• FTP (File Transfer Protocol)

서버와 클라이언트 간에 파일을 전송하기 위한 표준 네트워크 프로토콜

사용자는 FTP를 통해 파일 업로드, 다운로드, 삭제, 디렉토리 구조 변경 등 수행

 

• HTTP (Hypertext Transfer Protocol)

웹 페이지를 전송하기 위한 주된 프로토콜

웹 브라우저(클라이언트)가 웹 서버로부터 HTML 문서나 기타 미디어 파일을 요청하고 전송받는 데 사용

 

• Telnet

원격 컴퓨터에 로그인하여 명령을 실행하기 위한 텍스트 기반의 통신 프로토콜

보안이 취약하기 때문에, 현대에는 SSH(Secure Shell)에 의해 대체됨

 

SMTP (Simple Mail Transfer Protocol)

이메일을 전송하기 위한 프로토콜

SMTP는 주로 메일 서버 간의 이메일 전송이나 클라이언트에서 아웃바운드 메일 서버로 이메일을 보낼 때 사용

 

  IMAP (Internet Message Access Protocol)

POP3와 유사하게, 이메일 클라이언트가 메일 서버로부터 이메일을 접근 프로토콜

IMAP은 서버에 메일을 유지하면서 여러 클라이언트가 동일한 메일 계정에 접근할 수 있게하는 동기화 기능 제공

 

• DHCP (Dynamic Host Configuration Protocol)

네트워크에 연결된 장치들에게 자동으로 IP 주소를 할당하고, IP 설정을 구성하기 위한 프로토콜

DHCP를 통해 네트워크 관리자는 수동으로 각 장치를 구성하지 않고도 네트워크 설정을 관리

 

• SNMP (Simple Network Management Protocol)

네트워크 장비(라우터, 스위치, 서버, 워크스테이션 등)를 관리, 모니터링하기 위한 프로토콜

SNMP를 사용하면 네트워크 성능을 모니터링하고 문제를 진단하며, 네트워크 상의 장비들을 원격으로 관리


 

 

 

 

 

네트워크 가상화

  • 네트워크 가상화
    • 가상화 기술을 통해 물리적인 네트워크를 논리적으로 구성
    물리적으로 제약이 있는 환경에서도 유연하고 효율적인 네트워크 운영을 위해 네트워크 가상화를 한다.
  • 서버 가상화와 함께 가상화 기술의 발전을 이끄는 중요한 기술

VM, Physical Machine, Container 전부 기본적으로 'tenent' 개념이 존재한다. 즉, 별도의 논리적 또는 물리적 환경에서 독립적으로 작동하는 사용자나 그룹을 의미하는데 클라우드 서비스나 가상화된 환경에서 여러 'tenent'가 동일한 인프라를 공유하면서도 서로의 데이터와 리소스가 격리되어 있어야 한다.

 

네트워크 가상화 기술의 등장 배경

  • 하드웨어 자원의 한계
    • 물리적인 네트워크 운용 시 네트워크 장비들의 설치와 구성 필요
    • 기업이나 조직이 커질수록 네트워크 환경도 복잡해짐
    • 결국 설치와 구성이 번거로워지고 비용도 증가
    • 물리적인 장비들은 한정된 자원을 가지고 있어, 확장도 어려움
  • 유동성과 이식성의 요구
    • 기업이나 조직은 다양한 요구사항에 맞춰 네트워크 환경을 유연하게 구성할 필요가 있음
    • 이를 위해 네트워크 환경을 쉽게 변경하고 이식할 수 있어야 함
    • 하지만, 물리적인 네트워크 환경에서는 이러한 요구를 충족시키기 어려움

 

전통적인 네트워크 가상화 기술

VLAN  (Virtual LAN)

• 여러 개의 물리적 네트워크를 논리적으로 구분
• 물리적인 네트워크를 마치 여러 네트워크처럼 만드는 기술

  • Broadcast Domain
    • 기존 네트워크 환경에서는 Broadcast 메시지가 전파되면 해당 Broadcast domain에 속한 모든 장치가 Broadcast 메시지를 확인
        • 네트워크 대역폭을 소모, 모든 장치들의 CPU 자원이 소모

서로 다른 대역을 볼 수 있다.

 

VLAN의 종류

  • Port-based VLAN

 

- 스위치의 물리적 포트를 기반으로 VLAN을 구성하는 가장 기본적인 형태

- 여러 대의 스위치를 사용하는 것처럼 하나의 물리 스위치를 분리해서 사용가능

- 해당 포트를 통해 연결된 장치들은 모두 같은 VLAN에 속함

 

  • Tag-based VLAN

- 패킷의 헤더에 VLAN 식별 정보를 추가하는 형태

- 이더넷 프레임에 "태그"를 추가하여 VLAN 정보를 포함

- 식별자(ID)를 통하여 다양한 VLAN에 속한 트래픽들을 하나의 물리적 링크를 통해 전송할 수 있음

- VLAN Header

IEEE 802.1Q

  • Protocol-based VLAN

- 네트워크 프로토콜의 유형에 기반하여 VLAN을 구성

- IP, IPX, AppleTalk 등의 프로토콜을 사용하는 트래픽을 서로 다른 VLAN으로 분리

- 특정 프로토콜을 사용하는 트래픽만을 분리하고자 할 때 유용하며, 네트워크의 보안과 성능 최적화에 도움

 

  • 추가로 IP, Mac -based VLAN도 있음

 

802.1Q Trunking

  • 802.1Q Trunking은 여러 VLAN 트래픽(데이터)을 하나의 물리적 링크를 통해 전송할 수 있게 하는 표준

- 스위치 간, 혹은 스위치와 라우터 간의 연결에서 주로 사용

- IEEE 802.1Q 즉, Tag-based VLAN을 이용하여 데이터 프레임을 식별

 

 

VLAN의 한계

  • MAC Address Table의 한계
    • 단일 머신 내 여러 VM 존재 => MAC 주소가 기하급수적으로 늘어남
  • 제한적인 유연한 구성(?)
    • VLAN Trunk를 정적으로 구성, 빠른 변경이 어려움

=> VXLAN 등장 (VLAN 같은경우 데이터링크 계층(L2) 에서 핸들링을 했다면 VXLAN은 IP를 기준으로 네트워크 계층(L3) 에서 핸들링)

 

VXLAN 

  • VLAN의 확장 개념, 최대 1,600만 개의 VXLAN 생성 가능
  • 대규모 멀티테넌트 환경에서 확장 가능한 VLAN 솔루션을 제공
  • VXLAN은 L2 이더넷 프레임을 L3 UDP 패킷으로 캡슐화

  • VTEP (VXLAN Tunnel End-Point or Virtual Tunnel End-Point)

VXLAN 트래픽을 캡슐화하고 디캡슐화하는 장치로, 일반적으로 가상화된 스위치(예: vSwitch) 내에 구현

 

VXLAN Unicast 과정

VNI (VXLAN Network Identifier)

  1. Machine A에서 Machine B로 유니캐스트 패킷 전송한다. 패킷의 소스IP와 MAC 주소는 A, 목적지IP와 MAC 주소는 B
  2. VTEP 1은 Machine A에서 받은 패킷을 VXLAN 헤더에 추가하여 UDP로 캡슐화한다. 이때 VNI를 포함하여 설정
  3. VTEP 1에서 VXLAN 패킷을 VTEP 2로 유니캐스트 전송한다. 패킷의 소스 IP/MAC은 A/A, 목적지 IP/MAC은 B/B
  4. VTEP 2은 이 VXLAN 패킷을 받아 디캡슐화한다. 그 후 Machine B에게 원래 패킷을 전달

 

VXLAN Multicast 과정

  1. Machine A가 IP 주소 B에 대한 ARP Request 패킷을 VXLAN 네트워크를 통해 전송
  2. VTEP 1은 ARP Request패킷을 UDP에 캡슐화하여 멀티캐스트 그룹으로 전송
  3. VTEP 2가 ARP Request패킷을 수신하고 Machine B에게 전달
  4. Machine B는 자신의 IP 주소 B에 대한 ARP Response패킷을 생성하여 VTEP 2로 전송
  5. VTEP 2는 이 ARP Response패킷을 UDP에 캡슐화하고 VXLAN 헤더를 추가하여 VTEP 1로 전송
  6. VTEP 1은 VXLAN 헤더를 제거하고 ARP Response를 Machine A로 전달
정리하자면 VLAN은 나의 내부 네트워크를 가상화하여 여러 개의 논리 네트워크를 만드는 과정이였고 VXLAN은 VLAN의 확장형태로 엔드포인트와 엔트포인트를 두고 대규모 멀티테넌트 환경에서 가상화하는 개념이라면 VPN은 이를 더 유동적으로 사용하게 하는 메커니즘

 

VPN (Virtual Private Network)

  • 인터넷망을 사이에 둔 사설망과 사설망 연결
  • 두 장치/네트워크 사이에 암호화된 터널 생성

기본적으로 VPN은 우리가 또 다른 네트워크에 직접적으로 접근할수 없을 때 VPN을 통해 네트워크에 접근후 내부에 있는 서버들에 접근한다.

 

Point to Point Tunnel Protocol (PPTP) 

요즘엔 잘안씀

• MS가 설립한 컨소시엄에 의해 개발된 터널링 프로토콜
• MS_CHAP v2 인증 방식 사용

  • 장점
    • 빠름, 설치가 쉬움, 거의 모든 플랫폼에서 제공
  • 단점
    • 보안에 취약함 (보통 2일 이내 암호화가 깨진다고 함)

Layer 2 Tunnel Protocol – L2TP

 • L2F (Layer2 Forwarding Protocol) + PPTP
 • 자체적으로 암호화 또는 인증을 제공하지 않음

 

IPSec (Internet Protocol Security)

• 개별 IP 패킷을 인증 및 암호화하는 종단간 보안을 위한 프로토콜

 

L2TP/IPsec   

같이 조합하여 사용

• PPTP보다 훨씬 안전하지만 익명화에 더 적합
• UDP 500포트를 사용하기 때문에 방화벽 관련 문제가 있을 수 있음

 

SSL-VPN

요즘 가장 많이쓰는것

• SSL (Secure Socket Layer) 기반으로 Site-to-Client 방식으로 사용되는 VPN
• 웹브라우저/SSL-VPN 클라이언트를 통해 연결하는 구조

• 사용자가 별도의 VPN 소프트웨어 설치 없이 웹 브라우저를 통해 접속 가능하기에 편의성이 좋음 ex) 카이스트VPN

SSL-VPN: 기업 환경에서 원격 사용자가 안전하게 회사 네트워크에 접속할 수 있도록 하는 것이 목적이기에 주로 인터넷을 통해 안전한 접속을 제공한다. TLS 프로토콜을 사용하여 데이터를 암호화하고 안전한 터널을 설정

SSH: 원격 시스템에 로그인하여 명령 줄 인터페이스를 통해 시스템을 관리하거나 파일을 전송하는 것이 목적이기에 터미널 기반의 접속을 제공한다. Secure Shell 프로토콜을 사용하여 안전한 원격 접속을 제공

 

OpenVPN (TCP/UDP)

• SSLv3/TLSv1 프로토콜과 OpenSSL 라이브러리를 활용한 VPN 솔루션
• 3DES, AES, Camellia, Blowfish, CAST-128 등 다양한 암호화 알고리즘 지원
• 속도는 암호화 수준에 따라 다르지만 보통 Ipsec보다 빠르다고 함
• PPTP나 L2TP/IPsec 보다는 설치가 까다로우나 그래도 많이 씀

VPN들이 UDP 포트를 많이 쓰는 이유는 TCP와 다르게 속도적인 측면도 있고 VPN은 종종 인터넷으로 이동하기에 네트워크 불안정성이 발생할 수 있다. 하지만 UDP는 패킷 손실이 발생할 경우 재전송을 시도하지 않기 때문에 네트워크 불안정성에 대응하는 것에 TCP보다 유리하다.

 

WireGuard

• 최신 암호 기술을 활용하는 간단하면서도 빠른 VPN 프로토콜
     • Linux kernel 5.6 부터 기본 탑재
• OpenVPN보다 성능이 좋음
• 임베디드 컴퓨터부터 슈퍼 컴퓨터까지 범용 VPN으로 설계

 

장점만 있을까?
• UDP 전용이라서 방화벽 차단 및 검열에 비교적 쉽게 막힘
• 암호화 키도 OpenVPN은 최대 4096비트, WireGuard는 256비트
• 트래픽은 암호화되어 제3자가 해독할 수 없지만 VPN 소프트웨어에서 터널과 연결된 내부 IP 주소를 볼 수 있어 항상 안전한 공인 소프트웨어를 써야 프라이버시 문제가 적음

 

 

 

전통적인 네트워킹 인프라

일반적으로 서버들에 네트워크 카드들이 존재하고 중간에 스위치랑 연결된 모습

*NIC = Network Interface Card

네트워크 인터페이스 => 일반적으로 네트워크와 연결되어 데이터를 주고받을 수 있는 하드웨어 장치를 가르키는데 주로 네트워크 인터페이스는 = NIC를 의미

 

리눅스에서 가상화 네트워킹

Virtual switching

• 가상화된 네트워크 환경에서 네트워크 트래픽을 전달하는 기술

vNIC과 vSwitch는 portbinding을 통해 연결

 

vSwitch의 구현체로 Linux bridge, Open vSwitch가 존재한다.

 

Linux bridge

• 일반적인 네트워크 스위치와 유사하게 동작
• 주로 라우터, 게이트웨이, VM 등에서 패킷을 목적지로 전달하는 역할 수행

물리적 이더넷 인터페이스 'eth0'가 있는 호스트 시스템이 표시된다. 호스트에는 'br0' 브리지 인터페이스가 생성되어 있고 세 개의 가상 머신(VM 1, VM 2 및 netns 1)이 브리지에 연결되어 있다. 이 브리지를 통해 서로 통신이 가능함

Linux bridge는 여러 가상 네트워크 인터페이스를 연결하고 트래픽을 전달할 수 있는 방법으로, 가상 스위치 역할을 한다. -> 포워딩(forwarding) 역할만 함

 

 

Bonded Interface

• 서로 다른 네트워크 인터페이스를 하나의 논리적 인터페이스로 묶음
• Hot-standby (active-standby), load balancing

활성 인터페이스에 장애가 발생하면 대기 인터페이스가 자동으로 트래픽을 인계받아 서비스 중단 없이 작동 , 여러 인터페이스에 트래픽 로드를 분산시켜 처리량과 대역폭을 향상

 

 

VETH (Virtual Ethernet)

• 쌍으로 구성 (peer)  -> veth1 과 veth0이 서로 피어(peer)의 관계를 가진다.

서로 연결된 한 쌍의 가상 인터페이스로, 네트워크 네임스페이스(netns) 간에 통신 경로를 제공한다. 위 그림은 각 쌍의 한 인터페이스는 해당 네임스페이스 내부에 있고, 다른 인터페이스는 브리지 br0에 연결되어 있음

 

 

iptables

  패킷 필터링 및 방화벽 도구, 네트워크 주소 변환(NAT) 등 수행

  • PREROUTING: 네트워크 인터페이스를 통해 들어오는 패킷에 대한 처리
  • 입력 ( INPUT ): 외부에서 내부로 들어오는 패킷을 필터링
  • 전달 ( FORWARD ): 네트워크를 통과하는 패킷을 필터링
  • 출력 ( OUTPUT ): 내부에서 외부로 나가는 패킷을 필터링
  • POSTROUTING: 네트워크 인터페이스를 통해 나가는 패킷에 대한 처리
iptables는 패킷이 시스템에 들어오고 나가는 흐름을 PREROUTING-INPUT-FORWARD-OUTPUT-POSTROUTING 순서의 체인과 테이블을 통해 처리한다.
하지만 현대 네트워킹으로 가면 안쓰려고 하는 경향이 보인다. 그이유는 iptables가 step by step 형태로 오버헤드가 생각보다 크기때문이다.



댓글