27 pointsby johnmaguire6 hours ago8 comments
  • denkmoon18 minutes ago
    Invoking NAT "security" as a reason against IPv6 is a surefire indicator the person invoking it has absolutely no idea what they're talking about and should not be allowed within typing distance of any network infrastructure
  • tptacek5 minutes ago
    This has been gospel among snooty network engineers for decades, but NAT was initially introduced to the wider market as a security feature, and it is absolutely a material factor in securing networks. The network engineers are wrong about this.

    (IPv6 is still good for lots of other reasons, and NAT isn't good security; just material.)

  • ghshephard16 minutes ago
    This is the first thing that as a Network Engineer I was taught - and every formal security class I've taken (typically from Cisco - they have awesome course) - repeats the same thing.

    I believe the common knowledge is somewhat more nuanced than people would have you believe

    I present to you two separate high-value targets whose IP address has leaked:

      IPv4 Target: 192.168.0.1
      IPv6 Target: 2001:1868:209:FFFD:0013:50FF:FE12:3456
    
    Target #1 has an additional level of security in that you need to figure out how to route to that IP address, and heck - who it even belongs to.

    Target #2 gives aways 90% of the game at attacking it (we even leak some device specific information, so you know precisely where it's weak points are)

    Also - while IPv6 lacks NAT, it certainly has a very effective Prefix-translation mechanism which is the best of both worlds:

    Here is a real world target:

      FDC2:1045:3216:0001:0013:50FF:FE12:3456
    
    You are going to have a tough time routing to it - but it can transparently access anything on the internet - either natively or through a Prefix-translation target should you wish to go that direction.
  • Sohcahtoa82an hour ago
    This is going to depend on the router and on IP distribution.

    My ISP does not give me an IPv6 address, only a single IPv6 which all my network devices have to NAT through.

    NAT is not intended to be a security feature, for sure, but it creates security as a side effect. If I start up a web server on one of my devices, I know that it is unreachable from the Internet unless I go out of my way to set a port forward on my router.

    But...if my ISP decides to start handing out IPv6, that can change. If each of my devices gets an Internet routable IPv6 address, at that point, that security-as-a-side-effect is not guaranteed unless my router has a default-deny firewall. I would hope that any routers would ship with that.

    But if my ISP still gives me only a single IPv6 address and I'm still needing to use NAT, then I'm guaranteed to still effectively have a "default deny" inbound firewall policy.

    • betaby31 minutes ago
      > My ISP does not give me an IPv6 address, only a single IPv6 which all my network devices have to NAT through.

      Interesting how that works in your case. Is your router gives your devices IPv6 from fc00::/7 and then NAT them? It would be a rather rare case.

  • omgJustTest17 minutes ago
    NAT is not inherently a security feature, however where NAT happens is somewhat important.

    A local router that I can control deals with how to map from my public IP to my private IPs.

    This is not security but is obfuscation of the traffic.

    Obfuscation becomes almost impossible in the IPV6 context where NAT isn't necessary, it becomes optional, and given the likely trajectory that option will be exercised by sophisticated enterprise customers only.

    • kibwen14 minutes ago
      As the article mentions, if you want to use NAT with IPv6, you can. The fact that it's optional doesn't mean that address obfuscation is suddenly impossible.
  • Dagger25 hours ago
    > The consequence of this is that when receiving inbound traffic, the router needs needs to be configured with where to send the traffic on the local network. As a result, it will drop any traffic that doesn’t appear in the “port forwarding” table for the NAT.

    As I keep trying to explain each time this comes up: no, it doesn't and it won't.

    When your router receives incoming traffic that isn't matched by a NAT state table entry or static port forward, it doesn't drop it. Instead, it processes that traffic in _exactly_ the same way it would have done if there was no NAT going on: it reads the dst IP header and (in the absence of a firewall) routes the packet to whatever IP is written there. Routers don't drop packets by default, so neither will routers that also do NAT.

    Of course, this just strengthens your point that NAT isn't security.

    • johnmaguire5 hours ago
      That's a great point - the packet is not dropped by the firewall as a result of NAT - but it still won't route anywhere because the IP in the packet is that of the router itself. I've updated the article as a result of your comment, thanks.
  • ggm6 hours ago
    Not wishing to undermine the central point, NAT for v6 is a thing. The point of the article is that it's not "NAT by default" the way home IPv4 is because so few places worldwide get more than a single IP per customer: The NAT is not there in v4 for security, it's to provide for multiple devices inside the home. Or, in the case of Carrier-Grade NAT, to manage multiple customers, behind a small pool of v4.

    NAT doesn't exist to be secure. If it is, (and that is debatable because NAT busting is a thing) then, it's a side-effect.

    NAT for v6 is not common. If you use ULA, you'd possibly use NAT for v6 in some circumstances.

    https://datatracker.ietf.org/doc/html/rfc6296

    • ghshephard7 minutes ago
      Just to nitpick a bit. What people typically mean when they say "IPV4 NAT" is Network and Port translation. My 192.168.0.1 internally becomes 172.217.12.100 and my port gets converted to something that is tracked so that the return packet can find it's target.

      In IPv6, Prefix-Translation is similar, in that the /64 prefix is translated 1:1 - but the /64 Host address is (in my experience) left alone - so that renumber a network becomes trivial when you change ISPs - you just just change the prefix.

      I don't actually know if "IPv4 NAT" behavior even exists in the IPv6 world, except in the form of a lab experiment.

  • minaguib14 minutes ago
    Agreed with the main message.

    ... but

    An incoming message to an IPv4 NAT router will not be forwarded to a LAN device unless it matches a known flow (typically continuation of a conversation, typically initiated by the LAN device, which is expected), or the user set up a DMZ forward to a particular destination. There is actually no reasonable way for non-DMZ LAN devices to be exposed to the noise.

    For non-NAT IPv6, sure a firewall might be on by default, but it can be turned off - and therein lies the potential exposure to every LAN device to directed traffic.

    In other words, the risky zone for IPv4 NAT tends to be setting up a DMZ exposing 1 device, while the risky zone for IPv6 non-firewalled tends to be exposing all of the devices behind the router.