8 ms·
Linux gets IPv6 NAT
- kenny_r 15y agoI'd be interested to hear some of these legitimate use cases for IPv6 NAT.
- KonradKlause 15y agoTopology hiding. No, please don't tell me about socks or other proxy solutions.
- AndrewDucker 15y agoI'm curious as to what topology is detectable from a standard IPv6 packet?
- KonradKlause 15y agoAt home I have 10 computers. I want that only _one_ IPv6 address is visible to servers in the internet...
- deleted 15y ago[deleted]
- whynotmore 15y agoWhy not do the opposite and give each computer hundreds of addresses?
- KonradKlause 15y agoBecause NAT is easier. And yes, NAT is bad, ugly and from hell.
- count 15y agoHow is NAT, which requires an intermediary (the NAT router/device) be configured and put in place in addition to the router, easier than IPv6 privacy addresses, where you just turn your computer on and let the router route?
- sp332 15y agoCan't everyone just look up your IP block in a registry somewhere?
- amazingman 15y agoSo firewall the other 9.
- viraptor 15y ago> Topology hiding. == making VoIP deployment hard/impossible depending on your router and phone model. :(
- pilif 15y agoIMHO this is caused more by broken protocols than NAT in general. There's no reason to have the VoIP packets delivered directly instead of them being routed (on the protocol level, not IP-routing) over a central VoIP gateway. If the singalling protocols would allow for something like 'hi - my client $foo wants to talk to your client $bar. Please direct your response to me' and the other end would then send the packets with 'this is a packet from my client $bar to your client $foo - as you told me, I'm sending it to you', then there wouldn't be an issue - aside of a very small bit of additional latency and higher complexity of the gateway software. If these client IDs are opaque, then the network topology stays hidden, but NAT would be completely irrelevant in between. Now, personally, I'm really looking forward to having a /64 at the end of my cable modem. I will make splendid use of it and I will highly enjoy the additional uses I get from having my machines freely accessible to the internet. On the other hand, people got good at understanding the feature set NAT provides and, thus, at configuring NAT gateways which also don't allow incoming connections per default. That way, if I'm just a "normal user" and I buy myself a WiFi printer, I don't have to concern myself with configuring a firewall in order to ensure that it doesn't turn into an involuntary fax machine for example. This could of course be solved by correctly configured firewalls on these crappy blue box routers, but how many years will it take them to reach "correctly"? Will they actually be configurable enough? Or would they just drop anything with a SYN bit set? How would these crappy firewalls deal with incoming UDP? Block it unconditionally (thus breaking VoIP even more)? Add "connection" tracking? In that case, why not just NAT? I believe it's a good thing to have NAT back. Will I use it at home? Probably not. Will my parents use it at home? Likely. Would they be affected? Likely not as we already are used to deal with NATed clients.
- adestefan 15y agoConsumer routers have included a statefull firewall for years. The only difference for the end user will be instead of configuring port forwarding you'll modify a firewall rule. The interface would be exactly the same.
- nodata 15y agoPrivacy.
- deleted 15y ago[deleted]
- count 15y agoIPv6 privacy addresses are even more effective at this than NAT would be. Once the address is done being used, it goes away. You can still be tracked by your NAT'd address, as it will remain (relatively) static.
- guan 15y agoI don't know if this qualifies as legitimate, but Comcast has already decided to allocate /128 to customers with "directly connected CPE", which sounds like people who have just a cable modem and didn't pay for a "home gateway device". NAT could be useful if you plug that cable modem into a Linux box. http://blog.comcast.com/2011/11/ipv6-deployment-technology.html http://blog.comcast.com/2011/11/ipv6-deployment-technology.h...
- wmf 15y agoYou're interpreting it wrong; Comcast is going to provide at least /64 to each customer but they just haven't turned on prefix delegation yet.
- agwa 15y ago/64 is almost as bad and will lead to IPv6 NATing. What if you want multiple subnets (for example, a separate guest network, which some high-end consumer access points already tout as a selling point)? You don't want to sub-divide your /64 because then stateless auto configuration won't work. You could bridge multiple subnets with the same /64 prefix and use a layer 2 firewall (ebtables in Linux), but that's ugly. NAT is the only other option. That said, Comcast did leave open the possibility for shorter prefixes, possibly as early as 2012, and they have already received quite a thrashing on their IPv6 beta tester forums for using /64 prefixes. So they might eventually do the right thing. I'm optimistic :-).
- pasbesoin 15y agoMy opinion is that when you're dependent upon a (possibly recalcitrant) upstream provider, it's best to have means of dealing with whatever they give you. If in some circumstance someone hands you only one address (or, one address too few, perhaps), you can still hang your own network behind it.
- syncsynchalt 15y agoI think you're reading that wrong. The CPE (the cable modem itself) gets a /128, similar to the 10.0.0.0/8 address that it currently gets (that is not visible to the end user). They then go on to say that the home gateway gets a /64.
- zobzu 15y agoresponses you might get (not that i agree): "we're used to the false sense of security from NAT and we like it" "we feel like NAT protects our privacy ('but we use gmail')" "its easier to setup than ndp proxying ('because i never heard of ndp before')" yada yada :-)
- dspillett 15y agoThe only ones I can think of are: 1. Topology hiding: the outside world only sees one interface not potentially the rest of your network. Though I doubt this offers and security worth speaking of, some people might want to keep that part of their arrangement when they migrate from IPv4 to IPv6. 2. Selective address forwarding: your router could send packets for a particular IPv6 address to different machines LAN-side depending on various things like where the packets came from WAN-side. Of course there might be better ways to implement these things in the IPv6 spec already, I'm very behind the times in that respect and really must find time to read up on the subject (I purposely chose an ISP that fully supports IPv6 when I switched a few months ago, so I could try it all out when I have some time to play)
- throwaway64 15y agoa firewall can handle both those things without NAT
- dspillett 15y agoIn the case of splitting traffic between two hosts depending on some factor, what if you want outgoing requests from those services to appear to come from the same place (so the two machine appear to be one interface for outgoing connections as well as incoming ones)? You could use some sort of proxy services the the machines make the requests through (and the passes incoming requests back - you can avoid NAT in both directions that way) of course, but NAT seems (to me) to be a lighter solution for that use case.
- agwa 15y agoI suspect that there will still exist some situations where you only have a /128 but need to run a network behind it. I realize I'm in a tiny minority here, but when I travel I bring a WRT54GL, plug it into the hotel's Internet connection, and then plug my devices into it on my own private subnet. I kinda doubt hotels will be routing /64 to their guests, so NAT will be the only option. I hope that IPv6 NAT will be used rarely, but I'm grateful that I will have it in my toolbox for atypical situations where there are no other options.
- loup-vaillant 15y agoNoob question: what exactly are a /128 and a /64 ? How many public IPs do they provide? Do you have a link so I can learn how to interpret those /xx? Originally, I was under the impression that /n subnets have 2^n public IPs at there disposal. Could it be 2^(128-n) instead? But either way, a /64 should be plenty. However, you suggest here http://news.ycombinator.com/item?id=3261500 http://news.ycombinator.com/item?id=3261500 that /64 are not so great. I wonder why. Is there something special going on?
- count 15y agoA /64 is a 64-bit network mask on the 128bit ipv6 address, effectively leaving you with 64 bits for host addresses on that subnet. A /128 is a 128bit mask, leaving you with 0 extra bits (ie: a single host address). 2^(128-n) is the way it works for HOST addresses (no '-1', as in ipv4, as there is no broadcast address in ipv6, and 128-128=0, so 2^0=1, a single host address). 2^n is the way it works for networks/subnets, so a /128 leaves 2^128 possible networks, each with 2^0 hosts on them, while a /127 leaves 2^127 networks, each with 2^1 hosts on them. A /64 is equal to the square of the entire existent ipv4 space (/32), and should be more than enough for any subnet anywhere, ever (it's roughly 18,446,744,073,709,551,615 IPs). The issue is that many of the 'fundamental' protocols are built on assumptions that the smallest network will be a /64, and if your ISP gives you 1 /64, you can't have more than one 'network' on your end of the connection - even if you can have 18 quintillion addresses, they all have to be on the same subnet, so no fire-walling/etc. within your network.
- adestefan 15y agoThis makes me sad. People claiming that NAT provides some sort of privacy are misguided. There's also the option of the privacy extensions described in RFC 4941. This is even easier to enable in Linux, just add "net.ipv6.conf.<if>.use_tempaddr = 2" to /etc/sysctl.conf.
- KonradKlause 15y agoTrue. But it's still not a drop-in replacement for NAT.
- deleted 15y ago[deleted]
- signa11 15y agoit is not about privacy, but more to do with providing one (of the many possible) path towards ipv6 migration. although a dual-stacking would be much better imho...
- forgotusername 15y agoAs for uses, how about: I live in a crappy country with a crappy monopolistic ISP that provides a crappy /128. No amount of purist theoretical pontification can fix this reality, which is guaranteed to happen for someone, regardless of the size of address space (say, because a business guy at $ISP thinks that will somehow force users to pay for extra subscriptions for their devices). I for one am glad to see that if the time should arrive for me, Linux will support this out of the box, and that the greater madness by far, is to ignore a problem simply because you'd prefer that it not exist. Besides all that, there is simple hacker value in having this kind of translation available. Great ideas are often borne of insanity.
- wmf 15y agoAnd now every protocol needs to add NAT66 traversal to work around you. The lack of NAT66 is not ignoring a problem, it's trying to prevent a massive externality.
- 15y ago
- WalterGR 15y agoHow does this relate to / compare with Teredo? http://en.wikipedia.org/wiki/Teredo_tunneling http://en.wikipedia.org/wiki/Teredo_tunneling
- seanlinmt 15y agoWithout looking at the code to see what's going on, I'm wondering if this patch is actually about IPv6 NAPT, ie. protocol translation between IPv4 and IPv6. If it's really NAT, like IPv4 NAT, then has there been an RFC on this? I can't seem to find it.
- wmf 15y agoThere wasn't an RFC for NAT44 either, because the IETF didn't want to encourage it. Realizing how that worked out last time, the debate is raging about NAT66 specification.
- adestefan 15y agoThere's a draft RFC. http://tools.ietf.org/html/draft-mrw-nat66-16 http://tools.ietf.org/html/draft-mrw-nat66-16
- alexchamberlain 15y agoWill it ever be safe to design a protocol which isn't "NAT Safe"?
- agwa 15y agoWell, even if NAT went away, you would still have to contend with stateful firewalls (i.e. those that only allow inbound packets from established connections). This article explains it pretty well (mainly on the second page): http://arstechnica.com/hardware/news/2007/05/ipv6-firewall-mixed-blessing.ars http://arstechnica.com/hardware/news/2007/05/ipv6-firewall-m...
- alexchamberlain 15y agoIt depends where firewalls are implemented in x years time. (In the context of the home) At the moment, people rely on their routers to provide a decent firewall rather than configuring their computers properly. That being said... if firewalls "move" onto computers, it is "easy" to open ports.
- agwa 15y agoYeah, good point. Personally, I'm torn on whether I would ever want to give up my whole-network firewall, especially when there's a wireless network in the mix. My servers' ssh logs are choke full of brute force attempts. I would hate to waste my wireless bandwidth and battery life on such attack attempts. On the other hand, IPv6 address space will be so sparse that maybe such attacks won't be practical...
- alexchamberlain 15y agoHave you got password logins turned off?
- 1010010111 15y agoWhat makes solutions like NAT* and IPv6 necessary is the concept of the "backbone". In spite of all its benefits, it also has tradeoffs too. When everything has to pass through centralised "core" routers for enormous segments of the network, it limits how we can work with addresses. It forces us to allocate addresses in blocks (the larger ones within which most of the individual addresses remain unused). And it creates problematically large routing tables for those "core' routers. As with everything, there are both costs and benefits to doing things this way. There are always tradeoffs with any approach, whether it is centralised or decentralised. So arguments can go on to infinity about the "best" way. There is no such thing. There are just different alternatives, each with their own costs and benefits. And there's human consensus. And there are the inevitable workarounds, some of them pure "hacks". NAT* and IPv6 are a natural result of having a "backbone", "core routers", gigantic ever-growing routing tables and large address allocation minimums.
- mindslight 15y agoThe more I hear about IPv6 (these comments in particular), the more it seems like it contains many solutions to non-problems. Yes, IPv4's 32 bit address space is basically full, and upgrading that is a good thing. But honestly, burning 64 bits of address space for a redundant global identifier just so "nat+dhcp" are only half as complicated? And then needing privacy extensions to keep the uuid from leaking out? All while doing nothing to solve the problem that caused NAT to spring up in the first place. On the surface, "no NAT" sounds like a reasonable goal, but ignores the realities of what NAT is actually used for - keeping your network your business. How long until consumer providers offer different tiers of plans based on number of devices that can be connected, and smart users are back to NAT anyway? The proper solution to NAT problems is at layer 4 - a standard way of making connections from the outside to a device inside based on some kind of onion address, where the upstream can only see the outer part.