네트워크 트러블슈팅 · 계층별로 좁히기 · 퀴즈
퀴즈: 계층 좁히기와 패킷 읽기
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
`Connection refused` 를 받았습니다. 이 사실이 이미 증명하는 것은?
- 라우팅·보안그룹·NAT 등 경로상의 관문을 이미 다 통과했다
- 대상 포트에서 서비스가 돌고 있다
- DNS 해석이 실패했다
- 방화벽이 그 포트를 막고 있다
애플리케이션 로그에 '타임아웃 30초' 라고 설정돼 있는데 실제 실패까지 127초가 걸렸습니다. 무엇을 뜻하나요?
- 서버가 127초 동안 요청을 처리하다가 마지막에 실패를 돌려줬다
- DNS 재시도가 겹쳐 이름 해석에만 100초 가까이 걸렸다
- 커널의 SYN 재전송이 모두 소진된 것이며, 설정한 타임아웃이 적용되지 않고 있다
- MTU 불일치로 재전송이 늘어 전체 응답이 그만큼 밀렸다
tcpdump 출력에서 같은 시퀀스의 `[S]` 가 1초, 2초, 4초 간격으로 반복되고 응답 줄이 없습니다. 진단은?
- 상대가 RST 로 거절했다
- TLS 핸드셰이크가 실패했다
- 애플리케이션이 accept 를 늦게 한다
- SYN 이 어딘가에서 조용히 버려지고 있다(DROP)
`tcpdump -nn` 에서 `-nn` 을 쓰는 실무적 이유는?
- 이름과 포트를 해석하지 않아 캡처 중에 DNS 질의가 새로 나가는 것을 막는다
- 출력 문자열이 짧아져 캡처 파일 크기가 눈에 띄게 줄어든다
- IPv6 주소를 가진 패킷을 출력에서 아예 제외해 준다
- 커널 캡처 버퍼가 넘쳐 패킷이 버려지는 것을 줄여 준다
방화벽에서 ICMP 를 '보안을 위해 전부 차단' 했더니 큰 응답만 멈추는 증상이 생겼습니다. 원인은?
- ping 이 막혀 헬스체크가 실패했다
- ICMP 리다이렉트가 막혀 라우팅이 깨졌다
- 경로 MTU 발견에 쓰이는 ICMP 타입 3 코드 4 까지 막혀 큰 패킷이 블랙홀에 빠졌다
- ARP 가 막혔다
컨테이너 안에서 tcpdump 가 동작하지 않을 때 표준적인 우회로는?
- 운영 중인 컨테이너를 privileged 로 다시 띄워 권한을 올린다
- 같은 네트워크 네임스페이스에 진단용 컨테이너를 붙이거나 노드에서 그 veth 를 캡처한다
- 애플리케이션 코드에 패킷 캡처 기능을 직접 넣어 다시 배포한다
- 호스트 방화벽 로그를 캡처 결과 대신 사용해 추정한다