There are now four drafts about AS path validation to remedy routing leaks that 
I'm aware of:

LDM:    draft-ietf-grow-route-leak-detection-mitigation
ASPA:   draft-ietf-sidrops-aspa-verification
ASCones:        draft-ietf-grow-rpki-as-cones
PathRPKI:       draft-van-beijnum-sidrops-pathrpki

The TL;DR on the four:

LDM

Add in-band information to BGP that signals that a peer-peer hop has been 
traversed to avoid having two peer-peer hops. The idea is to do this without 
new code, at first at least. As the checks must thus be implemented with 
existing policy options, those will probably be easy to implement in code on 
the routers later.

ASPA

Register customer-to-provider (C2P) relationships with extensions to RPKI. 
Based on this, check the upstream and downstream parts of the AS path, making 
sure there are no valleyfreeness violations and that if the customer in the 
relationship between two ASes has registered a set of provider ASes, the 
upstream AS is indeed one of the registered providers. If not, then the path is 
considered invalid.

The hop between the upstream and downstream parts of the path may be an 
unregistered hop; peer relationships are not registered and in this part of the 
path any relationship is a valid one anyway. If there are additional 
unregistered relationships in the path, validation is not possible and the path 
is considered valid.

ASCones

Register provider-to-customer (P2C) relationships with extensions to RPKI. 
Recursively collect this information to resolve all ASes that may be visible 
behind a given AS. Then do a reverse lookup in the ROA database to obtain all 
the prefixes that are authorized to be advertised by these ASes and generate a 
prefix filter that can be applied to a BGP neighbor.

Unclear what happens to prefixes that aren't included in the filter because of 
a missing AS-Cone (P2C record) or ROA.

PathRPKI

The RPKI ROA format is extended to include a set of authorized transit ASes in 
the upstream part of the path. Authorized ASes in the downstream part of the 
path are known through local configuration. For each prefix, the two halves of 
the path are combined into a list of ASes that may appear in the AS path.

These paths are sent to routers using an extended version of the RPKI to router 
protocol. Routers mark a prefix as invalid if the origin AS doesn't match as 
usual, and if an extended list of ASes is present, if there are ASes in the BGP 
AS path that are not in the filter list (or appear in the wrong order).

So let's compare.

In-band vs out-of-band

LDM is the only mechanism that works in-band. In-band is inherently less 
effective because the same issues that create a route leak in the first place 
may also send incorrect in-band information.

Deployment

LDM: although it was supposed to be easy to deploy, discussion has been going 
on for four years, and in my opinion, as per my earlier email about the draft, 
deployment issues haven't been solved at this time.

ASPA, ASCone and PathRPKI all require changes in the RIR RPKI front- and 
backends and the RPKI relying party software implementations.

ASPA: requires unspecified changes to the RPKI to router protocol to convey C2P 
records, and for routers to implement the validation logic. (Maybe this is not 
necessary, but this is my best guess at this time.) If so, that may take 
considerable time and subsequent updates to the filtering logic will be 
difficult because of the slow update cycle in routers. Lack of an "unknown" 
validation state with partial deployment may be problematic.

ASCone: generating router filters to be included in configurations is easy to 
deploy, but very clumsy. Not clear how reusing the RPKI to router protocol 
would work. Unclear what partial deployment would look like.

PathRPKI: changes to RPKI to router protocol necessary. However, the scope of 
these changes is small. Good partial deployment as each combination of origin 
AS and destination AS is immediately protected agains route leaks even if ASes 
in the middle don't implement PathRPKI.

Who is involved

LDM: transit ASes. Leaf ASes that don't peer have no actions.

ASPA: All ASes. Origin ASes and transit ASes that have transit ASes of their 
own register C2P records. All other ASes filter based on this, most notably 
ASes that peer.

ASCone: Transit ASes register P2C records, ASes that peer filter based on this. 
Leaf ASes that don't peer have no actions.

PathRPKI: origin AS registers authorized transit ASes. No specific actions for 
transit ASes. ASes in the downstream part of the path filter based on this.

Security

LDM: relatively low, as a malicious AS could modify the in-band information.

ASCone: middle, as ASes can incorrectly claim a P2C relationship with no 
obvious recourse for the AS that is incorrectly labeled as a customer.

ASPA: high, as only customers claim the customer-provider relationship.

PathRPKI: a little higher, as the upstream part of the path is solely 
determined by the origin AS (however, at the cost of flexibility as transit 
relationship changes further upstream now require work by all the ASes 
downstream of the change)

What now?

There are some good ideas here, but it sure looks like we haven't figured out 
the best way to attack this problem. Publish four RFCs, throw them to the wall, 
see what sticks? Hopefully we can come up with a better process than that.

Iljitsch
_______________________________________________
GROW mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/grow

Reply via email to