Bosh sahifa Wiki ICMP

ICMP

ICMPIP tarmog‘ida xato holatlari, diagnostika va xizmat ma’lumotlarini uzatadigan yordamchi protokol. Uning to‘liq nomi Internet Control Message Protocol hisoblanadi.

ICMP foydalanuvchi fayli, veb sahifa yoki boshqa ilova ma’lumotini tashish uchun mo‘ljallanmagan. U IP paketini yetkazish jarayonida yuz bergan holat haqida manba qurilmaga ma’lumot beradi. Router, server yoki boshqa tarmoq tuguni paketni uzata olmasa, sababni ICMP xabari orqali bildirishi mumkin.

IPv4 uchun ICMP va IPv6 uchun ICMPv6 mavjud. Ularning vazifalari o‘xshash bo‘lsa ham, xabar turlari va IPv6dagi roli ancha keng.

ICMPning IP bilan ishlashi

ICMP TCP yoki UDP ustida ishlamaydi. IPv4 headeridagi protocol maydonida ICMP uchun 1 qiymati ko‘rsatiladi. ICMP xabari IP paketining payload qismida tashiladi.

ICMP xabarining asosiy maydonlari:

  • Type — xabar turi;
  • Code — tur ichidagi aniq sabab;
  • Checksum — xabar buzilmaganini tekshirish;
  • turga xos qo‘shimcha maydonlar;
  • xatoga sabab bo‘lgan paketning bir qismi.

Xato xabari manba qurilmaga qaysi ulanish yoki paket bilan muammo bo‘lganini aniqlash imkonini berish uchun asl IP header va transport sarlavhasining boshlang‘ich qismini o‘z ichiga oladi.

ICMP xabar guruhlari

ICMP xabarlarini umumiy tarzda ikki guruhga ajratish mumkin.

Xato xabarlari

Paketni yetkazish yoki qayta ishlashda muammo yuz berganini bildiradi.

Misollar:

  • Destination Unreachable;
  • Time Exceeded;
  • Parameter Problem;
  • Redirect;
  • Fragmentation Needed.

Axborot xabarlari

Diagnostika yoki tarmoq holatini tekshirish uchun ishlatiladi.

Misollar:

Barcha ICMP turlari zamonaviy tarmoqlarda bir xil darajada ishlatilmaydi. Ayrim eski xabarlar xavfsizlik yoki amaliy ehtiyoj sababli o‘chirilgan bo‘lishi mumkin.

Echo Request va Echo Reply

ping dasturi odatda ICMP Echo Request yuboradi va Echo Reply javobini kutadi.

Ping orqali quyidagilar aniqlanadi:

  • manzilga IP darajasida yetish mavjudligi;
  • round-trip time;
  • paket yo‘qotilishi;
  • javob vaqtining o‘zgarishi;
  • ma’lum hajmdagi paketning o‘tishi.

Oddiy jarayon:

Manba → ICMP Echo Request → Qabul qiluvchi
Manba ← ICMP Echo Reply   ← Qabul qiluvchi

Echo Requestda identifier va sequence number bo‘lishi mumkin. Ular bir nechta ping jarayonini va paketlar tartibini ajratishga yordam beradi.

Ping javobi kelmasligi qurilma albatta o‘chiq degani emas. Quyidagi holatlar ham uchraydi:

  • firewall ICMPni bloklagan;
  • qurilma javobni rate limit qilgan;
  • qaytish marshruti yo‘q;
  • paket yo‘lda yo‘qolgan;
  • NAT yoki security policy xabarni o‘tkazmagan;
  • faqat Echo Reply taqiqlangan, boshqa xizmatlar esa ishlamoqda.

Destination Unreachable

Destination Unreachable paketi kerakli joyga yetkazib bo‘lmaganini bildiradi. Type umumiy guruhni, Code esa aniq sababni ko‘rsatadi.

IPv4da uchraydigan sabablar:

Sabab Mazmuni
Network unreachable Manzil tarmog‘iga marshrut yo‘q
Host unreachable Tarmoq bor, lekin hostga yetib bo‘lmaydi
Protocol unreachable Destination host yuqori qatlam protokolini qabul qilmaydi
Port unreachable UDP destination portida xizmat tinglamayapti
Fragmentation needed Paket MTUdan katta va fragmentatsiyaga ruxsat yo‘q
Administratively prohibited Firewall yoki siyosat trafikni rad qilgan

TCP yopiq portga kelgan paketga ko‘pincha TCP RST bilan javob beradi. UDPda esa port yopiq bo‘lsa, ICMP Port Unreachable qaytishi mumkin.

Time Exceeded

IPv4 paketidagi TTL har routerda kamayadi. Qiymat nolga tushsa, router paketni tashlaydi va odatda ICMP Time Exceeded yuboradi.

Bu mexanizm routing loop ichidagi paketlarning cheksiz aylanishini to‘xtatadi.

Traceroute shu xususiyatdan foydalanadi:

  1. TTL 1 bo‘lgan paket yuboriladi.
  2. Birinchi router TTLni nolga tushiradi va ICMP Time Exceeded qaytaradi.
  3. Keyingi paket TTL 2 bilan yuboriladi.
  4. Jarayon manzilga yetguncha davom etadi.

Traceroute implementatsiyasi UDP, ICMP Echo yoki TCP paketlardan foydalanishi mumkin. Oxirgi tugundagi javob ishlatilgan usulga qarab farq qiladi.

Redirect

ICMP Redirect lokal router mijozga shu subnetda yaxshiroq gateway mavjudligini bildirishi uchun ishlatiladi.

Masalan, host paketni A routerga yubordi, A router esa uni xuddi shu lokal segmentdagi B routerga uzatdi. A hostga keyingi paketlarni bevosita Bga yuborish mumkinligini Redirect orqali bildirishi mumkin.

Zamonaviy boshqariladigan tarmoqlarda Redirect ko‘pincha cheklanadi. Soxta Redirect mijoz routingini o‘zgartirishi mumkin. Default gateway va routing siyosati odatda markaziy tarzda boshqariladi.

Path MTU Discovery

Yo‘ldagi barcha kanallarning MTU qiymati bir xil bo‘lmasligi mumkin. Path MTU Discovery manba qurilmaga yo‘l bo‘ylab eng kichik MTUni aniqlashga yordam beradi.

IPv4da DF biti o‘rnatilgan katta paket kichik MTUli linkka kelganda router uni fragmentlamaydi. Paket tashlanadi va ICMP Fragmentation Needed xabari qaytariladi. Manba keyingi paketlarni kichraytiradi.

ICMPning zarur xabarlarini to‘liq bloklash PMTUD black hole holatiga olib kelishi mumkin. Kichik paketlar o‘tadi, katta TCP segmentlar esa javobsiz qoladi. Natijada ayrim saytlar qisman ochilishi yoki ulanish ma’lum bosqichda to‘xtashi mumkin.

ICMP xato xabari yaratilmaydigan holatlar

ICMP xatolarining cheksiz zanjirini oldini olish uchun ayrim paketlarga javoban yangi ICMP xato xabari yaratilmaydi.

Odatda quyidagi holatlar cheklanadi:

  • boshqa ICMP xato xabariga javoban;
  • broadcast yoki multicast paketga javoban;
  • IP fragmentning birinchi bo‘lmagan qismiga javoban;
  • manba manzili yaroqsiz bo‘lgan paketga javoban.

Aniq qoidalar protokol versiyasi va implementatsiyaga bog‘liq.

ICMP va firewall

Barcha ICMP trafikni bloklash tarmoqni xavfsiz qilmaydi. Aksincha, diagnostika va MTU aniqlash mexanizmlarini buzishi mumkin.

Firewall siyosatida odatda:

  • kerakli ICMP type va codelarga ruxsat beriladi;
  • tashqi Echo Request rate limit qilinadi;
  • ichki diagnostika uchun alohida qoida belgilanadi;
  • Redirect kabi keraksiz turlar bloklanadi;
  • xato xabarlari stateful ulanish bilan bog‘lanadi;
  • ICMPv6ning zarur turlari saqlanadi.

ICMP xabari kichik bo‘lsa ham, ko‘p miqdorda yuborilsa CPU yoki kanalga yuk berishi mumkin. Router va serverlar rate limiting qo‘llashi mumkin.

ICMP asosidagi hujumlar

ICMP tarixan turli hujumlarda ishlatilgan.

  • Ping flood — ko‘p Echo Request bilan resursni band qilish;
  • Smurf attack — soxta manbali paketni broadcast tarmoqqa yuborib, ko‘p javobni qurbon manzilga yo‘naltirish;
  • ICMP tunneling — ICMP payload ichida boshqa ma’lumotni yashirish;
  • Soxta unreachable — ulanishni buzishga urinish;
  • Tarmoq skaneri — faol host va yo‘llarni aniqlash.

Directed broadcastni cheklash, source validation, rate limit va anomaliya monitoringi bunday xavflarni kamaytiradi.

ICMPv6

ICMPv6 IPv6 tarmog‘ining asosiy qismi hisoblanadi. U faqat xato xabarlari uchun emas, manzil va qo‘shni qurilmalarni boshqarish uchun ham ishlatiladi.

ICMPv6 vazifalari:

IPv6 routerlari paketni yo‘lda fragmentlamaydi. Paket juda katta bo‘lsa, ICMPv6 Packet Too Big xabari manbaga qaytadi. Shu sababli ICMPv6ni to‘liq bloklash IPv6 aloqasini jiddiy buzadi.

ICMPv6 IP headerida next header qiymati 58 bilan belgilanadi.

Diagnostika

ICMP xabarlarini tahlil qilishda quyidagilar ko‘riladi:

Packet capture orqali ICMP xabari ichidagi asl IP va transport header ko‘rilsa, muammo qaysi port yoki ulanishga tegishli ekani aniqlanadi.

Bog‘liq tushunchalar

IP, Ping, Traceroute, TTL, Hop Limit, MTU, Path MTU Discovery, Destination Unreachable, Echo Request, Echo Reply, ICMPv6, Firewall