پروتکل کنترل دستگاه دروازه اینترنت (UPnP IGD) یک پروتکل مبتنی بر UPnP برای نگاشت پورتها در تنظیمات برگردان نشانی شبکه (NAT) است که توسط برخی روترهای دارای برگردان نشانی شبکه (NAT) پشتیبانی میشود. این یک پروتکل ارتباطی رایج برای پیکربندی خودکار ارسال پورت است و بخشی از استاندارد ISO / IEC به جای استاندارد نیروی کار مهندسی اینترنت است.
برنامههایی که از شبکههای همتا به همتا (peer-to-peer)، بازیهای چندنفره و برنامههای کمک از راه دور استفاده میکنند، به راهی برای برقراری ارتباط از طریق دروازههای خانگی و تجاری نیاز دارند. بدون IGD باید به صورت دستی دروازه را پیکربندی کرد تا امکان عبور ترافیک فراهم شود، این فرایند زمان بر است و ممکن است باعث بروز مشکل شود. UPnP راه حلی برای پیمایش ترجمه آدرس شبکه (پیمایش NAT) NAT traversal دارد که IGD را پیادهسازی میکند.
IGD انجام کارهای زیر را آسان میکند:
اضافه کردن و حذف نگاشت پورت
زمانهای اجاره را به نگاشتها اختصاص دهید
نگاشت پورتهای موجود را برشمارید
آدرس IP عمومی (خارجی) را بیاموزید
UPnP IGDv2 در سال ۲۰۱۰ منتشر شد، پشتیبانی IPv6 را اضافه کرد و تصور نادرست از زمان اجاره نامحدود با مقدار ۰ را تصحیح کرد. مشخصات با گذشته سازگار هستند، اما مشکلات سازگاری وجود دارد، به عنوان مثال با کارخواه (client) مایکروسافت.
مشکلات سازگاری متعددی وجود دارد که به دلیل تفاسیر مختلف از مشخصات بسیار بزرگ سازگار با IGDv1 و IGDv2 است. یکی از آنها کلاینت UPnP IGD است که با سیستمهای ویندوز و ایکس باکس فعلی مایکروسافت با روترهای تأیید شده IGDv2 یکپارچه شده است. مشکل سازگاری از زمان معرفی کلاینت IGDv1 در ویندوز XP در سال ۲۰۰۱، و روتر IGDv2 بدون راه حلی که نگاشت پورت روتر را غیرممکن میکند، همچنان وجود دارد.
اگر UPnP فقط برای کنترل نگاشتها و سوراخهای پورت روتر استفاده شود، پروتکلهای جایگزین، جدیدتر و بسیار سادهتر و سبکتر مانند PCP و NAT-PMP وجود دارد که هر دو توسط IETF به عنوان RFC استاندارد شدهاند.[۱] هنوز مشخص نیست که این جایگزینها دارای مشکلات سازگاری بین کلاینتها و سرورهای مختلف هستند یا خیر، اما هنوز مقبولیت آنها کم است. برای روترهای مصرفکننده، تنها AVM و پروژههای نرمافزار روتر منبع باز OpenWrt , OPNsense و pfSense در حال حاضر به پشتیبانی از PCP به عنوان جایگزینی برای UPnP شناخته شدهاند. Fritz!Box AVM اجرای UPnP IGDv2 و PCP از زمان معرفی بسیار پر باگ بوده است. و در بسیاری از موارد کار نمیکند.
بدافزار میتواند از پروتکل IGD سوء استفاده کند تا دستگاههای متصل را تحت کنترل یک کاربر خارجی قرار دهد. Conficker worm نمونه ای از یک بات نت است که با استفاده از این vector ایجاد شده است.
میزبان میتواند دستگاههای موجود IGDv1/IGDv2 را تنها با یک M-SEARCH برای IGDv1 در شبکه از طریق پروتکل کشف سرویس ساده (SSDP) کشف کند که سپس با کمک یک پروتکل شبکه مانند SOAP قابل کنترل است. یک درخواست کشف از طریق HTTP و پورت ۱۹۰۰ به آدرس چندپخشی IPv4 239.255.255.250 ارسال میشود (برای آدرسهای IPv6 به پروتکل کشف سرویس ساده (Simple Service Discovery Protocol) مراجعه کنید):
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
MAN: "ssdp:discover"
MX: 2
ST: urn:schemas-upnp-org:device:InternetGatewayDevice:1