18 ms·
From having worked on DDoS mitigation, there's pretty much no difference between CGNAT and IPv6. Block or rate limit an IPv4 address and you might block some le
by lgeek 11mo ago
From having worked on DDoS mitigation, there's pretty much no difference between CGNAT and IPv6. Block or rate limit an IPv4 address and you might block some legitimate traffic if it's a NAT address. Block a single IPv6 address... And you might discover that the user controls an entire /64 or whatever prefix. So if you're in a situation where you can't filter out attack trafic by stateless signature (which is pretty bad already), you'll probably err on the side of blocking larger prefixes anyway, which potentially affect other users, the same as with CGNAT.
Insofar as it makes a difference for DDoS mitigation, the scarcity of IPv4 is more of a feature than a bug.
- spongebobstoes 11mo agoyou can heuristically block ipv6 prefixes on a big enough attack by blocking a prefix once a probabilistic % of nodes under it are themselves blocked, I think it should work fairly well, as long as attacking traffic has a signature. consider simple counters "ips with non-malicious traffic" and "ips with malicious traffic" to probabilistically identify the cost/benefit of blocking a prefix. you do need to be able to support huge block lists, but there isn't the same issue as cgnat where many non-malicious users are definitely getting blocked.
- zamadatix 11mo ago(Having also worked on DDoS mitigation services) That "entire /64" is already hell of a lot more granular than a single CG-NAT range serving everyone on an ISP though. Most often in these types of attacks it's a single subnet of a single home connection. You'll need to block more total prefixes, sure, but only because you actually know you're only blocking actively attacking source subnets, not entire ISPs. You'll probably still want something signature based for the detection of what to blackhole though, but it does scale farther in a combo on the same amount of DDoS mitigation hardware.
- bsder 11mo agoThis DDoS is claimed to be the result of <300,000 compromised routers. That would be really easy to block if we were on IPv6. And it would be pretty easy to propagate upstream. And you could probabilistically unblock in an automated way and see if a node was still compromised. etc.
- josteink 11mo ago> That would be really easy to block -- if we were on IPv6. Make that: If the service being attacked was on IPv6-only, and the attacker had no way to fall back to IPv4. As long as we are dual-stack and IPv6 is optional, no attacker is going to be stupid enough to select the stack which has the highest probability of being defeated. Don't be naive.
- div72 11mo agoIt'd be far more acceptable to block the CG-NAT IPv4 addresses if you knew that the other non-compromised hosts could utilize their own IPv6 addresses to connect to your service.
- swinglock 11mo agoYou should block the whole /64, at least. It's often a single host. It's often but not always a single host, that's standardized.
- vladvasiliu 11mo agoUsually a /64 is a "local network", so in the case of consumer ISPs that's all the devices belonging to a given client, not a single device. Some ISPs provide multiple /64s, but in the default configuration the router only announces the first /64 to the local network.
- TZubiri 11mo agoPresumably a compromised device can request arbitrarily new ipv6 from the dhcp so the entire block would be compromised. It would be interesting to see if standard dhcp could limit auto leasing to guard reputation of the network
- vladvasiliu 11mo agoGenerally, IPv6 does autoconfiguration (never seen a home router with DHCPv6), so no need to ask for anything. Even for ipv4, I've never seen a home router enforce DHCP (even though it would force the public ip). But the point stands, you can't selectively punish a single device, you have to cut off the whole block, which may include well-behaved devices.
- swinglock 11mo agoIn mobile networks it's usually a single device.
- TZubiri 11mo agoBetter to rely on ip blocks than on NAT to bundle blocks.