공든탑앱 열기

ping·traceroute

리눅스마스터 2급 · 인터넷 활용 · 약 12분

쉽게 말하면

ping은 상대 컴퓨터에 '살아 있니?' 하고 신호를 보내 대답이 오는지, 얼마나 걸리는지 재는 명령이에요. traceroute는 상대에게 가는 길에 어떤 중간 지점들을 거치는지 보여 줘요.

시험용 정의

ping은 상대에게 ICMP Echo Request를 보내 Echo Reply가 오는지로 도달 가능 여부와 왕복 시간(RTT)을 재는 명령이다. traceroute는 목적지까지 거쳐 가는 라우터(홉)를 차례로 알아내는 명령이다.

비유로 이해하기

ping은 산에서 "야호" 하고 메아리가 돌아오는지 듣는 것이다. traceroute는 목적지까지 가는 길의 톨게이트마다 영수증을 받아 경로를 되짚는 것에 가깝다.

시험에 이렇게 나와요

확인 문제

Q1. 쇼핑몰 서버에 ping을 보냈더니 100% packet loss가 나왔다. 이 서버는 꺼져 있다고 단정할 수 있을까?

  1. 아니다. ping은 원래 UDP라서 응답이 오지 않는다
  2. 그렇다. 응답이 하나도 없으면 꺼진 것이다
  3. 그렇다. ping은 웹 포트(80)로 확인하므로 웹도 꺼진 것이다
  4. 아니다. 방화벽이 ping(ICMP)만 막아 두었을 수 있다
정답 보기

4번 아니다. 방화벽이 ping(ICMP)만 막아 두었을 수 있다

ping은 ICMP Echo Request를 보내고 Echo Reply를 기다린다. 보안 때문에 ICMP를 막아 둔 서버가 많아서, 응답이 없어도 웹 서비스(TCP 80/443)는 멀쩡할 수 있다. ping 실패는 "응답이 안 온다"는 사실만 알려 줄 뿐, 원인은 다른 방법(서비스 포트 접속, traceroute 등)으로 확인해야 한다.

Q2. 리눅스에서 8.8.8.8로 ICMP 패킷을 5번만 보내는 명령은?

  1. ping -c 5 8.8.8.8
  2. ping -t 5 8.8.8.8
  3. ping -i 5 8.8.8.8
  4. ping -n 5 8.8.8.8
정답 보기

1번 ping -c 5 8.8.8.8

횟수는 -c(count). -t는 리눅스에선 TTL 지정, -n은 윈도우 ping의 횟수 옵션, -i는 간격이다.

Q3. ping이 사용하는 프로토콜은?

  1. TCP
  2. ARP
  3. UDP
  4. ICMP
정답 보기

4번 ICMP

ping은 ICMP Echo Request/Reply를 쓴다. 포트 번호가 없다.

Q4. 목적지까지 거치는 라우터 경로를 확인하는 리눅스 명령은?

  1. netstat -r
  2. traceroute
  3. route
  4. tracert
정답 보기

2번 traceroute

tracert는 윈도우 명령, route·netstat -r은 라우팅 테이블을 보여줄 뿐이다.

헷갈리기 쉬운 O·X

ping에 응답이 없으면 그 호스트는 반드시 꺼져 있다.

정답 보기

X 방화벽이 ICMP만 막아 두었을 수 있다.

리눅스 ping은 -c 옵션 없이 실행하면 Ctrl+C를 누를 때까지 계속된다.

정답 보기

O 윈도우 ping은 기본 4번, 리눅스는 무한이다.

리눅스 ping의 -t는 멈추지 않고 계속 보내는 옵션이다.

정답 보기

X 리눅스에서 -t는 TTL 지정이다. 무한 반복 -t는 윈도우 ping이다.

리눅스 traceroute는 기본적으로 UDP 패킷을 사용한다.

정답 보기

O ICMP로 하려면 -I, TCP로 하려면 -T.

traceroute 출력의 * * *는 그 구간에서 통신이 끊겼다는 확실한 증거다.

정답 보기

X 응답만 안 하는 라우터일 수 있다. 다음 홉이 이어지면 통신은 정상이다.

함께 보면 좋은 개념