ICMP Nedir ve Ağ Sorunlarını Gidermede Nasıl Kullanılır?

ICMP, İnternet Protokolü ile iletilen paketlerde oluşan hataları bildiren ve ağ tanılamasına yardımcı olan bir protokoldür. Web sayfası, dosya veya uygulama verisi taşımak için tasarlanmaz; IP katmanındaki iletişim hakkında geri bildirim üretir.
IPv4'te bu görevi ICMP, IPv6'da ise ICMPv6 yürütür. Mesaj biçimleri bire bir aynı değildir ancak temel amaç benzerdir. Her iki protokol de hedefe ulaşılamaması, paket ömrünün dolması, paket boyutunun yol için fazla olması veya Echo isteğine yanıt verilmesi gibi durumları kaynak cihaza bildirir.
Tek bir ICMP yanıtı veya yanıtın gelmemesi, arızanın kesin nedenini göstermez. Güvenlik duvarı kuralları, oran sınırlaması veya ara cihazların davranışı bazı ICMP mesajlarının dönmemesine yol açabilir. Bu nedenle ICMP bulguları, uygulama bağlantısının sonucu ve diğer ağ belirtileriyle birlikte değerlendirilir.
ICMP Nasıl Çalışır?
Bir yönlendirici veya hedef cihaz, IP paketini işlerken belirli bir hata ya da tanılama koşuluyla karşılaşırsa kaynak IP adresine bir ICMP mesajı gönderebilir. Örneğin yönlendirme bilgisi hedefe ulaşmaya yetmiyorsa, paket ömrü yol üzerinde tükeniyorsa veya IP paketi hedefte ilgili protokol ya da porta teslim edilemiyorsa uygun hata mesajı üretilebilir.
Hata mesajı yalnız bir metin açıklaması değildir. ICMP hata mesajının içinde, hataya yol açan IP paketinin başlığı ve verisinin başlangıcı bulunur. İşletim sistemi, burada yeterli bilgi varsa kaynak ve hedef IP adresleriyle diğer protokol alanlarını inceleyerek bildirimi ilgili uygulamanın gönderdiği paketle eşleştirir.
Bu mekanizma IP'yi güvenilir bir teslim protokolüne dönüştürmez. Bir veri paketi kaybolabilir ve buna karşılık bir ICMP mesajı hiç dönmeyebilir; ICMP'nin görevi mümkün olduğunda ağ katmanındaki durumu bildirmektir.
Ping ICMP'yi Nasıl Kullanır?
Ping, hedefe ICMP Echo Request (yankı isteği) gönderip karşı taraftan Echo Reply (yankı yanıtı) bekleyen bir tanılama aracıdır. İstek ve yanıt eşleştirildiğinde hedefin ICMP düzeyinde cevap verebildiği görülür; istemci ayrıca istek ile yanıt arasındaki süreyi ölçerek gidiş-dönüş gecikmesini hesaplayabilir.
Ancak ping yanıtı bir uygulama hizmetinin çalıştığını kanıtlamaz. Bir sunucu Echo Reply verebilirken web, e-posta veya başka bir hizmet kapalı olabilir. Tersi de mümkündür: uygulama trafiği çalışırken ICMP Echo mesajları güvenlik politikası nedeniyle engellenebilir veya oran sınırlamasına tabi tutulabilir.
Traceroute Time Exceeded Mesajlarını Nasıl Kullanır?
Traceroute, yol üzerindeki ara yönlendiricileri belirlemek için IPv4'te TTL, IPv6'da Hop Limit (sıçrama limiti) alanını kullanır. Bu alanlar, paketin geçebileceği yönlendirici sayısını sınırlar; doğrudan geçen saniyeleri ölçmez. Traceroute küçük bir değerle başlar ve sonraki denemelerde değeri artırır.
Değer bir yönlendiricide sıfıra indiğinde paket iletilmez ve normal koşullarda kaynağa ICMP Time Exceeded mesajı döner. Traceroute bu yanıtın kaynak IP adresini ilgili sıçrama olarak kaydeder. Deneme paketinin türü, kullanılan traceroute uygulamasına göre değişir: bağlantısız veri ileten UDP, ICMP Echo veya güvenilir ve sıralı veri iletimi sunan TCP kullanılabilir. Ara yönlendiricileri gösteren Time Exceeded mesajında kod 0, TTL veya Sıçrama Limiti değerinin tükendiğini belirtir. Aynı mesaj ailesindeki kod 1 ise parçalanmış paketi yeniden birleştirmek için ayrılan sürenin dolduğunu bildirir; bu, traceroute sıçramasıyla aynı durum değildir.
Bir sıçramanın yanıt vermemesi o yönlendiricinin trafik iletmediği anlamına gelmez. Cihaz normal paketleri yönlendirmeye devam ederken kendi ICMP yanıtlarını filtreleyebilir veya bu yanıtlara oran sınırlaması uygulayabilir; bu nedenle traceroute'taki boşluklar tek başına arıza noktası sayılmamalıdır.
Destination Unreachable Mesajının Anlamı
Destination Unreachable, paketin tesliminin belirli bir nedenle sürdürülemediğini bildiren hata ailesidir. IPv4'te ağın veya hedefin erişilememesi, protokol ya da portun kullanılamaması ve parçalama gerektiği halde buna izin verilmemesi gibi durumlar bu aile içinde ifade edilebilir. IPv6'da da yön bulunamaması, idari engel, adresin erişilememesi veya portun kapalı olması gibi ayrı kodlar bulunur.
Destination Unreachable mesajını hangi cihazın gönderdiği önemlidir. Mesaj bir ara yönlendiriciden gelebileceği gibi hedef cihazdan da gelebilir. Bu nedenle hata metnini yalnız "sunucu kapalı" biçiminde yorumlamak yerine mesaj türünü, kodunu ve mesajı gönderen IP adresini birlikte değerlendirmek gerekir. Örneğin hedefte dinlenmeyen bir UDP portu için Port Unreachable yanıtı gelebilir. Kapalı bir TCP portunda ise olağan yanıt ICMP değil, bağlantıyı reddeden TCP RST mesajıdır; filtreleme varsa hiç yanıt gelmeyebilir.
Path MTU Discovery Sürecinde ICMP Geri Bildirimi
MTU, bir ağ bağlantısının tek seferde taşıyabildiği en büyük IP paketinin bayt cinsinden boyutudur. Kaynaktan hedefe uzanan bağlantılar içindeki en küçük MTU, o yolun Path MTU değeridir. PMTUD (Path MTU Discovery), kaynak cihazın bu değeri öğrenerek paketlerini yola uygun boyutta göndermesine yardımcı olur.
IPv4 paketinde parçalamayı yasaklayan DF (Don't Fragment) biti açıksa, paketi sonraki bağlantıya sığdıramayan yönlendirici paketi atar. Normal koşullarda kaynak cihaza "fragmentation needed" mesajı gönderir. Bu, Destination Unreachable ailesindeki tür 3, kod 4 mesajıdır. IPv6 yönlendiricileri ise ilettikleri paketleri parçalamaz; paket sonraki bağlantının MTU değerini aşıyorsa Packet Too Big mesajını gönderir. Bu mesajdaki MTU, paketin geçemediği bağlantının değeridir; yolun ilerleyen bölümünde daha küçük bir değer bulunabilir.
Kaynak cihaz geri bildirimi aldığında o yol için bildiği paket boyutunu azaltır. ICMP, atılan veriyi kendisi yeniden göndermez; gerekirse TCP veya uygulamanın kendi yeniden iletim yöntemi devreye girer. Gerekli ICMP mesajları engellenirse küçük paketler geçerken büyük paketlerle yapılan veri aktarımı durabilir. Farklı boyutlarla yapılan denemeler ve yetkili olduğunuz cihazda alınan paket kaydı bu ayrımı araştırmaya yardımcı olur; tek bir büyük ping isteğinin yanıtsız kalması, MTU sorunu olduğunu kanıtlamaz.
ICMP geri bildirimine bağımlı olmayan PLPMTUD yönteminde ise taşıma protokolü veya uygulama, farklı boyutlardaki denemelerin gerçekten alınıp alınmadığını izler. Bu yöntemi destekleyen bir sistem, ICMP engellense de kullanılabilir paket boyutunu bulabilir; ancak her uygulamanın bunu desteklediği varsayılamaz.
ICMP Filtrelemesinin IPv6 Bağlantısına Etkisi
ICMPv6 filtrelemesi yalnız tanılama çıktısını değil, yerel ağ bağlantısını da etkileyebilir. IPv6 cihazları, komşularının yerel ağda erişilebilir olup olmadığını denetlemek için Neighbor Solicitation ve Neighbor Advertisement mesajlarını kullanır. Ethernet gibi ağlarda bu mesajlarla komşunun ağ arayüzünü tanımlayan MAC adresi de öğrenilir. Router Solicitation ve Router Advertisement mesajları ise yönlendirici keşfinde kullanılır. Bunların tamamını engellemek, cihazın yerel ağa ve varsayılan yönlendiriciye erişimini bozabilir.
Bu durum, her ICMP mesajının her kaynaktan sınırsız biçimde kabul edilmesi gerektiği anlamına gelmez. Yerel ağda gerekli olan bir mesajın internetten de kabul edilmesi gerekmez. Güvenlik duvarını tümüyle kapatmak yerine, ağın sorumlusuyla mesaj türü, yönü ve kaynak adresine göre uygulanan kurallar incelenir. ICMP hata mesajının alıntıladığı paket bilgisi de gerçek gönderimle karşılaştırılır; yalnız kaynak IP adresine veya sağlama toplamına bakmak mesajın gerçekliğini kanıtlamaz.







