# ICMPv6
ICMPv6(Internet Control Message Protocol Version 6 )
Internet Control Message Protocol (ICMP) mesajları ağ iletişiminde yaşanan sorunların iletişime dahil olan ağ bileşenlerine iletilmesi amacıyla kullanılmaktadır. Bir paket hedefine ulaştırılamadığında, bir yönlendiricinin kendisine gelen bir paketi yönlendirecek kadar boş kapasitesi olmadığında ya da bir paket için belirlenen rotadan daha kısa bir rotanın varlığı keşfedildiğinde ICMP mesajları ile bu durum bildirilir. Ancak, IPv4 tabanlı iletişimde ICMP mesajlarının sınır yönlendiricilerinde engellenmesi sık rastlanan bir uygulamadır. Bunun temel nedeni ICMP'nin saldırganlar tarafından keşif aşamalarında kullanılmasıdır. RFC4443'te tanımlanmış olan ICMPv6, ICMP'nin IPv6 için olan versiyonudur. ICMPv6 mesajları hata mesajları ve bilgi mesajları olmak üzere iki kısma ayrılır. IPv6 paketinde nextheader (IPv4 paket başlığında protokole karşılık olan alan)'da ICMPv6 değeri 58'dir.


## ICMPv6 paket yapısı.
### Tip (type).
8 bitlik tip kısmı mesajın tipini gösterir.Eğer yüksek sıralı bit 0 ise((0-127 bitler arası)) bu bir hata mesajıdır. Eğer 1 ise(128-255 arası bitler arası) bu bir bilgi mesajıdır.


### Kod (Code).
8 bitlik kod alanı içeriği mesaj tipine bağlıdır ve ortalama mesaj boyu ekleme seviyesinin oluşturulmasını sağlar.


### Toplamsal Hata (Checksum).
IPv6 mesaj kısmında ve ICMP’de hata mesajlarını bulmada kullanılır.Karar nodu IPv6 header’da kaynak ve hedef adreslerinin checksum(toplamsal hata)'ı hesaplanmadan önce belirlenmesi için mesaj yollar.Eğer karar nodu birden fazla unicast(Bir istasyondan belirli bir istasyona gönderilen çerçeve. Bir unicast çerçevesi belirli kaynak ve hedef cihazların MAC adreslerini içerir.) adresi içeriyorsa mesajın kaynak adresini aşağıdakiler gibi seçmelidir:
  - Eğer mesaj gönderilmiş bir unicast adresinin mesajına cevap ise cevabın kaynak adresi aynı olmalıdır.
  - Eğer mesaj gönderilmiş herhangi bir adresin mesajıysa(multicast grup adres,karar nodu ile gerçekleştirilen herhangi bir cast adresi veya karar noduna ait olmayan bir unicast adres gibi...)
ICMPv6 paketinin kaynak adresi karar noduna ait olan bir unicast adres olmalıdır.


## Mesaj Cheksum Hesaplaması.
Checksum ICMPv6 mesaj tipi alanıyla başlayan tüm ICMPv6 mesajının toplamının 16 bitlik 1’e tümleyenedir. ICMPv6'nın IPv6 paket başlığının nextheader(IPv4 paket başlığındaki protokole karşılık gelir.) kısmındaki değeri 58'dir. Checksum heplamasının yapılabilmesi için checksum alanı 0’lanır.


## ICMPv6 Mesaj tipleri.
ICMPv6 Yankı İsteği iletileri göndermek ve ICMPv6 Yankı Yanıtı iletilerinin alındığını kaydetmek için ping komutunu kullanabilirsiniz. Ping ile, ağ veya ana makine iletişim başarısızlıklarını saptayabilir ve sık karşılaşılan IPv6 bağlantı sorunlarını giderebilirsiniz.
Atlama Sınırı alanında artan değerlere sahip ICMPv6 Yankı İsteği iletileri göndermek için tracert komutunu kullanabilirsiniz. Tracert, IPv6 paketlerinin kaynak ve hedef arasında kat ettiği yolu izleyip görüntüleyerek yaygın IPv6 yönlendirme sorunlarını gidermenize olanak verir.
ICMP6'nın tüm IPv6 düğümlerinin iletişimleri için temel bir protokol olarak tasarlanmıştır ve RFC 2463 ile bu düğümlerin ICMPv6'yı eksiksiz desteklemesi zorunluluğu ortaya konmuştur. IPv6 iletişiminin sağlıklı yapılabilmesi için engellenmemesi gereken ICMPv6 mesajı tipleri ve isimleri Tablo'da verilmiştir.


## ICMPv6 ve Ağ Güvenliği Değerlendirmesi.
  - Mevcut sınır güvenlik uygulamalarından (güvenlik duvarı, saldırı tespit sistemleri vb.) birçoğu ICMPv6 mesajlarının tipine göre filtrelenmesine imkân sağlamamaktadır. Örneğin güvenlik uygulamaları “ICMPv6 Tip 1 Hedef Erişilemez” mesajlarını geçirirken “ICMPv6 Tip 2 Paket Çok Büyük” mesajlarını filtreleyememektedir. Sunulun iki seçenek tüm ICMPv6 paketlerinin geçirilmesi ya da bu protokole ait tüm trafiğin filtrelenmesidir. Tüm ICMPv6 mesajlarının filtrelenmesi IPv6 tabanlı iletişim sağlıklı yürütülmesini engelleyeceğinden mevcut güvenlik uygulamalarında şu an için uygulanan seçenek tüm mesajlara izin verilmesidir. Bu durum saldırganların gerçek amaçlarını ICMPv6 protokolü içine gizlemelerine imkân sağlamaktadır.
  - Ağda verilmeyen servislere ait ICMPv6 mesaj tiplerinin ağa girmesine izin verilmesi güvenlik açıklarına neden olacaktır. Örneğin çoklu gönderim servisi verilmeyen ağı hedef olarak içeren bir “Tip 130 Çoklu Gönderim Dinleyici Sorgusu” ya da dolaşılabilirlik desteği olmayan bir ağı hedef olarak içeren “Tip 144 Ev Sunucusu Adres Çözümleme İsteği” mesajı muhtemel bir saldırgan aktivitesine işaret etmektedir.
  - IANA 155-199 arası ICMPv6 mesaj tipleri için henüz bir atama yapmamıştır. Ayrıca 200 ve 201 nolu mesaj tipleri de deneyler için ayrılmıştır. Bu tiplerdeki ICMPv6 mesajlarının filtrelenmesi gerekmektedir.
  - “Tip 138 Yönlendiricileri Yeniden Numaralandırma” ve “Tip 139,140 Düğüm Bilgisi Sorgusu” mesajlarına özel ilgi gösterilmeli ve bu mesaj tipleri ile ilgili ağda özel uygulamalar yapılmıyorsa bu mesaj tipleri sınır güvenlik cihazlarında engellenmelidir.


## İç Bağlantılar.
  - IPv6
  - ICMP