IPv6 is not insecure because it lacks a NAT
25 points by johnmaguire 5 hours ago | 8 comments
  • ggm 5 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

  • Dagger2 5 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.

    • johnmaguire 5 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.
  • Sohcahtoa82 an 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.

    • betaby 17 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.

  • denkmoon 4 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
  • omgJustTest 3 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.

  • ghshephard 2 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 PAT 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 PAT target should you wish to go that direction.
500 Internal Server Error

500 Internal Server Error