일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- mysql 튜닝
- 정보처리기사 실기
- AI
- IntelliJ
- Linux
- kotlin
- 공부
- minikube
- 정보처리기사 실기 기출문제
- 기록으로 실력을 쌓자
- APM
- PETERICA
- kotlin querydsl
- 티스토리챌린지
- Elasticsearch
- CloudWatch
- AWS EKS
- Kubernetes
- CKA 기출문제
- Pinpoint
- 코틀린 코루틴의 정석
- Java
- 정보처리기사실기 기출문제
- 오블완
- Spring
- kotlin spring
- MySQL
- CKA
- kotlin coroutine
- aws
- Today
- Total
피터의 개발이야기
traceroute 명령어 사용법 본문
ㅁ 들어가며
ㅇ traceroute는 네트워크 패킷이 목적지까지 도달하는 경로를 추적하는 유용한 네트워크 진단 도구다. 이 명령어를 사용하면 네트워크 문제를 진단하고 패킷이 거치는 라우터들을 확인할 수 있다.
ㅁ traceroute의 원리
traceroute는 Ping과 달리 특정 IP까지 라우팅 경로를 알려준다. 그 원리는 ICMP Error 메시지를 통해 진행된다.
ICMP TTL은 최대 이동할 수 있는 라우팅 홉을 의미한다. 그래서 TTL 1로 설정하여 패킷을 보내면, 다음 라우터에서 ICMP Error가 반환되는데, 그 에러 메시지를 통해 라우팅 IP를 알게 된다. traceroute를 실행하면 느린 이유는 TTL을 1부터 증가시켜 들어오는 에러 메시지를 확인하여 라우팅 IP를 출력하기 때문이다.
ㅁ 기본 사용법
traceroute [목적지 IP 또는 도메인]
ㅁ 출력 해석하기
$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
1 10.200.200.200 (10.200.200.200) 14.737 ms 8.758 ms 8.593 ms
2 172.31.241.65 (172.31.241.65) 9.477 ms 9.027 ms 9.001 ms
3 172.31.255.234 (172.31.255.234) 10.022 ms 9.227 ms 9.456 ms
4 172.31.255.217 (172.31.255.217) 10.273 ms 9.668 ms 9.523 ms
5 * * *
6 121.189.3.49 (121.189.3.49) 13.121 ms 10.985 ms 10.434 ms
7 112.174.92.157 (112.174.92.157) 16.189 ms 16.764 ms 15.726 ms
8 112.174.84.34 (112.174.84.34) 16.935 ms
112.174.84.50 (112.174.84.50) 16.972 ms 17.124 ms
9 142.250.165.78 (142.250.165.78) 38.327 ms 36.861 ms
72.14.243.228 (72.14.243.228) 41.800 ms
10 * 216.239.59.149 (216.239.59.149) 37.768 ms *
11 dns.google (8.8.8.8) 41.596 ms 40.945 ms 40.696 ms
ㅇ 예를 들어, Google의 DNS 서버로 traceroute를 실행하려면 패킷이 목적지에 도달할 때까지 거치는 각 홉(hop)을 보여준다.
ㅇ 각 줄은 하나의 홉을 나타내며, 다음 정보를 포함한다.
- 홉 번호
- 라우터의 IP 주소 (및 호스트 이름, 가능한 경우)
- 3개의 패킷에 대한 응답 시간 (밀리초 단위)
별표(*)는 해당 홉에서 응답을 받지 못했음을 의미한다.
ㅁ 주요 옵션
traceroute -I 8.8.8.8
ㅇ -I 또는 --icmp: ICMP ECHO 패킷을 사용
traceroute -T 8.8.8.8
ㅇ -T 또는 --tcp: TCP SYN 패킷을 사용
traceroute -U 8.8.8.8
ㅇ -U 또는 --udp: UDP 패킷을 사용(기본값).
traceroute -p 80 8.8.8.8
ㅇ -p 또는 --port: 특정 포트 번호를 지정
traceroute -n 8.8.8.8
ㅇ -n: IP 주소를 호스트 이름으로 변환하지 않는다.
ㅁ 고급 사용법
ㅇ 최대 홉 수 지정
기본적으로 traceroute는 30홉까지 추적한다. 이를 변경하려면 -m 옵션을 사용한다.
traceroute -m 15 8.8.8.8
이 명령은 최대 15홉까지만 추적한다.
ㅇ 대체 포트 사용
traceroute -p 80 8.8.8.8
일부 방화벽은 기본 traceroute 포트를 차단할 수 있다. 이런 경우 웹 서버 포트인 80을 사용해 볼 수 있다.
ㅇ 소스 인터페이스 지정
traceroute -i eth0 8.8.8.8
특정 네트워크 인터페이스를 통해 traceroute를 실행하려면 -i 옵션을 사용한다.
ㅇ 패킷 크기 조정
traceroute -p 60000 8.8.8.8
- traceroute 패킷의 크기를 변경하려면 다음과 같이 한다.
- 이 명령은 60000바이트 크기의 패킷을 사용한다.
ㅁ 문제 해결 팁
ㅇ 별표(*) 응답
일부 라우터가 ICMP 패킷을 차단하거나 응답하지 않을 수 있다. 이 경우 별표로 표시된다. 이는 반드시 문제를 의미하지는 않는다.
ㅇ 높은 지연 시간
특정 홉에서 지연 시간이 급격히 증가한다면, 해당 구간에 네트워크 혼잡이나 문제가 있을 수 있다.
ㅇ 경로 변경
동일한 목적지에 대해 여러 번 traceroute를 실행했을 때 경로가 변경된다면, 이는 로드 밸런싱이나 네트워크 토폴로지 변경을 의미할 수 있다.
ㅇ 목적지 미도달
패킷이 목적지에 도달하지 못한다면, 네트워크 연결 문제나 방화벽 설정을 확인해야 한다.
ㅁ 마무리
traceroute는 네트워크 문제를 진단하고 네트워크 토폴로지를 이해하는 데 매우 유용한 도구다. 기본적인 사용법부터 고급 옵션까지 숙지하면, 네트워크 관리와 문제 해결에 큰 도움이 될 것이다. traceroute를 효과적으로 활용하기 위해 다른 네트워크 진단 도구들(ping, nslookup, netstat 등)과 함께 사용하면 더욱 종합적인 네트워크 분석이 가능하다.
ㅁ 함께 보면 좋은 사이트
'Linux' 카테고리의 다른 글
[Linux] dig 명령어 사용법 총정리 (0) | 2024.10.17 |
---|---|
[Linux] 프로세스 백그라운드 실행방법: &, nohub (0) | 2024.10.15 |
[Linux] ssh-keygen 명령어를 사용하여 SSH 키를 생성 (0) | 2024.07.31 |
[linux] find 사용법 (0) | 2024.04.13 |
[Linux] tar명령어 사용법, tar 압축 풀기 (0) | 2022.10.01 |