تا %60 تخفیف خرید برای 6 نفر با صدور مدرک فقط تا
00 00 00
ariagh

ICMPprotocol

سلام خدمت دوستان عزیز ...

با توجه به این که پروتکل ICMP پورت ندارد ، در شبکه های LAN چگونه به سمت اینترنت NAT میشود ؟!

این سوال 1 پاسخ دارد.
لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.
mohamadlvs

سلام

پروتکل ICMP خودش به تنهایی کار نمیکنه، این پروتکل در قسمت payload پروتکل IP قرار میگیره و ارسال میشه

سوال بسیار بسیار عالی هستش, معلومه آدم ریزبینی هستید

تو عملکرد NAT نحوه رفتار با پروتکل ICMP یکم با UDP و TCP فرق می کنه, میشه گفت ICMP جزء استثناء ها هست

تو ICMP echo request و echo response: تو این نوع بسته ها که اپلیکیشن ping ازش استفاده می کنه, داخل بسته یه فیلدی هست به اسم Identifier, این Identifier رو بهش میگن Request Identifier , هر بسته Ping Request ای Identifier منحصر به فردی داره, NAT با دیدن بسته ICMP Echo request و Echo reply محتویات داخلیشو نگاه می کنه و از Identifier اون بسته استفاده می کنه واسه ساخت جدول NAT Binding و اینکه تو جدول نوع پروتکل رو هم می نویسه ICMP

تو ICMP Message ها: برخی بسته های ICMP در پاسخ به یک بسته ای یا بهتر بگیم یک اتفاقی فرستاده میشند, یعنی بسته ای باعث میشه روتر یا سیستم ما بسته ICMP با Type و Code خاصی برگردونه, به عنوان مثال وقتی TTL بسته به صفر میرسه ICMP Time Exceeded برگردونده میشه, تو این نوع بسته های ICMP از اطلاعات پورت بسته ای که باعث ارسال این بسته ICMP شده استفاده می کنه یعنی اونارو داخل فیلدهای مربوطه داخل بسته ICMP می نویسه, و در نتیجه NAT با بررسی محتویات داخل بسته و مقایسه اون با فیلد مربوط به این مشخصات میتونه بفهمه ICMP دریافتی مربوط به کدوم رکورد موجود تو NAT Translation table هست

توضیحات یکم پیچیده هست ولی متن رو چندبار بخونید متوجه عملکرد NAT در مواجهه با بسته های ICMP میشید

نتیجه گیری: NAT یا بهتر بگیم PAT (به این نوع NAT که Port هارو ترجمه می کنه PAT میگن) صرفا واسه ترجمه پورت Segment و یا Datagram های UDP و TCP طراحی نشده. در زمان طراحی این قابلیت همین قضیه پروتکل هایی که شامل Port Address نمیشند دغدغه طراحانش شده و به این ترتیب NAT رو جوری طراحی کردند که تو جدول Binding خودش بتونه نوع پروتکل رو هم ذخیره سازی کنه (مثل TCP, UDP, IP و ICMP) و اینکه بتونه علاوه بر پروتکل های لایه ۴ مثل TCP و UDP پروتکل های مستقلی مثل ICMP رو هم Inspect کنه و از محتویاتش واسه ساختن جدول Binding استفاده کنه

اینم به صورت عملی:

تو توپولوژی ما روتر NMAXi-R2 روش Overloading NAT یا PAT تنظیم شده و قراره هر درخواستی از طرف R1 بیاد رو ترجمه کنه

وب سایت توسینسو

از R1 آدرس 33.33.33.33 یعنی R3 رو پینگ می کنم و از NAT Table روتر NMAXi-R2 خروجی میگیرم (به نوع پروتکل نگاه کنید سمت چپ نوشته ICMP و به عدد 5 بعد از IP Address ها توجه کنید)

وب سایت توسینسو

حالا به محتویات بسته Capture شده اینترفیس Fa0/1 روی روتر R3 نگاه کنید (به بخصوص قسمت Identifier)

وب سایت توسینسو

حالا من یه پیغام UDP به 33.33.33.33 یعنی R3 می فرستم و کاری می کنم TTL صفر بشه و در پاسخش ICMP Message ارسال بشه (بسته UDP هست و پورت ها 49162 و 33434)

وب سایت توسینسو

حالا بسته پاسخ ICMP رو ببینید (در این تصویر محتویات بسته ICMP نمایش داده شده عینا IP Address ها و پورت ها داخلش نوشته شده)

وب سایت توسینسو

و اینم از NAT Table روتر NMAXi-R2 : به شماره ها نگاه کنید همون شماره پورت ها هستند

وب سایت توسینسو

روتر NMAXi-R2 با دیدن بسته ICMP و محتویاتش که شامل شماره پورت های مبداء و مقصد هستند و مقایسه اون با رکورد مربوط به اون شماره پورت ها بسته رو هدایت میکنه به مقصدش یعنی ۱۱.۱۱.۱۱.۱۱ و شماره پورت ۴۹۱۶۲

رمز یادگیری یک مهارت و تسلط یافتن به آن فقط تمرین و تکرار آن به تعداد بسیار بسیار زیاد است! راه میانبری وجود ندارد!
  • انتخاب شده به عنوان جواب توسط 1 نفر
ariagh

خیلی ممنون از توضیح بسیار کامل و مفیدتون .

با آرزوی موفقیت روز افزون برای شما ...

پاسخ شما
برای ارسال پاسخ خود وارد شوید.