Network Troubleshooting Methodology - The Systematic Approach

네트워크 문제 해결 방법론: 체계적인 접근

왜 방법론 Matters

문제 : 데이터베이스 애플리케이션은 "slow"입니다. 네트워크 팀은 서버 팀을 비난합니다. 서버 팀은 네트워크를 비난합니다. 그 사이에, 사용자는 좌절되고, 시간은 원형 디버깅에서 낭비됩니다.

해결책: 체계적인, 증거를 사용하는 문제 해결에 과학적인 접근, assumptions, 뿌리 원인을 식별하기 위하여.

Haphazard 문제 해결의 비용 : 낭비된 시간, incorrect는 마스크 실제 문제, 팀 간의 손가락 포인트, 그리고 사용자 경험을 degraded.

소개: 네트워킹에 적용되는 과학적인 방법

네트워크 문제 해결은 근본적으로 과학적인 방법에 있는 운동입니다:

  1. 오시는 길 증상 및 수집 데이터
  2. hypothesis 형태 루트 원인에 대해
  3. 시험 hypothesis 진단 도구
  4. Analyze 결과 그리고 hypothesis를 확인하거나 거부하십시오
  5. 문제 해결 확인 된 루트 원인에 기반
  6. 계정 만들기 문제 해결

이 문서는 일반적인 pitfalls를 방지하는 네트워크 문제 해결을위한 구조화 된 프레임 워크를 제공합니다 :

  • 확인 bias (당신의 초기 추측을 지원하는 증거만 보기)
  • 진단없이 랜덤 변경 ( "spray 및기도" 접근)
  • 뿌리 대신 증상 수정
  • 어떤 시도를 문서없이 원형 디버깅

다섯 가지 주요 질문

기술 진단에 다이빙하기 전에, 당신의 조사 범위를 좁은 다섯 가지 중요한 질문에 대답 :

질문 1: 최근 변경된 것?

구성 변경? 새로운 하드웨어? 소프트웨어 업데이트? Topology 수정?

  • 비밀번호 찾기
  • 구성 관리 시스템의 최근 커밋
  • 질문 : "당신은 어제 일합니까?"
·
질문 2: 누가 영향을 받습니까?

1개의 사용자? 1개의 건물? 모두? 특정한 신청만?

  • 1개의 장치: 로컬 이슈 (NIC, 케이블, 구성)
  • 1개의 subnet: 게이트웨이, DHCP, 또는 스위치 문제
  • 모두 : 핵심 인프라, ISP, 또는 광범위한 문제
  • 특정 앱: 응용 서버, 방화벽 규칙, 또는 DNS
질문 3: 그것은 일정한 또는 Intermittent입니까?

모든 시간? 특정 시간 동안 만? 무작위 발생?

  • 지불 조건: 단단한 실패 (케이블 커트, misconfiguration, 아래로 서비스)
  • 시간 근거: 영업 시간 동안의 혼잡, 예정된 프로세스
  • Intermittent/Random: Duplex mismatch, 하드웨어 실패, 간헐적인 링크
질문 4: 당신은 그것을 Reproduce 할 수 있습니까?

당신은 수요에 문제를 트리거 할 수 있습니까?

  • 예: 진단하는 훨씬 더 쉬운 (갑상선을 시험할 수 있습니다)
  • 아니오: 모니터링/로깅을 설정하고 반복을 기다립니다.
질문 5: 다른 측은 무엇을 보십시오?

연결의 두 끝 모두 체크

  • Client 관점 vs. 서버 관점
  • Packet 캡처 소스 vs. 목적지
  • 비대칭 라우팅? vs. 수신을 위한 다른 경로?

OSI 모델 기반 진단 접근

OSI 모델은 문제 해결을위한 구조화 된 프레임 워크를 제공합니다. Layer 1 (Physical) upward 또는 Layer 7 (Application)에서 증상에 따라 작동합니다.

밑바닥 위로 접근 (Layer 1 → 층 7)

사용시: 완전한 연결 손실, 연결 빛 없음, 또는 물리적 층 증후

층 1: 육체
  • 체크: 연결되는 케이블? 연결 빛에? 섬유 청소?
  • 명령: show interfaces· ethtool eth0
  • 보기 : CRC 오류, 충돌, 늦은 충돌, 런트, 거인
Layer 2: 데이터 링크
  • 체크: 정확한 VLAN? 포트 활성화? STP 차단?
  • 명령: show mac address-table· show spanning-tree
  • 보기 : MAC 핑, STP topology 변경, VLAN mismatches
레이어 3: 네트워크
  • 체크: 과태 출입구를 ping할 수 있습니까? 테이블 수정?
  • 명령: ping· traceroute· show ip route
  • 찾아 봐: 미스링 경로, 잘못된 next-hop, routing 루프
층 4: 수송
  • 체크: TCP 연결을 설치할 수 있습니까? 방화벽 차단 포트?
  • 명령: telnet host port· netstat -an, 패킷 캡처
  • 보기 : TCP 전송, 제로 창, RST 패킷
층 5-7 : 세션 / 발표 / 신청
  • 확인: DNS 해결? 신청 응답? 인증 작업?
  • 명령: nslookup· dig· curl -v
  • 보기: DNS 실패, 응용 프로그램 오류, timeout 문제

Top-Down 접근 (Layer 7 → 층 1)

사용시: 기본 연결이 존재하는 애플리케이션 별 문제

예: "나는 인터넷을 검색 할 수 있지만 회사 SharePoint 사이트에 액세스 할 수 없습니다."

레이어 7에서 시작 (Is SharePoint 서비스 실행? IP를 수정하는 DNS?) 및 필요한 경우에만 작동합니다.

결정 트리: 그것은 층 1, 2, 또는 3?

이 빠른 진단 나무를 사용하여 레이어가 실패를 식별합니다.

localhost (127.0.0.1)를 핑할 수 있습니까?
↓ 없음
문제: 운영 체계/소프트웨어 문제점

TCP/IP 스택이 작동하지 않습니다. OS 서비스를 확인, 네트워크 드라이버를 다시 설치.

↓ 예
당신은 당신의 자신의 IP 주소를 ping 수 있습니까?
↓ NO
문제: 레이어 1/2 - 로컬 네트워크 인터페이스

NIC 장애, 잘못된 드라이버, 케이블 플러그. 체크인: ip link show 또는 장치 관리자

↓ YES
기본 게이트를 핑할 수 있습니까?
↓ NO
문제: 레이어 1/2 - 로컬 네트워크

체크: 육체적인 케이블, 스위치 항구 상태, VLAN 할당, ARP 테이블

↓ YES
IP 주소로 원격 호스트를 핑할 수 있습니까?
↓ NO
문제: 층 3 - 여정

체크: 래핑 테이블, 방화벽 규칙, ACLs. 제품 정보 traceroute 패킷을 찾을

↓ YES
DNS(nslookup hostname)을 해결할 수 있습니까?
↓ NO
문제: DNS 구성

확인: DNS 서버 설정, DNS 서버 가용성, 방화벽 차단 포트 53

↓ YES
애플리케이션 포트에 도달 할 수 있습니다 (telnet host port)?
↓ NO
문제: 방화벽 / 포트 차단

확인: 방화벽 규칙, 보안 그룹, 포트에 듣는 서비스

↓ YES
네트워크는 OK - 신청 층 문제점

문제는 응용 프로그램 자체, 인증 또는 응용 프로그램 구성으로

고립 기술

루트 원인에 대한 hypothesis가있을 때, 이러한 고립 기술을 사용하여 확인하거나 거부합니다.

1. 성분 Systematically 대체하십시오

팁: 한 번에 한 변수를 변경합니다. 케이블과 스위치 포트를 모두 교환하면 고정되지 않습니다.
  • Swap 패치 케이블 알려진 좋은 케이블
  • 다른 스위치 항구에 시험
  • 다른 NIC를 시도 (또는 USB 네트워크 어댑터)
  • 다른 클라이언트 장치에서 시험
  • 다른 VLAN/subnet로 이동

2. 여러 점에서 패킷 캡처

소스, 중간 지점 및 소포가 떨어지거나 수정되는지를 식별하는 대상의 캡처 트래픽:

# 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

3. 루프백 테스트

단일 장치 내의 연결성을 테스트하여 외부 변수를 제거:

# 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

4. Known-Good Baseline 비교

작업 시스템에 대한 구성과 행동 비교:

# 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
왜 문서 매트: 이 기록 없이, 다음 시간 누군가는 그 스위치에 CRC 오류를 볼 수 있습니다, 그들은 즉시 섬유 청결을 검사하는 대신 케이블과 테스트 포트를 교체 할 수 있습니다.

Real-World 사례 연구

사례 연구 1 : "네트워크가 느리다"(Actually : TCP 창 배출)

증상

데이터베이스 애플리케이션 응답 시간은 <100ms에서 5 + 초로 정렬됩니다. 신청 팀은 "network latency"를 비난했습니다.

초기 가정 (잘못된)

  • 네트워크 혼잡
  • WAN 링크 포화
  • 방화벽 병목

진단 과정

  1. Ping 시험: RTT = 2ms (외부, 레이어 3 대기 시간 규칙)
  2. 대역폭 시험 (iperf): 1 Gbps 링크에 950 Mbps (응식 없음)
  3. 패킷 캡처: 데이터베이스 서버에서 TCP Zero Window 패킷 공개
  4. 서버 검사: 데이터베이스 서버는 버퍼 = 64KB (지속!)

뿌리 원인

데이터베이스 서버 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"는 항상 "네트워크 대기 시간"을 의미하지 않습니다. 항상 증거를 수집 (잠금, 행동을위한 패킷 캡처) 결론에 뛰어 전에.

사례 연구 2 : Intermittent Connectivity (Actually : Duplex Mismatch)

Symptom

서버 연결은, 특히 짐의 밑에 무작위로 떨어질 것입니다. 때로는 잘 작동, 때로는 완전히 반응하지.

Initial Assumptions (Wrong)

  • 페이스 북
  • 나쁜 케이블
  • Switch 하드웨어 문제

Diagnostic Process

  1. 공용영역 검사: 서버 NIC = 1000/Full의 스위치 항구 = 1000/Half (mismatch!)
  2. 오류 카운터 : 스위치 항구에 대규모 충돌 조사
  3. 늦은 충돌 : 이중 mismatch의 표시

Root Cause

자동 협상 실패. 서버 협상 된 풀 듀플렉스, 스위치는 반 듀플렉스로 다시 떨어졌다. 양측이 동시에 전달하도록 시도했을 때, Collisions는 부하의 밑에만 발생했습니다.

Resolution

! Cisco switch - force full duplex interface GigabitEthernet1/0/10 speed 1000 duplex full

Lesson Learned

두 끝 모두 체크: 공용영역 상태는 협상한 조정을 보여줍니다. mismatch는 자동 협상이 실패합니다. 서버에 대한 항상 하드 코드 속도 / 듀플렉스.

사례 연구 3 : "일치 특정 웹 사이트에 도달 할 수 없습니다" (실제로 : MTU / PMTUD 블랙 홀)

Symptom

사용자는 일부 웹 사이트를 검색 할 수 있습니다 (Google, Yahoo) 하지만 다른 사람 (은행 웹 사이트, 회사 포털). 작은 HTTP 요청은, 큰 페이지는 밖으로 시간.

Initial Assumptions (Wrong)

  • DNS 문제
  • 방화벽 차단 특정 사이트
  • ISP 라우팅 문제

Diagnostic Process

  1. DNS 해결책: 모든 사이트에 대해 잘 작동합니다.
  2. Ping 시험: "unreachable"사이트를 ping 할 수 있습니다
  3. 작은 HTTP 요청 (curl): 작은 페이지를 위한 작품
  4. 큰 다운로드: TCP 핸디케이 후 스톨
  5. MTU 시험: ping -M do -s 1472 성공, ping -M do -s 1473 실패하다
  6. ICMP 감시: "Fragmentation Needed" 없음 (Type 3 Code 4) 메시지 수신

Root Cause

VPN 터널은 MTU에서 1400으로 감소했지만 방화벽은 ICMP "Fragmentation Needed"메시지를 차단했습니다. Path MTU Discovery (PMTUD)는 MTU 블랙 홀을 만들 수 없습니다. 작은 패킷 적합, DF 비트 세트 큰 패킷은 조용히 떨어졌다.

Resolution

! 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

Lesson Learned

크기 사정: 작은 요청이 작동하지만 큰 전송이 실패하면 MTU/fragmentation 문제가 의심합니다. DF 비트를 사용하여 경로 MTU를 테스트합니다.

사례 연구 4 : VoIP 품질 문제 (Actually : QoS Misconfiguration)

Symptom

음성 통화는 choppy 오디오, intermittent dropouts가 있었습니다. 영업 시간 동안 만 발생 (9am-5pm).

Initial Assumptions (Wrong)

  • 충분한 대역폭
  • VoIP 서버 과부하
  • ISP 연결 질

Diagnostic Process

  1. 대역폭 시험: 링크 단지 40% 바쁜 시간 동안 활용
  2. QoS 검사: DSCP EF (46)로 표시된 음성 트래픽
  3. Queue 검사: 음성 큐는 단지 5 % 대역폭 할당 (총 33 %)
  4. 패킷 캡처: 혼잡 중에 떨어지는 음성 패킷

Root Cause

QoS 정책은 존재하지만 대역폭 할당은 뒤쪽이었다 : 최고 노력은 60 %, 음성은 5 %를 얻었다. 데이터 트래픽이 증가할 때 영업 시간 동안 음성 패킷은 queue overflow로 인해 떨어졌습니다.

Resolution

! 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

Lesson Learned

시간 기반 문제 = 용량 : 문제가 바쁜 시간 동안 발생하면 하드 실패는 아니지만 용량 / QoS 문제입니다. queue 통계를 확인, 뿐만 아니라 전체 대역폭.

Symptom의 명령 참조

증상 제품정보 실행 명령 자주 묻는 질문
연결 빛 없음 층 1 show interfaces
ethtool eth0
상태: 아래로, 운반대 없음, 케이블 unplugged
패킷 손실 층 1/2 show interfaces
show interfaces counters errors
CRC 오류, 런트, 거인, 충돌, 늦은 충돌
게이트를 ping 할 수 없습니다 층 2 arp -a
show mac address-table
show spanning-tree
ARP 항목 없음, MAC는 배운, STP 차단
먼 subnet를 도달할 수 없습니다 층 3 traceroute
show ip route
show ip route summary
미스링 경로, 잘못된 next-hop, 라우팅 루프
연결 거부 층 4 telnet host port
netstat -an
tcpdump
듣지 않는 서비스, 방화벽 블록, TCP RST
낮은 성능 층 4 ping (RTT)
iperf3
tcpdump
show interfaces
높은 지연, 대역폭 제한, TCP 전송, 0 창
hostname을 해결할 수 없습니다. 층 7 nslookup
dig
cat /etc/resolv.conf
DNS 서버, 잘못된 DNS 구성, NXDOMAIN
중간 방울 Layer 1/2 ping -f (flood)
show logging
show interfaces
이중 mismatch, 케이블 실패, STP reconvergence
때때로, 다른 사람 지원하다 Extended ping
Packet capture
Interface statistics
로드 밸런싱 문제, ECMP asymmetry, 상태 테이블 오버플로우

Escalate의 경우

납품업자 TAC 또는 수석 엔지니어에 escalate 할 때 알고 있습니다. Escalate 때:

  • 당신은 당신의 지식 기반에 모든 문제 해결 단계를 소진
  • 문제에는 액세스 / 권한이 없습니다.
  • 문제는 공급 업체 소프트웨어 버그 또는 하드웨어 결함을 포함
  • 비즈니스 영향은 중요하고 시간 감지
  • 여러 팀이 공동 작업해야합니다 (application + 네트워크 + 서버)
확장하기 전에: 당신이 시도한 모든 문서. TAC 엔지니어는 이 정보를 당신의 단계를 반복하기 위하여 필요로 합니다. 포함 :
  • 완전한 symptom 묘사
  • 시작될 때의 타임라인
  • 진단 명령 실행 및 출력
  • 구성 백업
  • Packet 캡처 (관련 경우)
  • 당신이 이미 시도한 것

개인 지식 기반 구축

모든 문제 해결 세션은 학습 기회입니다. 개인 지식 기반 구축:

1. Troubleshooting Journal 작성

# 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

2. 명령 열 시트 구축

문제 해결에 대한 빠른 참조 시나리오에 의해 자주 사용 된 명령을 구성합니다.

3. 네트워크 문서

  • Topology 다이어그램 (Layer 2 및 Layer 3)
  • IP 주소 계획 문서
  • VLAN 할당
  • 표준 구성 (templates)
  • Known-good baselines (문제의 앞에 공용영역)

피할 것이다 일반적인 항원

❌ DON'T: 진단 없이 무작위 변화를 만드십시오

문제를 이해하지 않고 구성을 변경하는 것은 종종 더 나쁜 것 또는 실제 문제를 마스크.

❌ DON'T: 네트워크가 항상 결함으로

종종 "network issues"는 응용 프로그램, 서버, 또는 클라이언트 측 문제입니다. 비난을 받아들이기 전에 증거.

❌ DON'T: 문제 해결 단계를 문서화

당신은 이미 수행 한 테스트 반복 시간을 낭비 할 수 있습니다, 또는 당신이 시도 한 동료에 설명 할 수 없습니다.

❌ DON'T: 간헐적인 문제

간헐적 인 문제는 종종 실패의 조기 경고 징후입니다. 그들이 중요하기 전에 그들을 투자.

❌ DON'T: 루트 원인 대신 증상 수정

장치를 재부팅 할 수 있지만, 재부팅을 필요로하지 않는 경우 문제가 재부팅됩니다.

요약: 체계적인 문제 해결 체크리스트

✓ 시작하기 전에

  • 5가지 키 질문(What changes? 누가 영향을 받습니까? 정상 또는 간헐? 관련 제품 다른 쪽은 무엇을 볼까요?)
  • 초기 증상 및 사용자 보고서
  • 자주 묻는 질문

✓ 문제 해결 중

  • OSI 레이어 (bottom-up 또는 top-down)를 통해 방법적으로 일하십시오.
  • 테스트시 한 번에 한 변수를 변경
  • 각 시험 및 그 결과 문서
  • 패킷 캡처를 사용하여 실제 트래픽 동작을 볼 수 있습니다.
  • 알려진 좋은 기본에 대한 비교

✓ 해결책 후에

  • 문제를 해결하기
  • 문서 뿌리 원인 및 해결
  • 지식 베이스 업데이트
  • 설정이 변경된 경우, 업데이트 문서
  • 고려: 모니터링이 먼저 잡을 수 있습니까?

관련 기사

네트워크 문제 해결은 모두 과학과 예술입니다. 과학은 진단 도구를 올바르게 사용하여 체계적인 방법론을 따르고, 의정서를 이해합니다. 예술은 증상을 기반으로 한 첫 번째 테스트를 알고, 경험에서 패턴을 인식하고, 에스컬레이트 할 때 알고 있습니다.

이 문서에서 체계적인 접근 방식에 따라 적절한 질문, OSI 모델을 통해 작업 방법적으로, 당신의 단계를 문서화하고, 각 문제에서 학습 - 당신은 문제 해결에 더 효율적이고 낭비되는 시간 및 잘못된 수정을 유도하는 일반적인 pitfalls를 방지합니다.

기억하기: 목표는 단지 서비스를 복원하는 것이 아니라 WHY를 이해하기 위해 다시 일어나서 방지 할 수 있습니다.


최근 업데이트: 2월 2, 2026 | 저자: Baud9600 기술 팀