IT Knowledge/Network/images/10-네트워크-트러블슈팅-diagram.svg
네트워크 트러블슈팅
네트워크 트러블슈팅은 체계적인 접근과 도구를 사용하여 네트워크 문제를 진단하고 해결합니다.
🎯 이 파일을 학습하면 무엇을 알게 될까요?
이 파일을 학습하면 다음을 할 수 있게 됩니다:
- 체계적인 트러블슈팅 방법론 이해
- 주요 네트워크 진단 도구 활용
- OSI 계층별 문제 진단
- 실전 네트워크 문제 해결
🧠 학습 전 생각해볼 질문
-
네트워크 문제가 발생했을 때 무엇부터 확인해야 할까요?
- 웹사이트가 안 열리면 IP, DNS, 방화벽 중 어디서 문제일까요?
-
어떤 도구를 사용해야 할까요?
- ping, traceroute, nslookup, tcpdump 중 언제 어떤 것을 써야 할까요?
-
체계적으로 문제를 어떻게 해결할까요?
- 무작정 시도하지 않고 체계적으로 접근하려면?
📖 1. 트러블슈팅 방법론
1.1 체계적인 접근
네트워크 트러블슈팅은 체계적인 접근이 중요합니다.
비유: 의사의 진단
- 증상 수집 → 검사 → 진단 → 처방
트러블슈팅 단계
1. 문제 정의
"무엇이 문제인가?"
2. 정보 수집
"어떤 정보가 필요한가?"
3. 가설 설정
"원인은 무엇일까?"
4. 가설 검증
"정말 그런가?"
5. 해결
"어떻게 고치나?"
6. 검증
"해결되었나?"
7. 문서화
"다음을 위해 기록하자"
1.2 OSI 계층별 접근
OSI 7계층:
7. 응용 계층 (Application) - 웹, 이메일
6. 표현 계층 (Presentation) - 암호화
5. 세션 계층 (Session) - 세션 관리
4. 전송 계층 (Transport) - TCP/UDP
3. 네트워크 계층 (Network) - IP, 라우팅
2. 데이터링크 계층 (Data Link) - MAC, 스위칭
1. 물리 계층 (Physical) - 케이블, 전원
접근: 1 → 7 (바텀-업)
🔍 2. 트러블슈팅 도구
2.1 기본 도구
| 도구 | 계층 | 용도 |
|---|---|---|
| ping | 3 | 연결 확인 |
| traceroute/tracert | 3 | 경로 추적 |
| nslookup/dig | 7 | DNS 쿼리 |
| netstat/ss | 4 | 연결 상태 |
| tcpdump/wireshark | 2 | 패킷 캡처 |
2.2 ping
ping은 호스트 간 연결을 확인합니다.
사용법
# 기본 ping
ping google.com
# 카운트 지정
ping -c 4 google.com
# 인터벌 지정
ping -i 2 google.com
# 크기 지정
ping -s 1024 google.com
# 타임아웃 지정
ping -W 2 google.com출력 해석
PING google.com (172.217.26.142): 56 data bytes
64 bytes from 172.217.26.142: icmp_seq=0 ttl=53 time=14.2 ms
64 bytes from 172.217.26.142: icmp_seq=1 ttl=53 time=15.1 ms
64 bytes from 172.217.26.142: icmp_seq=2 ttl=53 time=13.9 ms
--- google.com ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 13.9/14.4/15.1/0.5 ms
| 항목 | 설명 |
|---|---|
| icmp_seq | 패킷 순서 |
| ttl | Time to Live (남은 홉 수) |
| time | 왕복 시간 (RTT) |
| packet loss | 패킷 손실율 |
| round-trip | 최소/평균/최대 RTT |
2.3 traceroute/tracert
traceroute는 패킷 경로를 추적합니다.
사용법
# Linux/macOS
traceroute google.com
# Windows
tracert google.com
# ICMP 대신 UDP 사용
traceroute -U google.com
# ICMP 대신 TCP 사용
traceroute -T -p 80 google.com출력 해석
traceroute to google.com (172.217.26.142), 30 hops max, 60 byte packets
1 192.168.1.1 (192.168.1.1) 2.123 ms 2.456 ms 2.789 ms
2 10.0.0.1 (10.0.0.1) 3.456 ms 3.789 ms 4.123 ms
3 203.0.113.1 (203.0.113.1) 4.567 ms 4.890 ms 5.234 ms
...
9 142.250.190.46 (142.250.190.46) 13.456 ms 13.789 ms 14.123 ms
10 142.250.190.39 (142.250.190.39) 13.890 ms 14.234 ms 14.567 ms
| 항목 | 설명 |
|---|---|
| 홉 번호 | 라우터 순서 |
| IP 주소 | 라우터 IP |
| 시간 | 각 홉까지의 시간 |
2.4 nslookup/dig
nslookup/dig는 DNS 쿼리를 수행합니다.
사용법
# 기본 쿼리
nslookup google.com
# 특정 레코드
nslookup -type=MX google.com
nslookup -type=TXT google.com
# dig 사용
dig google.com
dig MX google.com
dig TXT google.com
# 역방향 조회
nslookup 8.8.8.8
dig -x 8.8.8.8출력 해석
nslookup google.com
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: google.com
Address: 172.217.26.142
Name: google.com
Address: 172.217.26.144
| 항목 | 설명 |
|---|---|
| Server | DNS 서버 |
| Name | 도메인 이름 |
| Address | IP 주소 |
2.5 netstat/ss
netstat/ss는 네트워크 연결 상태를 확인합니다.
사용법
# 모든 연결
netstat -an
# TCP 연결
netstat -tn
# 리스닝 포트
netstat -tln
# 프로세스 보기
netstat -tnp
# ss 사용
ss -tn
ss -tlnp출력 해석
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.100:54321 172.217.26.142:443 ESTABLISHED
| 항목 | 설명 |
|---|---|
| Proto | 프로토콜 (TCP/UDP) |
| Recv-Q/Send-Q | 수신/송신 큐 |
| Local Address | 로컬 주소 |
| Foreign Address | 원격 주소 |
| State | 연결 상태 |
2.6 tcpdump/Wireshark
tcpdump/Wireshark는 패킷을 캡처하고 분석합니다.
tcpdump 사용법
# 인터페이스 목록
tcpdump -D
# 기본 캡처
tcpdump -i eth0
# 특정 호스트
tcpdump host 192.168.1.1
# 특정 포트
tcpdump port 80
# 특정 프로토콜
tcpdump icmp
tcpdump tcp
# 저장
tcpdump -w capture.pcap
# 읽기
tcpdump -r capture.pcapWireshark 사용법
1. 캡처 시작
2. 필터 적용 (예: ip.addr == 192.168.1.1)
3. 패킷 분석
4. 문제 식별
🎯 3. OSI 계층별 트러블슈팅
3.1 물리 계층 (Layer 1)
문제 증상
- 케이블 연결 불가
- 인터페이스 다운
진단 도구
ethtoolmii-tooldmesg
해결 방법
# 인터페이스 상태 확인
ethtool eth0
mii-tool eth0
# 인터페이스 활성화
sudo ifconfig eth0 up
sudo ip link set eth0 up
# 드라이버 확인
dmesg | grep eth0
# 케이블 교체3.2 데이터링크 계층 (Layer 2)
문제 증상
- MAC 주소 학습 불가
- VLAN 문제
- 스위치 포트 차단
진단 도구
arptcpdumpshow mac address-table(Cisco)
해결 방법
# ARP 테이블 확인
arp -an
# ARP 캐시 플러시
sudo ip neigh flush all
# 패킷 캡처
tcpdump -i eth0 -e3.3 네트워크 계층 (Layer 3)
문제 증상
- 라우팅 문제
- IP 주소 충돌
- 필터링 차단
진단 도구
pingtracerouteip route
해결 방법
# 라우팅 테이블 확인
ip route show
# 라우팅 추가
sudo ip route add 192.168.2.0/24 via 192.168.1.1
# 라우팅 삭제
sudo ip route del 192.168.2.0/24
# 경로 추적
traceroute google.com3.4 전송 계층 (Layer 4)
문제 증상
- 포트 차단
- 방화벽 차단
- 서비스 다운
진단 도구
netstattelnetnc(netcat)
해결 방법
# 포트 확인
netstat -tlnp
# 포트 열기
sudo nc -l 1234
# 방화벽 확인
sudo iptables -L -n
# 방화벽 규칙 추가
sudo iptables -A INPUT -p tcp --dport 1234 -j ACCEPT3.5 응용 계층 (Layer 7)
문제 증상
- 웹사이트 안 열림
- 이메일 수신 불가
- DNS 문제
진단 도구
curlnslookuptcpdump
해결 방법
# HTTP 요청
curl -v https://example.com
# DNS 쿼리
nslookup example.com
# 패킷 캡처
tcpdump -i eth0 port 80🛠️ 4. 실전 시나리오
시나리오 1: 웹사이트가 안 열림
단계 1: 문제 정의
증상: example.com 웹사이트가 안 열림
단계 2: 정보 수집
# 1. 네트워크 연결 확인
ping google.com
# 2. DNS 확인
nslookup example.com
# 3. 웹서버 연결 확인
telnet example.com 80
# 4. HTTP 상태 확인
curl -v https://example.com단계 3: 가설 설정
가설 1: DNS 문제?
가설 2: 네트워크 연결 문제?
가설 3: 웹서버 문제?
단계 4: 가설 검증
# 가설 1: DNS 확인
nslookup example.com
# 가설 2: 경로 확인
traceroute example.com
# 가설 3: 웹서버 확인
curl -v https://example.com단계 5: 해결
# DNS 문제인 경우
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
# 방화벽 문제인 경우
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT시나리오 2: 느린 네트워크
단계 1: 문제 정의
증상: 네트워크 속도가 느림
단계 2: 정보 수집
# 1. RTT 확인
ping -c 10 google.com
# 2. 대역폭 확인
iperf3 -c server
# 3. 패킷 손실 확인
ping -c 100 google.com단계 3: 가설 설정
가설 1: 대역폭 부족?
가설 2: 네트워크 혼잡?
가설 3: 라우팅 문제?
단계 4: 가설 검증
# 가설 1: 대역폭 확인
iperf3 -c server
# 가설 2: 경로 확인
traceroute google.com
# 가설 3: MTU 확인
ping -M do -s 1472 google.com단계 5: 해결
# MTU 조정
sudo ip link set eth0 mtu 1500
# QoS 설정🎓 5. 심화 주제
5.1 네트워크 모니터링
도구
| 도구 | 용도 |
|---|---|
| Nagios | 모니터링 |
| Zabbix | 모니터링 |
| Prometheus | 메트릭 수집 |
| Grafana | 시각화 |
5.2 자동화
스크립트 예시
#!/bin/bash
# 네트워크 진단 스크립트
echo "=== 네트워크 진단 ==="
echo ""
echo "1. 네트워크 연결 확인:"
ping -c 3 8.8.8.8
echo ""
echo "2. DNS 확인:"
nslookup google.com
echo ""
echo "3. 경로 확인:"
traceroute -m 5 google.com
echo ""
echo "4. 포트 확인:"
netstat -tln | grep LISTEN✅ 6. 학습 체크리스트
트러블슈팅 방법론
- 체계적인 접근 방법 이해
- OSI 계층별 접근 이해
- 문제 정의부터 해결까지 과정 이해
트러블슈팅 도구
- ping 사용법 이해
- traceroute 사용법 이해
- nslookup/dig 사용법 이해
- netstat/ss 사용법 이해
- tcpdump 사용법 이해
OSI 계층별 트러블슈팅
- 물리 계층 문제 진단
- 데이터링크 계층 문제 진단
- 네트워크 계층 문제 진단
- 전송 계층 문제 진단
- 응용 계층 문제 진단
실전 시나리오
- 웹사이트 안 열림 문제 해결
- 느린 네트워크 문제 해결
🧪 7. 실습 연습
연습 1: ping 사용
# 기본 ping
ping -c 4 google.com
# 크기 지정
ping -s 1024 -c 4 google.com
# 타임아웃 지정
ping -W 2 -c 4 google.com연습 2: traceroute 사용
# 기본 traceroute
traceroute google.com
# UDP 대신 TCP 사용
traceroute -T -p 80 google.com
# ICMP 대신 사용
traceroute -I google.com연습 3: nslookup/dig 사용
# 기본 쿼리
nslookup google.com
# MX 레코드
nslookup -type=MX google.com
# TXT 레코드
nslookup -type=TXT google.com
# dig 사용
dig +short A google.com
dig +short MX google.com💡 8. 학습 후 생각해볼 질문
-
이 부분을 이해했나요?
- 체계적인 트러블슈팅 과정을 설명할 수 있나요?
- 각 도구의 용도를 설명할 수 있나요?
-
어떻게 확인하지?
- 실제 네트워크 문제에 대해 각 도구를 사용해보세요.
- OSI 계층별로 문제를 진단해보세요.
-
무엇이 가장 어려웠나요?
- OSI 계층별 문제를 구분하기 어렵지 않았나요?
-
어떻게 개선할까요?
- 실제 네트워크 문제를 해결하며 경험을 쌓으세요.
🔗 관련 노트
마지막 업데이트: 2026-01-29 다음 단계: 홈랩 네트워크 구성 실습