Pingora 정리
nginx의 워커 프로세스 모델과 Pingora의 멀티스레드 구조를 커넥션 풀이 나뉘는 단위를 기준으로 비교했다. 요청 처리 phase와 리스닝 소켓을 넘기는 무중단 업그레이드까지 정리한 글이다.
nginx의 워커 프로세스 모델과 Pingora의 멀티스레드 구조를 커넥션 풀이 나뉘는 단위를 기준으로 비교했다. 요청 처리 phase와 리스닝 소켓을 넘기는 무중단 업그레이드까지 정리한 글이다.
에뮬레이션 NIC의 가상화 I/O 오버헤드에서 출발해 virtio, vhost, SR-IOV, DPDK, DPU까지 진화 순서로 정리했다. 방식별 데이터 경로와 트레이드오프를 비교한다.
IPIP와 WireGuard의 캡슐화와 암호화 원리를 비교표로 정리했다. WireGuard는 공개키로 서로를 확인하고 그 키가 패킷을 어느 상대에게 보낼지 정하는 주소 역할까지 하는데 이 구조가 IPIP와 어디서 갈리는지 풀어서 다룬다.
Docker 컨테이너 두 대에 IPIP와 WireGuard 터널을 직접 올려 tcpdump로 평문과 암호문을 대조했다. iperf3 처리량과 MTU까지 실측한 기록이다.
Kubernetes CNI 설정 시 오버레이 프로토콜별 암호화 지원 및 추가 오버헤드 영향 정리
| 프로토콜 | 기본 오버헤드(캡슐화) | 권장 MTU 산식 예(언더레이 1500) | 암호화 지원/방식 | 암호화 추가 오버헤드(예) | 암호화 적용 후 MTU 예시 | 자원/특이점 |
|---|---|---|---|---|---|---|
| IP-in-IP | 약 20B | 1500 − 20 = 1480 | 자체 암호화 없음, 필요 시 IPsec(ESP) 등 적용 | IPsec ESP 전형치 30~40B대(+NAT-T/패딩 가변) | 1500 − (20 + ~36) ≈ 1444 (프로파일별 상이) | 소프트웨어 암복호화 시 CPU 부하↑, NIC 오프로드 시 경감 |
| VXLAN | 약 50B (IPv6는 ~70B) | 1500 − 50 = 1450 | 자체 암호화 없음, 언더레이에 IPsec/WG 추가 가능 | WG 60B, IPsec ~36B 등 합산 | VXLAN+WG: 1500 − (50 + 60) = 1390 | UDP 캡슐화, VTEP/오프로드 유무에 성능 민감 |
| Geneve | 약 50B(+옵션 가변) | 1500 − 50 = 1450 (옵션 가산 시 감소) | 자체 암호화 없음, 언더레이 암호화 | IPsec ~36B 등 합산 | 예: 1500 − (64 + 36) = 1400 | 옵션(TLV)로 가변 헤더 → MTU 마진 넉넉히 확보 권장 |