Network·2025. 06. 13
middlebox
- 출발지 호스트와 목적지 호스트 사이에 있는 데이터 경로 중간에 위치하면서, 일반적인 IP 라우터의 기능을 벗어나는 일을 수행하는 장치
- 패킷을 전달만 하는 게 아니라 검사, 변형, 기록, 정책에 따른 차단과 허용 같은 동작을 하는 장비
middleboxes functions
NAT가장 흔한 중간장치. 집이나 휴대폰에서 쓰는 공유기/라우터가 내부 사설 IP를 공인 IP로 변환캐시(Cache)일부 콘텐츠를 미리 저장해두고 빠르게 제공방화벽(Firewalls)불필요하거나 위험한 트래픽을 차단IDS/IPS침입 탐지 및 방지 시스템로드 밸런서내부 서버들로 트래픽을 효율적으로 분산
- 과거에는 페쇄형 전용 하드웨어
- 초기의 Middleboxes는 대부분 전용 장비로 제공됨
- 제조사가 하드웨어와 소프트웨어를 하나로 묶어 제공
- 방화벽, NAT, IDS 등이 고정된 기능만 수행 가능
- 한 번 만든 장치는 그대로 써야 했고, 유연성은 거의 없었음
- 화이트박스 + 오픈 API로 전환 중
- 점점 많은 네트워크 장비들이 화이트박스로 대체됨
- 소프트웨어는 개방형 API를 통해 외부 제어 가능
- 하드웨어는 단순화되고, 기능의 핵심은 소프트웨어로 이전
- match + action 기반으로 동작 가능
- OpenFlow처럼 match + action 모델을 중간 장치에 적용
- ex, TCP 포트가 443이면 허용 아닌 경우 drop 등
- 각 장치는 로컬 단위 행동 제어가 가능해짐
- SDN: 제어는 중앙에서, 실행은 장비에서
- SDN 구조에서 네트워크의 모든 제어는 중앙 컨트롤러가 담당
- 실제 행동은 각 장비에서 수행되지만, 정책과 규칙은 중앙에서 내려옴
- 클라우드 기반(private or public)에서 운영됨
- NFV도 가상화
- NFV(Network Function Virtualization)는 중간장치 기능을 소프트웨어화 + 가상화
- 더 이상 하드웨어에 의존하지 않고, 서버와 클라우드 위에서 실행
- 네트워크 기능도 클라우드 앱처럼 유연하게 배포하고 관리 가능
- IP는 인터넷의 얇은 허리(thin waist)
- 전 세계 수십억 개의 장치들이 반드시 구현해야 하는 공통 계층은 IP 하나뿐
- 이것 덕분에 어떤 기기든, 어떤 네트워크든, 어떤 애플리케이션이든 IP만 맞추면 서로 통신이 가능하게 됨
- 이 디자인 덕분에 인터넷은 수십 년간 진화하면서도 호환성과 확장성을 유지할 수 있었음
- 지금은 러브 핸들이 생겨버림
- 얇지 않고 두툼해짐. IP 계층 주변에 이것저것 붙기 시작
- 이유는 중간에 Middleboxes가 끼어버림
NAT내부 IP를 공인 IP로 변환Firewalls보안 정책에 따라 트래픽을 허용/차단Caching콘텐츠를 미리 저장해 빠르게 제공NFV위 기능들을 가상화해 클라우드 기반으로 실행
- 문제점
- 원래는 직접 통신이었는데, 중간에서 개입하는 장치가 늘어나 end-to-end가 깨짐
- 네트워크의 중간에서 패킷을 해석하고 조작하는 구조로 설계와 관리가 어려움
- 모든 게 IP 위에서만 작동하던 단순성과 호환성이 줄어듦
인터넷의 설계 원칙
- RFC 1958
많은 인터넷 커뮤니티 구성원들은 인터넷의 아키텍처라기보다는 오랜 전통의 집합이라 느낍니다. IAB가 공식 문서를 쓰기 전까지는, 그런 원칙이 ‘글로 적히지 않은 채로’ 25년 넘게 이어져왔죠.
**인터넷의 궁극적인 목적은 연결성입니다. 그 도구는 IP이며, 지능(intelligence)은 네트워크 내부가 아니라 끝단에 있습니다.**
- End-to-End Principle
- 라우터는 단순하게 포워딩만 하자
- 데이터 신뢰성 보장, 보안, 오류 제어는 송신자와 수신자 쪽에서 처리하자
종단 간 원칙
- 네트워크 기능은 가능한 한 끝단에서 처리
- 신뢰성 있는 데이터 전송 (e,x 데이터 손실 감지 및 재전송)
- 혼잡 제어 (ex, 패킷 손실 시 전송 속도 조절
- 네트워크 내부(라우터)에서 구현할 수도 있지만, 송신자와 수신자가 직접 구현하는 것이 더 정확하고 효과적임
- end-to-end 방식
- 기능을 송신자와 수신자 쪽 application/transport 계층에서 처리
- 네트워크는 단순하게 패킷만 전달
- 정확도 높고 종단 간 논리 유지
- hop-by-hop 방식
- 네트워크 내부(라우터, 스위치)들이 중간마다 기능 수행
- ex, 각 구간마다 신뢰성 보장, 재전송 시도 등
- 구조가 복잡해지고 전체적인 동작을 파악하기 어려움
- 어떤 기능은 오직 통신 시스템의 종단에 있는 애플리케이션의 지식과 도움을 통해서만 완전하고 정확하게 구현될 수 있다. 그러므로 그 기능을 네트워크 내부에서 구현하는 것은 적절하지 않다.
- 네트워크 내부에서 제공하는 기능은 완벽하지 못한 임시 보조 역할일 뿐, 정확한 보장은 애플리케이션만 할 수 있음
지능은 어디에
- 20세기 전화망
- 전화망에서는 스위치가 모든 제어를 맡음
- 사용자는 단순한 단말기만 있었꼬, 네트워크 자체가 통화 연결, 라우팅, 서비스 제공을 책임짐
- 초기 인터넷
- 지능은 끝단 (사용자, 호스트)으로 이동했음
- TCP/IP 기반 인터넷 네트워크는 dumb pipe처럼 설계
- 네트워크 장비는 단순한 패킷 전달만 수행’
- 현대 인터넷
- 애플리케이션 쪽에는 대규모 클라우드 인프라, 데이터센터, AI 서비스가 있음
- 네트워크 장비도 단순 포워딩을 넘어 프로그래머블하고 정책 기반 제어 가능