در شبکه‌های کامپیوتری، یکی از اساسی‌ترین نیازها این است که کامپیوترها بتوانند اسم یکدیگر (Hostname) را تشخیص دهند و آن را به IP Address تبدیل کنند. این روند که Name Resolution یا Hostname Resolution نام دارد، عنصر اصلی برقراری ارتباط میان سیستم‌ها در شبکه‌های محلی (LAN)، شبکه‌های Domain و حتی اینترنت است.

🔍 Hostname Resolution چیست؟

Hostname Resolution فرایندی است که طی آن یک کامپیوتر تلاش می‌کند نام یک دستگاه (مثل PC1 یا SERVER01) را به آدرس IP تبدیل کند.
کامپیوتر بدون IP قادر به ارسال پینگ، باز کردن پوشه‌های اشتراکی، دسترسی ریموت یا هرگونه ارتباط شبکه‌ای نیست.

برای مثال وقتی می‌نویسیم:

ping WORKSTATION-1 

کامپیوتر ابتدا باید IP دستگاه WORKSTATION-1 را پیدا کند. اینجاست که مکانیزم‌های Resolution وارد عمل می‌شوند.


⚙️ کامپیوتر چگونه نام‌ها را resolve می‌کند؟ (ترتیب واقعی ویندوز)

ویندوز هنگام دریافت یک hostname، لیست زیر را به ترتیب اولویت بررسی می‌کند:

1. بررسی داخلی (local check)

اگر ورودی IP باشد (مثلاً 192.168.1.10)، هیچ رزولوشنی انجام نمی‌شود.


2. DNS Cache

ویندوز برای افزایش سرعت، نتیجهٔ رزولوشن‌های قبلی را در کش ذخیره می‌کند.

مشاهده کش DNS:

ipconfig /displaydns 

3. فایل Hosts

فایل hosts شامل نگاشت‌های دستی hostname → IP است.

مسیر:

C:\Windows\System32\drivers\etc\hosts 

مثال:

192.168.1.50 MyPC 

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


4. DNS Server

مهم‌ترین مکانیزم شبکه‌ای در ویندوز DNS است.
اگر DNS فعال باشد (مثلاً در شبکه Domain)، معمولاً همین مرحله پاسخ می‌دهد.

کامپیوتر یک DNS Query ارسال می‌کند و اگر رکورد وجود داشته باشد، IP را دریافت می‌کند.

مثال:

nslookup PC1 

اگر DNS جواب ندهد چه؟

ویندوز وارد فازهای رزولوشن محلی (Local Name Resolution) می‌شود:


5. LLMNR – Link-Local Multicast Name Resolution

LLMNR یک تکنولوژی مبتنی بر Multicast است که روی پورت UDP 5355 کار می‌کند.

اگر DNS پاسخ ندهد، سیستم کوئری LLMNR ارسال می‌کند:

  • آدرس Multicast در IPv4: 224.0.0.252

  • پروتکل: UDP 5355

پیام:
«چه کسی نام PC1 را دارد؟»

اگر سیستمی با این hostname وجود داشته باشد، پاسخ Unicast می‌فرستد و IP آن تشخیص داده می‌شود.

LLMNR مخصوص شبکه‌های کوچک و Workgroup است.


6. NetBIOS Name Service (NBNS)

NetBIOS یک سیستم قدیمی ولی پراستفاده برای یافتن نام‌ها در شبکه است. اگر LLMNR هم پاسخ ندهد، ویندوز از NetBIOS Broadcast استفاده می‌کند.

پورت‌ها:

  • UDP 137

پیام Broadcast:
«چه کسی نام PC1 را دارد؟»

سپس سیستم مقصد پاسخ می‌دهد:
«من هستم، IP من 192.168.1.15 است.»

این روش معمولاً در شبکه‌هایی بدون DNS استفاده می‌شود.


7. NetBIOS Cache

ویندوز پاسخ‌های NetBIOS را نیز مانند DNS کش می‌کند.

نمایش کش:

nbtstat -c 

8. WINS Server (در شبکه‌های قدیمی)

اگر سروری به نام WINS تنظیم شده باشد، کامپیوتر از آن می‌پرسد.
WINS بیشتر در ویندوزهای قدیمی استفاده می‌شد.


9. در صورت عدم یافتن نتیجه → خطا

اگر هیچ‌کدام از این روش‌ها جواب ندهند، پیغام خطا نمایش داده می‌شود:

Ping request could not find host PC1. 

📡 چرا در شبکه‌های ساده، hostname به راحتی پینگ می‌شود؟

چون معمولاً:

  • DNS وجود ندارد

  • LLMNR فعال است

  • NetBIOS فعال است

به همین دلیل ویندوز به‌صورت خودکار نام سیستم‌ها را تشخیص می‌دهد.


🔒 مسائل امنیتی مربوط به Hostname Resolution

برخی از این روش‌ها مثل LLMNR و NetBIOS در برابر حملات Spoofing آسیب‌پذیر هستند.
مهاجمان با ابزارهایی مثل Responder می‌توانند پاسخ جعلی بدهند و Credential کاربران را سرقت کنند.

بسیاری از شبکه‌های سازمانی LLMNR و NetBIOS را غیرفعال می‌کنند و به DNS تکیه می‌کنند.


🛠️ چگونه بفهمیم سیستم از کدام روش استفاده کرده؟

1. بررسی DNS

nslookup hostname 

2. بررسی NetBIOS

nbtstat -a <IP> 

3. مانیتور ترافیک LLMNR

در Wireshark فیلتر زیر را بزنید:

UDP 5355 

در هر سه روش می‌توان مشخص کرد کدام سیستم پاسخ داده است.


❓سؤالات متداول (FAQ)

آیا می‌توان LLMNR یا NetBIOS را غیرفعال کرد؟

بله، از طریق Group Policy یا تنظیمات کارت شبکه.

کدام روش بهترین و امن‌ترین است؟

DNS. سازمان‌ها معمولاً همه چیز را از طریق DNS مدیریت می‌کنند.

آیا رزولوشن hostname بین subnet‌ها ممکن است؟

فقط DNS قادر به عبور از Subnet است.
LLMNR و NetBIOS فقط در یک Subnet کار می‌کنند.

چرا پینگ hostname تأخیر دارد؟

به دلیل اینکه سیستم ابتدا DNS را چک می‌کند و اگر پاسخ ندهد، وارد مراحل LLMNR و NetBIOS می‌شود که کمی زمان‌بر هستند.


🏁 نتیجه‌گیری

کامپیوتر برای تشخیص hostname کامپیوترهای دیگر از یک مجموعه مکانیزم منظم استفاده می‌کند. این مکانیزم‌ها از DNS شروع شده و در نهایت به LLMNR و NetBIOS Broadcast ختم می‌شوند. در شبکه‌های حرفه‌ای، DNS بهترین و امن‌ترین راه برای Name Resolution است، اما در شبکه‌های کوچک مکانیزم‌های محلی مانند LLMNR و NetBIOS نقش کلیدی دارند.

این روند باعث می‌شود حتی در ساده‌ترین شبکه‌ها، کامپیوترها بتوانند تنها با استفاده از نام سیستم به‌راحتی با یکدیگر ارتباط برقرار کنند.