diff --git a/quic/qbone/bonnet/qbone_tunnel_info.cc b/quic/qbone/bonnet/qbone_tunnel_info.cc
new file mode 100644
index 0000000..372cd2b
--- /dev/null
+++ b/quic/qbone/bonnet/qbone_tunnel_info.cc
@@ -0,0 +1,37 @@
+// Copyright (c) 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "quic/qbone/bonnet/qbone_tunnel_info.h"
+
+namespace quic {
+
+QuicIpAddress QboneTunnelInfo::GetAddress() {
+  QuicIpAddress no_address;
+
+  NetlinkInterface::LinkInfo link_info{};
+  if (!netlink_->GetLinkInfo(ifname_, &link_info)) {
+    return no_address;
+  }
+
+  std::vector<NetlinkInterface::AddressInfo> addresses;
+  if (!netlink_->GetAddresses(link_info.index, 0, &addresses, nullptr)) {
+    return no_address;
+  }
+
+  quic::QuicIpAddress link_local_subnet;
+  if (!link_local_subnet.FromString("FE80::")) {
+    return no_address;
+  }
+
+  for (const auto& address : addresses) {
+    if (address.interface_address.IsInitialized() &&
+        !link_local_subnet.InSameSubnet(address.interface_address, 10)) {
+      return address.interface_address;
+    }
+  }
+
+  return no_address;
+}
+
+}  // namespace quic
diff --git a/quic/qbone/bonnet/qbone_tunnel_info.h b/quic/qbone/bonnet/qbone_tunnel_info.h
new file mode 100644
index 0000000..6ca6ae8
--- /dev/null
+++ b/quic/qbone/bonnet/qbone_tunnel_info.h
@@ -0,0 +1,29 @@
+// Copyright (c) 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef QUICHE_QUIC_QBONE_BONNET_QBONE_TUNNEL_INFO_H_
+#define QUICHE_QUIC_QBONE_BONNET_QBONE_TUNNEL_INFO_H_
+
+#include "quic/platform/api/quic_ip_address.h"
+#include "quic/qbone/platform/netlink_interface.h"
+
+namespace quic {
+
+class QboneTunnelInfo {
+ public:
+  QboneTunnelInfo(std::string ifname, NetlinkInterface* netlink)
+      : ifname_(std::move(ifname)), netlink_(netlink) {}
+
+  // Returns the current QBONE tunnel address. Callers must use IsInitialized()
+  // to ensure the returned address is valid.
+  QuicIpAddress GetAddress();
+
+ private:
+  const std::string ifname_;
+  NetlinkInterface* netlink_;
+};
+
+}  // namespace quic
+
+#endif  // QUICHE_QUIC_QBONE_BONNET_QBONE_TUNNEL_INFO_H_
diff --git a/quic/qbone/platform/netlink_interface.h b/quic/qbone/platform/netlink_interface.h
index eabfe07..0794b1d 100644
--- a/quic/qbone/platform/netlink_interface.h
+++ b/quic/qbone/platform/netlink_interface.h
@@ -5,6 +5,8 @@
 #ifndef QUICHE_QUIC_QBONE_PLATFORM_NETLINK_INTERFACE_H_
 #define QUICHE_QUIC_QBONE_PLATFORM_NETLINK_INTERFACE_H_
 
+#include <linux/rtnetlink.h>
+
 #include "quic/platform/api/quic_ip_address.h"
 #include "quic/qbone/platform/ip_range.h"
 
