برچسب: DHCP

خدا خیرت بده

چهارشنبه شب رو تا صبح بیدار بودم و داشتم درس میخوندم و اصلا حوصله کار رو نداشتم و از خدا عاجزانه درخواست میکردم که امروز شرکت خبری نباشه تا بتونم نشسته یکم چرت بزنم. از خونمون تا شرکت با اتوبوس حدود نیم ساعت راه بود ، برا همین منتظر شدم تا اتوبوس خالی بیاد که بتونم بشینم و از این نیم ساعت طلایی استفاده کنم و بخوابم . تا نشستم توی اتوبوس ، چشمام رو بستم که وجدانم افراد سالخورده رو نبینه و از جام بلندم نکنه. چشمام داشت سنگین میشد که یه خانم محترمه مسن زد سرشونم ، که پاشو این صندلی رو بده به اون پیرمرد و خودشم رفت منبر که وجدانت کجاست و شما جوون ها چی شدین و به کجا دارین میرسین. منم که گوشام ساخته شدن برای گوش ندادن ، گوش نمیدادم و سر تکون میدادم و سعی میکردم وایساده چرت بزنم و از ته دلم امیدوار بودم که امروز توی شرکت اتفاقی نیوفته.
رسیدم  شرکت ، تمام بچه ها دمه در  شرکت وایساده بودن. کلیدار هنوز نیومده بود . پیش خودم گفتم ، “سالی که نکوست از بهارش پیداست” و رفتم پیش بچه ها ، تلفن شرکت  هم داشت خودش رو میکشت. یه نیم ساعت دمه شرکت معطل شدیم و تلفن هم یه بند زنگ میزد ، تا کلید دار پیداش شد . تازه شاکی هم بود که زیرآبش رو پیش مدیرعامل زدیم .

در رو که باز کرد ، بی اراده رفتم سراغ تلفن و جواب دادم :
بله ؟
مهندس کجایین ؟؟ چرا جواب نمیدین ؟!!
ببخشید ! جانم ؟ چی شده ؟
مهندس ما امروز انتخاب واحد داریم توی دانشگاه ، هیچ کدوم از کامپیوترا سرور انتخاب واحد رو نمیبینن! الان بچه ها پیداشون میشه ! من دیروز همه چیو چک کردم ، درست بوده.
سرور رو ریست کردی ؟
آره ، مهندس ده بار ریست کردم . کار نمیکنه مهندس.
باشه ، نگران نباش ، بزار کامپیوترم بیاد بالا ، چکش میکنم .
مهندس تو رو خدا زود ، الان اینا میان ، پوست منو میکنن.
باشه ، خدافظ

کامپیوترم اومد بالا ، همین جور وایساده ریموت زدم به سرور . اولین کاری که به ذهنم میخورد این بودم ببینم که وب سایت  ، روی خود سرور میاد بالا یا نه ! آدرس وب سایت رو زدم و اینتر کردم ، خیلی سریع اومد بالا . حالم گرفته شد ، کارم سخت شد ، داشتم فکر میکردم چش میتونه باشه که تلفنم زنگ زد.
جانم ؟
مهندس ، میخواستم بگم ، همه کامپیوترها اینجوری نیستن ، بعضی ها درستن ، ولی بیشترشون خرابن.
میتونی بری بشینی پشت یکی و بهم زنگ بزنی؟
باشه مهندس ، بهت زنگ میزنم.

تو این فاصله ،یه چایی ریختم و آماده شدم که زنگ بزنه . زنگ زد !
الو مهندس ، چیکار کنم ؟
سرور رو پینگ میکنی ؟
مهندس پینگ نمیشه ؟
گیت وی رو چی ؟ ببین اونو میتونی پینگ کنی ؟
نه مهندس ، اونم پینگ نمیشه .
میشه IP رو چک کنی ؟ ببین اصلا IP گرفته ؟
آره مهندس ، IP گرفته ، فقط نمیدونم چرا اشتباست !!! مهندس این داره اشتباه IP میگیره ! فکر کنم مشکل از DHCP سرور باشه ! داره اشتباه IP میده .
خیلی خب ، دستی IP بده ببین درست میشه !
آره مهندس درست شد ، فقط من نمیتونم ۲۰۰ کامپیوتر رو دستی IP بدم ، میشه مشکل DHCP رو حل کنید ؟
بزار ببینم چی میشه ! بهت زنگ میزنم .

مشکل رو فهمیده بودم ، یه DHCP سرور دیگه توی شبکه Run شده بود ،حتما یکی از دانشجوها کلاس مایکروسافت رفته و درسشونم DHCP بوده و داشته رو یکی از سیستم ها تمرین میکرده ، شایدم کسی قصد خرابکاری داشته ! خلاصه هرچی که بوده استراحت مارو مختل کرده بود یه کار درست حسابی برامون دست و پا کرده بود. زنگ زدم بهش مشکل رو توضیح دادم و ازش خواستم که شروع کنه سیستم ها رو یکی ، یکی خاموش کنه و چک کنه تا ببینیم میتونیم اون سرور متقلب رو پیدا کنیم یا نه .

با بی حوصلگی ، شروع کردم اینترنت رو سرچ کردن و دیدم خیلی ها این مشکل رو دارن و همه از DHCP Snooping برای حل این مشکل صحبت میکردن. از اونجایی که خیلی بی حوصله بودم ، رفتم پیش مدیر شرکت و جریان رو براش توضیح دادم و گفتم به نظرم راه حلش DHCP Snooping باشه . از اونجایی ، که این مدیرمون همه چیزا رو تجربی یاد گرفته بود ، وصل شد به سوئیچ ها و توی همه ی سوئیچ ها کامند DHCP Snooping رو زد. چند دقیقه بعد طرف زنگ زد و گفت مهندس شما کاری کردی ، گفتم چی شده؟ درست شده؟ گفت نه بابا ، دیگه اصلا IP نمیگیرن ، فکر کنم ، اشکال از DHCP Server باشه. گفتم ، بزار چک کنم .  رفتم کامندای مدیرمون رو پاک کردم و دوباره همه چیز برگشت مثه قبل.

اینجوری کار کردن رو اصلا دوست نداشتم ، برا همین نشستم پای مقالات سیسکو تو زمینه DHCP Snooping . خوب که مطلب برام جا افتاد ، وصل شدم به سوئیچ ها و درست کانفیگشون کردم . دوباره بعد از چند دقیقه تماس گرفت و گفت ، مهندس شما کاری کردی؟ ایندفعه با قدرت گفتم ، آره باید درست شده باشه . گفت آره مهندس خدا خیرت بده!

ساعت ۲ ظهر بود و من هیچی نخوابیده بودم ولی خوشحال بودم ، نه بخاطر اینکه مشکل رو حل کرده بودم ، نه ! بلکه بخاطر اینکه فرداش جمعه بود ، البته نه بخاطر اینکه جمعه تعطیل بود و میتونستم بخوابم، نه! اصلا اون سال جمعه ها برام یه روز دیگه بود.

DHCP Snooping به زبان خودم

Telegram_logo.svg_

DHCP Snooping

برای درک بهتره DHCP Snooping بهتره اول یه کوچولو در مورد DHCP و نحوه کار کردنش بدونیم . پروسه IP گرفتن از DHCP چهارتا مرحله داره :

DORA :

  • DHCP Discover : کامپیوتر ، یه داد توی شبکه میزنه و میگه : آیا سروری وجود دارد که به من IP بده ؟
  • DHCP Offer : سرور به محض گرفتن پیام کمک از کامپیوتر ، یه عکس از یه IP تپل ، مپل با مخلفاتش مثه MASK ، GW برا کامپیوتر میفرسته و میگه دوسش داری؟
  • DHCP Request : کامپیوتر پیشنهاد سرور رو میگیره ، اندازه و براندازش میکنه ، سبک ، سنگینش میکنه و میگه من میخوامش .
  • DHCP Acknowledge : تو این مرحله ، سرور به کامپیوتر میگه باشه مال تو و از سبد محصولاتش اون IP رو حذف میکنه.

dhcp_principle

حالا فرض کنیم که یه نفر شیطونی کرده و توی شبکه یه سرور DHCP تقلبی راه انداخته و شروع کرده به توزیع IP های فیک(Fake) با ظاهری خوب ولی بدردنخور مثه ۱٫۱٫۱٫۱ و از اونجایی که کامپیوترها جو گیرن و به اولین پیشنهاد IP اوکی میدن توی بد دردسری میوفتن و ارتباطشون با کل شبکه  قطع میشه و البته اگه شیطونمون یکم حرفه ایی باشه ، به جای اینکه ارتباط کامپیوتر رو با شبکه قطع کنه میتونه ترافیک رو اول به سمت خودش برای آنالیز و بعد به سمت شبکه هدایت کنه . اینجوری ارتباط کامپیوتر با شبکه قطع نیست ، ولی اطلاعات اول میرن پیش شیطون ، یه بررسی میشن ، بعد به راهشون ادامه میدن. اطلاعاتم که میدونیم میتونه شامل  تمام یوزر پسوردها ، اطلاعات بانکی و خلاصه هر چیزی که شما در شبکه رد و بدل میکنید باشه.

DHCP snooping یه راه جلوگیری از کار کردن DHCP Server های تقلبی  با استفاده از فیلتر کردن DHCP Offer ها توی شبکمونه. به این صورت که وقتی شما DHCP Snooping رو روی یک سوئیچ فعال میکنید بصورت پیش فرض تمام DHCP Offer ها رو از هر پورتی که دریافت کنه فیلتر میکنه. این حرکت ، یه مشکل کوچیک ایجاد میکنه و اونم اینه که دیگه سرور DHCP خودتونم کار نمیکنه و پیشنهادتش (DHCP Offer) فیلتر میشه. برای رفع این مشکل باید تمام پورت هایی که به سرور DHCP اصلی میرسن رو برای DHCP Snooping معرفی کنیم یا به اصطلاح Trust کنیم. من خودم اول فکر میکردم ، که اگه فقط پورتی که به DHCP Server وصل هست رو Trust کنیم کافیه ولی باید حواسمون باشه که ممکنه کامپیوتر ما  قرار باشه از چندتا سوئیچ رد شه  بعد به DHCP Server برسه ، پس باید حتما Trust روی پورتهایی که بین سوئیچ ها هستند و روشون  Snooping  فعال هست هم زده بشه وگرنه DHCP Offer توی سوئیچ بعد فیلتر میشه.

برای فعال کردن DHCP Snooping توی سوئیچ های سیسکو ، کافیه توی محیط Global کامند ip dhcp snooping رو بزنیم و بعد توی پورت هایی که به سرور خودمون ختم میشن کامند ip dhcp snooping trust رو بزنیم

“امیدوارم از این به بعد توی طراحی و مشاورمون برای مشتری این امکان رو لحاظ کنیم و برای مشتریمون ارزش قائل شیم”

یه خاطره از DHCP Snooping

Telegram_logo.svg_

لوپ موقت

یکی از دوستام تعریف میکرد ، که یه سازمان  راجب به مشکلی که با IP Telephony هاشون داشتن بهش زنگ زدن. مشکل این بود که تلفن ها از DHCP سرور آی پی نمیگرفتن و خلاصه کل پروژه IP Telephony سازمان رو هوا بود ، فقط اونجاهی که خیلی مهم بود رو با IP دستی حلش کرده بودند. خلاصه اون دوست ما با یه کامند کوچیک اما گرون مشکل رو حل کرده بود.

یکی از امکانات پیشرفته Spanning Tree که غالبا نادیده گرفته میشه پورت فسته (PortFast). توی یک مقاله میخوندم که مهندسین وقتی به مشکل DHCP خوردن به PortFast برای رفع این مشکل فکر کردن. مشکل اینجا بود وقتی که پروتکل STP روی یک سوئیچ فعال باشه ، هر پورت حداقل ۳۰ ثانیه زمان میبره که آپ شه یا درست تر که بگم بره تو حالت فوروارد ،(۱۵ ثانیه Listen و ۱۵ ثانیه Learn) ، که همین ۳۰ ثانیه باعث میشه که برخی از تجهیزات از گرفتن آی پی از DHCP Server ناامیدشن و از APIPA IP استفاده کنن.

PortFast باعث میشکه که پورت بدون درنگ به حالت فوروارد(Forward) بره و یجورایی اون ۱۵ ثانیه Listen و ۱۵ ثانیه Learn رو دور بزنه. این کانفیگ رو ما باید فقط و فقط روی پورت هایی بزنیم که مطمئن هستیم که به End Device خوردن یا Access کانفیگ شدن . اگر اشتباها این کامند رو روی پورتی بزنیم که به سوئیچ دیگه ایی خورده یا  Trunk کانفیگ شده ، میتونه  بسته به نوع شبکه باعث یک لوپ موقت ۲ ثانیه ایی بشه.

” بله ، یک لوپ موقت “

توی اینترنت که نگاه میکردم ، اطلاعات ضد و نقیض و اشتباه در مورد کارکرد PortFast زیاده و  خیلی ها به اشتباه فکر میکنن که PortFast پرتکل STP رو غیرفعال (Disable) میکنه و دیگه روی اون پورت نه BPDU ارسال و نه دریافت میشه . اما نه تنها روی اون پورت BPDU ارسال میشه ، بلکه وضعیت پورت بستگی به BPDU هایی که دریافت میکنه داره. اگر پورتی که PortFast کانفیگ شده ، BPDU دریافت کنه ، بصورت اتوماتیک Portfast رو غیرفعال میکنه .

PortFast رو به دو شکل میشه کانفیگ کرد ، یکی بصورت گلوبال (Spanning-tree portfast default) که بصورت اتوماتیک تمام اینترفیس هایی که Access هستند Portfast کار میکنند یا به ازای هر اینترفیس بصورت مجزا (Spanning-tree portfast) باید  Portfast رو کانفیگ کنیم ، به هر حال در هر دو صورت پورت بایستی در حالت Access باشه. این امکان وجود داره که PortFast رو برای پورت ترانک هم کانفیگ کرد . اگر از کامند spanning-tree portfast trunk برای فعال کردن portfast استفاده کنیم ، برای هردو حالت پورت (Access , Trunk) portfast فعال خواهد شد.

PortFast علاوه بر دور زدن اون ۳۰ ثانیه ، TCN رو هم غیرفعال میکنه. TCN یا همون Topology Change Notification یه پیام کوتاه که سوئیچ بابت آپ یا دان شدن پورت ارسال میکنه.حالا اگر پورتی ، PortFast کانفیگ شده باشه دیگه بابت تغییرات پورت این پکت رو ارسال نمیکنه.

خلاصه اون دوست باهوش ما تونسته بود با زدن یک کامند کوچیک مشکل IP گرفتن تلفن ها رو حل کنه و کلی هم پول گرفته بود. سواد دیگه !