Re: Benjamin Kaduk's Discuss on draft-ietf-bfd-vxlan-09: (with DISCUSS and COMMENT)

Benjamin Kaduk <> Fri, 20 December 2019 01:46 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 93482120044; Thu, 19 Dec 2019 17:46:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id FBUTKTDyack0; Thu, 19 Dec 2019 17:45:58 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 6743D12000F; Thu, 19 Dec 2019 17:45:58 -0800 (PST)
Received: from ([]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by (8.14.7/8.12.4) with ESMTP id xBK1jr0O001864 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 19 Dec 2019 20:45:56 -0500
Date: Thu, 19 Dec 2019 17:45:52 -0800
From: Benjamin Kaduk <>
To: Jeffrey Haas <>
Cc: The IESG <>,,,
Subject: Re: Benjamin Kaduk's Discuss on draft-ietf-bfd-vxlan-09: (with DISCUSS and COMMENT)
Message-ID: <>
References: <> <> <> <>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <>
User-Agent: Mutt/1.12.1 (2019-06-15)
Archived-At: <>
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "RTG Area: Bidirectional Forwarding Detection DT" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 20 Dec 2019 01:46:01 -0000

Hi Jeff,

On Wed, Dec 18, 2019 at 05:18:24PM -0500, Jeffrey Haas wrote:
> Ben,
> On Wed, Dec 18, 2019 at 02:02:46PM -0800, Benjamin Kaduk wrote:
> > On Wed, Dec 18, 2019 at 03:24:48PM -0500, Jeffrey Haas wrote:
> > > This is a clean summary of the considerations.  At least a portion of the WG
> > > seems to be comfortable with "test to the management VNI".  However, another
> > > (smaller, I believe) portion were wanting to test one layer further in.
> > 
> > It is reassuring that I at least managed to summarize the situation
> > tolerably.  Is it fair to say that testing "one layer further in" is a
> > superset of what "test to the managemenet VNI" can do?
> Fundamentally, this is all BFD.  The issue is almost always considerations
> related to encapsulation.
> The meta concern here is that if you test to the management VNI, the
> operator has a lot of control over things that are clean from a security
> perspective.
> The minute you test one layer deeper, it's still the same thing... but you
> now have a lot of sharp edges you have to worry about.
> In all of these situations, the main consideration from a security
> perspective and an encapsulation perspective is "don't step on the toes of
> the user".  But that said, vxlan environments are provided to contain
> tenants, have their own provisioning ecosystems, and security considerations
> in how they are provisioned and operated.  As long as the security and
> operational considerations are understood by the operator, they can decide
> whether "testing one layer further in" gives them good benefit vs. the
> additional security considerations.
> And that said, two fundamental portions of BFD operations and security still
> apply here:
> - Discriminators need to be known to mess with existing sessions.  This
>   means the main consideration for someone not in the tenant environment is
>   privacy.  Such privacy is an overall consideration for vxlan environments.
> - Authentication mechanisms in BFD may still be deployed which further
>   reduce the attack space.
> Basically, if your vxlan environment is appropriately operated and secured,
> the main attacker of this session is the tenant itself.  And they have all
> sorts of bad things they can do to knock down their own reachability from
> one VTEP to another.  I.e. it's a stupid attack. :-)

I think in this message you've managed to get a pithy form of both main
flavors of my concern: "don't step on the toes of the user" and "[the
tenant has] all sorts of bad things they can do to knock down their own
reachability" :)

Less pithily, to keep the isolation between tenant and infrastructure, the
tenant can't send stuff that gets interpreted by the infrastructure [as
directed at the infrastructure], and the infrastructure can't intercept and
parse as directed at itself tenant traffic.  As you note, the former is
likely not a terribly interesting attack, as the scope ought to be limited
to just knocking out the tenant's own connection.  So I'm more concerned
about the latter case -- making sure the infrastructure doesn't eat up
something the tenant wanted to send over the tunnel.  That includes all
sorts of weird things tenants might try to do, that might not even be fully
in spec (depending on what the contract between tenant and provider looks
like, I suppose).  There's several technologies involved here that I don't
have a great handle on, so I'm hoping to see an explanation of how that's
prevented, in a simple enough fashion for my tiny brain to take in.