رکورد SRV چیست؟
SRV یا Service Record یکی از رکوردهایی است که در فایلِ DNS Zone یک دامنه تعریف و از آن برای برقراری ارتباط نام دامنه با سرویس(ها) استفاده میشود. این سرویس میتواند چاپگر تحت شبکه یا حتا یک سرور بازی باشد.
کاربرد رکورد SRV
بهطور معمول سرویسها با شمارهی پورت، به همراه آدرس IP یا نام دامنهشان مشخص میشوند. برای نمونه، برای دسترسی به سرویس ftp از نام دامنهی example.com، میتوان چنین درخواستی را با مرورگر ارسال کرد: example.com:21 که در نهایت در مرحلهی ترجمهی نام دامنه، این درخواست بهشکل ۱۸۵.۱۴۳.۲۳۴.۵:۲۱، یا همان [Port]:[IP] تبدیل میشود. SRV Record نیز بهشکل کلی دسترسی به یک سرویس را امکانپذیر میسازد، اما تفاوت آن با حالت پیش در چیست؟
در حالت [Port]:[IP]، در واقع سرویسی روی یک رایانهی مشخص در شبکه تعریف شده است. در این حالت هر کاربری که بخواهد از این سرویس استفاده کند، باید بهشکل دستی این آدرس IP و پورت را وارد کند.
اما در حالت SRV Record، یک سرویس در سطح نام دامنه تعریف میشود. به این معنی که از این پس درخواستها تنها به شکل نام دامنهی سرویسدهنده، به همراه نام سرویس و نوع پروتکل ارسال میشوند. بنابراین این درخواست میتواند به شکل example.com ftp tcp انجام شود.
حال این چه تفاوتی برای معماران و تولیدکنندگان نرمافزار ایجاد میکند؟ اگر معمار نرمافزار، برنامهی سمت کاربر خود را به گونهای طراحی کرده باشد که برای برقراری ارتباط با سرور، به جای [Port]:[Hostname] و یا [Port]:[IP]، از نام دامنهای با امکان SRV Record استفاده کند، درآینده برای تغییر پورت و نام دامنهی سرویس دیگر مشکلی نخواهد داشت.
ساختار رکورد SRV
- 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: در اینجا نام میزبانی که سرویس در آن قرار دارد، مشخص میشود. اگر به جای نام میزبان، ( . ) قرار داده شود، آن سرویس مسدود میشود.
شما در محصول DNS ابری آروان میتوانید به راحتی از بخش مدیریت رکوردها، رکوردهای DNS دامنهی خود را اضافه، ویرایش یا حذف کنید.