리눅스 - ping & traceroute

코린이·2024년 11월 30일

Linux

목록 보기
23/27

📌 ping

리눅스에서 ping 명령어를 통해 특정 서버와의 네트워크 연결 상태를 확인할 수 있다. ping 명령어는 ICMP(인터넷 제어 메시지 프로토콜)를 사용하여 클라이언트와 서버 간의 요청과 응답을 주고받으며, 이를 통해 두 호스트(클라이언트와 서버)의 통신 가능 여부와 연결 상태, 응답 시간을 측정할 수 있다.

일반적으로 네트워크 연결 문제 진단, 지연 시간 확인, 원격 호스트에 연결할 수 있는지를 확인하는 데 사용된다.

# 명령어 기본 문법
ping <옵션> <도메인 or ip 주소>
# ping 옵션 리스트
-c <count> : 지정한 횟수만큼 ping 요청 (기본적으로 핑은 무한 반복)
-i <time_interval> : 핑 간격 설정 (기본 값은 1초, 단위 : 초)
-W <time_out> : 응답 대기시간 설정 (응답 시간 설정 후 응답이 없으면 타임 아웃 오류 표시, 단위 : 초)
-s <size> : ICMP 패킷의 크기 설정 (기본 값은 56byte)
-t <TTL> : ping 패킷의 TTL 설정 (요청 TTL 설정, 기본 값은 64, 1~255 사이 값으로 설정 가능)
# 네이버와의 ping 확인
ping naver.com


🔎 분석출력 내용 분석

ping명령어의 출력 내용을 분석하면 다음과 같다.

root@8537f95009c9:/tmp# ping naver.com
PING naver.com (223.130.192.248) 56(84) bytes of data.
64 bytes from 223.130.192.248: icmp_seq=1 ttl=63 time=0.780 ms

PING naver.com (223.130.192.248) 56(84) bytes of data.

  • naver.com : 도메인 이름
  • 223.130.192.248 : 도메인에 대한 IP 주소
  • 56 : ICMP 요청 패킷의 크기
  • 84 : 헤더를 포함한 ICMP 전체 패킷 크기
  • bytes of data : 데이터 단위

64 bytes from 223.130.192.248: icmp_seq=1 ttl=63 time=0.780 ms

  • 64 bytes from 223.130.192.248 : 응답 패킷의 크기 및 응답 서버 주소
  • icmp_seq=1 : 응답 시퀀스(시퀀스의 경우 순차적으로 증가)
  • ttl=63 : 네이버 서버에서 응답받은 ttl값 (응답 패킷을 보낼 때 거쳐 가는 라우터를 의미하며, 1개의 라우터를 거쳤음을 나타냄)
  • time=0.780 ms : 응답 시간

📌 traceroute

리눅스에서 traceroute 명령어를 통해 요청 패킷이 목적지(서버)까지 이동하는 경로를 추적할 수 있다.

  • traceroute는 네트워크 상에서 패킷이 어떤 라우터들을 거쳐서 목적지까지 도달하는지를 확인
  • 패킷을 전달할 때는 UDP(User Datagram Protocol) 프로토콜을 사용

일반적으로 클라이언트가 특정 서버에 요청 패킷을 보낼 때, 이를 한 번에 서버로 전달하지 않는다. 요청 패킷은 목적지 서버에 도착하기 위해 여러 홉(Hops)을 거쳐서 도착하는 게 일반적이다.

  • 홉(Hops) : 라우터 또는 게이트웨이

traceroute 명령어의 출력 결과를 통해 병목 현상, 지연 시간 측정, 패킷 손실이 발생 위치 파악 등 네트워크 문제를 해결하는 데 사용한다.

traceroute는 ICMP 패킷 또는 UDP 패킷을 사용하여 목적지 까지의 경로를 추적한다. 패킷은 각 홉을 거칠 때마다 TTL 값을 증가시키며, 이를 통해 목적지 경로상의 각 홉을 추적할 수 있다.

# 명령어 기본 문법
traceroute <옵션> <도메인 or ip 주소>
# traceroute 옵션 리스트
-n : 호스트 이름 확인 없이 IP 주소 표시
-m <hops> : 추적할 최대 홉 설정
-q <queries> : 홉에 전송할 패킷 수 설정 (기본 한 개 홉에 3개 전송)
-w <time_out> : 응답을 기다리는 시간 설정
-f <first_ttl> : 초기 TTL 설정
-I : ICMP 프로토콜 사용
-T : TCP 프로토콜 사용

🔎 분석출력 내용 분석

ping명령어의 출력 내용을 분석하면 다음과 같다.

root@8537f95009c9:/tmp# traceroute google.com
traceroute to google.com (142.250.180.78), 30 hops max, 60 byte packets
 1  192.168.1.1 (192.168.1.1)  1.094 ms  1.219 ms  1.421 ms
 2  10.0.0.1 (10.0.0.1)  2.234 ms  2.435 ms  2.569 ms
 3  172.217.1.1 (172.217.1.1)  10.123 ms  10.456 ms  10.567 ms
 4  142.250.180.78 (142.250.180.78)  20.876 ms  21.134 ms  21.312 ms
 5  * * *
 ...

traceroute to google.com (142.250.180.78), 30 hops max, 60 byte packets

  • traceroute to google.com : 추적 대상 도메인(목적지)
  • (142.250.180.78) : 추적 대상 IP 주소
  • 30 hops max : 최대 홉 수, 추적 가능한 최대 라우터(또는 게이트웨이) 수 (기본 값은 30)
  • 60 byte packets : 각 홉으로 보내는 패킷의 크기 (기본 값은 60byte)

1 192.168.1.1 (192.168.1.1) 1.094 ms 1.219 ms 1.421 ms
(1개 홉에 기본 3개 패킷을 전송하기 때문에 응답 시간이 3개 출력)

  • 1 : 홉 순번 (1~n)
  • 192.168.1.1 : IP 주소
  • (192.168.1.1) : 도메인 주소 or IP 주소
  • 1.094 ms : 응답 시간1
  • 1.219 ms : 응답 시간2
  • 1.421 ms : 응답 시간3

5 * * *
방화벽 및 보안, 트래픽 제한, 네트워크 장비 설정, 응답 시간 초과, 패킷 손실 등의 다양한 이유로 응답 결과를 얻지 못하는 경우 Asterisks(*)로 값을 표시한다.

0개의 댓글