Re: [alto] Adopting draft-kiesel-alto-xdom-disc as WG item?

Sebastian Kiesel <ietf-alto@skiesel.de> Fri, 15 July 2016 21:19 UTC

Return-Path: <sebi@gw01.ehlo.wurstkaes.de>
X-Original-To: alto@ietfa.amsl.com
Delivered-To: alto@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2B0D912D9BF for <alto@ietfa.amsl.com>; Fri, 15 Jul 2016 14:19:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.186
X-Spam-Level:
X-Spam-Status: No, score=-3.186 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RP_MATCHES_RCVD=-1.287] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aMs_urwcTJZg for <alto@ietfa.amsl.com>; Fri, 15 Jul 2016 14:19:15 -0700 (PDT)
Received: from gw01.ehlo.wurstkaes.de (gw01.ehlo.wurstkaes.de [IPv6:2a02:a00:e000:116::41]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E9C6712D9A5 for <alto@ietf.org>; Fri, 15 Jul 2016 14:19:14 -0700 (PDT)
Received: from sebi by gw01.ehlo.wurstkaes.de with local (Exim 4.80) (envelope-from <sebi@gw01.ehlo.wurstkaes.de>) id 1bOAVp-0001Bx-Rp; Fri, 15 Jul 2016 23:19:09 +0200
Date: Fri, 15 Jul 2016 23:19:09 +0200
From: Sebastian Kiesel <ietf-alto@skiesel.de>
To: Gao Kai <gaok12@mails.tsinghua.edu.cn>
Message-ID: <20160715211909.GE3919@gw01.ehlo.wurstkaes.de>
References: <D3AAB578.7DF072%w.roome@alcatel-lucent.com> <20160712210913.GM3915@gw01.ehlo.wurstkaes.de> <57884A02.3000207@mails.tsinghua.edu.cn> <20160715151444.GC3919@gw01.ehlo.wurstkaes.de> <57890C88.7090305@mails.tsinghua.edu.cn>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <57890C88.7090305@mails.tsinghua.edu.cn>
Accept-Languages: en, de
Organization: my personal mail account
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <https://mailarchive.ietf.org/arch/msg/alto/Qdp7LzOEj89jphYtSqprByfjkD8>
Cc: IETF ALTO <alto@ietf.org>
Subject: Re: [alto] Adopting draft-kiesel-alto-xdom-disc as WG item?
X-BeenThere: alto@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Application-Layer Traffic Optimization \(alto\) WG mailing list" <alto.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/alto>, <mailto:alto-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/alto/>
List-Post: <mailto:alto@ietf.org>
List-Help: <mailto:alto-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/alto>, <mailto:alto-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jul 2016 21:19:17 -0000

Hi Kai,

On Sat, Jul 16, 2016 at 12:17:12AM +0800, Gao Kai wrote:
> Hi Sebastian and all,
> 
> On 15/07/16 23:14, Sebastian Kiesel wrote:
> > Hi Kai and all,
> >
> > On Fri, Jul 15, 2016 at 10:27:14AM +0800, Gao Kai wrote:
> >> On 13/07/16 05:09, Sebastian Kiesel wrote:
> >>> On Tue, Jul 12, 2016 at 02:55:52PM -0400, Wendy Roome wrote:
> >>>> My comments on draft-kiesel-alto-xdom-disc-02:
> >>>> Section 3.2:
> >>>>
> >>>> If a client wants the cost from X => Y, why just do cross-domain discovery
> >>>> on address X? Why not do it for Y instead? Or do it for both X & Y?
> >>> This is again to cope with the not so well-defined "routingcost" metric.
> >>>
> >>> Our assumtion is that XDOM-DISC(X) will discover one ALTO server,
> >>> which will be able to express costs (X,Y) and costs (X,Z) using a
> >>> (locally) consistent routingcost metric, i.e., with the meaning that
> >>> a lower value indicates a higher preference.
> >>>
> >>> If we used XDOM-DISC(Y) and XDOM-DISC(Z) we would probably discover
> >>> two servers, which could use completely incompatible definitions.
> >>>
> >>>
> >>> In other words, the example query given in sec. 11.5.1.7. of RFC 7285
> >>> should be sent to the server yielded from XDOM-DISC(192.0.2.2).
> >>>
> >>> If the "srcs" list contained more than one IP address, the query
> >>> should be split up in several queries, each containing only one
> >>> IP address in "srcs" (but keep all in "dsts"), and each of these
> >>> "sub-queries" would need its own call to XDOM-DISC.
> >> I had the same question as Wendy because for me, sources and
> >> destinations are somewhat symmetric 
> > if src/dst and the costs between are really symmetric, it doesn't
> > make a difference.
> >
> >> so it is tempting to think there
> >> should be something like XDOM-DISC(X, Y), which might be overcomplicated
> >> though.
> > That would be too complicated indeed.
>
> Actually my first feeling is that may be we can use XDOM-DISC(LCP(X,Y))
> where LCP stands for longest common prefix.  This can be extended to
> multiple addresses, for example, use the ALTO server XDOM-DISC(LCP(X, Y,
> Z)) for both scenarios described below.

I don't think that this idea will work in practice.  LCP(X,Y) will most
often be outside of the in-addr.arpa. subtrees delegated to X's or Y's ISP.
Often, LCP(X,Y) will result in 0.0.0.0/0  - we would need some
"top-level ALTO server" or something like that?

Our proposal is much easier to implement:

If an IP address (or prefix) X belongs to an ISP or the IT department
of a company/university/etc., they should know the costs from X to all 
other destinations in the Internet and vice versa.  They can put them
in their ALTO server, i.e., that ALTO server will be able to answer whether
routingcost(src=X, dst=Y) > routingcost(src=X, dst=Z).
and whether
routingcost(src=Y, dst=X) > routingcost(src=Z, dst=X).
They can adjust their DNS so that XDOM-DISC(X) will find this ALTO
server.

Of course, other ALTO servers operated by various parties may also know
information related to X, but XDOM-DISC(X) points to one IRD URI
endorsed by the ISP/operator of X.



On the other hand, if you have a deployment scenario where
XDOM-DISC(LCP(X,Y)) makes sense, we don't need any change in
the specification of XDOM-DISC() and nobody will prevent you from
calling XDOM-DISC with the output from LCP.


> >> I think whether to use the source/destination or to split up queries
> >> depends on the application.  If it is selecting a destination for a
> >> given source, it certainly can choose XDOM-DISC(SRC).  If the selection
> >> is about sources, probably XDOM-DISC(DST) is more reasonable. 
> > I agree.  So the idea is, that we call XDOM-DISC(X), in oder to find an
> > ALTO server that can answer both ECS queries, whether
> >
> > routingcost(src=X, dst=Y) > routingcost(src=X, dst=Z).
> >
> > and whether
> >
> > routingcost(src=Y, dst=X) > routingcost(src=Z, dst=X).
> >
> >
> > In other words, we use the common address X that appears in all the
> > tuples we want to compare as parameter for the XDOM-DISC.
>
> Yes.  Also, I think maybe it is better to change the tone a bit with
> "SHOULD"/"MIGHT" to indicate preferences instead of "MUST"/"HAVE TO"
> which make it a rule, because judging the quality of ALTO services only
> by their location is not very convincing.

First, the whole section 3 does not use RFC2119 keywords.  Its purpose
is to illustrate how this algorithm should be used.  Other ways of
using XDOM-DISC are possible; nevertheless, our description should
not become too vague.

Second, what do you mean with "judging the quality of ALTO services only
by their location is not very convincing."?
My view on this algorithm is that those people who control the reverse
DNS for a specific IP address or prefix X (i.e., usually an ISP or 
IT department) can use the DNS to announce that if you want to optimize
traffic from or to X, you should use the indicated ALTO server.

Thanks
Sebastian