[NET-010][실무] 인터넷 연결 문제를 세 단계로 찾기 > IT 기술 공유

본문 바로가기
사이트 내 전체검색

IT 기술 공유

[NET-010][실무] 인터넷 연결 문제를 세 단계로 찾기

페이지 정보

profile_image
작성자 기술팀장
댓글 0건 조회 133회 작성일 26-09-04 23:33

본문

[이번 수업]
웹사이트가 열리지 않을 때 무작정 다시 시작하지 않고 ping·dig·curl로 문제 구간을 좁힙니다. 각 도구가 확인하는 계층과 결과의 한계를 함께 배웁니다.

[선수지식]
IP 주소, DNS, TCP 포트, HTTP·HTTPS를 알아야 합니다. 진단은 관찰 결과를 하나씩 쌓아 원인을 좁히는 과정입니다.

[학습목표]
- ping으로 기본 IP 통신을 확인합니다.
- dig로 이름이 주소로 바뀌는지 확인합니다.
- curl로 HTTPS 응답 상태와 시간을 확인합니다.

[핵심개념]
ping은 ICMP Echo 요청과 응답을 사용해 대상까지 왕복 여부와 시간을 봅니다. 그러나 방화벽이나 서버가 ICMP만 막을 수 있으므로 ping 실패가 곧 서비스 장애를 뜻하지는 않습니다. 먼저 `127.0.0.1`로 내 컴퓨터의 네트워크 기능을 확인한 뒤 허가된 대상을 검사합니다.

dig는 DNS 질의를 보내 A 같은 레코드를 확인합니다. 이름 조회만 실패하고 IP 통신은 된다면 DNS 설정이나 해석기 문제를 의심할 수 있습니다. 주소는 여러 개이거나 시간에 따라 달라질 수 있습니다.

curl은 URL로 실제 애플리케이션 계층을 확인합니다. HTTPS 요청에는 이름 해석, TCP 연결, TLS 보안 연결, HTTP 응답이 차례로 포함됩니다. HTTP 상태 코드와 curl 종료 코드는 다릅니다. 예를 들어 서버가 404를 정상 전송하면 통신은 성공했지만 요청한 자원은 없는 것입니다. 타임아웃을 지정하면 진단 명령이 끝없이 기다리지 않습니다.

권장 순서는 `DNS 결과 → IP 도달 여부 → HTTPS 응답`입니다. 한 번에 조건 하나만 바꾸고 실행 시각, 대상, 명령, 결과를 기록하면 재현과 전달이 쉬워집니다.

[따라하기]
예약된 공개 예제 도메인과 내 컴퓨터만 사용합니다. macOS/Linux 터미널에서 실행하세요.

```sh
ping -c 4 127.0.0.1
dig example.com A +short
curl --connect-timeout 3 --max-time 10 -sS -o /dev/null -w 'status=%{http_code} ip=%{remote_ip} time=%{time_total}\n' https://example.com/
```

예상 결과는 ping의 `0.0% packet loss`, dig의 한 개 이상 IP 주소, curl의 `status=200`입니다. IP와 시간은 환경마다 달라집니다. ping이 성공하면 로컬 IP 기능이 동작한다는 뜻일 뿐 인터넷 전체를 보장하지 않습니다. dig 결과가 있고 curl만 실패하면 오류 문구에서 연결 거부, 시간 초과, 인증서 문제를 구분합니다.

Windows 명령 프롬프트에서는 횟수 옵션이 달라 `ping -n 4 127.0.0.1`을 씁니다. dig가 기본 설치되지 않았다면 `nslookup example.com`으로 이름 조회를 확인하거나 WSL의 dig를 사용합니다. PowerShell에서는 별칭 혼동을 피하려고 `curl.exe -I --max-time 10 https://example.com/`을 실행하며 응답 첫 줄에서 200을 확인합니다.

문제를 더 나눌 때는 `curl -I`로 응답 헤더만 요청합니다. 리다이렉트까지 따라가야 하면 `curl -L -I URL`을 사용하되, 어느 단계에서 다른 주소로 이동했는지 함께 기록합니다.

[흔한 실수]
ping 성공만 보고 웹서비스도 정상이라고 결론내리거나, IP가 바뀐 것을 장애로 오해하기 쉽습니다. 회사 프록시·VPN·방화벽을 끄기 전에 정책과 변경 권한을 확인합니다. 한 번의 빠른 응답보다 여러 시점의 일관된 결과가 중요합니다.

[보안 주의]
본인 소유 또는 공개 예제처럼 허용된 대상만 진단하며 주소 범위 탐색이나 반복 부하는 하지 않습니다. 토큰·쿠키가 든 URL이나 헤더를 명령 기록과 화면 캡처에 남기지 않습니다. TLS 오류를 `-k`로 무시하지 말고 시스템 시각, 도메인과 인증서를 확인합니다.

[직접 해볼 과제]
위 세 명령의 실행 시각, 성공 여부, 핵심 결과를 표로 기록하세요. 그다음 존재하지 않는 하위 도메인 `missing.example.com`을 dig로 조회해 정상 도메인과 출력 차이를 설명하세요.

[확인문제]
1. ping 실패만으로 웹사이트가 중단됐다고 단정할 수 없는 이유는 무엇인가요?
2. dig는 성공하지만 curl이 실패할 때 다음으로 확인할 단계는 무엇인가요?
3. curl의 HTTP 상태 코드와 프로그램 종료 코드는 무엇이 다른가요?

[다음 학습]
CLOUD-010에서는 비용과 예산 알림을 다룹니다. NET-011에서는 타임아웃·재시도·연결 장애를 견디는 설계를 배웁니다.

[공식 참고 자료]
- iputils ping: https://github.com/iputils/iputils/blob/master/doc/ping.xml
- curl 명령: https://curl.se/docs/manpage.html
- BIND 9 dig: https://bind9.readthedocs.io/en/latest/manpages.html#dig-dns-lookup-utility
- Microsoft ping: https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/ping

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

접속자집계

오늘
1,686
어제
5,103
최대
16,772
전체
772,740
Copyright © 소유하신 도메인. All rights reserved.