tracepath komutu: traceroute yerine atlamaları ve yol MTU değerini kontrol etme

Test ortamıRHEL ailesiAlmaLinux 9.8iputils 20210202root hesabıDebian 12 · traceroute 2.1.2 normal hesap
Ağ komutlarıtracepathKonum/usr/bin/tracepath

Bir Linux sunucusunda paketlerin bir hedefe giderken izlediği yolu (atlamaları) ve yol MTU değerini tracepath komutuyla root yetkisi olmadan görebilirsiniz. traceroute kurulu olmayan bir AlmaLinux 9 sunucusunda atlama sayısını 10 ile sınırlayıp example.com'a giden yolu kontrol ettik: dördüncü atlamaya kadar yanıt süreleri ve 1500 yol MTU değeri okundu, sonraki altı atlamadan yanıt gelmedi.

Aşağıdaki çıktı bir AlmaLinux 9.8 sunucusunda (root hesabı) çalıştırıldı; traceroute sürümü ve paket durumu ise bir Debian 12 sunucusunda (normal hesap) kontrol edildi. İlk atlamanın ve aradaki yönlendiricilerin IPv6 adresleri belgeleme için ayrılmış örnek adreslerle değiştirildi, yanıt süreleri ve pmtu değerleri olduğu gibi bırakıldı.

1️⃣ tracepath Komutu Nasıl Kullanılır

  • ↪️ Hedefe kadar atlamaları ve yol MTU değerini kontrol etme

tracepath bir hedef adı ya da IP adresi alır, UDP paketleri gönderir ve yanıt veren atlamaları TTL sırasıyla her biri bir satır olacak şekilde yazdırır. Varsayılan en fazla atlama sayısı 30'dur ve -m ile değiştirilebilir.

example.com için -m 10 ekleyerek yalnızca onuncu atlamaya kadar kontrol ettik.

tracepath -n -m 10 example.com
 1?: [LOCALHOST]                        0.006ms pmtu 9001
 1:  fe80::1%eth0                                          0.077ms pmtu 1500
 1:  2001:db8:a::5b                                        2.627ms asymm  8 
 2:  2001:db8:a::52                                        1.473ms asymm 12 
 3:  2001:db8:b::1e                                       19.653ms asymm  9 
 4:  2001:db8:c::                                          3.642ms asymm 11 
 5:  no reply
 6:  no reply
 7:  no reply
 8:  no reply
 9:  no reply
10:  no reply
     Too many hops: pmtu 1500
     Resume: pmtu 1500 

Bu sunucu paketleri example.com'un IPv6 adresine gönderdi ve dördüncü atlamaya kadar yanıt süreleri göründü. Beşinci atlamadan itibaren no reply sürdü; bu yüzden hedefe on atlama içinde ulaşıldığını gösteren reached satırı çıkmadı ve işlemin bitmesi yaklaşık 18 saniye sürdü.

Aynı hedefe -m olmadan çalıştırıldığında 30 saniye içinde bitmedi. Yanıt vermeyen atlaması çok olan yollarda kontrol edilecek atlama sayısı -m ile azaltılır.

Kurulu tracepath sürümü -V ile görülür; bu sunucudaki tracepath iputils 20210202 idi.

tracepath -V
tracepath from iputils 20210202

2️⃣ tracepath Çıktısını Okuma

  • ↪️ Atlama numarası, pmtu, asymm, reached

Her çıktı satırı sırasıyla atlama numarasını, yanıt veren adresi ve gidiş-dönüş süresini gösterir. Yol MTU değerinin değiştiği noktada pmtu, gidiş ve dönüş yollarının atlama sayısı farklıysa asymm eklenir. Her satırda kontrol edilenler aşağıdadır.

ÇıktıAnlamı
1?:Atlama numarası alanı — yanıttan TTL alınamadığı için tahmin edilen numaraya ? eklenir
[LOCALHOST]Paket henüz ağa çıkmadan önce sunucunun kendi satırı
0.077msO atlamaya kadarki gidiş-dönüş süresi
pmtu 1500O noktada değişen yol MTU değeri (bayt) — yalnızca değiştiğinde eklenir
asymm 8Gidiş ve dönüş yolları arasındaki atlama sayısı farkı — resmi kılavuz bunun güvenilir bir değer olmadığını belirtir
no replyO TTL ile gönderilen pakete yanıt vermeyen atlama
reachedHedefe ulaşılan satır
Too many hops-m ile belirlenen atlama sayısına kadar kontrol edip durur
Resume: pmtu … hops … back …Yolun tamamının MTU değeri, hedefe kadar atlama sayısı ve dönüş atlama sayısının tahmini

example.com çıktısında ilk satır [LOCALHOST] için pmtu 9001 idi ve ilk atlamada 1500 oldu. TTL 1 satırının yalnızca adresi değişerek iki kez çıkması da resmi kılavuzdaki örnekte görülen biçimdir. Kılavuz, ilk paket yol MTU değeri yüzünden ilk atlamada reddedilirse aynı TTL satırının bir kez daha çıktığını açıklar.

Hedefe ulaşıldığında satırın sonuna reached eklenir ve son Resume satırında hedefe kadarki atlama sayısı görünür. 127.0.0.1 adresine gönderince tek atlamada reached çıktı ve Resume satırı [pmtu 65535 hops 1 back 1] oldu.

tracepath -n 127.0.0.1
 1:  127.0.0.1                                             0.047ms reached
     Resume: pmtu 65535 hops 1 back 1 

reached olmadan Too many hops ile biten bir yol, -m ile belirlenen atlamalar içinde hedeften yanıt alamamış demektir. example.com yolunda da on atlamaya kadar reached olmadığından Resume satırında atlama sayısı olmadan yalnızca pmtu kaldı.

3️⃣ tracepath Seçenekleri

  • ↪️ -n, -b, -m ve paket uzunluğu -l

tracepath'in yalnızca sekiz seçeneği vardır: -4, -6, -n, -b, -l, -m, -p ve -V; hedef verilmeden çalıştırılınca bu liste kullanım bilgisi olarak çıkar. Seçeneksiz çalıştırıldığında yanıt veren adresleri adlara çevirir; localhost adresine gönderince atlama alanında localhost göründü.

tracepath localhost
 1?: [LOCALHOST]                        0.003ms pmtu 65536
 1:  localhost                                             0.048ms reached
 1:  localhost                                             0.030ms reached
     Resume: pmtu 65536 hops 1 back 1 

[tracepath -n] adları çözmeden yalnızca IP adreslerini yazdırır. Aynı localhost için -n eklenince atlama alanı IPv6 adresi ::1 oldu; example.com yolu da -n ile çalıştırılınca atlama alanında yalnızca adresler göründü.

tracepath -n localhost
 1?: [LOCALHOST]                        0.005ms pmtu 65536
 1:  ::1                                                   0.039ms reached
 1:  ::1                                                   0.010ms reached
     Resume: pmtu 65536 hops 1 back 1 

-b adı ve adresi birlikte yazdırır. 127.0.0.1 için -b eklenince adın arkasına parantez içinde adres eklendi ve [localhost (127.0.0.1)] çıktı.

tracepath -b 127.0.0.1
 1:  localhost (127.0.0.1)                                 0.050ms reached
     Resume: pmtu 65535 hops 1 back 1 

-m kontrol edilecek en fazla atlama sayısını belirleyen seçenektir ve 0 ile 255 arasındaki değerleri kabul etti. -m 0 eklenince atlama satırı olmadan doğrudan yalnızca Too many hops ve Resume satırları çıktı, 256 girilince [out of range] ile reddedildi.

tracepath -m 0 127.0.0.1
     Too many hops: pmtu 65535
     Resume: pmtu 65535 

-l ilk gönderilen paketin uzunluğudur; varsayılan değer IPv4 için 65535 bayt, IPv6 için 128000 bayttır. 127.0.0.1 için -l 1500 eklenince Resume satırındaki pmtu 65535'ten 1500'e değişti.

tracepath -l 1500 -n 127.0.0.1
 1:  127.0.0.1                                             0.028ms reached
     Resume: pmtu 1500 hops 1 back 1 

-p ilk gönderilecek hedef UDP bağlantı noktasını belirleyen seçenektir. 127.0.0.1 için -p 33434 eklenince sonuç eklenmediği durumla aynıydı.

SeçenekKopyalaAçıklama
-nAdları çözmeden yalnızca IP adreslerini yazdırır
-bAdı ve adresi birlikte yazdırır
-matlama sayısıKontrol edilecek en fazla atlama sayısını belirler, varsayılan 30
-luzunlukİlk gönderilen paketin uzunluğunu belirler, varsayılan IPv4 65535, IPv6 128000
-VSürümü yazdırıp çıkar
SeçenekKopyalaAçıklama
-4Yalnızca IPv4 adreslerine gönderir
-6Yalnızca IPv6 adreslerine gönderir
-pPortİlk gönderilecek hedef UDP bağlantı noktasını belirler

4️⃣ tracepath ve traceroute Farkı

  • ↪️ Kurulum, yetkiler, gönderilen paketler

traceroute kurulamayan sunucularda yol, traceroute yerine tracepath ile kontrol edilir. Kontrol ettiğimiz AlmaLinux 9.8 sunucusunda traceroute paketi yoktu; tracepath ise iputils paketinde bulunduğu için ayrıca kurulmadan çalıştı.

rpm -q traceroute
package traceroute is not installed

Debian 12 sunucusunda durum tersiydi: traceroute 2.1.2 kuruluydu, tracepath'i içeren iputils-tracepath paketi ise kurulu değildi.

traceroute --version
Modern traceroute for Linux, version 2.1.2
Copyright (c) 2016  Dmitry Butskoy,   License: GPL v2 or any later
apt-cache policy iputils-tracepath
iputils-tracepath:
  Installed: (none)
  Candidate: 3:20221126-1+deb12u1

Bu iki sunucuda olduğu gibi dağıtıma göre bulunan komutlar farklıdır; bu yüzden önce bağlandığınız sunucuda hangisinin olduğunu kontrol edin. tracepath root yetkisi gerektirmez ve UDP paketi gönderebilen her hesapla çalıştırılabilir. AlmaLinux 9.8 sunucusundaki tracepath dosyasının izinleri de rwxr-xr-x idi ve ayrıca eklenmiş bir yetki (capability) yoktu.

Öğetracepathtraceroute
AlmaLinux 9.8 sunucusuiputils paketinde var, hemen çalışırKurulu değil
Debian 12 sunucusuiputils-tracepath paketi kurulu değiltraceroute 2.1.2 kurulu
Gönderilen paketlerUDPVarsayılan UDP, -I ile ICMP, -T ile TCP
Atlama başına çıktıTek satırVarsayılan olarak üç kez gönderir, üç süre (-q ile değişir)
Seçenek sayısıSekiz: -4 -6 -n -b -l -m -p -VYalnızca --help ilk ekranında 20'den fazla

Yolu ICMP ya da TCP ile görmeniz veya her atlamaya birkaç kez gönderip süreleri karşılaştırmanız gerekiyorsa traceroute komutunu kurup kullanırsınız. Kurulumun zor olduğu ya da yol MTU değerini de görmek istediğiniz sunucularda tracepath uygun seçimdir.

🔲 tracepath Komutu Simülatörü

Aşağıdaki simülatörde example.com yolunu yalnızca atlama sayısını değiştirerek yeniden görebilir ya da localhost ve 127.0.0.1 için -n, -b, -m ve -l seçeneklerini kendiniz girerek farkları görebilirsiniz.

tracepath Komutu Simülatörüiputils 20210202
[root@server work]#
Yalnızca tarayıcınızda çalışır ve gerçek paket göndermez. Önceki komutları ↑↓ ile geri çağırırsınız.

🔢 SSS & önerilen içerikler

Hayır, çıkış kodu bunu göstermez. example.com için -m 10 ile çalıştırılıp reached olmadan Too many hops ile bittiğinde de çıkış kodu 0 idi. Ad çözümleme hatası ve geçersiz bağımsız değişken 1, hedef verilmeden çalıştırma ise 255 verdi. Çıkış kodu yalnızca çalıştırma hatalarını ayırt eder; hedefe ulaşılıp ulaşılmadığını çıktıdaki reached satırından kontrol edin.

localhost IPv6 adresi ::1'e gönderildiği için ilk satır [LOCALHOST] geri döngü arayüzünün MTU değeri olan 65536'yı gösterdi; IPv4 olan 127.0.0.1'de ise IPv4 varsayılan paket uzunluğu 65535 olduğu gibi çıktı. ip link ile kontrol edilen lo arayüzünün MTU değeri de 65536 idi.

-4 eklenince yalnızca IPv4 adreslerine gönderilir. localhost için -4 eklenince [LOCALHOST] satırı olmadan IPv4 üzerinden tek atlamada reached çıktı; tersine 127.0.0.1 için -6 eklenince [Address family for hostname not supported] ile bitti.

ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İnsan olduğunuzu kanıtlayın: 5   +   4   =