this post was submitted on 07 Sep 2024
528 points (97.8% liked)
Technology
58303 readers
15 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
The issue is the absence of being able to port forward in a lot of places. UPNP exists on some networks but it's usually disabled. But if we want actual peer to peer we're going to need to implement some way to accept incoming connections EVERYWHERE.
IPv6
What about it
it doesn't need NAT topology, at all. There is literally zero reason to use it. Direct P2P networking is so much easier over ipv6
Huh. I did not know that.
yeah, under IPv6 based home networking, you just assign a block of addresses to a home, 512 or something, for example, and then you just use a stateful firewall to do the same exact thing that a NAT + a stateful firewall would be doing on a traditional IPv4 network.
Nothing stops you from using a NAT if you felt like you wanted your networking to be more complicated for no reason. But you probably shouldn't.
There are potential benefits for the anonymization of traffic (though this is probably easy enough to defeat by simply sniffing for all traffic across the IP block) a denial of service wouldn't be super important anymore, as you could just engage in round robin across the other IPs, unless of course you DOS'd every IP all at once, but that would be super fucking obvious and trivial to deal with. Though it might kill an individual computer in the network due to traffic influx.
You could still engage in DHCP IP handouts, which would actually be beneficial in terms of traffic anonymization in this case. Especially on a high frequency basis. Similar to the effects of NATing on an IPv4 network.
Plus you could still grab a static IP address per device, and then just pass through firewall rules to allow external connections or whatever you please. No forwarding required.
IF ONLY WE COULD USE IPV6 WE WOULDNT BE HAVING THIS PROBLEM
YES FUCK YOU TOO COMCAST.
Gonna be real here, I'm in tech, there is no fucking way I'm gonna open my PC to the entire fucking internet. Vulnerabilities are everywhere and no code is perfect. Firewalls and nat help stop so many attacks from the start.
Even if ipv6 is common I will assume most implementations will be nat based.
IPv6 does not require you to open your machine to the Internet, even without making use of a NAT. Sure you get an IP that's valid on the whole internet, but that doesn't mean that anyone can send you traffic.
You definitely use a firewall, but there's no need for NAT in almost all cases with ipv6. But even with a firewall, p2p becomes easier even if you still have to do firewall hole punching
brother, use a firewall. NAT does nothing for this, a single stateful firewall will do more for device security than a NAT existing solely by itself.
A nat doesn't even do anything other than provide some basic level of device anonymity. If you didn't have a firewall it would still be accessible, you would just need to either be really good at guessing ports, or sniff for traffic that's relevant lol.
Except the NAT device will stonewall traffic on every port except the ones I open, for my entire network, and then I can just worry about securing the software listening on those few ports, instead of having to worry about the firewalls on every device I own.
Tldr default nat behavior is a state full firewall.
that's literally what a stateful firewall does.
It only allows corresponding return traffic to outgoing traffic that a device has internally sent outwards.
if you disabled that, it wouldn't do that. But even a NAT without a stateful firewall might end up doing this depending on how it's configured and your open ports due to how the forwarding is handled. This is how we get around NATing for P2P traffic, though the trick is to just send two NATed users to the others ip and port at the same time to establish a connection that can "isAlive" from there. If you had no firewall you would only need to know the IP and port to do this.
plus not to mention you can run internal firewalls on each device specifically which would do basically the same thing anyway. But then again i don't use windows so that's way easier.
Yes, thank you for repeating what I just said, and justifying my desire for a nat. I do infact actually know a few things about computer networks and tcp/ip since I spent 7 years writing software to interface with and monitor them.
the only realistic scenario in which you would use a NAT under IPv6 is if you felt like using IPv4 addresses internally. Outside of that it serves very little purpose.
Comcast is one of the biggest IPv6 ISPs though?
not big enough.
Once an end-to-end, encrypted, connection is established between a pair of peers then anything can be sent through it. The establishment proces is generally facilitated by a server of some description so neither peer needs to allow inbound connections. (I'm a long, long way from being an expert on this and happy to be corrected - but this seems like network fundamentals?)
this is true, but the problem is that it's really complicated, and not always reliable. Mostly due to NATing within the networks. Firewalls don't help but you can get around those easily enough.
There's no guarantee that you'll get a reliable P2P network connection over a NAT unless one peer isn't NATed. Which is unlikely.
TL;DR we would probably ddos the internet very quickly if we tried at the scale of something like discord.
Isn't that what things like wormhole are made to deal with?
Firefox: Browser missing required feature. This application needs support for WebSockets, WebRTC, and WebAssembly.
Where do you see that? I just sent a file from Firefox on Debian to Vivaldi on Android with it to test.
There's also just plain wormhole (https://github.com/magic-wormhole/magic-wormhole) as an application for Windows, Mac, and Linux if that web instance doesn't work.