Tailscale is awesome, you should use it for everything. This Linux DNS stuff drives us batty at Fly.io. We run user containers as Firecracker VMs; users belong to "organizations", and organizations share a private IPv6 network. We do DNS for that private network under the fake "internal" TLD, so if you have an app "phoenix-frontend" and another app "rabbitmq-cluster", they can see each other at "phoenix-frontend.inte…
The Sisyphean Task of DNS Client Config on Linux
21–30 of 86 posts
Re: The Sisyphean Task of DNS Client Config on Linux
#22Tailscale is awesome, you should use it for everything. This Linux DNS stuff drives us batty at Fly.io. We run user containers as Firecracker VMs; users belong to "organizations", and organizations share a private IPv6 network. We do DNS for that private network under the fake "internal" TLD, so if you have an app "phoenix-frontend" and another app "rabbitmq-cluster", they can see each other at "phoenix-frontend.inte…
systemd-resolved can do this, though I haven't played with it too much yet. Here's a random post I just found: https://gist.github.com/brasey/fa2277a6d7242cdf4e4b7c720d42b... (Ha, I did the thing where I read the comments before the post, and the post describes how to do this. So what's still missing?)
What, I think, you really care about here is glibc's behavior. But then, you can't depend on any one libc, either.
Re: The Sisyphean Task of DNS Client Config on Linux
#23Tailscale is awesome, you should use it for everything. This Linux DNS stuff drives us batty at Fly.io. We run user containers as Firecracker VMs; users belong to "organizations", and organizations share a private IPv6 network. We do DNS for that private network under the fake "internal" TLD, so if you have an app "phoenix-frontend" and another app "rabbitmq-cluster", they can see each other at "phoenix-frontend.inte…
Re: The Sisyphean Task of DNS Client Config on Linux
#24Earlier quoted context omitted.
systemd-resolved can do this, though I haven't played with it too much yet. Here's a random post I just found: https://gist.github.com/brasey/fa2277a6d7242cdf4e4b7c720d42b... (Ha, I did the thing where I read the comments before the post, and the post describes how to do this. So what's still missing?)
I'm not sure how reasonable it is for us to run systemd-resolved (or systemd itself) on our VMs. We're trying to provide a clean environment for any random container to run on; we provide our own init, and that's almost the whole of it. What, I think, you really care about here is glibc's behavior. But then, you can't depend on any one libc, either.
https://github.com/containernetworking/cni
https://github.com/firecracker-microvm/firecracker-go-sdk
Firecracker, by design, only supports Linux tap devices. The SDK provides facilities to:
Attach a pre-created tap device, optionally with static IP configuration, to the VM. This is referred to as a "static network interface".
Create a tap device via CNI plugins, which will then be attached to the VM automatically by the SDK. This is referred to as a "CNI-configured network interface"Re: The Sisyphean Task of DNS Client Config on Linux
#25Tailscale is awesome, you should use it for everything. This Linux DNS stuff drives us batty at Fly.io. We run user containers as Firecracker VMs; users belong to "organizations", and organizations share a private IPv6 network. We do DNS for that private network under the fake "internal" TLD, so if you have an app "phoenix-frontend" and another app "rabbitmq-cluster", they can see each other at "phoenix-frontend.inte…
Funnily enough, that is the _exact_ same problem I'm facing right now, down to Firecracker and a custom internal TLD. I'm excited to see the solutions. I think the only difference is that I need to run this DNS service on the same host as my VMs, so I will need to use a different port than systemd-resolve.
Re: The Sisyphean Task of DNS Client Config on Linux
#26Tailscale is awesome, you should use it for everything. This Linux DNS stuff drives us batty at Fly.io. We run user containers as Firecracker VMs; users belong to "organizations", and organizations share a private IPv6 network. We do DNS for that private network under the fake "internal" TLD, so if you have an app "phoenix-frontend" and another app "rabbitmq-cluster", they can see each other at "phoenix-frontend.inte…
Linux should copy that.
Re: The Sisyphean Task of DNS Client Config on Linux
#27Tailscale is awesome, you should use it for everything. This Linux DNS stuff drives us batty at Fly.io. We run user containers as Firecracker VMs; users belong to "organizations", and organizations share a private IPv6 network. We do DNS for that private network under the fake "internal" TLD, so if you have an app "phoenix-frontend" and another app "rabbitmq-cluster", they can see each other at "phoenix-frontend.inte…
Couldn't you run dnsmasq, unbound, or some other configurable resolver on the localhost? Though that's probably already what's done with the internal smart resolver.
Re: The Sisyphean Task of DNS Client Config on Linux
#28Earlier quoted context omitted.
systemd-resolved can do this, though I haven't played with it too much yet. Here's a random post I just found: https://gist.github.com/brasey/fa2277a6d7242cdf4e4b7c720d42b... (Ha, I did the thing where I read the comments before the post, and the post describes how to do this. So what's still missing?)
I'm not sure how reasonable it is for us to run systemd-resolved (or systemd itself) on our VMs. We're trying to provide a clean environment for any random container to run on; we provide our own init, and that's almost the whole of it. What, I think, you really care about here is glibc's behavior. But then, you can't depend on any one libc, either.
Re: The Sisyphean Task of DNS Client Config on Linux
#29Tailscale is awesome, you should use it for everything. This Linux DNS stuff drives us batty at Fly.io. We run user containers as Firecracker VMs; users belong to "organizations", and organizations share a private IPv6 network. We do DNS for that private network under the fake "internal" TLD, so if you have an app "phoenix-frontend" and another app "rabbitmq-cluster", they can see each other at "phoenix-frontend.inte…
Re: The Sisyphean Task of DNS Client Config on Linux
#30The most interesting takeaway from this article is that, according to people who actually do the work, NetworkManager and systemd-resolved do get things right.