رکورد SRV مشخص کننده ی هاست پشتیبانی کننده از یک سرویس خاص است. به بیان ساده اگر کاربری یا اپلیکیشنی درخواست دسترسی به یک سرویس خاص را برای سرور DNS ارسال کند، در پاسخ برای آن رکورد SRV حاوی نام دامنه و شماره پورتی که سرویس روی آن فعال است، ارسال می شود. ایجاد یک رکورد SRV به طور عجیبی می تواند بعداً باعث صرفه جویی در وقت شما شود، این رکورد مخفف Service یک رکورد کاربردی در ساختار DNS است که برای برقراری ارتباط نام دامنه با سرویس ها کاربرد دارد، در این مقاله با این رکورد بیشتر آشنا خواهیم شد.
SRV رکوردها یک نوع DNS رکورد سفارشی هستند. آن ها برای ایجاد ارتباط بین یک سرویس و یک نام میزبان یا همان هاست نیم استفاده می شوند. هنگامی که یک برنامه باید مکان سرویس خاص را پیدا کند، یک فایل SRV مربوط را جستجو می کند. اگر یکی از آنها را پیدا کند، لیست خدمات و نام های میزبان متصل کننده آن ها را برای یافتن موارد زیر پیدا می کند:
• Hostname یا همان نام میزبان
• پورت ها
• اولویت و وزن یا Priority / Weight
• در صورت لزوم آدرس های IP
SRV یا Service Record یکی از رکوردهایی است که در فایل DNS Zone یک دامنه تعریف و از آن برای برقراری ارتباط نام دامنه با سرویس استفاده میشود. این سرویس میتواند چاپگر تحت شبکه یا حتی یک سرور بازی باشد. رکورد SRV نوع پیشرفته ای از رکورد DNS است که به شما امکان می دهد خدمات خاصی را ارائه کنید. این روش نحوه تعامل یک دامنه خاص با یک سرویس اینترنتی خاص مانند FTP یا SIP را توضیح می دهد. رکورد SRV یک میزبان و پورت را برای سرویس های خاص مانند سرویس های صوتی از طریق IP (VoIP)، پیام رسان فوری و غیره مشخص می کند. اکثر رکوردهای DNS فقط یک سرور یا یک آدرس IP مشخص دارند، اما رکورد SRV شامل یک پورت به همراه IP نیز می باشد.
برخی از پروتکل های اینترنتی نیاز به استفاده از رکوردهای SRV دارند. در شبکه، پورت ها مکان های مجازی هستند که مشخص می کنند که پردازش ترافیک شبکه در رایانه به کجا منتقل میشوند. پورت ها به رایانه ها اجازه می دهند تا به راحتی بین انواع مختلف ترافیک ها وجه تمایزی ایجاد نمایید. پروتکل های اینترنتی خاصی مانند IMAP ، SIP و XMPP علاوه بر اتصال به یک سرور خاص، باید به یک پورت خاص نیز متصل شوند. بصورت کلی، رکورد SRV نحوه تعیین یا نمایش یک پورت در DNS را بر عهده دارد، با استفاده از رکورد SRV می توان اولویت دسترسی به سرور ها را تعیین کرد.
کاربرد رکورد SRV
به شکل معمول سرویس ها با شماره ی پورت، به همراه آدرس IP یا نام دامنه شان مشخص می شوند. برای نمونه، برای دسترسی به سرویس FTP از نام دامنه ی example.com، می توان چنین درخواستی را با مرورگر ارسال کرد: example.com:21 که در نهایت در مرحله ی ترجمه ی نام دامنه، این درخواست به شکل 185.128.81.73:21، یا همان Port: IP تبدیل می شود، SRV Record نیز به شکل کلی دسترسی به یک سرویس را امکان پذیر می سازد. حالت Port: IP در واقع سرویسی روی یک رایانه ی مشخص در شبکه تعریف شده است. در این حالت هر کاربری که بخواهد از این سرویس استفاده کند، باید به شکل دستی این آدرس IP و پورت را وارد کند. اما در حالت SRV Record، یک سرویس در سطح نام دامنه تعریف می شود. به این معنی که از این پس درخواست ها تنها به شکل نام دامنه ی سرویس دهنده، به همراه نام سرویس و نوع پروتکل ارسال می شوند. بنابراین این درخواست می تواند به شکل example.com ftp tcp انجام شود.
حال این مورد چه تفاوتی برای معماران و تولیدکنندگان نرم افزار ایجاد می کند؟ پاسخ آن است که اگر معمار نرم افزار، برنامه ی سمت کاربر خود را به گونه ای طراحی کرده باشد که برای برقراری ارتباط با سرور، به جای Port: Hostname و یا Port: IP از نام دامنه ای با امکان SRV Record استفاده کند، در آینده برای تغییر پورت و نام دامنه ی سرویس ، دیگر مشکلی نخواهد داشت. با وجود مقادیری مانند weight و priority، مدیران می توانند از چندین سرور برای یک دامنه استفاده کنند، در صورت خرابی سرور اصلی، سایر سرورها نیز در دسترس قرار می گیرند. در خصوص تفاوت این دو میتوان گفت اگر چند رکورد SRV مختلف برای یک سرویس تعریف شود، با استفاده از priority می توان مشخص کرد که کدام رکورد ابتدا بررسی شود. اما اگر دو رکورد SRV دارای اولویت یکسانی باشند، هر رکوردی که Weight بیش تری داشته باشد، اولویت بالاتری دارد. تفاوت اصلی بین weight و priority این است که ابتدا priority مورد بررسی قرار می گیرد.
ساختار رکورد SRV
XMMP. _ <<< Service_
TCP. <<< Protocol
Parsdata.com. <<< Domain Name
TTL >>> برای نمونه 86400
SRV <<< Type
IN <<< Class
Priority >>> برای نمونه 10
Weight >>> برای نمونه 5
Port >>> برای نمونه 28663
server.parsdata.com. <<< Target
• Service : رکورد SRV با یک علامت خط تیره بزرگ شروع می شود. به این ترتیب، سرور DNS و فایل DNS Zone می تواند نقطه ی آغاز هر رکورد را تشخیص دهد. پس از علامت خط تیره بزرگ ، نام سرویس که به شکل نمادین است، قرار می گیرد. برای نمونه، این نام می تواند imaps یا ftp که بیان گر سرویس های استاندارد متناظر آن ها است، باشد. در واقع این نام، اطلاعاتی را به درخواست کننده میدهد که در هنگام اتصال انتظار چه نوع سرویسی را داشته باشد. پس از نام سرویس، یک نقطه و علامت خط تیره بزرگ در انتها قرار می گیرد که بیان گر پایان بخش نام گذاری است.
• Protocol : این بخش مشخص کننده ی نوع پروتکل است که این پروتکل میتواند UDP یا TCP باشد.
• Domain : در بخش نام دامنه ای که این فایل DNS Zone به آن تعلق دارد و رکورد SRV برای آن تعریف شده است، قرار می گیرد.
• TTL : مشخص کننده ی مدت زمان اعتبار این رکورد در سرورهای DNS است. پس از اتمام این زمان، درخواست جدیدی به وسیله ی سرورها برای اطلاع از تغییرات احتمالی SRV Record، ارسال می شود.
• Class : نوع کلاس رکورد DNS را مشخص می کند که برای مصارف معمول اینترنت، مقدار آن برابر IN است.
• SRV : نوع رکورد DNS را مشخص می کند.
• Priority : در فهرست رکورد SRV ممکن است چند سرویس هم نوع تعریف شود که برای مقاصدی مانند متعادل کردن بار ترافیکی درخواست ها به کار می آیند. بنابراین برای مشخص کردن سرویسی که پیش از سایر سرویس ها باید اجرا شود، عددی بین بازه صفر تا ۶۵۵۳۵ تعلق می گیرد که بیان گر اولویت آنها است. هرچه این عدد مقدار کم تری داشته باشد، اولویت آن بالاتر و زودتر از سایر رکوردها، به آن رجوع می شود.
• Weight : اگر دو یا چند سرویس اولویت یکسانی داشته باشند، مقدار وزن مشخص شده برای ترتیب اجرای آنان مورد استفاده قرار می گیرد. هر چه عدد وزن بالاتر باشد، رکورد آن زودتر از سایر رکوردها اجرا میشود. این عدد نیز باید در بازه صفر تا ۶۵۵۳۵ قرار داشته باشد.
• Port : شماره ی پورت سرویس را مشخص می کند. در مثال بالا، شماره پورت ۹۹۳ بیان گر سرویس imaps است.
• Target : در اینجا نام میزبانی که سرویس در آن قرار دارد، مشخص میشود. اگر به جای نام میزبان، نقطه قرار داده شود، آن سرویس مسدود می شود.
• TTL : مشخص کننده ی مدت زمان اعتبار این رکورد در سرورهای DNS است. پس از اتمام این زمان، درخواست جدیدی به وسیله ی سرورها برای اطلاع از تغییرات احتمالی SRV Record، ارسال می شود.
• Class: نوع کلاس رکورد DNS را مشخص می کند که برای مصارف معمول اینترنت، مقدار آن برابر IN است.
• SRV : نوع رکورد DNS را مشخص میکند.
روش های دسترسی یا دریافت خروجی SRV
روش 1. از DNS Manager استفاده کنید :
پس از نصب Active Directory بر روی سروری که سرویس DNS را اجرا می کند، می توانید از کنسول مدیریت DNS برای تأیید ایجاد zoneهای مناسب و رکوردهای منابع برای هر Zone DNS استفاده کنید. Active Directory رکوردهای SRV خود را در پوشه های زیر ایجاد می کند، جایی که نام دامنه شما است:
• Forward Lookup Zones/Domain_Name/_msdcs/dc/_sites/Default-First-Site-Name/_tcp
• Forward Lookup Zones/Domain_Name/_msdcs/dc/_tcp
در این مکان ها، باید یک رکورد SRV برای سرویس های زیر ظاهر شود:
_kerberos
_ldap
روش 2. مشاهده Netlogon.dns :
اگر از یک DNS servers غیر از مایکروسافت برای پشتیبانی Active Directory استفاده می کنید، می توانید با مشاهده Netlogon.dns رکوردهای SRV را تأیید کنید. Netlogon.dns در پوشه مربوطه قرار دارد. برای مشاهده این فایل می توانید از ویرایشگر متن مانند Notepad استفاده کنید. اولین رکورد موجود در پرونده، رکورد SRV کنترلر دامنه LDAP است. این رکورد باید مشابه رکورد زیر باشد:
_ldap._tcp.
روش 3. از Nslookup استفاده کنید :
Nslookup ابزاری با خط فرمان است و اطلاعاتی را که می توانید برای تشخیص زیرساخت Domain Name System DNS یا DNS استفاده کنید، نمایش می دهد. برای استفاده از Nslookup برای تأیید رکورد SRV، این مراحل را دنبال کنید:
1. به مسیر Start > Run مراجعه کنید
2. در پنجره باز شده cmd را تایپ کنید
3. سپس nslookup را در پنجره cmd وارد کرده و Enter نمایید.
4. set type=all را تایپ نمایید و Enter نمایید.
5. _ldap._tcp.dc._msdcs. Domain_Name را تایپ کنید.
که در آن نام دامنه شما می باشد و سپس ENTER را فشار دهید.