lance0/ttl
Rust0 / 0
실시간 TUI와 ECMP·MTU·NAT 탐지로 traceroute를 확장한 Rust CLI 도구
TL;DR
ttl은 Rust로 작성된 standalone CLI 네트워크 진단 도구로, traceroute를 실시간 TUI 기반의 지속 경로 모니터링으로 확장합니다. ICMP·UDP·TCP probe와 다중 flow를 사용해 홉별 손실률·지연시간·지터, ECMP, NAT, MTU, route flap, ICMP rate limiting을 구분하고 ASN·GeoIP·reverse DNS·IX·MPLS 정보도 결합합니다. JSON·CSV·streaming 출력, 세션 diff와 replay, daemon mode 및 Prometheus endpoint를 제공해 수동 진단과 자동 모니터링을 모두 처리합니다. Linux에서는 `CAP_NET_RAW` 또는 root 권한이 필요하고 macOS·BSD에서는 `sudo`가 필요하며, Windows native는 지원하지 않고 WSL2를 사용해야 합니다.
핵심 포인트
- ttl은 traceroute를 지속적인 경로 모니터링 도구로 확장해 홉별 손실률·지연시간·지터와 경로 변화를 실시간 TUI에 표시합니다. ICMP·UDP·TCP probe를 지원하고 reverse DNS, ASN, GeoIP, IX, MPLS label 정보를 홉에 결합합니다. 네트워크 장애를 일회성 경로 조회가 아니라 반복 관측과 상세 통계로 추적하려는 운영 환경에 적합합니다.
- 여러 flow를 사용한 Paris/Dublin probing으로 ECMP 경로를 열거하고 per-flow와 per-packet load balancing을 구분합니다. `--flows 8`처럼 flow 수를 지정하면 서로 다른 경로를 비교하고 NAT가 source port를 바꿔 flow 상관관계를 깨뜨리는 경우 `[NAT]`로 표시합니다. 다중 경로와 Carrier-Grade NAT가 얽힌 환경에서 단순 traceroute보다 원인 분리에 유리하지만 raw socket 권한이 필요합니다.
- `--pmtud`는 패킷 크기를 이진 탐색해 fragmentation 없이 통과하는 최대 MTU를 찾고, route flap과 ICMP rate limiting도 별도 상태로 표시합니다. VPN MTU blackhole에는 `[MTU: 1400]`, 경로 변경에는 `!`, ICMP rate limiting에는 `[RL?]`와 `50%RL` 같은 지표를 사용합니다. TCP·UDP·ICMP probe를 바꿔 방화벽이나 ICMP 필터링으로 인한 오판을 줄일 수 있습니다.
- 대화형 TUI 외에도 JSON·CSV·text report·line-delimited JSON, 저장 세션 diff와 replay, daemon mode 및 Prometheus `/metrics`·`/healthz`를 제공합니다. `cargo install ttl`, Homebrew, 배포판 패키지, pre-built binary, Docker로 설치할 수 있고 Docker 이미지는 amd64와 arm64를 지원합니다. 자동화된 모니터링에는 headless daemon과 Prometheus를, 현장 진단에는 TUI와 hop detail view를 선택할 수 있습니다.
이미지 분석

1.4k
STARS
91
FORKS
+204
TRENDING
0
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.