junyeokk
Blog
Network·2025. 06. 13

middlebox

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2025-06-08_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_8.34.22.png
  • 출발지 호스트와 목적지 호스트 사이에 있는 데이터 경로 중간에 위치하면서, 일반적인 IP 라우터의 기능을 벗어나는 일을 수행하는 장치
    • 패킷을 전달만 하는 게 아니라 검사, 변형, 기록, 정책에 따른 차단과 허용 같은 동작을 하는 장비

middleboxes functions

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2025-06-08_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_8.35.27.png
  • NAT 가장 흔한 중간장치. 집이나 휴대폰에서 쓰는 공유기/라우터가 내부 사설 IP를 공인 IP로 변환
  • 캐시(Cache) 일부 콘텐츠를 미리 저장해두고 빠르게 제공
  • 방화벽(Firewalls) 불필요하거나 위험한 트래픽을 차단
  • IDS/IPS 침입 탐지 및 방지 시스템
  • 로드 밸런서 내부 서버들로 트래픽을 효율적으로 분산
%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2025-06-08_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_8.38.03.png
  • 과거에는 페쇄형 전용 하드웨어
    • 초기의 Middleboxes는 대부분 전용 장비로 제공됨
    • 제조사가 하드웨어와 소프트웨어를 하나로 묶어 제공
    • 방화벽, NAT, IDS 등이 고정된 기능만 수행 가능
    • 한 번 만든 장치는 그대로 써야 했고, 유연성은 거의 없었음
  • 화이트박스 + 오픈 API로 전환 중
    • 점점 많은 네트워크 장비들이 화이트박스로 대체됨
    • 소프트웨어는 개방형 API를 통해 외부 제어 가능
    • 하드웨어는 단순화되고, 기능의 핵심은 소프트웨어로 이전
  • match + action 기반으로 동작 가능
    • OpenFlow처럼 match + action 모델을 중간 장치에 적용
    • ex, TCP 포트가 443이면 허용 아닌 경우 drop 등
    • 각 장치는 로컬 단위 행동 제어가 가능해짐
  • SDN: 제어는 중앙에서, 실행은 장비에서
    • SDN 구조에서 네트워크의 모든 제어는 중앙 컨트롤러가 담당
    • 실제 행동은 각 장비에서 수행되지만, 정책과 규칙은 중앙에서 내려옴
    • 클라우드 기반(private or public)에서 운영됨
  • NFV도 가상화
    • NFV(Network Function Virtualization)는 중간장치 기능을 소프트웨어화 + 가상화
    • 더 이상 하드웨어에 의존하지 않고, 서버와 클라우드 위에서 실행
    • 네트워크 기능도 클라우드 앱처럼 유연하게 배포하고 관리 가능
%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2025-06-09_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_7.33.34.png
  • IP는 인터넷의 얇은 허리(thin waist)
    • 전 세계 수십억 개의 장치들이 반드시 구현해야 하는 공통 계층은 IP 하나뿐
    • 이것 덕분에 어떤 기기든, 어떤 네트워크든, 어떤 애플리케이션이든 IP만 맞추면 서로 통신이 가능하게 됨
  • 이 디자인 덕분에 인터넷은 수십 년간 진화하면서도 호환성과 확장성을 유지할 수 있었음
%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2025-06-09_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_7.33.43.png
  • 지금은 러브 핸들이 생겨버림
    • 얇지 않고 두툼해짐. IP 계층 주변에 이것저것 붙기 시작
  • 이유는 중간에 Middleboxes가 끼어버림
    • NAT 내부 IP를 공인 IP로 변환
    • Firewalls 보안 정책에 따라 트래픽을 허용/차단
    • Caching 콘텐츠를 미리 저장해 빠르게 제공
    • NFV 위 기능들을 가상화해 클라우드 기반으로 실행
  • 문제점
    • 원래는 직접 통신이었는데, 중간에서 개입하는 장치가 늘어나 end-to-end가 깨짐
    • 네트워크의 중간에서 패킷을 해석하고 조작하는 구조로 설계와 관리가 어려움
    • 모든 게 IP 위에서만 작동하던 단순성과 호환성이 줄어듦

인터넷의 설계 원칙

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2025-06-09_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_7.33.56.png
  • RFC 1958

    많은 인터넷 커뮤니티 구성원들은 인터넷의 아키텍처라기보다는 오랜 전통의 집합이라 느낍니다. IAB가 공식 문서를 쓰기 전까지는, 그런 원칙이 ‘글로 적히지 않은 채로’ 25년 넘게 이어져왔죠.

**인터넷의 궁극적인 목적은 연결성입니다. 그 도구는 IP이며, 지능(intelligence)은 네트워크 내부가 아니라 끝단에 있습니다.**
  • End-to-End Principle
    • 라우터는 단순하게 포워딩만 하자
    • 데이터 신뢰성 보장, 보안, 오류 제어는 송신자와 수신자 쪽에서 처리하자

종단 간 원칙

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2025-06-09_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_7.34.05.png
  • 네트워크 기능은 가능한 한 끝단에서 처리
    • 신뢰성 있는 데이터 전송 (e,x 데이터 손실 감지 및 재전송)
    • 혼잡 제어 (ex, 패킷 손실 시 전송 속도 조절
    • 네트워크 내부(라우터)에서 구현할 수도 있지만, 송신자와 수신자가 직접 구현하는 것이 더 정확하고 효과적임
  • end-to-end 방식
    • 기능을 송신자와 수신자 쪽 application/transport 계층에서 처리
    • 네트워크는 단순하게 패킷만 전달
    • 정확도 높고 종단 간 논리 유지
  • hop-by-hop 방식
    • 네트워크 내부(라우터, 스위치)들이 중간마다 기능 수행
    • ex, 각 구간마다 신뢰성 보장, 재전송 시도 등
    • 구조가 복잡해지고 전체적인 동작을 파악하기 어려움
%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2025-06-09_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_7.34.14.png
  • 어떤 기능은 오직 통신 시스템의 종단에 있는 애플리케이션의 지식과 도움을 통해서만 완전하고 정확하게 구현될 수 있다. 그러므로 그 기능을 네트워크 내부에서 구현하는 것은 적절하지 않다.
    • 네트워크 내부에서 제공하는 기능은 완벽하지 못한 임시 보조 역할일 뿐, 정확한 보장은 애플리케이션만 할 수 있음

지능은 어디에

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2025-06-09_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_7.34.21.png
  • 20세기 전화망
    • 전화망에서는 스위치가 모든 제어를 맡음
    • 사용자는 단순한 단말기만 있었꼬, 네트워크 자체가 통화 연결, 라우팅, 서비스 제공을 책임짐
  • 초기 인터넷
    • 지능은 끝단 (사용자, 호스트)으로 이동했음
    • TCP/IP 기반 인터넷 네트워크는 dumb pipe처럼 설계
    • 네트워크 장비는 단순한 패킷 전달만 수행’
  • 현대 인터넷
    • 애플리케이션 쪽에는 대규모 클라우드 인프라, 데이터센터, AI 서비스가 있음
    • 네트워크 장비도 단순 포워딩을 넘어 프로그래머블하고 정책 기반 제어 가능