diff --git a/openbsc/doc/examples/osmo-gtphub/osmo-gtphub.cfg b/openbsc/doc/examples/osmo-gtphub/osmo-gtphub.cfg
index c9bb4cf..0dc4150 100644
--- a/openbsc/doc/examples/osmo-gtphub/osmo-gtphub.cfg
+++ b/openbsc/doc/examples/osmo-gtphub/osmo-gtphub.cfg
@@ -21,3 +21,5 @@
  ! Proxy with nonstandard ports or separate IPs:
  !ggsn-proxy ctrl 127.0.0.3 2123 user 127.0.0.5 2152
 
+ ! Add a name server for GGSN resolution
+ !grx-dns-add 192.168.0.1
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;
 }
