[153377] in North American Network Operators' Group

home help back first fref pref prev next nref lref last post

ROVER routing security - its not enumeration

daemon@ATHENA.MIT.EDU (Daniel Massey)
Tue Jun 5 14:43:36 2012

From: Daniel Massey <massey@cs.colostate.edu>
Date: Tue, 5 Jun 2012 12:42:45 -0600
To: nanog@nanog.org
Cc: Daniel Massey <massey@cs.colostate.edu>
Errors-To: nanog-bounces+nanog.discuss=bloom-picayune.mit.edu@nanog.org

Hi,

Just wanted to clarify a few things about the ROVER approach.   One key =
misunderstanding seems to=20
be that ROVER is an approach for enumerating all potentially valid =
routes.   This is not the case.   Slides
on ROVER are posted for the NANOG 55 talk and there was an additional =
Lightning talk Monday in NANOG=20
=20
A good summary of misunderstandings are listed below and addressed =
below:

> Summarizing a few other things other people have mentioned:
>=20
> - The normal operating mode with RPKI is to fetch everything rather
>   than do a point query.  We've spent the last decade or so making
>   that harder to do with DNS (blocking AXFR/IXFR, using NSEC3 instead
>   of NSEC, etc).  This makes it fairly difficult to know in advance
>   what queries one should be asking ROVER (as Paul Vixie puts it,
>   ROVER isn't a catalogue).  When I pressed the ROVER folks about this
>   at the Paris IETF meeting, they mumbled something about maybe
>   walking the IRR or other external databases as a way of knowing what
>   DNS queries to issue.

ROVER's operational model  is ask a question and get an answer.     =
ROVER is not=20
an enumeration method.    RPKI does provide enumeration, but ROVER is =
not trying to=20
duplicate RPKI.

I think the first step is to step back and ask whether every operational =
model needs=20
enumeration.   For example,   the talk yesterday by Level3 used the DNS =
and IRR=20
did not need such an enumeration.     Enumeration is not a goal in =
itself.    =20
There are number of operational models that provide the needed routing =
protection=20
without enumeration.        =20
> - Circular dependencies are a problem.  Helical dependencies can be
>   made to work, but this says that one probably should not be
>   depending on routing to make a point query to make decisions about
>   routing.  If you look at the architecture of the existing RPKI
>   validators (well, mine and BBN's, anyway, not sure about RIPE's but
>   suspect they took the same approach), we've gone to some trouble to
>   make sure that the validator will continue to work across network
>   outages as long as the collected data haven't expired or been
>   revoked.  In theory one could do the same thing with bulk transfers
>   of DNS (whether AXFR/IXFR or NSEC walking, if they worked) but it
>   would not work well with point queries.

Or a simpler approach that does not require bulk zone transfers or zone =
walking is
simply DNS caching, which already exists and is well understood.    =20

More broadly,  whether one  calls its a cache or RPKI validator or =
whatever,  you=20
can build it with redundancy.    One can certainly make either system =
work across=20
network outages.   =20
> - ROVER gives us no traction on path validation (BGPSEC), it's limited
>   to origin validation.  RPKI can certify both prefixes and ASNs,
>   which gives it the basics needed to support path validation as well
>   as origin validation.  ASNs have no hierarchical structure, thus
>   would be a very poor match for encoding as DNS names.
The focus is on origin and sub prefix hijacks.     There are certainly =
discussions and
early experiments with future additions,  but the work is focused on =
origin/subprefix=20
events.
> - Some of the DNS aspects of ROVER are a little strange.  In
>   particular, as currently specified ROVER requires the relying party
>   to pay attention to DNS zone cuts, which is not normal in DNS (the
>   basic DNS model since RFC 883 has been that zones are something for
>   the zone administrator to worry about, resolvers mostly just see a
>   tree of RRsets).  ROVER requires the relying party to check for the
>   same data in multiple zones and pay close attention to zone cuts.
>   While it is certainly possible to do all this, it is not a matter of
>   issuing a simple DNS query and you're done.  DNS caching effects can
>   also complicate matters here if the zone structure is changing:
>   think about what happens if you have cached responses to some (but
>   not all) of the queries you need to make to figure out whether to
>   allow a more specific route punched out of a larger prefix block.
>=20
This is a misunderstanding of the ROVER approach.  =20
Multiple copies of the data do not exist in multiple zones.  There is a =
one-to-one mapping
between a prefix and a DNS name.  The resolver simply finds the data and =
has no need to
understand where zone cuts occur.

On the other hand, DNS administrators do care about how they make zone =
cuts and delegate to
their customers.  They can take a /16 and delegate two /17's, or they =
can manage the whole thing
in a single zone.  Their choice. =20

A resolver simply issues a query for the unique DNS name associated with =
a prefix.    This could be
done with anything from a complex tool set to a simply command line tool =
like dig.

The confusion here may arise from what happens if you get an =
*authenticated* response
saying there is no routing data at this name.     This could mean 1) the =
prefix should not be announced
or 2) the reverse DNS happens to be signed with DNSSEC but the site is =
not participating in
routing security via DNS.   =20

To determine this,  you issue a second query.    Is an RLOCK present =
along with the DNSKEY=20
used to sign the data?     The existence of an RLOCK proves =
participation.
   =20
> - The reuse of existing infrastructure argument for ROVER is somewhat
>   disingenuous -- it's only partial reuse of existing infrastructure.
>   ROVER's new encoding of prefixes as DNS names means that a lot of
>   new stuff would need to be deployed, and attempting to be backwards
>   compatible with the existing DNS reverse tree adds some complexity
>   to ROVER's architecture=20
I strongly disagree with this.     ROVER does use a naming convention.  =20=


This is simply a convention,  not a protocol change.   The best analogy =
here is=20
that one may have an internal naming convention for naming routers or =
particular
servers or so forth.     You should follow this convention and build =
this into your
provisioning scripts where appropriate.    =20

Clearly it is enormously  better if there is a consistent way to name =
prefixes so=20
we have a common convention for naming the data.     Everyone putting =
data in=20
is using the convention and we are working to get the convention =
standardized.   =20
The convention is also useful for storing data at prefixes; geolocations =
is one example.    =20


> (conflicting data for same prefix can appear
>   in multiple zones, relying party has to sort this out, yum).

Again,  this is simply a naming convention.    There is a unique name =
for a prefix.
To DNS,  this is a name like any other name.   A DNS name belongs to a =
zone.    It=20
cannot appear in multiple zones.     The prefix has a unique name.   The =
name
cannot appear in multiple zones.

ROVER is not trying to do exactly what RPKI is doing.  Much of this =
seems to be an=20
attempt to build a form of enumeration into ROVER.    See the Level3 =
NANOG talk=20
from Monday (6/4/12) for a concrete example of a different model.    =
There are many different
operational models.        We seek a common convention for data =
publishing,  but believe
strongly there can and should be different operational models for how =
you do
validation in your network.

Thanks,
Dan and Joe

       =20=

home help back first fref pref prev next nref lref last post