Belge

Traceroute ile Linux’ta Ağ Sorunları Nasıl Teşhis Edilir

Traceroute, bir internet paketinin kaynaktan hedef ana bilgisayarına kadar izlediği rotayı izleyebilen basit bir ağ yardımcı programıdır. Bu makale, Linux’unuzun ağ sağlığını kontrol etmek ve ortaya çıkan sorunları teşhis etmek için Traceroute’u nasıl kullanabileceğinizi gösterecektir.

 

Traceroute Nasıl Çalışır?

Traceroute, uzak bir ana bilgisayara giden yol boyunca her internet ağ geçidine kısa TTL uzunluklarına sahip UDP paketleri göndererek çalışır. Bu kısa TTL uzunlukları daha sonra bu ağ geçitlerini arabirimlerinin IP adresiyle birlikte bir ICMP “TIME_EXCEEDED” yanıtı bildirmeye zorlar.

Bu iki faktör, traceroute’un paketinizin harici bir sunucuya bağlanırken geçeceği makinelerin ayrıntılı bir listesini oluşturmasına izin vermek için bir araya geldi. Örneğin, ağımda “google.com” için bir traceroute çalıştırmak, Google’ın sunucularına ulaşmadan önce 9 ila 10 ağ geçidini listeleyecektir.

A terminal showing a basic traceroute for google.com.

Traceroute Hangi Ağ Sorunlarını Çözebilir?

Traceroute yalnızca bir ağ araştırma aracıdır ve ağınızdaki bekleyen herhangi bir sorunu optimize etmez veya düzeltmez. Traceroute yalnızca ağların ve üzerlerinde seyahat eden paketlerin nasıl davrandığını açıklayabilir.

Buna rağmen, olası ağ sorunlarını teşhis etmek için hala önemli bir araçtır. İyi bir örnek, yerel bir ağ geçidinin bir paketi bir sonraki atlamasına iletememesidir. Traceroute, çekirdek ağınızdaki “TIME_EXCEEDED” yanıtı göndermeyen herhangi bir yönlendiriciyi vurgulayarak bunu çözebilir.

A terminal showing a basic traceroute where gateways constantly fail to respond to the program.

Bunun yanı sıra, ana bilgisayarlar arasındaki gecikme sorunlarını kontrol etmek için traceroute’u da kullanabilirsiniz. Uzak bir makineye bağlanırken tutarlı düşük gecikme süresi sağlamak için yerel ağınızın bir VPN’e ihtiyacı olup olmadığını görmek istiyorsanız bu yardımcı olabilir.

 

Linux’ta Traceroute’u Kullanma

Yeni bir terminal açın ve traceroute ve ardından makinenizin bağlanmasını istediğiniz makine adresini yazın. Bu bir alan adı veya bir IP adresi olabilir. Mesela:

traceroute ubuntu.myvpsserver.top

Uzak bilgisayarınıza giden yolu eşlemeye başlamak için Enter tuşuna basın.

A terminal showing a basic traceroute to a small VPS.

 

Traceroute’da Özel TTL ile Paket Gönderme

Traceroute’u tek başına kullanmak temel kullanım için yeterli olsa da, bayrakları kullanarak programın nasıl çalıştığını da değiştirebilirsiniz. Bu, özellikle ağınızın önceliklendirmesini yapıyorsanız yararlı olabilir.

Traceroute’daki en yaygın ince ayarlardan biri, bir ağ geçidine gönderdiği paket miktarını değiştirmektir. Bunu yapmak için, -q bayrağını ve ardından istek başına göndermek istediğiniz paket miktarını kullanın:

traceroute -q 1 ubuntu.myvpsserver.top

Eşzamanlı paket isteklerini açıkça devre dışı bırakmak için -N bayrağını ve ardından “1”i de kullanabilirsiniz. Bu, kısa TTL’ye sahip UDP paketlerini hız sınırlayan ağ geçitleriniz varsa yararlıdır.

A terminal showing a traceroute with simultaneous packets disabled.

Son olarak, traceroute için varsayılan TTL değerini de değiştirebilirsiniz. Bunu yapmak için, -f bayrağını ve ardından ilk yoklama paketiniz için istediğiniz TTL’yi ekleyin.

A terminal showing a traceroute where the program skips the first two gateways.

Linux’ta Traceroute Protokolünü Değiştirme

Varsayılan olarak, Linux’taki traceroute, ağ geçitlerine araştırma paketleri göndermek için UDP kullanır. Traceroute paketlerini etkin bir şekilde engelleyen bir ağ geçidini yokluyorsanız bu bir sorun olabilir.

Bunu düzeltmek için, basit TCP SYN paketlerini kullanarak traceroute’u çalıştırmak için -T bayrağını kullanabilirsiniz.

A terminal showing a traceroute where the program uses the TCP SYN packet instead of UDP.

Öte yandan, hedef ağ geçidi yalnızca UDP’yi kısıtlıyorsa, traceroute’u bir ICMP ECHO paketi kullanmaya da zorlayabilirsiniz:

sudo traceroute -I myvpsserver.top

Traceroute’da Ağ Arayüzü ve Bağlantı Noktasını Değiştirme

Traceroute ayrıca özel ağ arayüzlerini de destekler. Traceroute’un bir paketin yolunu araştırmak için makinenizde farklı bir ağ kartı kullanacağı yer burasıdır.

Bunu yapmak için, programı -i bayrağı ve ardından arayüzünüzün cihaz adı ile çalıştırın.

traceroute -i enp1s0 myvpsserver.top

Not: Makineniz için kullanılabilir ağ arabirimlerini ifconfig -s | awk ‘{print $1}’ komutunu çalıştırarak bulabilirsiniz.

Bunun dışında, traceroute’un UDP yoklaması için kullanacağı başlangıç bağlantı noktası numarasını belirtmek için -p bayrağını kullanabilirsiniz:

traceroute -p 34543 myvpsserver.top

Son olarak, -p bayrağı da kullandığınız protokole bağlı olarak davranışını değiştirir. -I ile eşleştirmek, -p değerini hedef bağlantı noktası yerine ilk ICMP sıra numarası olarak ayarlayacaktır.

A terminal showing a traceroute using ICMP ECHO with a custom ICMP sequence number.

 

 

Yazının orijinalini buradan okuyabilirsiniz.