برای کم کردنTTL:
دو روش قدیمی و جدید در دسترس هست که روش جدید همراه با اموزش نسخه جهانیست,در مطلب امروز ما هر دو روش را برای شما توضیح میدهیم.
روش جدید:
با آمدن ادمین مستقیم(direct amin)نسخه ۱٫۳۷٫۰کاربران میتوانند مقادیر TTLرا با استفاده از User Level -> DNS Management -> TTL (bottom)عوض کنند.
روش جهانی:
انی روش تنها در صورتی کار میکند که بصورت موقتی per-record ttl values را با تنظمیات dns_ttl=0 in the directadmin.confغیرفعال کنید و دایرکت مستقیم را ریستارت کنید و بعد از اتمام کار آنرا روشن کنید.به یادداشته باید این روش مقادیر تمام TTLهارا در تمامی مناطق یکسان میکند.همینطور TTL مورد نظر خود را در directadmin.confقرار کنید و ادمین مستقیم را ریستارت کنید.وقتی که مقادیر dns_ttl=0 و default_ttl=300را مشخص کردید کد زیر را وارد کنید:
cd /usr/local/directadmin echo "action=rewrite&value=named" >> data/task.queue; ./dataskq d2000
بعد از اتمام کار میتوانید دوباره dns_ttl=1را مشخص کنید و default_ttl=14400را به حالت پیش فرض بیارید و ادمین مستقیم را ریستارت کنید.
روش قدیمی:
پی نوشت:این روش در صورتی که dns_ttl=1فعال باشد تاثیر نخواهد داشت,حتی اگر غیرفعال هم باشد,شما فقط میتوانید مقادیرdefault_ttl= valueدر directadmin.confرا مطابق خواسته خودتان تغییر دهید,وقتی ای پی یک دامین را تغییر میدهید,end userها ای پی دامین های قدیمی را در حافظه کش ISP’sخود برای زمان مشخصی ذخیره خواهند داشت.مقدار پیش فرض ذخیره آن ۱۴۴۰۰ثانیه یا ۴ ساعت میباشد,به این معنیست که بعد از اینکه شما ای پی سرور را تغییر میدهید,در بدترین حالت,کاربران آخر برای ۴ ساعت از ای پی اشتباهی استفاده خواهند کرد قبل از اینکه حافظه کش آن ها منقضی شود و مقادیر ای پی به مقدار درست برسد.ساده ترین راه برای کم کردن ارور در TTL,ما TTLرا از ۱۴۴۰۰را به ۱۰۰ثانیه برای همه ی دامین های روی سرور شما تغییر میدهیم(فرض بر اینکه سرور حرکت کند)کد زیر را دنبال میکنیم:
cd /usr/local/directadmin/data/templates perl -pi -e 's/14400/100/' named.db echo "action=rewrite&value=named" >> /usr/local/directadmin/data/task.queue
دو دقیقه صبر کنید تا پردازش انجام شود و فایل های /var/named/*.dbخود را چک کنید,حالا TTLاز ۱۴۴۰۰باید تبدیل به ۱۰۰ ثانیه شده باشد.بعد از اتمام آن همین کار را دوباره در فرمان PERL انجام بدهید و مقادیر ۱۴۴۰۰را با ۱۰۰ عوض کنید.اگر شما از این روش فقط برای یک دامین استفاده میکنید در فرمان PERL /var/named/domain.com.dbرا قرار دهید,فایل named.dbرا قرار دهید و آن را ریستارت کنید.در هر دو شرایط شما باید حداقل ۴ساعت اینکار را انجام دهیدقبل از اینکه فایل های ذخیره شده کش شما در ای پی شما از ۱۴۴۰۰ثانیه به ۱۰۰ثانیه تعغیر کند,اسم سرور همانطور که شما کد هارا برای آن وارد کرده اید در صف میمیاند و اینبار بجای ۱۴۴۰۰ثانیه هر ۱۰۰ ثانیه خواهد بود,و به کاربر آخر سریعتر ای پی جدید را خواهد داد.
اضافه کردن سابقهSRV:
سوابق SRVراه های استانداردی را برای سرویس ها اراعه میدهند تا از مقادیر متفاوتی استفاده کنند و برای یک برنامه مشخص, تا تشخیص دهد آن اتصالات به چه روشی هستند.ما از گفته های ویکی پدیا در اینجا استفاده کرده ایم,با توجه به گفته ها,فرمت باید به همچین شکلی باشد:
_service._proto.name TTL class SRV priority weight port target
و ما از مثال آنها استفاده میکنیم:
_sip._tcp.example.com. 86400 IN SRV 0 5 5060 sipserver.example.com.
قسمت ذکر شده یعنی _sip._tcp.example.comبه داخل سمت چپ قرمز سابقه SRVدر ادمین مستقیم (DIRECT ADMIN)میرود,و بخش ۰ ۵ ۵۰۶۰ sipserver.example.com.به داخل سمت راست آبی میرود.(ادمین مستقیم به صورت خودکار TTL را برای شما مشخص میکند).قسمت قرمز رنگ کد شامل سرویس ها,اسم ها,پروتکل ها و با فاصله کارکترها را جدا کرده است.کد زیر یک مثال از توضیحاتیس که به شما دادیم:
service: _sip protocol: _tcp name: example.com.
priority: 0 weight: 5 port: 5060 target: sipserver.example.com.
به یاد داشته باشید که بخش “name”باید همیشه با مقادیر اسم آن منطقه یکسان باشد.به طول مثال مقادیر نوشته شده در پایین باهم برابراند و از هر دو میشود استفاده کرد:
_sip._tcp.example.com. _sip._tcp
شکسته شدن سوابق به صورت TXTو چند خط شدنه آنها:
در فایل های TXT هر خط برای هر خودش محدودیتی را دارد,سیستم DNSبه شما قابلیت استفاده از چند خطی برای سوابق را میدهد,ما از قابلیت چند خطی استفاده میکنیم زیرا DKIM keysبه اجازه استفاده از خط های بلند را نمیدهد.
به طور مثال فایل سابقه ی DKIM TXTکه ما برای directadmin.comاستفاده میکنیم در فایل dbهمچین متنی است:
x._domainkey 14400 IN TXT ( "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApxJI+ldB/P7ocCsU4MjgC0iK+sIQ2g1Ft1RG3LuqquzaY8dmK+SsLVQi8uuo8t7DzAhsAGcHgHNOi189twbtQEz" "۴R3KOLhESd3xGUYP0FTvyejDOaAeZzvjCzI6oj42Y0pNDRrmuOgAd61qJy46+smfKc+QrI4E1DGHnjrlXzrsBK73DMqX9JuD9oGRaXDghakGdAebBjNcRsZfjIv84DPmrHE9/nqacqUnpK8Z71jAEc" "nklPIfC6LNmrWPzG7+6fN+LbAAUSjvXGw0GpB6EkhRsrcSwilE+vPe+S42aE4dBCvAbLjcZgJIA/gVqnNlm8jfL8qshXpQjIUObfd+o4wIDAQAB" )
و پیش نمایس خروجی از dnsهمچین حالتی خواهد داشت:
[root@jbmc-software public_html]# dig TXT x._domainkey.directadmin.com +short "v=DKIM1\; k=rsa\; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApxJI+ldB/P7ocCsU4MjgC0iK+sIQ2g1Ft1RG3LuqquzaY8dmK+SsLVQi8uuo8t7DzAhsAGcHgHNOi189twbtQEz" "4R3KOLhESd3xGUYP0FTvyejDOaAeZzvjCzI6oj42Y0pNDRrmuOgAd61qJy46+smfKc+QrI4E1DGHnjrlXzrsBK73DMqX9JuD9oGRaXDghakGdAebBjNcRsZfjIv84DPmrHE9/nqacqUnpK8Z71jAEc" "nklPIfC6LNmrWPzG7+6fN+LbAAUSjvXGw0GpB6EkhRsrcSwilE+vPe+S42aE4dBCvAbLjcZgJIA/gVqnNlm8jfL8qshXpQjIUObfd+o4wIDAQAB" [root@jbmc-software public_html]#
اگر یک برنامه در حال چک کردن سابقه اینگونه مقادیر باشد,به خود برنامه مربوط میشود که به چه حالت متن ها را نمایش دهد و آن ها را کنار هم بچیند,به طور مثال eximاز خط های منظم استفاده میکند و آنرا مرتب برای شما میچیند.
حذف دسته جمعی یک سابقه NSاز تمامی منطقه ها با استفاده از perl:
اگر شما هم میخواهید سابقه های NS را از تمامی مناطق خود حذف کنید,PERLمیتواند برای شما مفید باشد,فرض میکنیم شما میخواهید مقدار ns1.domain.comرا از تمامی سابقه های NSخود در تمامی مناطق پاک کنید:
۱)در مرحله اول برای جلوگیری از بروز مشکلات احتمالی یک نسخه پشتیبان از تمامی مناطق خود تهیه کنید:
cd /var/named tar cvzf /root/dns_backup.tar.gz *
۲)سپس کد زیر را اجرا کنید:
perl -pi -e 's#^.*NS\s+ns2\.domain\.com\.\n##' *.db
سعی کنید قبل از وارد کردن کد ها به آنها دقت کنید که اشتباهی وارد نشده باشد.
۳)در آخر نیاز دارید که تمامی سریال های در مناطق خود را بروزرسانی کنید,کد زیر را وارد کنید:
perl -pi -e 's#^.*NS\s+ns2\.domain\.com\.\n##' *.db
پی نوشت:یک منطقه باید حداقل یک سابقه NSرا داشته باشد,در غیر اینصورت کد ها بارگذاری نمیشود.
برای مطمعن شدن از عمل کردن کد یکی از منطقه هارا به صورت تصادفی چک کرده.