728x90

Kubernetes 환경에서 네트워크 문제가 발생했을 때, 어떤 도구를 써야 할지 막막할 때가 많습니다.
이 글에서는 OSI 7계층 관점으로 주요 네트워크 트러블슈팅 명령어를 정리하고,
각 도구별로 실무에서 바로 써먹을 수 있는 옵션과 예시를 공유합니다.
🧱 OSI 7계층 한눈에 보기
계층 | 이름 | 주요 개념 |
---|---|---|
L7 | Application | HTTP, DNS, SSH 등 |
L6 | Presentation | 인코딩, 암호화 (거의 신경 안 씀) |
L5 | Session | 세션, 상태 유지 |
L4 | Transport | TCP, UDP |
L3 | Network | IP, 라우팅 |
L2 | Data Link | MAC 주소, ARP |
L1 | Physical | 케이블, 전기신호 등 |
🛠️ 네트워크 트러블슈팅 명령어 & 체크 계층
명령어 | 체크 계층 | 주요 용도 |
---|---|---|
ping |
L3 | ICMP로 연결성 확인 |
traceroute |
L3 | 경로 중단 위치 파악 |
nc (netcat) |
L4 | 포트 열림 여부 확인 |
curl |
L7 | HTTP 응답 확인 |
wget |
L7 | 간단한 HTTP 요청 |
nslookup |
L7 | DNS 확인 (간단) |
dig |
L7 | DNS 상세 쿼리 |
telnet |
L4 | TCP 포트 테스트 |
tcpdump |
L2~L4 | 패킷 캡처 |
ip |
L2/L3 | 네트워크 상태, 라우팅 정보 |
ss / netstat |
L4 | 포트 상태 및 소켓 연결 확인 |
arp |
L2 | ARP 테이블 조회 |
🧪 실무에서 자주 쓰는 명령어 예시
1. IP 연결 확인 - ping
(L3)
ping -c 4 8.8.8.8 # 4번만 시도
ping -i 0.2 10.0.0.1 # 0.2초 간격으로
2. 포트 열려 있는지 확인 - nc
(L4)
nc -zv naver.com 443
-z
: 데이터 송수신 없이 연결만 시도-v
: 결과 상세 출력- 성공:
succeeded!
, 실패:Connection refused
,timed out
등
3. HTTP 요청 테스트 - curl
(L7)
curl -v https://naver.com
curl -I https://naver.com # HEAD만 요청
4. 도메인 → IP 해석 - nslookup
, dig
(L7)
nslookup naver.com
dig naver.com +short
5. 라우팅 경로 확인 - traceroute
(L3)
traceroute naver.com
6. 패킷 캡처 - tcpdump
(L2~L4)
tcpdump -i eth0 port 443
7. 현재 포트 상태 보기 - ss
/ netstat
(L4)
ss -tuln
netstat -anp | grep 8080
📌 문제 해결 실전 시나리오
"내가 있는 Pod에서 특정 도메인에 접근이 안 된다!"
- DNS 확인
nslookup naver.com
- 네트워크 확인
ping naver.com
- 포트 열려 있는지 확인
nc -zv naver.com 443
- HTTP 정상 응답 여부 확인
curl -v https://naver.com
- 그래도 안 되면?
traceroute naver.com
🧰 Kubernetes 환경에서는 netshoot
이미지 활용!
kubectl debug -it pod/<pod-name> \
-n <namespace> \
--image=nicolaka/netshoot \
--target=<container-name> \
-- bash
netshoot
는 위에서 소개한 모든 툴(curl, dig, tcpdump 등)이 다 들어있는 네트워크 디버깅용 만능툴입니다.
마무리
트러블슈팅 도구들을 무작정 외우는 것보다, OSI 계층 관점으로 "이건 어디까지 확인하는 도구인가?"를 기준으로 정리하면 훨씬 기억에 오래 남습니다.
728x90
'프로그래밍공부(Programming Study) > 네트워크(Network)' 카테고리의 다른 글
📌 네트워크 기본 개념: TCP/UDP, 핸드셰이크, 소켓 상태, 라우팅, 서브넷 (0) | 2025.02.23 |
---|---|
서버와 클라이언트 통신 프로토콜의 모든 것: 모바일 푸시알림, 롱폴링, 웹소켓, 서버 전송 이벤트 비교 (2) | 2024.12.05 |
네트워크 트러블슈팅 필수 명령어 총집합 (1) | 2024.12.04 |
CDN과 POP, 그리고 POP 선택 알고리즘의 원리와 동작 방식 (1) | 2024.12.04 |
HTTP와 Keep-Alive: 웹 성능 최적화의 핵심 기술 (0) | 2024.12.03 |
댓글