کاربرد STUN و نحوه عملکرد آن به چه صورت است؟

کاربرد STUN

STUN (Session Traversal Utilities for NAT) یک پروتکل شبکه است که به دستگاه‌های VoIP و سایر برنامه‌های شبکه کمک می‌کند تا از طریق NAT (Network Address Translation) و فایروال‌ها به صورت صحیح ارتباط برقرار کنند. کاربرد STUN به طور ویژه در ارتباطات VoIP و تماس‌های SIP برای حل مشکلات مربوط به NAT استفاده می‌شود.

کاربرد STUN در مرکز تلفن‌های مبتنی بر آی پی

کشف آدرس IP عمومی و پورت

بعد از راه اندازی مرکز تلفن ویپ هنگامی که دستگاهی پشت NAT قرار دارد، نمی‌تواند به طور مستقیم از آدرس IP عمومی و پورت خود اطلاع پیدا کند. کاربرد STUN این است که به دستگاه کمک می‌کند تا این اطلاعات را با استفاده از سرور STUN کشف کند.

مدیریت ارتباطات VoIP

در تماس‌های VoIP که از پروتکل‌هایی مانند SIP استفاده می‌کنند، کاربرد STUN این است به دستگاه‌های نهایی کمک می‌کند تا بتوانند با یکدیگر ارتباط برقرار کنند حتی اگر پشت NAT یا فایروال باشند.

حل مشکلات NAT

کاربرد STUN این است که به دستگاه‌ها کمک می‌کند تا مشکلاتی مانند تعیین اینکه آیا NAT موجود از نوع Full Cone، Restricted Cone، Port Restricted Cone یا Symmetric است را شناسایی کنند، که برای تنظیمات صحیح ارتباطات ضروری است.

نحوه عملکرد پروتکل STUN

ارسال درخواست STUN

دستگاهی که پشت NAT قرار دارد (کلاینت STUN) یک درخواست STUN به سرور STUN ارسال می‌کند. این درخواست به سرور STUN عمومی ارسال می‌شود که معمولاً در اینترنت در دسترس است.

پاسخ از سرور STUN

سرور STUN درخواست را دریافت کرده و با استفاده از آدرس IP و پورت عمومی که درخواست از آن دریافت شده، به دستگاه پاسخ می‌دهد. این اطلاعات شامل آدرس IP و پورت عمومی NAT دستگاه است.

پیکربندی NAT

با دریافت اطلاعات IP عمومی و پورت از سرور STUN، دستگاه می‌تواند تنظیمات NAT خود را به روز کرده و اطلاعات لازم را برای برقراری ارتباط با سایر دستگاه‌ها فراهم کند. این اطلاعات برای تنظیمات صحیح SIP و RTP (Real-time Transport Protocol) مورد استفاده قرار می‌گیرد.

مراحل پیکربندی STUN

برای استفاده از پروتکل STUN در یک سیستم VoIP مانند ایزابل، می‌توانید مراحل زیر را دنبال کنید:

تنظیم سرور STUN در دستگاه‌های VoIP

در دستگاه‌های VoIP (مانند تلفن‌های IP یا نرم‌افزارهای VoIP)، باید آدرس سرور STUN را وارد کنید. این کار به دستگاه‌ها کمک می‌کند تا آدرس IP و پورت عمومی خود را کشف کنند.

معمولاً در بخش تنظیمات شبکه یا SIP دستگاه‌ها، گزینه‌ای برای پیکربندی سرور STUN وجود دارد. باید آدرس سرور STUN عمومی را وارد کنید. به عنوان مثال:

stun.l.google.com:19302

برخی از سرورهای STUN عمومی عبارتند از:

stun.l.google.com:19302
stun1.l.google.com:19302
stun2.l.google.com:19302

پیکربندی STUN در ایزابل (Asterisk)

اگر از Asterisk در ایزابل استفاده می‌کنید، برای استفاده و کاربرد STUN در سیستم تلفنی خود میتوانید آنرا برای پیکربندی SIP و مدیریت NAT استفاده کنید. برای این منظور در فایل pjsip.conf، می‌توانید گزینه‌های زیر را اضافه کنید:

[global]
; STUN server settings
stun_server=stun.l.google.com:19302

دقت داشته باشد که اگر تنظیمات مرکز تلفن و ترانک‌های SIP شما در فایل sip.conf انجام شده باشد و از chan_sip (ماژول SIP سنتی در Asterisk) استفاده می‌کنید، تنظیمات STUN باید در همان فایل sip.conf انجام شود، نه در pjsip.conf.

فایل pjsip.conf مربوط به ماژول جدیدتر SIP در Asterisk به نام chan_pjsip است که جایگزین chan_sip شده است. اگر شما از chan_sip استفاده می‌کنید و تنظیمات ترانک‌ها و داخلی‌ها را در sip.conf انجام داده‌اید، تنظیمات STUN نیز باید در این فایل اعمال شود.

پیکربندی STUN در فایل sip.conf

برای پیکربندی STUN در sip.conf، می‌توانید ابتدا فایل sip.conf را با استفاده از یک ویرایشگر و یا با دستور زیر باز کنید

sudo nano /etc/asterisk/sip.conf

اضافه کردن تنظیمات STUN:

در بخش [general] یا در بخش مربوط به هر داخلی یا ترانک خاص که می‌خواهید از STUN استفاده کند، تنظیمات زیر را اضافه کنید:


[general]
stunaddr=stun.l.google.com:19302externip=1.2.3.4 ; آدرس IP عمومی شما
localnet=192.168.1.0/255.255.255.0 ; شبکه داخلی شما
nat=yes

گزینه stunaddr آدرس سرور STUN را تعیین می‌کند.
externip یا externhost برای مشخص کردن آدرس IP یا نام دامنه عمومی سرور مورد استفاده قرار می‌گیرد.
localnet شبکه محلی شما را تعریف می‌کند.
nat=yes برای فعال کردن تنظیمات NAT است.

پس از اعمال تغییرات، فایل را ذخیره و ببندید. و استریسک را با دستور زیر ریلود کنید:

sudo asterisk -rx “sip reload”

نکته مهم:
استفاده از یک نوع ماژول SIP: باید دقت کنید که همزمان از chan_sip و chan_pjsip برای یک نوع ترانک یا داخلی استفاده نکنید، زیرا این دو ماژول با یکدیگر ناسازگار هستند. اگر از chan_sip استفاده می‌کنید، تمام تنظیمات SIP خود را در sip.conf انجام دهید و اگر از chan_pjsip استفاده می‌کنید، از pjsip.conf استفاده کنید.
در نتیجه، اگر تنظیمات شما در sip.conf انجام شده است، تنظیمات STUN را هم باید در همان فایل اضافه کنید.

تست و بررسی کاربرد stun

پس از پیکربندی STUN، باید کاربرد stun را در تماس‌های VoIP تست کنید تا اطمینان حاصل کنید که دستگاه‌ها به درستی می‌توانند از طریق NAT ارتباط برقرار کنند. مشکلاتی مانند عدم برقراری تماس یا کیفیت پایین تماس می‌تواند نشان‌دهنده مشکلات در پیکربندی STUN یا NAT باشد.

نتیجه‌گیری

کاربرد STUN به عنوان یک ابزار حیاتی برای حل مشکلات مرتبط با NAT در شبکه‌های VoIP است و به دستگاه‌ها کمک می‌کند تا آدرس‌های IP عمومی و پورت‌های مورد نیاز برای برقراری تماس‌های VoIP را شناسایی کنند. با پیکربندی صحیح STUN در دستگاه‌ها و سرورهای VoIP، می‌توانید مشکلات اتصال و کیفیت تماس را کاهش دهید و ارتباطات VoIP را بهینه کنید.