diff --git a/openbsc/src/gprs/gtphub.c b/openbsc/src/gprs/gtphub.c
index 8af3ff7..8e16497 100644
--- a/openbsc/src/gprs/gtphub.c
+++ b/openbsc/src/gprs/gtphub.c
@@ -1781,7 +1781,14 @@
 	int rc;
 
 	gtphub_init(hub);
-	gtphub_ares_init(hub);
+
+	/* If a Ctrl plane proxy is configured, ares will never be used. */
+	if (!cfg->ggsn_proxy[GTPH_PLANE_CTRL].addr_str) {
+		if (gtphub_ares_init(hub) != 0) {
+			LOG(LOGL_FATAL, "Failed to initialize ares\n");
+			return -1;
+		}
+	}
 
 	/* TODO set hub->restart_counter from external file. */
 
@@ -1806,7 +1813,6 @@
 		}
 	}
 
-
 	for (plane_idx = 0; plane_idx < GTPH_PLANE_N; plane_idx++) {
 		if (gtphub_make_proxy(hub,
 				      &hub->sgsn_proxy[plane_idx],
diff --git a/openbsc/src/gprs/gtphub_ares.c b/openbsc/src/gprs/gtphub_ares.c
index 8522556..7688b47 100644
--- a/openbsc/src/gprs/gtphub_ares.c
+++ b/openbsc/src/gprs/gtphub_ares.c
@@ -197,7 +197,7 @@
 			LOGP(DGTPHUB, LOGL_DEBUG,
 			     "GGSN resolved from cache: %s -> %s\n",
 			     lookup->apn_oi_str,
-			     gtphub_peer_str(resolved->peer));
+			     gtphub_port_str(resolved->peer));
 			return resolved->peer;
 		}
 	}
diff --git a/openbsc/src/gprs/gtphub_vty.c b/openbsc/src/gprs/gtphub_vty.c
index aead178..29a7316 100644
--- a/openbsc/src/gprs/gtphub_vty.c
+++ b/openbsc/src/gprs/gtphub_vty.c
@@ -20,12 +20,22 @@
 
 #include <string.h>
 
+#include <ares.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+
 #include <osmocom/core/talloc.h>
 #include <osmocom/vty/command.h>
 
 #include <openbsc/vty.h>
 #include <openbsc/gtphub.h>
 
+/* TODO split GRX ares from sgsn into a separate struct and allow use without
+ * globals. */
+#include <openbsc/sgsn.h>
+extern struct sgsn_instance *sgsn;
+
 static struct gtphub_cfg *g_cfg = 0;
 
 static struct cmd_node gtphub_node = {
@@ -57,6 +67,10 @@
 		c->addr_str, (int)c->port,
 		u->addr_str, (int)u->port,
 		VTY_NEWLINE);
+
+	struct ares_addr_node *server;
+	for (server = sgsn->ares_servers; server; server = server->next)
+		vty_out(vty, " grx-dns-add %s%s", inet_ntoa(server->addr.addr4), VTY_NEWLINE);
 }
 
 static int config_write_gtphub(struct vty *vty)
@@ -214,6 +228,22 @@
 	return CMD_SUCCESS;
 }
 
+
+/* Copied from sgsn_vty.h */
+DEFUN(cfg_grx_ggsn, cfg_grx_ggsn_cmd,
+	"grx-dns-add A.B.C.D",
+	"Add DNS server\nIPv4 address\n")
+{
+	struct ares_addr_node *node = talloc_zero(tall_bsc_ctx, struct ares_addr_node);
+	node->family = AF_INET;
+	inet_aton(argv[0], &node->addr.addr4);
+
+	node->next = sgsn->ares_servers;
+	sgsn->ares_servers = node;
+	return CMD_SUCCESS;
+}
+
+
 DEFUN(show_gtphub, show_gtphub_cmd, "show gtphub",
       SHOW_STR "Display information about the GTP hub")
 {
@@ -238,6 +268,7 @@
 	install_element(GTPHUB_NODE, &cfg_gtphub_ggsn_proxy_cmd);
 	install_element(GTPHUB_NODE, &cfg_gtphub_sgsn_proxy_short_cmd);
 	install_element(GTPHUB_NODE, &cfg_gtphub_sgsn_proxy_cmd);
+	install_element(GTPHUB_NODE, &cfg_grx_ggsn_cmd);
 
 	return 0;
 }
