You might be interested in https://samy.pl/pwnat/ Specifically, when the server starts up, it begins sending fixed ICMP echo request packets to the fixed address 3.3.3.3. We expect that these packets won't be returned. Now, 3.3.3.3 is *not* a host we have any access to, nor will we end up spoofing it. Instead, when a client wants to connect, the client (which knows the server IP address) sends an ICMP Time Exceeded p…
How does Linux NAT a ping?
81–90 of 108 posts
Re: How does Linux NAT a ping?
#82NAT is such a trashy abstraction. IPv4 needs to die.
Re: How does Linux NAT a ping?
#83Earlier quoted context omitted.
IPv6 needs to die also. It had more than enough time to become dominant and has just floundered.
https://www.google.com/intl/en/ipv6/statistics.html 45% (and growing) of all traffic to Google is IPv6. Hardly "floundered". It's just that most major ISPs in the developed world have so many IPv4 addresses they don't care that much about IPv6 yet. Now, try starting a new ISP without CGNAT (which will lead to a garbage experience for everyone) or IPv6. You'll have to spend literal tens (if not hundreds) of millions j…
Re: How does Linux NAT a ping?
#84Earlier quoted context omitted.
You'll hate CG-NAT even more then.
The first time I encountered CGNAT was such a rude shock. I don't think it should be legal to market it as "internet" to consumers
Re: How does Linux NAT a ping?
#85NAT is such a trashy abstraction. IPv4 needs to die.
Not sure IPv6 will fix this. Technically, yes it does. But major providers only assigning a /64 to a home user (and charging hefty fees for "buisness use" /48) already leads to IPv6 NAT or segmenting the /64 further - which shoulnt be done.
Re: How does Linux NAT a ping?
#86Earlier quoted context omitted.
Not sure IPv6 will fix this. Technically, yes it does. But major providers only assigning a /64 to a home user (and charging hefty fees for "buisness use" /48) already leads to IPv6 NAT or segmenting the /64 further - which shoulnt be done.
Why would anyone need /64 if not to segment it further.
Re: How does Linux NAT a ping?
#87Earlier quoted context omitted.
Not sure IPv6 will fix this. Technically, yes it does. But major providers only assigning a /64 to a home user (and charging hefty fees for "buisness use" /48) already leads to IPv6 NAT or segmenting the /64 further - which shoulnt be done.
Most seem to have stopped and are handing out /48’s in my experience. Do you know any not doing that still?
Re: How does Linux NAT a ping?
#88You might be interested in https://samy.pl/pwnat/ Specifically, when the server starts up, it begins sending fixed ICMP echo request packets to the fixed address 3.3.3.3. We expect that these packets won't be returned. Now, 3.3.3.3 is *not* a host we have any access to, nor will we end up spoofing it. Instead, when a client wants to connect, the client (which knows the server IP address) sends an ICMP Time Exceeded p…
This trick (ping 3.3.3.3) is used to let a server behind NAT learn the IP address of a client that is also behind NAT, without requiring any non-NAT server (such as https://ifconfig.co).
The main action of this tool is to then create a UDP tunnel between the client and server.
But based on quick reading, the tool appears to assume that the NAT does not rewrite the UDP source port, so it won't work on all routers. STUN (which is used in e.g. WebRTC) implements more sophisticated techniques, and even then there are some cases where it cannot work and the only option is to use a relay (TURN).
I'm pretty sure that the same issue applies to the ping 3.3.3.3 trick -- if the NAT rewrites the ping identifier (as described in the article), the trick would break.
Re: How does Linux NAT a ping?
#89Earlier quoted context omitted.
> In the future you can probably go "IPv6-mostly" with a CLAT engine ...although there still isn't any kernel support for the necessary SIIT v4 v6 translation, so to implement CLAT you end up using unmaintained (and unmergeably bad) out-of-tree kernel modules or unmaintained (and slow) userspace daemons hanging off a tuntap interface.
pf on OpenBSD does it fine.
Re: How does Linux NAT a ping?
#90Earlier quoted context omitted.
https://www.google.com/intl/en/ipv6/statistics.html 45% (and growing) of all traffic to Google is IPv6. Hardly "floundered". It's just that most major ISPs in the developed world have so many IPv4 addresses they don't care that much about IPv6 yet. Now, try starting a new ISP without CGNAT (which will lead to a garbage experience for everyone) or IPv6. You'll have to spend literal tens (if not hundreds) of millions j…
25 years and we've only got 45% We should've been at 95% decades earlier if they came up with an actual transition plan.
Now there is.