Tivin-i

joined 10 months ago
[–] Tivin-i@alien.top 1 points 10 months ago (1 children)

Thank you! What would such a competitive amount would be? 2 per each region covering east and west? or something more distributed such as 1 in a radius of 1,000km?

Regarding the original post, yours seems a commercial case, which probably will not be supported at the start.

 

Hello Selfhosted community!

I know not many folks actually host their own DNS, but for those that do: do you use any hosted secondary DNS servers? Meaning delegating slave servers.

What features would you be looking at in such a service?

Reason asking: I am looking to build a free service that would allow users to register their zone , choose geographic location and our servers will do the secondary part for it. Though limited on a free tier - say 1-3 zones (domains).

It will include a management panel.

Edit: Currently the Name Servers do support DNS over TLS/QUIC/HTTPS.

[–] Tivin-i@alien.top 1 points 10 months ago

Any public facing service that other (services) depend on should not be running on a public IP (especially ones that translate addresses, and ones you have to manually update).

You could run an authoritative NS "hidden" where only your secondary NS can reach out to for zone transfers. You could also escape having a public IP if you configure rsync or scripts to update secodary host files on every IP change.

[–] Tivin-i@alien.top 1 points 10 months ago

We don't know enough about your set up to actually advise you about what your architecture or options should be, and so I will make a few assumptions for your use case. Those would be:

  1. Your clientele is in the same geographic region.
  2. Your DB is selfhosted, but supports multi read, and is based on the likes of Postgres.
  3. You do not a load balancer in place.
  4. We are not going to go into software design.

If your DB is multi-read, then updating all the products in real time is easy as you just need to add additional read-replicas and balance those out - pgpool and patroni (if my memory serves me right) can help you achieve that on Postgres. On MariaDB and MySQL you can look at galera cluster which supports multi active masters. For Mongo, there is a built-in capability to achieve that.

How do you balance these? HAProxy is a great and free solution that with a bit of tinkering with can help you balance your queries accordingly - this will require scripting to route your traffic to the correct database and higher bandwidth; another choice is to go at it at the DNS level according to geo distance with solutions like Technitium that will route the traffic to the right webapp server, though this does not dismiss the need for HAProxy,

For ease of use, you may want to look at hosting your database on a cloud provider (or migrating to), and scaling out your web servers accordingly, work is needed anyhow to configure your requirements for autoscaling and configurations.

Over the long run, you'd probably want to redesign your webapp to be able to scale horizontally (meaning adding more servers) while having the same backend (databases), or add some automation there.

[–] Tivin-i@alien.top 1 points 10 months ago

Well, pretty much any type of tunneling software such as Tailscale or Wireguard will achieve the same, you just need to change a bit where your components are located.

What I personally do is have swag proxy on the VPS with crowdsec and authelia, this redirects the traffic to the internal wireguard/tailscale mesh network to the specific service requested.

If you are the only user of the services, create a tailscale or a netmaker; Not sure about tailscale but in Netmaker (wireguard based) you can choose to have your VPS as the relay host.