문제 : 데이터베이스 애플리케이션은 "slow"입니다. 네트워크 팀은 서버 팀을 비난합니다. 서버 팀은 네트워크를 비난합니다. 그 사이에, 사용자는 좌절되고, 시간은 원형 디버깅에서 낭비됩니다.
해결책: 체계적인, 증거를 사용하는 문제 해결에 과학적인 접근, assumptions, 뿌리 원인을 식별하기 위하여.
Haphazard 문제 해결의 비용 : 낭비된 시간, incorrect는 마스크 실제 문제, 팀 간의 손가락 포인트, 그리고 사용자 경험을 degraded.
네트워크 문제 해결은 근본적으로 과학적인 방법에 있는 운동입니다:
이 문서는 일반적인 pitfalls를 방지하는 네트워크 문제 해결을위한 구조화 된 프레임 워크를 제공합니다 :
기술 진단에 다이빙하기 전에, 당신의 조사 범위를 좁은 다섯 가지 중요한 질문에 대답 :
구성 변경? 새로운 하드웨어? 소프트웨어 업데이트? Topology 수정?
1개의 사용자? 1개의 건물? 모두? 특정한 신청만?
모든 시간? 특정 시간 동안 만? 무작위 발생?
당신은 수요에 문제를 트리거 할 수 있습니까?
연결의 두 끝 모두 체크
OSI 모델은 문제 해결을위한 구조화 된 프레임 워크를 제공합니다. Layer 1 (Physical) upward 또는 Layer 7 (Application)에서 증상에 따라 작동합니다.
사용시: 완전한 연결 손실, 연결 빛 없음, 또는 물리적 층 증후
show interfaces· ethtool eth0show mac address-table· show spanning-treeping· traceroute· show ip routetelnet host port· netstat -an, 패킷 캡처nslookup· dig· curl -v사용시: 기본 연결이 존재하는 애플리케이션 별 문제
레이어 7에서 시작 (Is SharePoint 서비스 실행? IP를 수정하는 DNS?) 및 필요한 경우에만 작동합니다.
이 빠른 진단 나무를 사용하여 레이어가 실패를 식별합니다.
TCP/IP 스택이 작동하지 않습니다. OS 서비스를 확인, 네트워크 드라이버를 다시 설치.
NIC 장애, 잘못된 드라이버, 케이블 플러그. 체크인: ip link show 또는 장치 관리자
체크: 육체적인 케이블, 스위치 항구 상태, VLAN 할당, ARP 테이블
체크: 래핑 테이블, 방화벽 규칙, ACLs. 제품 정보 traceroute 패킷을 찾을
확인: DNS 서버 설정, DNS 서버 가용성, 방화벽 차단 포트 53
확인: 방화벽 규칙, 보안 그룹, 포트에 듣는 서비스
문제는 응용 프로그램 자체, 인증 또는 응용 프로그램 구성으로
루트 원인에 대한 hypothesis가있을 때, 이러한 고립 기술을 사용하여 확인하거나 거부합니다.
소스, 중간 지점 및 소포가 떨어지거나 수정되는지를 식별하는 대상의 캡처 트래픽:
# Capture on client
tcpdump -i eth0 -w client.pcap host server.example.com
# Capture on server
tcpdump -i eth0 -w server.pcap host client.example.com
# Compare:
# - Do packets leave client? (check client.pcap)
# - Do packets arrive at server? (check server.pcap)
# - If yes/no: problem is in the path between
# - If yes/yes but server doesn't respond: server-side issue
단일 장치 내의 연결성을 테스트하여 외부 변수를 제거:
# Test TCP stack without network
ping 127.0.0.1
# Test application listening locally
telnet localhost 80
# Test loopback on network interface (if supported)
# Some NICs support physical loopback for Layer 1 testing
작업 시스템에 대한 구성과 행동 비교:
# Compare interface settings
diff <(ssh working-switch "show run int gi1/0/1") \
<(ssh broken-switch "show run int gi1/0/1")
# Compare routing tables
diff <(ssh router1 "show ip route") \
<(ssh router2 "show ip route")
Proper 문서는 원형 디버깅을 방지합니다.
Issue ID: TICKET-12345
Date/Time: 2026-02-02 14:30 UTC
Reported By: Jane Smith (jane.smith@company.com)
Affected Users: ~50 users in Building A, 3rd floor
Symptom: Cannot access file server \\fileserver01
Initial Observations:
- Issue started around 14:00 UTC
- Only affects Building A, 3rd floor
- Other buildings can access fileserver01
- Ping to fileserver01 (10.1.50.10) times out from affected users
- Ping to default gateway (10.1.30.1) succeeds
Tests Performed:
1. [14:35] Checked switch port status: gi1/0/15 is UP/UP
2. [14:38] Checked VLAN assignment: Port is in VLAN 30 (correct)
3. [14:42] Checked interface errors: 1,234 CRC errors on gi1/0/15
4. [14:45] Replaced patch cable - still seeing CRC errors
5. [14:50] Moved uplink to different port (gi1/0/16) - errors persist
6. [14:55] Checked fiber cleanliness - dirty connector found
Root Cause:
Dirty fiber connector on uplink between Building A floor switch
and distribution switch causing CRC errors and packet loss
Resolution:
Cleaned fiber connector with proper cleaning kit. CRC errors
dropped to zero. File server access restored.
Verification:
Users confirmed file server accessible. Monitored for 15 minutes
with no errors.
Time to Resolution: 25 minutes
데이터베이스 애플리케이션 응답 시간은 <100ms에서 5 + 초로 정렬됩니다. 신청 팀은 "network latency"를 비난했습니다.
데이터베이스 서버 OS 버퍼는 높 대역폭 × 지연 제품에 너무 작습니다. TCP 창을 채울 것입니다.
# Increased TCP receive buffers on Linux database server
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sysctl -w net.core.rmem_max=16777216
가정하지 말라: "Slow"는 항상 "네트워크 대기 시간"을 의미하지 않습니다. 항상 증거를 수집 (잠금, 행동을위한 패킷 캡처) 결론에 뛰어 전에.
서버 연결은, 특히 짐의 밑에 무작위로 떨어질 것입니다. 때로는 잘 작동, 때로는 완전히 반응하지.
자동 협상 실패. 서버 협상 된 풀 듀플렉스, 스위치는 반 듀플렉스로 다시 떨어졌다. 양측이 동시에 전달하도록 시도했을 때, Collisions는 부하의 밑에만 발생했습니다.
! Cisco switch - force full duplex
interface GigabitEthernet1/0/10
speed 1000
duplex full
두 끝 모두 체크: 공용영역 상태는 협상한 조정을 보여줍니다. mismatch는 자동 협상이 실패합니다. 서버에 대한 항상 하드 코드 속도 / 듀플렉스.
사용자는 일부 웹 사이트를 검색 할 수 있습니다 (Google, Yahoo) 하지만 다른 사람 (은행 웹 사이트, 회사 포털). 작은 HTTP 요청은, 큰 페이지는 밖으로 시간.
ping -M do -s 1472 성공, ping -M do -s 1473 실패하다VPN 터널은 MTU에서 1400으로 감소했지만 방화벽은 ICMP "Fragmentation Needed"메시지를 차단했습니다. Path MTU Discovery (PMTUD)는 MTU 블랙 홀을 만들 수 없습니다. 작은 패킷 적합, DF 비트 세트 큰 패킷은 조용히 떨어졌다.
! Implemented TCP MSS clamping on router
interface Tunnel0
ip tcp adjust-mss 1360
! Alternative: Allow ICMP Type 3 Code 4 through firewall
access-list 101 permit icmp any any packet-too-big
크기 사정: 작은 요청이 작동하지만 큰 전송이 실패하면 MTU/fragmentation 문제가 의심합니다. DF 비트를 사용하여 경로 MTU를 테스트합니다.
음성 통화는 choppy 오디오, intermittent dropouts가 있었습니다. 영업 시간 동안 만 발생 (9am-5pm).
QoS 정책은 존재하지만 대역폭 할당은 뒤쪽이었다 : 최고 노력은 60 %, 음성은 5 %를 얻었다. 데이터 트래픽이 증가할 때 영업 시간 동안 음성 패킷은 queue overflow로 인해 떨어졌습니다.
! Corrected QoS policy
policy-map WAN-QOS
class VOICE
priority percent 33
class VIDEO
bandwidth percent 25
class CRITICAL-DATA
bandwidth percent 20
class class-default
bandwidth percent 22
시간 기반 문제 = 용량 : 문제가 바쁜 시간 동안 발생하면 하드 실패는 아니지만 용량 / QoS 문제입니다. queue 통계를 확인, 뿐만 아니라 전체 대역폭.
| 증상 | 제품정보 | 실행 명령 | 자주 묻는 질문 |
|---|---|---|---|
| 연결 빛 없음 | 층 1 | show interfaces |
상태: 아래로, 운반대 없음, 케이블 unplugged |
| 패킷 손실 | 층 1/2 | show interfaces |
CRC 오류, 런트, 거인, 충돌, 늦은 충돌 |
| 게이트를 ping 할 수 없습니다 | 층 2 | arp -a |
ARP 항목 없음, MAC는 배운, STP 차단 |
| 먼 subnet를 도달할 수 없습니다 | 층 3 | traceroute |
미스링 경로, 잘못된 next-hop, 라우팅 루프 |
| 연결 거부 | 층 4 | telnet host port |
듣지 않는 서비스, 방화벽 블록, TCP RST |
| 낮은 성능 | 층 4 | ping (RTT) |
높은 지연, 대역폭 제한, TCP 전송, 0 창 |
| hostname을 해결할 수 없습니다. | 층 7 | nslookup |
DNS 서버, 잘못된 DNS 구성, NXDOMAIN |
| 중간 방울 | Layer 1/2 | ping -f (flood) |
이중 mismatch, 케이블 실패, STP reconvergence |
| 때때로, 다른 사람 | 지원하다 | Extended ping |
로드 밸런싱 문제, ECMP asymmetry, 상태 테이블 오버플로우 |
납품업자 TAC 또는 수석 엔지니어에 escalate 할 때 알고 있습니다. Escalate 때:
모든 문제 해결 세션은 학습 기회입니다. 개인 지식 기반 구축:
# Example structure
~/troubleshooting-journal/
├── 2026-01-15-duplex-mismatch.md
├── 2026-01-22-mtu-black-hole.md
├── 2026-02-02-tcp-window-exhaustion.md
└── README.md # Index of all issues
# Each file contains:
# - Symptom
# - Diagnostic steps
# - Root cause
# - Resolution
# - Lessons learned
# - Related tickets/documentation
문제 해결에 대한 빠른 참조 시나리오에 의해 자주 사용 된 명령을 구성합니다.
문제를 이해하지 않고 구성을 변경하는 것은 종종 더 나쁜 것 또는 실제 문제를 마스크.
종종 "network issues"는 응용 프로그램, 서버, 또는 클라이언트 측 문제입니다. 비난을 받아들이기 전에 증거.
당신은 이미 수행 한 테스트 반복 시간을 낭비 할 수 있습니다, 또는 당신이 시도 한 동료에 설명 할 수 없습니다.
간헐적 인 문제는 종종 실패의 조기 경고 징후입니다. 그들이 중요하기 전에 그들을 투자.
장치를 재부팅 할 수 있지만, 재부팅을 필요로하지 않는 경우 문제가 재부팅됩니다.
네트워크 문제 해결은 모두 과학과 예술입니다. 과학은 진단 도구를 올바르게 사용하여 체계적인 방법론을 따르고, 의정서를 이해합니다. 예술은 증상을 기반으로 한 첫 번째 테스트를 알고, 경험에서 패턴을 인식하고, 에스컬레이트 할 때 알고 있습니다.
이 문서에서 체계적인 접근 방식에 따라 적절한 질문, OSI 모델을 통해 작업 방법적으로, 당신의 단계를 문서화하고, 각 문제에서 학습 - 당신은 문제 해결에 더 효율적이고 낭비되는 시간 및 잘못된 수정을 유도하는 일반적인 pitfalls를 방지합니다.
기억하기: 목표는 단지 서비스를 복원하는 것이 아니라 WHY를 이해하기 위해 다시 일어나서 방지 할 수 있습니다.
최근 업데이트: 2월 2, 2026 | 저자: Baud9600 기술 팀