osbase/net/dns: add new DNS server

This adds a new DNS server service, which will replace CoreDNS. The
service has built-in handlers for certain names, but all other names
will be handled by runtime configurable handlers.

Change-Id: I4184d11422496e899794ef658ca1450e7bb01471
Reviewed-on: https://review.monogon.dev/c/monogon/+/3126
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/osbase/net/dns/BUILD.bazel b/osbase/net/dns/BUILD.bazel
new file mode 100644
index 0000000..ac0e20e
--- /dev/null
+++ b/osbase/net/dns/BUILD.bazel
@@ -0,0 +1,37 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+    name = "dns",
+    srcs = [
+        "dns.go",
+        "metrics.go",
+        "name.go",
+        "testhelpers.go",
+    ],
+    importpath = "source.monogon.dev/osbase/net/dns",
+    visibility = ["//visibility:public"],
+    deps = [
+        "//osbase/supervisor",
+        "@com_github_miekg_dns//:dns",
+        "@com_github_prometheus_client_golang//prometheus",
+        "@com_github_prometheus_client_golang//prometheus/promauto",
+    ],
+)
+
+exports_files([
+    "resolv.conf",
+    "hosts",
+])
+
+go_test(
+    name = "dns_test",
+    srcs = [
+        "dns_test.go",
+        "name_test.go",
+    ],
+    embed = [":dns"],
+    deps = [
+        "//osbase/net/dns/test",
+        "@com_github_miekg_dns//:dns",
+    ],
+)