Computer >> 컴퓨터 >  >> 네트워킹 >> 네트워크 보안

네트워크 보안 캡슐화란 무엇일까? 핵심 개념부터 실무 활용까지

캡슐화(Encapsulation)의 기본 개념

캡슐화는 객체 지향 프로그래밍(OOP)의 근간을 이루는 핵심 원칙 중 하나입니다. 쉽게 말해 데이터(변수)와 그 데이터를 다루는 메서드(함수)를 하나의 클래스라는 단위로 묶고, 내부 상태를 외부에서 함부로 접근하지 못하도록 보호하는 기법입니다. 이를 통해 클래스 내부의 값과 상태는 오직 해당 객체의 소유자만이 의도한 방식으로 제어할 수 있습니다.

네트워킹에서 캡슐화는 어떻게 작동할까?

네트워크 세계에서 캡슐화는 조금 다른 방식으로 정의됩니다. 여기서는 상위 계층에서 만들어진 정보를 하위 계층이 하나의 '데이터'로 취급하고, 자신의 계층에 맞는 헤더(header)를 덧붙이는 과정을 의미합니다.

대표적인 예가 이더넷 환경입니다. 2계층(Layer 2)의 이더넷 프레임은 IP 패킷을 자신의 데이터 영역에 담아 캡슐화하고, 이렇게 완성된 프레임은 다시 1계층(Layer 1)에서 비트(bit) 신호로 변환되어 로컬 네트워크를 따라 전송됩니다.

TCP/IP 모델에서의 캡슐화와 역캡슐화

송신 측에서는 데이터가 TCP/IP 스택의 상위 계층에서 하위 계층으로 내려갈 때마다 '헤더'라고 불리는 제어 정보가 겹겹이 덧붙여집니다. 이처럼 데이터를 계층별로 포장해 가는 과정을 캡슐화(encapsulation)라고 부릅니다.

반대로 수신 측에서는 포장을 벗기는 역캡슐화(decapsulation)가 일어납니다. 수신 호스트는 각 계층에서 자신에게 해당하는 헤더를 하나씩 제거하며 원래의 데이터를 복원하고, 최종적으로 애플리케이션 계층까지 전달합니다. 즉, 네트워크 모델의 모든 계층에서 캡슐화와 역캡슐화가 반복되는 셈입니다.

라우터의 GRE 캡슐화란?

GRE(Generic Routing Encapsulation, 일반 라우팅 캡슐화)는 RFC 2784로 표준화된 프로토콜입니다. HTTP 패킷 같은 특정 프로토콜의 패킷을 GRE로 감싸면, 서로 다른 프로토콜 환경 사이에서도 패킷이 목적지에 도달할 수 있습니다. GRE는 IP 네트워크 위에서 어떤 3계층(Layer 3) 프로토콜이든 터널링할 수 있도록 설계된 기술로, VPN 구성 등 다양한 환경에서 폭넓게 활용됩니다.

네트워크 보안 관점에서의 캡슐화

보안 관점에서 캡슐화란 데이터 앞뒤에 헤더(header)와 트레일러(trailer)를 덧붙여 보호막을 씌우는 행위를 말합니다. 인터넷 계층(Internet Layer)은 데이터를 네트워크 접속 계층(Network Access Layer)으로 넘기고, 흥미롭게도 헤더와 트레일러를 모두 추가하는 계층은 네트워크 접속 계층뿐입니다. 최종적으로 완성된 프레임은 물리적 링크(physical link)를 통해 전송됩니다.

데이터 캡슐화가 필요한 이유

데이터 캡슐화는 데이터에 프로토콜 정보를 추가함으로써 데이터가 손상 없이 올바르게 전송되도록 보장하는 장치입니다. 추가되는 정보는 헤더일 수도 있고, 필요에 따라 푸터(footer) 형태로 덧붙여질 수도 있습니다. 송신 측에서는 애플리케이션 계층에서 출발해 물리 계층에 도달할 때까지 모든 데이터가 순차적으로 캡슐화됩니다.

네트워크 캡슐화의 주요 유형

네트워크 장비와 회선 환경에 따라 사용되는 캡슐화 방식은 다양합니다. 대표적인 유형은 다음과 같습니다.

  • 프레임 릴레이(Frame Relay) 캡슐화: 직렬 인터페이스에서 프레임 릴레이 네트워크와 통신할 때 사용하는 캡슐화 방식입니다.
  • PPP(Point-to-Point Protocol): 두 지점 간 직접 연결에서 사용되는 표준 캡슐화 프로토콜로, 인증과 오류 검출 기능을 함께 제공합니다.
  • PPPoE(Point-to-Point Protocol over Ethernet): 이더넷 위에서 PPP 데이터를 전송하는 프로토콜로, 가정용 광대역 인터넷 접속에 널리 쓰입니다.
  • HDLC(High-Level Data Link Control): 데이터 링크 계층을 고수준으로 제어하는 비트 지향 프로토콜입니다.

Cisco 라우터의 Dot1q(802.1Q) 캡슐화

시스코(Cisco) 라우터에서 자주 언급되는 encapsulation dot1q 명령은 IEEE 802.1Q 표준과 관련이 있습니다. 802.1Q는 VLAN(가상 LAN) 구성과 스위치·라우터 간 상호 연결을 위한 태깅 프로토콜입니다.

라우터의 서브인터페이스(subinterface) 설정 모드에서 encapsulation dot1q [VLAN ID] 명령을 입력하면, 해당 서브인터페이스가 특정 VLAN의 트래픽을 처리하도록 지정할 수 있습니다. 참고로 802.1Q 표준은 태그가 없는(untagged) 프레임에 대해 매우 엄격한 규칙을 적용하며, 태그 없는 프레임은 포트별(per-port) VLAN으로만 처리됩니다. 또한 802.1Q는 이더넷 네트워크에서 VLAN을 정의하는 표준으로, 하나의 물리 연결 위에서 여러 논리 네트워크를 유지할 수 있게 해줍니다.

프로그래밍에서의 캡슐화 예시

캡슐화의 가장 일반적인 형태는 연관된 코드와 데이터를 하나의 단위로 묶는 것입니다. 예를 들어 사각형을 표현하는 Rectangle 클래스는 길이(length)와 너비(breadth)라는 데이터 멤버와, 이를 이용해 면적을 계산하는 getArea() 함수를 함께 품고 있습니다.

class Rectangle {
public:
int length;
int breadth;
int getArea() {
return length * breadth;
}
};

나아가 데이터 은닉(data hiding)이라 불리는 기법은 클래스의 구현 세부사항을 사용자로부터 숨기는 것을 의미합니다. 숨겨진 멤버에는 메서드(method)라고 불리는 특수 함수를 통해서만 접근할 수 있으며, C 언어에서도 구조체(structure) 안에 데이터와 함수를 모으는 방식으로 캡슐화 개념을 구현할 수 있습니다. 결국 캡슐화란 데이터와 함수를 하나로 결합하는 객체 지향 프로그래밍의 본질적인 특징이라 할 수 있습니다.

OSI 모델에서의 캡슐화

OSI 7계층 모델에서도 캡슐화는 동일한 원리로 작동합니다. 애플리케이션 계층에서 생성된 데이터는 전송 계층에서 세그먼트(segment), 네트워크 계층에서 패킷(packet), 데이터 링크 계층에서 프레임(frame), 마지막으로 물리 계층에서 비트(bit)로 변환됩니다. 각 단계마다 해당 계층의 헤더가 추가되며, 우리가 사용하는 네트워크는 OSI 모델 또는 TCP/IP 모델 중 하나를 기반으로 이런 캡슐화 과정을 통해 데이터를 전송합니다.

정리: 캡슐화의 핵심 포인트

  • 캡슐화는 데이터와 메서드를 하나로 묶고 외부 접근으로부터 보호하는 OOP의 핵심 원칙입니다.
  • 네트워크에서는 상위 계층 데이터에 하위 계층의 헤더(및 트레일러)를 덧붙이는 과정을 의미합니다.
  • 송신 측에서는 캡슐화가, 수신 측에서는 역캡슐화가 일어납니다.
  • GRE는 IP 네트워크 위에서 임의의 3계층 프로토콜을 터널링하는 대표적인 캡슐화 기술입니다.
  • 802.1Q(Dot1q) 캡슐화는 VLAN 구성과 스위치·라우터 연결에 필수적입니다.