ویرگول
ورودثبت نام
ashkanp
ashkanp
خواندن ۷ دقیقه·۵ سال پیش

پروتکل 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 associations

address 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 status

Clock is unsynchronized, stratum 16, no reference clock

nominal freq is 250.0000 Hz, actual freq is 250.0000 Hz, precision is 2**24

reference time is 00000000.00000000 (00:00:00.000 UTC Mon Jan 1 1900)

clock offset is 0.0000 msec, root delay is 0.00 msec

root dispersion is 0.16 msec, peer dispersion is 0.00 msec

loopfilter state is 'FSET' (Drift set from file), drift is 0.000000000 s/s

system poll interval is 64, never updated.

الان دستگاه داره به ما میگه آقاجان هیچ ساعت مرجعی وجود نداره و تایم هماهنگ نیست. باید صبر پیشه کنیم و بعد از چن دقیقه دوباره دستور رو اجرا کنیم.

CoreRouter#show ntp associations

address 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 clock

12:41:25.197 UTC Mon Jul 7 2014

CoreRouter#show calendar

12:43:24 UTC Mon Jul 7 2014

دستور Show clock ساعت نرم افزاری رو نشون میده و show calendar ساعت سخت افزاری رو نشون میده. دو تا ساعت با هم هماهنگ نیستن و درست کردن این مشکل وظیفه خطیریه که به دوش ماست!

CoreRouter#(config)ntp update-calendar

با زدن دستور ntp update-calendar ساعت سخت افزاری با ساعت افزاری آپدیت میشه و نتیجه میشه چیزی شبیه به:

CoreRouter#show clock

12:42:31.853 UTC Mon Jul 7 2014

CoreRouter#show calendar

12:42:30 UTC Mon Jul 7 2014

کارمون با روتر تموم شد بریم سراغ سوئیچ ها:

تنظیمات سوئیچ

این دو تا سوئیچ قراره ساعتشون رو با CoreRouter هماهنگ کنن تا ساعت ها و تایمینگ همه یکسان بشه. مصداق ضرب المثلِ همه برای یکنفر، یکنفر برای همه ...

SW1(config)#ntp server 192.168.123.3

ممکنه همگام سازی چند دقیقه طول بکشه ، اما این همون چیزیه که می‌بینید:

SW1#show ntp associations

address 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, ~ configured

SW1#show ntp status

Clock is synchronized, stratum 4, reference is 192.168.123.3

nominal freq is 119.2092 Hz, actual freq is 119.2089 Hz, precision is 2**18

reference time is D765271D.D6021302 (14:03:09.835 UTC Mon Jul 7 2014)

clock offset is 1.0229 msec, root delay is 14.31 msec

root 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 associations

address 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, ~ configured

SW2#show ntp status

Clock is synchronized, stratum 4, reference is 192.168.123.3

nominal freq is 119.2092 Hz, actual freq is 119.2084 Hz, precision is 2**18

reference time is D765274D.D51A0546 (14:03:57.832 UTC Mon Jul 7 2014)

clock offset is 1.8875 msec, root delay is 15.18 msec

root dispersion is 1038.39 msec, peer dispersion is 875.84 msec

سوئیج های SW1 و SW2 ساعت هاشونو با CoreRouter هماهنگ میکنن. حالا حرکت خفَنَ رو میزنیم و سوئیچ ها را طوری کانفیگ میکنیم تا برای هماهنگ کردن ساعت از همدیگه استفاده کنن این همون داستانِ فلسفی حالت فعال متقارنه که قبلا گفتم. به طور کلی این دو تا سوئیچ برای همگام سازی به هم کمک میکنن و این زمانیه که یه روزی CoreRouter در دسترس نباشه و خدای نکرده بلایی سرش بیاد.

SW1(config)#ntp peer 192.168.123.2

SW2(config)#ntp peer 192.168.123.1

بعد از چن دقیقه که دندون روی جیگر گذاشتین میبینید که سوئیچ 1 و 2 با هم هماهنگ شدن.

SW1#show ntp associations

address 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, ~ configured

SW2#show ntp associations

address 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

همه چی عالیه و همه خوشحالیم.

ntp سرورتنظیمات سوئیچپروتکل ntpciscontp server
هر دردی شروع درک جدیدی از مفهوم زندگی است.
شاید از این پست‌ها خوشتان بیاید