Ethan's Values
VirtualBox NAT 환경에서 SSH 접속까지의 네트워크 개념 정리 본문
반응형
VirtualBox NAT 환경에서 Kubernetes Master SSH 접속까지의 네트워크 개념 정리
1. 배경
Kubernetes를 로컬 PC에서 구축 실습을 위해
VirtualBox로 master, worker VM을 구성했다.
블로그(https://woo0doo.tistory.com/44)를 참고해 네트워크 설정과 Static IP까지 설정했지만,
SSH 접속 과정에서 다음과 같은 혼란을 겪었다.
- VM IP로 직접 접속이 안 됨
- 포트포워딩 설정은 되어 있는데 접속 방식이 헷갈림
- NAT, 브리지, 같은 망 개념이 명확하지 않음
이 글은 왜 이런 문제가 발생했는지,
그리고 NAT 환경에서 SSH 접속이 어떻게 동작하는지를
네트워크 개념부터 정리한 기록이다.
2. 실습 환경 구성
전체 구조
[Windows PC] | [VirtualBox NAT 네트워크] | [VM] - k8s-master - k8s-worker1
- VirtualBox 네트워크 타입: NAT 네트워크
- VM OS: Ubuntu
- Kubernetes 실습 목적
3. VM 내부 네트워크 구성
VM별 IP 및 포트
VM역할IP SSH 포트
| master | control-plane | 10.100.0.105 | 22 |
| worker1 | worker | 10.100.0.106 | 22 |
- 10.100.0.0/24 대역은 VirtualBox NAT 내부망
- VM 내부에서는 서로 직접 통신 가능
- 호스트(Windows)에서는 이 IP로 직접 접근 불가
4. NAT 네트워크의 특징
NAT(Network Address Translation) 환경에서는 다음과 같은 특징이 있다.
NAT 환경의 핵심 특징
- VM은 내부 네트워크에 숨겨져 있음
- 외부(호스트 PC)에서 VM IP로 직접 접근 불가
- 외부 접근을 위해서는 포트포워딩 필요
즉, 아래와 같은 접근은 구조적으로 불가능하다.
ssh 10.100.0.105 ping 10.100.0.105
이 문제는 SSH 설정 문제가 아니라 네트워크 구조 문제다.
5. 포트포워딩 개념
포트포워딩이란?
호스트의 특정 포트로 들어오는 요청을
NAT 내부의 특정 VM IP와 포트로 전달하는 규칙
6. VirtualBox NAT 포트포워딩 설정
설정 내용

항목값
| 호스트 IP | 127.0.0.1 |
| 호스트 포트 | 105 |
| 게스트 IP | 10.100.0.105 |
| 게스트 포트 | 22 |
의미를 풀어보면
호스트(Windows)의 127.0.0.1:105 로 들어오는 요청을
VM 10.100.0.105:22(master) 로 전달한다.
worker 노드도 동일한 방식으로 설정한다.
VM접속 주소
| master | 127.0.0.1:105 |
| worker1 | 127.0.0.1:106 |
7. 왜 호스트 IP는 항상 127.0.0.1 인가?
- 127.0.0.1은 내 PC 자신(localhost) 을 의미한다.
- 외부 서버로 접속하는 것이 아니라,
- 내 PC에 열어둔 포트로 접속하는 구조이기 때문이다.
즉,
- IP는 항상 127.0.0.1
- 포트로 VM을 구분한다.
8. 실제 SSH 접속 흐름
Xshell에서 master 접속 시


Xshell → 127.0.0.1:105 → VirtualBox NAT 포트포워딩 → 10.100.0.105:22 → SSH daemon (master)
이 흐름이 완성되었기 때문에 SSH 접속이 정상적으로 동작한다.
9. 처음에 헷갈렸던 원인 정리
잘못된 시도
Xshell → 10.100.0.105:22
왜 안 됐나?
- 10.100.0.105는 NAT 내부 IP
- 호스트는 이 네트워크에 직접 연결되어 있지 않음
- 따라서 구조적으로 접근 불가능
👉 접속 주소를 잘못 이해한 것이 문제의 핵심
10. 실무 on-premise Kubernetes와의 차이
실무 on-premise 환경
[같은 스위치 / VLAN] master 10.0.0.10 worker1 10.0.0.11 worker2 10.0.0.12
- 모든 서버가 같은 내부망
- IP로 직접 통신
- 포트포워딩 사용 ❌
로컬 VM 실습 환경
- NAT 네트워크
- 포트포워딩 필요
- 실습/학습 목적
11. 핵심 요약
- NAT 환경에서는 VM IP로 직접 접속할 수 없다
- 포트포워딩은 호스트 포트를 VM의 서비스 포트로 전달하는 규칙
- SSH 접속은 항상 호스트 IP + 포트 기준으로 한다
- 실무 on-premise 환경에서는 NAT가 아닌 같은 내부망을 사용한다
12. 마무리
이번 경험을 통해
SSH 접속 문제의 원인이 네트워크 구조에 대한 이해 부족이었다는 것을 알게 되었다.
Kubernetes를 이해하기 위해서는
컨테이너 이전에 네트워크 개념을 먼저 정리하는 것이 중요하다는 점을 체감한 계기였다.
'MLOps' 카테고리의 다른 글
| 개발 기초 지식 (0) | 2026.01.29 |
|---|---|
| [MLOps Engineer, Airflow] Argument 사용하여 Dag 실행하기 (4) | 2024.06.03 |
| MLOps Engineering(8) - Fast API를 사용하여 모델의 예측값 반환하는 REST API 구현 (0) | 2024.03.27 |
| MLOps Engineering(7) - 모델링 수행을 위한 스케쥴링 DAG (2) | 2024.03.26 |
| MLOps Engineering(6) - 데이터 삽입 DAG 생성 (0) | 2024.03.25 |
Comments