رضا تقی زاده
کارشناسی ارشد ، متخصص شبکه های مایکروسافت

Aging چیست ؟ Scavenging چیست؟ به زبان ساده

سرویس DNS سرور شرکت مایکروسافت دارای ویژگی به نام aging and scavenging می باشد که در لغت Aging به معنای سالخوردگی و Scavenging به معنای تمیزکاری می باشد . این ویژگی مکانیزمی برای تمیزکاری و حذف رکوردهای منابع کهنه و قدیمی که به شکل داده های تاریخ مصرف گذشته در zone انباشته می شوند ، ارائه می دهد . هنگامی که یک کامپیوتر در شبکه شروع بکار می کند با انجام شدن عملیات داینامیک آپدیت ( dynamic update ) رکوردهای منابع به صورت اتوماتیک به Zone ها اضافه می شوند .

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

ولی به دلایل زیادی ، هنگامی که کامپیوترها شبکه را ترک می کنند ، رکوردهای مربوطه به شکل اتوماتیک حذف نمی شوند . به عنوان مثال ، اگر یک کامپیوتر رکورد منبع A Record ، مربوط به خودش را در DNS سرور ثبت کند و بعدها آن کامپیوتر به شکل نامناسبی از شبکه قطع گردد ، این رکورد از نوع A ممکن است که حذف نشود . اگر شبکه شما کاربران و کامپیوترهای متحرک یا Portable دارد ، این وضعیت نامطلوب بصورت مکرر می تواند اتفاق بیفتد. اگر این نوع از رکوردهای قدیمی به حال خود رها شوند ، حضور این رکوردهای منبع ( Resource Record) کهنه و فرسوده در zone ممکن است مشکلات بسیاری را به وجود آورد . که از آن جمله می توان به موارد زیر اشاره کرد :

  • اگر شمار زیادی از رکوردهای منبع کهنه در zone باقی بمانند ، آنگاه سرانجام می توانند فضای دیسک سرور را اشغال کنند و باعث انتقالات zone غیر ضروری ( zone transfers ) بسیاری شوند.
  • سرور Domain Name System یا DNS ، که zone هایی را بارگذاری می کند که شامل رکوردهای منبع قدیمی هستند ، ممکن از اطلاعات تاریخ مصرف گذشته برای پاسخگویی به پرس و جوهای کلاینت ها استفاده کنند و به شکل بالقوه باعث شوند که کلاینت ها در تبدیل نام به آدرس در شبکه دچار مشکل شوند .
  • رکوردهای منبع کهنه انباشته شده در DNS سرور ، می توانند کارایی و قدرت پاسخ دهی سرور را کاهش دهند .
  • به دلایل زیادی ، حضور رکورد منبع کهنه در یک zone ، می تواند از استفاده یک نام دامین DNS ، توسط دیگر کامپیوترها یا دستگاه های درون شبکه جلوگیری نماید .

برای حل این مشکلات سرویس DNS Server ، ویژگی های زیر را دارا می باشد :

  • Time stamping ( مهر زمان زدن ) : که بر مبنای تاریخ اخیر و زمانی است که رکورد در کامپیوتر سرور قرار داده می شود و برای هر رکورد منبعی که به شکل داینامیک به primary-type zones اضافه می شود ، یک Time stamping در نظر گرفته می شود . بعلاوه ، مهر زمان (time stamp ) در standard primary zone هایی ثبت می شود که در آنها aging and scavenging فعال هستند . برای رکوردهای منبعی که شما بصورت دستی اضافه می کنید ، از مقدار صفر برای time-stamp استفاده می شود تا نشان دهد که این رکوردها به وسیله فرآیند aging ( طول عمر ) تحت تاثیر قرار نمی گیرند و آنها بدون هیچ محدودیتی می توانند درون داده های zone باقی بمانند ، مگر اینکه شما time stamp آن رکوردها را تغییر دهید و یا آن رکوردها را دستی حذف نمایید .
  • Aging (طول عمر) : رکوردهای منبع در داده های محلی ، که بر مبنای دوره زمانی نوسازی (Refresh Interval) تعیین شده ای می باشد و برای هر zone قابل انتخاب می باشد. تنها primary-type zones هایی که به وسیله سرویس DNS سرور بارگذاری شده اند ، برای شریک شدن در این فرآیند قابل انتخاب می باشند .
  • Scavenging ( تمیز کردن ) : برای هر یک از رکوردهای منبعی که اصرار به باقی ماندن فراتر از دوره ی نوسازی مشخص شده (specified refresh period ) دارند. هنگامی که یک سرور DNS یک عملیات scavenging را اجرا می کند ، می توانند تعیین کند که چه رکوردهای منبعی کهنه شده اند و مناسب از بین بردن و حذف کردن می باشند . شما می توانید سرورها را برای تکرار کردن عملیات scavenging به صورت اتوماتیک پیکربندی نمایید ، یا شما می توانید عملیات فوری scavenging را در سرور راه اندازی نمایید . یک سرور با استفاده از محتویات هر یک از resource records time stamps و همچنین سایر تنظیماتی که برای Aging and Scavenging انجام شده است می تواند تصمیم بگیرد که این رکورد را بایستی پاکسازی یا تمیز کند یا خیر.
Aging and Scavenging در DNS چیست

هشدار : بصورت پیشفرض سرویس Aging and Scavenging در DNS سرورها غیرفعال است. صرفا زمانی بایستی این سرویس فعال شود که کلیه پارامترهای مربوط به آن به درستی درک شوند . در غیر اینصورت سرور می تواند بصورت تصادفی و به دلیل عدم انجام تنظیمات درست برای این سرویس ، رکوردهایی که نبایستی حذف شوند را حذف کند . نکته مهم در اینجاست که با حذف یک رکورد در DNS نه تنها سایر کاربران قادر به پیدا کردن اهداف و پاسخ دریافت کردن از Query های خود نخواهند بود بلکه هر کاربری می تواند در این لحظه یک رکورد برای خود در DNS سرور ایجاد کرده و مالکیت آن را بر عهده بگیرد حتی اگر آن Zone ها در حالت Secure Dynamic Update قرار گرفته باشند .

پیشنیازهای Aging and Scavenging

قبل از اینکه شما بتوانید از ویژگی aging and scavenging در DNS استفاده کنید ، چندین شرط را بایستی در نظر بگیرید :

  1. aging and scavenging باید هم در DNS server و هم بر روی zone فعال باشد . بصورت پیشفرض aging and scavenging رکوردهای منابع غیر فعال می باشند .
  2. رکوردهای منابع باید یا به شکل داینامیک به zone ها اضافه شده باشند یا بصورت دستی برای استفاده در عملیات aging and scavenging ، تغییر داده شده باشند . بطور معمول تنها رکوردهای منابعی که به شکل داینامیک با استفاده از پروتکل بروزرسانی پویای DNS یا (DNS dynamic update protocol ) اضافه می شوند ، موضوع کار aging and scavenging هستند .

برای رکوردهایی که به شکل غیر دینامیک به یک zone اضافه شده اند ، چه بوسیله یک zone file مبتنی بر متن ( text ) که از طریق یک DNS سرور دیگر اضافه شده باشند و چه به شکل دستی آنها به یک zone اضافه شده باشند ، بطور یش فرض یک time stamp صفر برای این نوع رکوردها فعال است .

این نوع تنظیم این رکوردها را برای استفاده در عملیات aging and scavenging نامناسب می سازد . ولی شما می توانید scavenging را برای آن دسته از رکوردهای منابعی که به شکل غیر داینامیک به یک zone اضافه شده اند ، فعال کنید . برای تغییر این پیش فرض ، شما می توانید این نوع رکوردها را برای تنظیم دوباره و اجازه دادن به آنها برای استفاده از یک مقدار time-stamp جدید (غیر صفر) ، شخصا مدیریت نمایید. این تغییر این امکان را برای این نوع از رکوردها فراهم می آورد تا در عملیات aging and scavenging منظور شوند .

  • نکته : زمانیکه شما یک Zone را از حالت Standard Primary به حالت Active Directory Integrated تبدیل می کنید ، شاید بخواهید که Scavenging برای کلیه رکورد های موجود در این Zone فعال شود . برای فعال کردن این قابلیت برای رکوردهای موجود در این Zone بایستی از دستور خط فرمانی theAgeAllRecords که یکی از زیرمجموعه های ابزار خط فرمانی dnscmd می باشد استفاده کنید.

توضیح اصطلاحات فنی در خصوص Aging and Scavenging

برای اینکه درک بهتری از اصطلاحات بکار گرفته شده در خصوص قابلیت Aging and Scavenging داشته باشید می توانید در ادامه توضیحات مربوط به اصطلاحات فنی بکار گرفته شده در این حوزه را مشاهده کنید تا در هنگام مطالعه در این خصوص دچار ابهام نشوید :

Resource record time stamp : یک مقدار تاریخ و زمان است که وقتی DNS سرور عملیات aging and scavenging را انجام می دهد از آن برای مشخص کردن حذف رکورد منبع استفاده می کند .

Current server time : مقدار کنونی تاریخ و زمان بر روی DNS سرور می باشد. این عدد می تواند به صورت یک مقدار عددی صحیح در هر لحظه ای بیان شود.

No-refresh interval : یک فاصله ی زمانی، برای هر ناحیه ی مشخص شده است که به وسیله دو رویداد زیر محدود شده اند:

  1. تاریخ و زمان وقتی که رکورد برای آخرین بار refresh شده و time stamp آن تنظیم شده باشد.
  2. تاریخ و زمان وقتی که رکورد در آینده برای refresh شدن واجد شرایط باشد و time stamp آن ریست شده باشد.

برای کاهش تعداد عملیات نوشتن در پایگاه داده اکتیودایرکتوری این مقدار مورد نیاز است. به طور پیش فرض، این بازه ی زمانی هفت روز تنظیم شده است و نباید به سطح نامعقولی افزایش داده شود زیرا فواید ویژگی aging and scavenging ممکن است از بین رفته یا نقصان پیدا کند .

Refresh interval : یک فاصله ی زمانی، برای هر ناحیه ی مشخص شده است که به وسیله دو رویداد مجزای زیر محدود شده اند:

  1. نزدیک ترین تاریخ و زمان وقتی که رکورد برای refresh سدن واجد شرایط بوده و time stamp آن ریست باشد.
  2. نزدیک ترین تاریخ و زمان وقتی که رکورد برای scavenge شدن واجد شرایط بوده و از دیتابیس zone خذف شده باشد.

این مقدار باید به اندازه کافی بزرگ باشد تا به همه ی کلاینت های اجازه دهد رکوردهایشان را refresh کنند. به طور پیش فرض این بازه ی زمانی هفت روز تنظیم شده است و نباید به سطح نامعقولی افزایش داده شود زیرا فواید ویژگی aging and scavenging ممکن است از بین رفته یا نقصان پیدا کند.

Start scavenging time : یک زمان مشخص است که به صورت یک عدد بیان می شود. سرور برای این که مشخص کند چه وقت zone برای scavenging در دسترس است از این زمان استفاده می کند.

Scavenging period : وقتی automatic scavenging در سرور فعال است، این دوره زمانی ( period ) زمان بین تکرار فرآیند scavenging را نشان می دهد. مقدار پیش فرض برای آن هفت روز می باشد. برای جلوگیری از زوال کارایی DNS سرور، کم ترین مقدار مجاز برای آن یک ساعت می باشد.

Record refresh : هنگامی که یک DNS dynamic update برای یک رکورد منبع پردازش می شود . به طور کلی refreshها به دلایل زیر اتفاق می افتند:

  1. وقتی یک کامپیوتر در شبکه ریستارت شده باشد و اگر در startup ، نام و اطلاعات IP address آن با نام مشابه و اطلاعات آدرسی که قبل از shutdown شدن استفاده می کرده است، سازگار باشد آن یک refresh برای نو کردن رکوردهای منبع مرتبط اش برای این اطلاعات می فرستد
  2. یک refresh دوره ای به وسیله کامپیوتر وقتی در حال کار کردن است فرستاده می شود. Windows DNS Client service ثبت DNS رکوردهای منبع کلاینت را هر 24 ساعت نوسازی می کند. وقتی این dynamic update اتفاق می افتد، اگر درخواست dynamic update سبب تغییری در پایگاه داده DNS نشود، عاقلانه این است که یک refresh وجود داشته باشد و نه یک update رکورد منبع.
  3. سرویس های دیگر شبکه سبب تلاش های نوسازی می شود، مانند: سرورهای DHCP که اجاره آدرس کلاینت را نوسازی می کند. سرورهای خوشه که رکوردها را برای یک خوشه ثبت و update می کند و سرویس Net Logon که می تواند رکوردهای منبعی که به وسیله اکتیودایرکتوری کنترولر استفاده می شود را ثبت و update می کند.

Record update: هنگامی یک DNS dynamic update برای یک رکورد منبع مورد پردازش قرار می گیرد که دیگر مشخصات رکورد به علاوه ی time stamp آن اصلاح شده باشد. به روز رسانی ها به طور کلی به دلایل زیر اتفاق می افتند :

  1. وقتی یک کامپیوتر جدید به شبکه اضافه می شود در زمان startup آن ، یک update برای ثبت رکودهایش برای اولین بار به zone پیکربندی شده در DNS سرور می فرستد .
  2. وقتی یک کامپیوتر با رکوردهای موجود در zone تغییری در IP address داشته باشد، سبب می شود که update هایی برای نگاشت های اصلاح شده ی name-to-address در داده های DNS zoneفرستاده شوند.
  3. وقتی سرویس name-to-address ، یک دامین کنترلر اکتیودایرکتوری جدید را به ثبت می رساند.

Scavenging server’s : یک پارامتر پیشرفته ی اختیاری zone است که شما را قادر می سازد که یک لیست محدود شده از IP address ها برای DNS serverهایی که قادر به اجرای scavenging درون zone هستند تعیین کنید. بصورت پیش فرض اگر این پارامتر تعیین نشده باشد، همه ی DNS server هایی که یک directory-integrated zone را بارگذاری می کند (همچنین فعال شده برای فرایند scavenging ) سعی به اجرای فرآیند scavenging در zone دارند.

در بعضی موارد این پارامتر می تواند مفید واقع شود اگر آن برتر از این باشد که scavenging تنها در بعضی از سرورهایی که directory-integrated zone را بارگذاری می کنند ، اجرا شده باشد . برای تنظیم این پارامتر، شما شما باید لیستی از IP addressها را برای سرورهایی که قادر به scavenge کردن zone در پارامتر ZoneResetScavengeServers برای zone می باشند را تعیین کنید. می توان این کار را با فرمان dnscmd انجام داد، یک ابزار مبتنی بر خط فرمان برای نظارت بر Windows DNS servers می باشد .

چه زمانی Scavenging شروع به کار می کند

بعد از فعال سازی همه ی پیش نیازها برای aging and scavenging آنگاه می توانیم از قابلیت scavenging استفاده کنیم . هنگامی که زمان کنونی سرور بیشتر از مقدار زمان شروع scavenging برای zone باشد، این فرآیند می تواند برای یک zone از DNS server شروع شود .سرور با توجه به رویدادهایی که در ادامه ذکر می شود ، برای شروع فرآیند scavenging بر اساس هر Zone موجود بر روی سرور زمانی را تعیین و تنظیم می کند :

  • Dynamic updates برای zone فعال باشد.
  • تغییری در وضعیت چک باکس Scavenge stale resource records داده شده باشد. شما می توانید از DNS Manager برای تغییر این تنظیمات در یک DNS server قابل اجرا یا یکی از primary zone های مربروط به آن استفاده کنید.
  • DNS server یک primary zone که عملیات scavenging برای آن فعال است ، را بارگذاری می کند . این اتفاق وقتی که کامپیوتر سرور یا سرویس DNS server شروع شده است، می تواند رخ دهد.
  • هنگامی که یک zone سرویس رابعد از متوقف شدن دوباره از سر می گیرد.
  • اگر zone یکپارچه با اکتیودایرکتوری (AD DS ) باشد، عملیات تکرار (replication ) برای zone دستکم یکبار از زمانی که سرویس DNS ریستارت شده یا دامین کنترلر ریبوت شده است، باید اتفاق بیفتد. هنگامی که اتفاقات قبل رخ می دهد، DNS sever مقدار زمان شروع scavenging را به وسیله محاسبه ی جمع زیر تنظیم می کند :
Current server time + Refresh interval = Start scavenging time 


از این مقدار به عنوان مبنای مقایسه در طول عملیات scavenging استفاده می شود.

فرآیند عملیات Aging and Scavenging بر روی یک رکورد فرضی

برای اینکه درک بهتری از فرآیند عملیات های Aging and Scavenging بر روی سرور داشته باشید فرض کنید که یک رکورد را از لحظه ایجاد بر روی سرور و Zone ای که بر روی آن قابلیت Aging and Scavenging فعال شده است زیر نظر میگیریم و از لحظه ایجاد تا لحظه حذف از پایگاه داده مورد بررسی قرار می دهیم ، ببینیم چه اتفاقی برای این رکورد می افتد :

    1. یک DNS host نوعی ، مثلا "host-a.example.microsoft.com" ، رکورد منبع host (A) مربوط به خودش را در DNS server ، درون یک zone ای که در آن aging and scavenging فعال است ، ثبت می کند .
    2. هنگامی که رکورد ثبت می شود ، DNS server یک time stamp بر روی این رکورد بر مبنای زمان فعلی سرور قرار می دهد . بعد از اینکه بر روی رکورد time stamp نوشته شد ، DNS server هیچگونه نوسازی (refresh ) برای این رکورد در مدت زمانی که zone در فاصله no-refresh interval ( مدت زمانی که zone نوسازی نمی شود ) قرار دارد ، نمی پذیرد .هرچند که DNS server ، می تواند بروز رسانی ها را برای رکورد را قبل از این زمان (no-refresh interval) بپذیرد. برای مثال اگر IP address برای "host-a.example.microsoft.com" تغییر کند ، DNS server می تواند این بروزرسانی را بپذیرد . در این وضعیت سرور همچنین time stamp رکورد را بروز رسانی (reset) می کند .
    3. به محض اینکه دوره no-refresh interval سپری شد ، سرور تلاش ها برای نوسازی این رکورد را شروع به پذیرفتن می کند . هنگامی که نخستین دوره no-refresh interval به پایان رسید ، دوره refresh interval فورا برای رکورد شروع می شود . طی این زمان سرور کلیه تلاش های رکورد برای نوسازی طول عمر باقیمانده خودش را مانع نمی شود .
    4. در طول و بعد از دوره refresh interval ، اگر سرور یک نوسازی برای رکورد را دریافت کند ، آن تقاضا پردازش می شود . این (reset ) تنظیم دوباره time stamp برای رکورد بر مبنای روشی است که در مرحله 2 توضیح داده شد .
    5. وقتی scavenging بعدی به وسیله سرور برای zone "example.microsoft.com" اجرا می شود، رکورد به وسیله سرور امتحان می شود. هر رکورد با زمان کنونی سرور بر اساس جمع زیر مقایسه می شود تا مشخص شود که آیا رکورد باید خذف شود یا نه:
Record time stamp + No-refresh interval for zone + Refresh interval for zone
Aging and Acavenging در DNS

اگر مقدار این جمع بزرگ تر از زمان کنونی سرور است، هیچ عملی انجام نمی شود و رکورد به حیاتش در zone ادامه می دهد.اگر مقدار این جمع کم تر از زمان کنونی سرور است، رکورد هم از هر zone data ای که هم اکنون در حافظه ی سرور بارگذاری شده است و هم از شی اجراشدنی DnsZone که در Active Directory Domain Services یا ( AD DS ) برای directory-integrated "example.microsoft.com" zone ذخیره شده است، خذف می گردد.


نظرات