네트워크 기본부터 도커까지 주요 개념 간단 정리
1. 공인망 vs 사설망
- 공인망은 인터넷에 직접 연결되는 네트워크
- 사설망은 내부 전용망. 외부에서 직접 접근 불가
- 공인 IP는 ISP가 제공함
- 사설망에서는 사설 IP 사용됨
2. 사설 IP 주소 대역 (RFC1918)
- 클래스 A: 10.0.0.0/8
- 클래스 B: 172.16.0.0/12
- 클래스 C: 192.168.0.0/16
- 외부에서 접근 불가. NAT 통해 통신해야 함
3. CIDR (서브넷 표현)
- 예: 192.168.0.0/24 → 256개 주소 가능
- /24는 서브넷 마스크 255.255.255.0 의미
- 유연한 네트워크 구성 가능하게 함
4. 네트워크 인터페이스 vs 포트
- 인터페이스는 네트워크 출입구 역할. eth0, lo 등 있음
- 포트는 인터페이스 위에서 앱을 구분하는 번호
- 예: 127.0.0.1:3000 → 3000포트에서 실행 중
5. NAT와 포트포워딩
- NAT는 사설 IP ↔ 공인 IP 변환함
- 포트포워딩은 외부 포트를 내부 포트로 연결
- 장점: 공인 IP 절약, 보안 향상
- 단점: 설정 복잡, 실시간 통신(P2P)에 제약 생김
6. 인바운드 vs 아웃바운드
- 인바운드는 외부에서 내부로 들어오는 트래픽
- 아웃바운드는 내부에서 외부로 나가는 트래픽
- 방화벽이나 보안 설정 시 자주 구분됨
7. DNS
- 도메인 이름을 IP로 변환하는 시스템
- 계층적 구조 가짐
- 질의 순서: 로컬 캐시 → ISP DNS → 루트 DNS
- 예: google.com → 142.x.x.x
8. 도커 컨테이너 가상화
- 컨테이너는 OS 커널 공유하는 격리된 실행 환경
- VM보다 가볍고 빠름
- 파일 시스템, 네트워크, 프로세스는 격리됨
- DevOps, CI/CD 환경에서 많이 사용됨
9. 가상 인터페이스 (veth)
- 도커 컨테이너 네트워크 연결에 사용됨
- veth pair는 호스트와 컨테이너를 연결하는 인터페이스 쌍
- 브릿지 네트워크 내부에서 사용됨
10. iptables (리눅스 방화벽)
- 리눅스 커널에서 동작하는 방화벽 도구
- 패킷 필터링, NAT, 포트포워딩 등 설정 가능
- 도커 내부에서도 사용됨
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 3000
11. docker network 관련 명령어
docker network ls
docker inspect <container_id>
docker network create --driver bridge my_net
docker network connect my_net <container_name>
docker network disconnect my_net <container_name>
마무리
네트워크 개념과 도커 환경에서의 네트워크 동작 이해하는 데 도움 되었으면 좋겠음
실무, 프로젝트, 인프라 구성 전 꼭 정리해두는 걸 추천함