پروتکل NTP و تنظیمات آن در سیسکو

NTP یا همون Network Time Protocol، پروتکلیه که به تمام دستگاه های داخل شبکه اجازه میده تا با یه سورس اصلی ساعت‌هاشونو هماهنگ کنن. برای دستگاه هایی مثل روترها، سوئیچ ها، فایروال ها خیلی مهمه تا زمان درست و دقیقی داشته باشن به این خاطر که لاگ هایی که جمع میکنن بر اساس همین زمان ها قابل پیگیری و ردگیری هستن. فرض کنیم مشکلی ایجاد شده یا اصلا گیریم هک شدید حالا باید بگردیم ببینیم چه اتفاقی و در چه زمانی رخ داده و چیکار باید بکنیم! کلا باید قبول کنیم زمان مهمه!به صورت پیش فرض یه روتر یا سوئیچ در حالت NTP کلایت اجرا میشه. حالا این یعنی چی؟ یعنی کلاینت ساعت خودشُ بر اساس NTP سرور تنظیم میکنه.پروتکل NTP پایه و اساسش این طوریه که NTP کلاینت ها ساعتشون رو با NTP سرور هماهنگ کنن و یه سری پکِت بینشون رد و بدل بشه.یه مثال ساده از NTP سرور میتونه ntp.pool.org باشه. یه عالمه از NTP سرورها که ممکنه سرورها و دستگاه های شبکه شما ساعت‌هاشونو با استفاده از اونا هماهنگ کنن.NTP از مفهمومی به اسم “stratum” استفاده میکنه که تعریفش به زبان ساده میشه چند عدد NTP هاب که دور و بر یک دستگاه NTP سرور وجود داره. برای مثال یک دستگاه با stratum1 دستگاهی بسیار دقیق و خفنه که میتونه یک ساعت اتمی بهش وصل باشه. بقیه NTP سرورهایی که از این سرور stratum1 استفاده میکنن تایمشونو با این بابا هماهنگ میکنن. دستگاه بعدی stratum2 میشه . حالا چرا دو؟ چون که یک NTP هاب از منبع دورتر رفته. وقتی چندین و چند NTP سرور تنظیم میکنیم، کلاینت NTP سروری رو انتخاب میکنه که کمترین مقدار Stratum رو داشته باشه.روترها و سوئیچ های عزیز سیسکو میتونن از 3 حالت متفاوت NTP استفاده کنن:· NTP client mode.· NTP server mode.· NTP symmetric active mode.symmetric active mode یا به فارسی سلیس حالت فعال متقارن برای هماهنگ کردن و یکسان سازی بین دستگاه های NTP استفاده میشه. کارایی‌ش مثه یه روش بکاپِ زمانی که NTP سرور نمیتونه سرور بیرونی رو پیدا کنه.حالا بریم سر داستان خودمون که چطور میتونیم NTP رو در روترها و سوئیچ ها کانفیگ کنیم:عکس زیر رو نگاه کنید تا بریم سر اصل مطلب:روتری که اون بالاست اسمش core روتره و در edge شبکه‌مون قرار داره یعنی وصله به اینترنت و بعنوان یکی از NTP سرورهایی استفاده میشه که زمانشو با ntp.day.ir هماهنگ میکنه یا بعبارتی زمانشو از اونجا میگیره. شبکه دو تا سوئیچ داخلی داره که باید ساعت‌هاشون با هم هماهنگ و درست باشه. توی داستان ما قراره هر دو تا سوئیچ NTP کلاینتِ CoreRoutre بشن. بنابراین Core روتر تبدیل میشه به یه NTP سرور خوب و حرف گوش کن.تنظیمات روتر:اول کاری بریم سراغ روترِ مون. برای این مثال من از ntp.day.ir بعنوان NTP سرور بیرونی استفاده کردم. قبل از هر کاری باید مطمئن باشیم که روتر میتونه نام هاست رو resolve کنه:CoreRouter(config)#ip name-server 8.8.8.8برای اینکار از دی ان اس Google استفاده میکنم و در قدم بعدی NTP سرور رو مشخص میکنم:CoreRouter(config)#ntp server ntp.day.irدیدی خیلی آسون بود! این همه حرف زدیم فقط یک خط دستور تا ساعتِ روتر رو با سرور بیرونی هماهنگ کنیم. برای اینکه خیال خودتو راحت کنی که همه چیز اوکیه دستور زیر رو بزن:CoreRouter#show ntp associationsaddress ref clock st when poll reach delay offset disp~31.193.152.2 .INIT. 16 - 64 0 0.000 0.000 16000.* sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configuredدستور بالا بهمون میگه ساعت ها با هم هماهنگ شدن یا خیر. تیلدای ~ جلوی IP آدرس میگه که تنظیمات انجام شده اما سینک شدن هنوز انجام نشده ( من خیلی با این کلمه تیلدا حال میکنم). جلوی IP آدرس * (استار) نیست و در پایین st عدد 16 نوشته شده اینا همه نشونه هایی از عدم هماهنگ شدنِ سرورها است. اما اصلا نگران نباش و به زمین و زمان فحش نده فقط صبر کن ...دستور دیگه ای که اطلاعات بیشتری در اختیار ما میزاره:CoreRouter#show ntp statusClock is unsynchronized, stratum 16, no reference clocknominal freq is 250.0000 Hz, actual freq is 250.0000 Hz, precision is 2**24reference time is 00000000.00000000 (00:00:00.000 UTC Mon Jan 1 1900)clock offset is 0.0000 msec, root delay is 0.00 msecroot dispersion is 0.16 msec, peer dispersion is 0.00 msecloopfilter state is 'FSET' (Drift set from file), drift is 0.000000000 s/ssystem poll interval is 64, never updated.الان دستگاه داره به ما میگه آقاجان هیچ ساعت مرجعی وجود نداره و تایم هماهنگ نیست. باید صبر پیشه کنیم و بعد از چن دقیقه دوباره دستور رو اجرا کنیم.CoreRouter#show ntp associationsaddress ref clock st when poll reach delay offset disp*~31.193.152.2 193.79.237.14 2 26 64 1 10.857 -5.595 7937.5* sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configuredبعد از چن دقیقه خروجی تغییر میکنه و ستاره جلوی IP آدرس به ما میگه هماهنگ سازی انجام شد و st عدد 2 رو گرفت. یعنی NTP سرور به یک منبع معتبر زمانی متصل شده. فیلدِ poll هم نشان از سرِ درون داره یعنی که همگامسازی هر 64 ثانیه یکبار انجام میشه.ساعت هماهنگ شده و st عدد 3 رو نشون میده. اینطوریه که stratum عمومی 2 درنظر گرفته میشه و ما یک هاپ ازش دورتر هستیم. اینجوری در نظر بگیر که یه لایه بیرون تر رفتی!هماهنگ سازی NTP میتوونه خیلی کند وآروم صورت بگیره بنابراین تنها راهی که داری باید صبر کنی. یکی از حقه هایی که میتونیم بهش بزنیم اینه که ساعت رو به صورت دستی تنظیم کنیم تا به زمان فعلی نزدیک تر باشه و کار سریعتر انجام بشه.روترهای سیسکو دو ساعت متفاوت دارند، ساعت نرم افزاری و ساعت سخت افزاری که به صورت کاملا مجزا از هم کار میکنن. وضعیت هر دو ساعت رو میتونیم از طریق دستورات زیر ببینیم:CoreRouter#show clock12:41:25.197 UTC Mon Jul 7 2014CoreRouter#show calendar12:43:24 UTC Mon Jul 7 2014دستور Show clock ساعت نرم افزاری رو نشون میده و show calendar ساعت سخت افزاری رو نشون میده. دو تا ساعت با هم هماهنگ نیستن و درست کردن این مشکل وظیفه خطیریه که به دوش ماست!CoreRouter#(config)ntp update-calendarبا زدن دستور ntp update-calendar ساعت سخت افزاری با ساعت افزاری آپدیت میشه و نتیجه میشه چیزی شبیه به:CoreRouter#show clock12:42:31.853 UTC Mon Jul 7 2014CoreRouter#show calendar12:42:30 UTC Mon Jul 7 2014کارمون با روتر تموم شد بریم سراغ سوئیچ ها:تنظیمات سوئیچاین دو تا سوئیچ قراره ساعتشون رو با CoreRouter هماهنگ کنن تا ساعت ها و تایمینگ همه یکسان بشه. مصداق ضرب المثلِ همه برای یکنفر، یکنفر برای همه ...SW1(config)#ntp server 192.168.123.3ممکنه همگام سازی چند دقیقه طول بکشه ، اما این همون چیزیه که می‌بینید:SW1#show ntp associationsaddress ref clock st when poll reach delay offset disp*~192.168.123.3 146.185.130.223 3 21 64 1 2.5 1.02 15875.* master (synced), # master (unsynced), + selected, - candidate, ~ configuredSW1#show ntp statusClock is synchronized, stratum 4, reference is 192.168.123.3nominal freq is 119.2092 Hz, actual freq is 119.2089 Hz, precision is 2**18reference time is D765271D.D6021302 (14:03:09.835 UTC Mon Jul 7 2014)clock offset is 1.0229 msec, root delay is 14.31 msecroot dispersion is 16036.00 msec, peer dispersion is 15875.02 msecساعت SW1 اوکی شد و stratum عدد 4 است چون یک هاپ از سرور NTP خودش دورتره. بریم سراغ سوئیچ دوم که دقیقا مثل اولیه:SW2(config)#ntp server 192.168.123.3با زدن دستور زیر چن دقیقه ای صبر میکنیم تا ببینیم که چه کردیم:SW2#show ntp associationsaddress ref clock st when poll reach delay offset disp*~192.168.123.3 146.185.130.223 3 17 64 37 3.4 1.89 875.8* master (synced), # master (unsynced), + selected, - candidate, ~ configuredSW2#show ntp statusClock is synchronized, stratum 4, reference is 192.168.123.3nominal freq is 119.2092 Hz, actual freq is 119.2084 Hz, precision is 2**18reference time is D765274D.D51A0546 (14:03:57.832 UTC Mon Jul 7 2014)clock offset is 1.8875 msec, root delay is 15.18 msecroot dispersion is 1038.39 msec, peer dispersion is 875.84 msecسوئیج های SW1 و SW2 ساعت هاشونو با CoreRouter هماهنگ میکنن. حالا حرکت خفَنَ رو میزنیم و سوئیچ ها را طوری کانفیگ میکنیم تا برای هماهنگ کردن ساعت از همدیگه استفاده کنن این همون داستانِ فلسفی حالت فعال متقارنه که قبلا گفتم. به طور کلی این دو تا سوئیچ برای همگام سازی به هم کمک میکنن و این زمانیه که یه روزی CoreRouter در دسترس نباشه و خدای نکرده بلایی سرش بیاد.SW1(config)#ntp peer 192.168.123.2SW2(config)#ntp peer 192.168.123.1بعد از چن دقیقه که دندون روی جیگر گذاشتین میبینید که سوئیچ 1 و 2 با هم هماهنگ شدن.SW1#show ntp associationsaddress ref clock st when poll reach delay offset disp*~192.168.123.3 146.185.130.223 3 59 64 37 3.0 -0.74 877.4+~192.168.123.2 192.168.123.3 4 50 128 376 2.2 -2.04 1.3* master (synced), # master (unsynced), + selected, - candidate, ~ configuredSW2#show ntp associationsaddress ref clock st when poll reach delay offset disp*~192.168.123.3 146.185.130.223 3 45 128 377 2.9 1.95 1.0~192.168.123.1 192.168.123.3 4 67 1024 376 1.8 2.40 1.4* master (synced), # master (unsynced), + selected, - candidate, ~ configuredهمه چی عالیه و همه خوشحالیم.