This isn't as damaging as being able to advertise a smaller prefix because it won't send all traffic to you. It will just send from routers where your path is shorter than the original.
To actually prevent hijacking via path shortening attacks like this, you need a full BGPSEC implementation https://en.wikipedia.org/wiki/BGPsec which is a much higher barrier than RPKI because the crypto operations jump 1 or 2 orders of magnitude (signing every re-advertised route rather than just originated routes).
So RPKI gets the cert infra in place, but it doesn't really fully solve the problem.
The BGPSEC theory is there but not sure if we can make a workable system.
On the other hand, verify is cheaper. My crappy laptop will do ~320k RSA-2048 verifications per second...
350 per core per second... you are way off at 100k/s.
If there is such a thing I'd really like to see setup to get it running / try it out myself as well.
do note there are ways to cache ssl data so connections are resumed / avoid handshake again for same user
60k/second across 24 cores, admittedly on very fast hardware (though not using all the cores that hardware has). Pretty much the same number on 16 cores.
In general, telling someone they're "way off" about performance and citing 6 year old benchmarks isn't a winning plan.
In any case, it's immaterial to what we're discussing. My slow laptop could verify all the signatures for a busy day of updates in a couple seconds, and it's clearly -possible- to put a big fraction of this horsepower in a router.
Apologize for the 'way off', its reach-able.
And agree its immaterial to signature checks, but since it was brought up...
Either way, there is probably something holding routers back from reaching that, would be fun to speculate.
How many internet routes change per second?
How many dollars per second would pay for enough CPU's to sign every changed route? I'd bet less than one... I'd guess 1000x less than one...
kern.version: JUNOS 18.XXX.X #0: XXXX-XX-XX 03:28:10 UTC builder@svl-junos-p001:/volume/build/junos/18.X/release/18.XXX.X/obj/powerpc/junos/bsd/kernels/JUNIPER-PPC/kernel
There certainly are some routers that use x86 based CPUs, but they're embedded versions which you'd be unlikely to use on a PC.
Raptor sells desktops with IBM POWER9 CPUs – https://www.raptorcs.com/content/base/products.html – they are expensive, and the same amount of money would buy you a much more powerful x86 system, but they exist.
The first namely being that nobody is going to do that unless they have too much time on their hands and don't actually run a real network. "Just loading routes" into a router is not really that straightforward.
We both know there are still garbagey nets out there using ARM32, MIPS and who knows what else out there for control plane processing. Only the big guys are gonna upgrade to support this.
Edit: It's true. RPKI works, it's just harder to use than not using it, and network engineers have been doing bgp without rpki since forever. Managing PKI is outside the scope of a Cisco flat file and so it's not getting done. Route maps are easier to write than managing PKI. In the same vein IPv4 networks work and have been done since forever and as long as it's easier to shim over your v4 core and do carrier NAT and memorize dotted quads v6 will not get done with haste.
I recommend using RTR and native origin validation, not to depend on the route-map language to accomplish the task ;-)
https://github.com/cloudflare/gortr
And the fact that major ISPs with complex networks like AT&T, NTT, and Telia have implemented it proves it’s possible.
Remember, there are two parts here: -Signing your IP address space (generating ROAs to reference your Origin ASN and Max Prefix Length). -Implementing Origin Validation in your network (getting an RPKI validator, grabbing ROAs, talking RTR to routers).
There's also another aspect here worth calling out. Which is that RPKI at the moment doesn't address path validation. Basically, stopping routing leaks or addressing as-path spoofing. AS Path Authorization is still in the early days at the IETF, but the idea is people can piggyback off the existing RPKI infrastructure to implement it without making any major changes. Some folks will say because there is no ASPA - that Origin Validation isn't worth the effort, but I disagree with that - any bit helps to stop hijacks.
Going back to ROA generation, there are two ways to sign announcements. You can go to your RIR and use their APIs or website to do it. Some of the RIRs have okay APIs, some are not so great (which is a pain if you are into automation). You can run in delegated RPKI mode and do your own CA, but that is a fair amount of work and only a few people on the planet do it (but props to those people who have open sourced the s/w and making this easier). The other two challenges with ROA generation are that if you screw it up, it's real painful to unwind. Revoking the ROA can take hours to take effect, or publishing a new/corrected ROA can take hours. If you screw up and specify the wrong ASNs (or lets say you migrate ASNs over), or screw up the max prefix length, you can invalidate your address space on the Internet and blackhole yourself. The other issue is with ARIN - specifically the fact that people running RPKI validators have to deliberately accept the ARIN Trust Anchor for legal reasons (ARIN indemnification). There is evidence that some people are installing the validators and not adding ARINs trust anchor, resulting in not accepting any ROAs that went through ARIN - which is a big chunk of the Internet.
As for Origin Validation, there have been some great open source efforts in the last few years to make this easier to adopt (and big thanks to those whove lowered the bar here). That said, it still means building/deploying this in a robust way, enabling RTR on all your routers and writing policy to reject invalids. It's just a bunch of work and for some networks, it takes time to roll that out globally. Then there is the question of which routes do you apply validation on? What if your have customers who screwed up ROAs? Now you have to coordinate and get them to clean up their game before you turn on the switch or poke holes (nasty). Finally, you have to agree that you are going to essentially drop invalid prefixes for destinations on the Internet. That means if someone on the other side of the world screws up a ROA, you're not routing to them. You've got to be prepared to tell a customer why they can't reach their destination on your network, but another network without origin validation can (like a competitor).
that said, there is no reason to not sign your address space today and start rolling origin validation. there are a number of network operators in the right spots (irc, mailing lists) who are there to help you and give you guidance if you need it.
ps - hi tom. i still have your enteract card from years ago and recall meeting you a few times at the third coast cafe.
Providers won't implement RPKI for the same reason they haven't implemented IRR filtering or BCP38 for the last 10 years. It adds operational overhead, adds another thing that might go wrong, and there is no financial incentive.
The BCP38 war is lost. Credit to those who try to do better but it's the hosting shops who are the biggest offenders. Most broadband and cloud providers do this proper. I chase down tcp syn reflection attacks and they always come from the same types of hosters.
RPKI is a lot saner thing to be using.
There are like 70,000 ASNs out there, so a lot of orgs need to implement. But you’re right, if all the Tier 1’s do it we’ll be in a good place.
The “problem” with it is it doesn’t solve the path validation problem, so while it helps it doesn’t fix BGP completely.