Re: [sidr] BGPSEC Threat Model ID

Brian Dickson <brian.peter.dickson@gmail.com> Fri, 04 November 2011 20:52 UTC

Return-Path: <brian.peter.dickson@gmail.com>
X-Original-To: sidr@ietfa.amsl.com
Delivered-To: sidr@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4AADB11E8082 for <sidr@ietfa.amsl.com>; Fri, 4 Nov 2011 13:52:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.566
X-Spam-Level:
X-Spam-Status: No, score=-4.566 tagged_above=-999 required=5 tests=[AWL=1.033, BAYES_00=-2.599, GB_I_LETTER=-2, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2RAMeMKB+M6S for <sidr@ietfa.amsl.com>; Fri, 4 Nov 2011 13:52:01 -0700 (PDT)
Received: from mail-fx0-f44.google.com (mail-fx0-f44.google.com [209.85.161.44]) by ietfa.amsl.com (Postfix) with ESMTP id 78F5F21F8A6F for <sidr@ietf.org>; Fri, 4 Nov 2011 13:52:01 -0700 (PDT)
Received: by faas12 with SMTP id s12so3646198faa.31 for <sidr@ietf.org>; Fri, 04 Nov 2011 13:52:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=ajcjNjdDhe7bTdHLm3MKEQApURLvNztjAFGk4c8Pv7Q=; b=CvR/m2p0dYrixR2qBk6i1PBSokVKEnBwvKO/I4hIYwcYbh5/AO93mv2Zjp17YZZmhi eCfkjrS8R+mKQNhCN3JbDbjtoJpmKKYYghVim6jxfheWv8KtfKk9Bt0N7YNGDU9ronww Fmr/J6ZAFFNUpP6aylkm9jsyT5bf5JyzouQqA=
MIME-Version: 1.0
Received: by 10.223.16.82 with SMTP id n18mr26653294faa.2.1320439920481; Fri, 04 Nov 2011 13:52:00 -0700 (PDT)
Received: by 10.223.54.15 with HTTP; Fri, 4 Nov 2011 13:52:00 -0700 (PDT)
In-Reply-To: <m2aa8c489s.wl%randy@psg.com>
References: <E96517DD-BAC7-4DD8-B345-562F71788C6A@tcb.net> <p06240807cad42f85eb7d@193.0.26.186> <32744.216.168.239.87.1320175657.squirrel@webmail.tcb.net> <p06240801cad6ab773279@193.0.26.186> <D9A38669-883D-4090-9F95-BC5C63220950@tcb.net> <p06240801cad800485596@193.0.26.186> <EEBF68E0-FAD9-4AF3-B81B-78760D200D9B@tcb.net> <p06240808cad85ff73d61@193.0.26.186> <080F8FFF-D2C7-4414-B53A-233F88D2009F@vpnc.org> <CAFU7BATC-6DUDNuadakwSa5wj0ryy0=49=XveBXD5Wv=5JL-ag@mail.gmail.com> <m2aa8c489s.wl%randy@psg.com>
Date: Fri, 04 Nov 2011 16:52:00 -0400
Message-ID: <CAH1iCioH8jm36-COFxyoxqaxGAK+VHrSAT2dTjqOUApTqE+SrQ@mail.gmail.com>
From: Brian Dickson <brian.peter.dickson@gmail.com>
To: Randy Bush <randy@psg.com>
Content-Type: text/plain; charset="ISO-8859-1"
Cc: sidr wg list <sidr@ietf.org>
Subject: Re: [sidr] BGPSEC Threat Model ID
X-BeenThere: sidr@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Secure Interdomain Routing <sidr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sidr>, <mailto:sidr-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sidr>
List-Post: <mailto:sidr@ietf.org>
List-Help: <mailto:sidr-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sidr>, <mailto:sidr-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 04 Nov 2011 20:52:02 -0000

On Fri, Nov 4, 2011 at 4:11 AM, Randy Bush <randy@psg.com> wrote:
> could someone post a clear technical explanation of WHAT a route leak
> is,

I'll bite.

It requires carefully a constructed definition, first:
"Customer" - A is a customer of B iff A has an arrangement with B
which explicitly allows B to announce A's routes to any third party,
and for B to announce B's entire routing table to A.

Customer is a technical arrangement, regardless of how or why that
arrangement was arrived at, e.g. paying money.

If A is a customer of B, A is allowed to announce A's own routes (and
by extension A's customer's routes) to B.
A _may_ (or may not, at A's discretion) signal to B that A wishes B to
forward all (or a subset) of A's (and A's customers) routes to third
parties.
A is not _required_ to do so, and A may further signal that B should
only send those prefixes to a subset of third parties with whom B
peers.

(Observe: B may always announce A's routes to B's other customers.)

A route leak occurs, when B announces non-customer routes to non-customers.

(Those would be routes for which B has not been given explicit
_blanket_ permission to announce to third parties.)

If A (a customer of B) signals to B to not announce a subset of routes
to B's non-customers, but B does so anyways, that would _not_
constitute a true route-leak as such.
(It would, however, be a contractual and technical issue that would
normally be resolved between A and B.)

If it helps, I've tried to illustrate the leak/no-leak distinction below...

Brian

Examples - in the following, I'll use "->" or "<-" to indicate
customer relationships, and "-" to indicate non-customer (peer)
relationships.
The route traverses the AS's left-to-right. A is the originating ASN,
and the highest letter is the receiving ASN.

The following are non-route-leak paths from announcer to receiver:
A - B (A peers with B)
A -> B (A is a customer of B)
A <- B (B is a customer of A)
A -> B <- C
A <- B <- C
A -> B -> C
A -> B -> C - D
A -> B - C <- D
A - B <- C <- D
A -> B -> C - D <- E <- F (and so on)

(There can be only one "-", and all the arrows must point towards the
"-" in the ASCII stick diagram.)

Any of these would be route leaks:
A - B - C
A <- B -> C
A - B -> C
A <- B - C
A -> B - C -> D
A <- B <- C -> D -> E (This is one of the most common sources of
route-leaks. It is one of the easiest mistakes for a network engineer
to do.)
A -> B -> C - D <- E <- F -> G -> H (This is how the previous example
usually is seen in the wild)
A -> B -> C - D <- E - F <- G (Here E is accidentally providing transit to F)

The special case of mutual customers (mutual transit) would be represented as:
A <-> B

Mutual transit/customer arrangements can legitimately do the following:
A -> B <-> C -> D
A <- B <-> C <- D
A - B <-> C <- D
A -> B <-> C - D

Basically, on any given prefix announcement, "<->" can be treated as
either "<-" or "->" in order to fit the "allowed" rules.
If neither of those substitutions fits an existing "allowed" rule,
then the result would be a route leak. Examples of mutual-transit
leaks:
A - B <-> C - D
A <- B <-> C -> D
A - B <-> C -> D