diff --git a/app/common/services/api-utils.js b/app/common/services/api-utils.js
index d7e4e7f..05b7c0c 100644
--- a/app/common/services/api-utils.js
+++ b/app/common/services/api-utils.js
@@ -247,6 +247,23 @@
                 return response.data;
               });
         },
+        setNameservers: function(interfaceName, dnsServers) {
+          return $http({
+                   method: 'PUT',
+                   url: DataService.getHost() +
+                       '/xyz/openbmc_project/network/' + interfaceName +
+                       '/attr/Nameservers',
+                   headers: {
+                     'Accept': 'application/json',
+                     'Content-Type': 'application/json'
+                   },
+                   withCredentials: true,
+                   data: JSON.stringify({'data': dnsServers})
+                 })
+              .then(function(response) {
+                return response.data;
+              });
+        },
         deleteIPV4: function(interfaceName, networkID) {
           return $http({
                    method: 'POST',
diff --git a/app/configuration/controllers/network-controller.html b/app/configuration/controllers/network-controller.html
index 41ab8a3..dc81ed3 100644
--- a/app/configuration/controllers/network-controller.html
+++ b/app/configuration/controllers/network-controller.html
@@ -75,12 +75,11 @@
 			</div>
 			<fieldset>
 				<div class="column small-12 large-4">
-					<ul>
-						<li ng-repeat="dns in interface.Nameservers track by $index">
-							<label for="net-config__prime-dns">DNS Server {{$index+1}}</label>{{dns}}
-							<br/>
-						</li>
-					</ul>
+						<!-- Call Nameservers "DNS Servers" on the GUI -->
+						<fieldset class="net-config__static-ip-wrap" ng-repeat="dns in interface.Nameservers track by $index">
+							<label for="net-config__prime-dns">DNS Server {{$index+1}}</label>
+							<input id="net-config__prime-dns" type="text" ng-model="dns" ng-blur="interface.Nameservers[$index] = dns"/>
+						</fieldset>
 				</div>
 			</fieldset>
 			<div class="network-config__submit-wrapper">
diff --git a/app/configuration/controllers/network-controller.js b/app/configuration/controllers/network-controller.js
index d5fdc00..4e8a7e0 100644
--- a/app/configuration/controllers/network-controller.js
+++ b/app/configuration/controllers/network-controller.js
@@ -55,6 +55,12 @@
           promises.push(setDHCPEnabled());
         }
 
+        // toString() is a cheap way to compare 2 string arrays
+        if ($scope.interface.Nameservers.toString() !=
+            $scope.old_interface.Nameservers.toString()) {
+          promises.push(setNameservers());
+        }
+
         // Set IPV4 IP Addresses, Netmask Prefix Lengths, and Gateways
         if (!$scope.interface.DHCPEnabled) {
           for (var i in $scope.interface.ipv4.values) {
@@ -164,6 +170,18 @@
                 });
       }
 
+      function setNameservers() {
+        return APIUtils
+            .setNameservers(
+                $scope.selectedInterface, $scope.interface.Nameservers)
+            .then(
+                function(data) {},
+                function(error) {
+                  console.log(JSON.stringify(error));
+                  $scope.set_network_error = 'DNS Servers';
+                });
+      }
+
       function setIPV4(index) {
         // The correct way to edit an IPV4 interface is to remove it and then
         // add a new one
