Index: /trunk/src/VBox/NetworkServices/DHCP/Config.cpp
===================================================================
--- /trunk/src/VBox/NetworkServices/DHCP/Config.cpp	(revision 48366)
+++ /trunk/src/VBox/NetworkServices/DHCP/Config.cpp	(revision 48367)
@@ -627,8 +627,8 @@
 
             case RTNET_DHCP_OPT_ROUTERS:
+            case RTNET_DHCP_OPT_DNS:
                 {
                     const Ipv4AddressContainer lst = 
-                      g_ConfigurationManager->getAddressList(
-                        RTNET_DHCP_OPT_ROUTERS);
+                      g_ConfigurationManager->getAddressList(pReqList[idxParam]);
                     PRTNETADDRIPV4 pAddresses = (PRTNETADDRIPV4)&opt.au8RawOpt[0];
 
@@ -648,6 +648,4 @@
             case RTNET_DHCP_OPT_DOMAIN_NAME:
                 break;
-            case RTNET_DHCP_OPT_DNS:
-                break;
             default:
                 Log(("opt: %d is ignored\n", pReqList[idxParam]));
Index: /trunk/src/VBox/NetworkServices/DHCP/VBoxNetDHCP.cpp
===================================================================
--- /trunk/src/VBox/NetworkServices/DHCP/VBoxNetDHCP.cpp	(revision 48366)
+++ /trunk/src/VBox/NetworkServices/DHCP/VBoxNetDHCP.cpp	(revision 48367)
@@ -383,4 +383,38 @@
 
         confManager->addToAddressList(RTNET_DHCP_OPT_ROUTERS, gateway);
+
+        ComPtr<IHost> host;
+        if (SUCCEEDED(virtualbox->COMGETTER(Host)(host.asOutParam())))
+        {
+            int i;
+            com::SafeArray<BSTR> strs;
+            if (SUCCEEDED(host->COMGETTER(NameServers)(ComSafeArrayAsOutParam(strs))))
+            {
+                RTNETADDRIPV4 addr;
+                confManager->flushAddressList(RTNET_DHCP_OPT_DNS);
+                int rc;
+                for (i = 0; i < strs.size(); ++i)
+                {
+                    rc = RTNetStrToIPv4Addr(com::Utf8Str(strs[i]).c_str(), &addr);
+                    if (RT_SUCCESS(rc))
+                        confManager->addToAddressList(RTNET_DHCP_OPT_DNS, addr);
+                }
+            }
+
+            strs.setNull();
+#if 0
+            if (SUCCEEDED(host->COMGETTER(SearchStrings)(ComSafeArrayAsOutParam(strs))))
+            {
+                /* XXX: todo. */;
+            }
+            strs.setNull();
+
+            Bstr domain;
+            if (SUCCEEDED(host->COMGETTER(DomainName)(domain.asOutPutParam())))
+            {
+                /* XXX: todo. */
+            }
+#endif
+        }
     }
 
