yggdrasil-network / yggdrasil-go

An experiment in scalable routing as an encrypted IPv6 overlay network
https://yggdrasil-network.github.io
Other
3.53k stars 242 forks source link

DNS #661

Closed whoizit closed 4 years ago

whoizit commented 4 years ago

We need an open issue to track the status of the DNS system in yggdrasil. Will meshname be integrated into yggdrasil or will it be decided not to add it, but recommend using a third-party service meshnamed, or something else.

So, we have now some different realisations of YggNS idea from russian community (github, forum, chats)

It allows you to use hash.tld or a lot of subdomains.hash.tld as domain names. Where hash is ygg-ipv6 converted to base32 or something.

Personaly I prefer hash.ygg, hash.cjd domain names.

It does not require blockchain and you can use any subdomain as domain name, while the problem of cybersquatting disappears. And long domain names in the browser can be hidden through add-ons to the browser.

So we can imagine in the browser the domain name forum.ygg in the address bar, when click in the address bar, will be expanded in forum.<hash>.ygg. (I'm not sure if this can be done)

Also, the browser caches all the names, so long names are not a problem for remembering, just remember the subdomain.

NS like a service: https://github.com/russian-meshnet/YggNS https://github.com/zhoreeq/meshname - {200|300|fc}-ipv6 to hash.tld, we can use it with cjdns and another mesh networks together

NS integrated to yggdrasil: https://github.com/zhoreeq/yggdrasil-go/tree/meshname - ygg-ipv6 to hash.tld https://github.com/zhoreeq/yggdrasil-go/tree/leaf - public key to hash.tld, I guess it's bad idea

zhoreeq commented 4 years ago

@whoizit .ygg and .cjd domains are added to https://github.com/zhoreeq/meshname/commit/2050bd9f13545335bea110944a8fe43576b6fd3d

The test host is aicrxoqgun7siwm42akzfsox7m.ygg.

whoizit commented 4 years ago

@zhoreeq you know I meant that .cjd is for fc00::/8 cjdns addresses and .ygg is for 200::/7 yggdrasil addresses (200::/8, 300::/8)?

zhoreeq commented 4 years ago

It seems DNS is out of scope of this repository, since it is a client application. Though a community consensus about a naming system would be very nice to have. It makes possible to use EMail, ActivityPub and other protocols.

cornfeedhobo commented 4 years ago

Just my $0.02: Use normal DNS services and don't try and make up a TLD. I've been pointing various domains at hype hosts for years now, and I've never had a problem.

whoizit commented 4 years ago

@cornfeedhobo I want to breathe clean, free air and use the free domain names that belong to me. Without sms and registration.

cornfeedhobo commented 4 years ago

I want to breathe clean, free air and use the free domain names that belong to me. Without sms and registration.

Well, I don't see what clean air has to do with DNS, but sure. The point is that you can do this by using your own solution outside of yggdrasil, just like how normal DNS works.

Will meshname be integrated into yggdrasil or will it be decided not to add it, but recommend using a third-party service meshnamed, or something else.

It should be a third-party service. We should not conflate routing and resolution. Honestly, your response being an opinionated non-technical point is argument enough for this project to remain tightly scoped. You're just trying to pushing this project into a social and policital mine field.

zhoreeq commented 4 years ago

@cornfeedhobo sure, the regular DNS works, but it is a centralized system and that leads to numerous down sides:

  1. You must trust a central authority for issuing domain names.
  2. If central authority servers are unavailable, the whole system collapses.
  3. Censorship and no DNS privacy. Authorities can monitor everything and deplatform anyone.

We don't want to rely on a US based company 1000+ miles away, when we just need to send an email to a partner in a remote Russian village. So YggNS and meshname are proposed to address those issues. :)

cornfeedhobo commented 4 years ago

No, you are just being an alarmist.

You must trust a central authority for issuing domain names.

It's centralized relative to the provider. The competition of providers is what provides options. One of those options could be a distributed provider.

If central authority servers are unavailable, the whole system collapses.

Again you are being an alarmist. The internet does not fall apart when a single provider goes down. Caching works very well as do redundant providers.

Censorship and no DNS privacy. Authorities can monitor everything and deplatform anyone.

This concern is outside the scope of a routing engine. You can solve this externally.

You are just trying to assert your political views into code and relying on weak assumptions to support this world view. None of this is relevant to routing.

cornfeedhobo commented 4 years ago

Maybe a better discussion would be about how we would like to approach auto-configuration?

Similar to DHCP not handling DNS but passing on the info for the client to optionally use, maybe as an average user I want to trust that my upstream peer has chosen a sufficient DNS provider.

zhoreeq commented 4 years ago

Keep calm and read the topic. I've stated that DNS is out of the scope of yggdrasil-go.

cornfeedhobo commented 4 years ago

To be fair, the issue's title is only "DNS" and you chose to step in and use the example "relying on a US company", as if all DNS providers are located in the US. Regardless, I was addressing @whoizit. Sorry if I ruffled your feathers.

zhoreeq commented 4 years ago

Yeah, that escalated quickly. All good fam :)

McL0v1n commented 4 years ago

The overall idea of an agreed upon DNS system is the idea of "consensus". Now, unless DNS becomes or is built with some sort of "proof of ownership" system then we will be relying on normal DNS servers (such as Bind). With that, people will eventually be keeping track of which DNS servers are trustworthy and which are not. Lately the idea of meshname has been pushed really hard and I don't think its worth it becuase why not just use the ip address anyway if its not human readable?

Again. The only solution for a DNS system that is ACTUALLY human readable is some sort of "proof of ownership system. So with that, that is all outside the scope of yggdrasil as itself and I would request that @neilalexander or @Arceliar go ahead and close this and we can all discuss it in the matrix room :-)

zhoreeq commented 4 years ago

@McL0v1n

Lately the idea of meshname has been pushed really hard

Nonsense.

and I don't think its worth it becuase why not just use the ip address anyway if its not human readable?

You don't think it's worth it, because you haven't even cared much to read the first paragraph of the document. It clearly says what's it for, and why it doesn't address your "fancy names" desire.

Now, I agree that this topic is better be closed for good :+1:

neilalexander commented 4 years ago

Closing mostly because, even though DNS is nice to have from a usability perspective and we would love to see someone come up with a good solution (just in general, not even necessarily just for Ygg) it’s really out of scope for us specifically for this project.