Re: [hybi] DNS SRV for WebSocket

Iñaki Baz Castillo <ibc@aliax.net> Mon, 28 March 2011 17:03 UTC

Return-Path: <ibc@aliax.net>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 3C7D43A6820 for <hybi@core3.amsl.com>; Mon, 28 Mar 2011 10:03:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.056
X-Spam-Level:
X-Spam-Status: No, score=-2.056 tagged_above=-999 required=5 tests=[AWL=-0.579, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_72=0.6, J_CHICKENPOX_93=0.6, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lDEPXdvA1aID for <hybi@core3.amsl.com>; Mon, 28 Mar 2011 10:03:44 -0700 (PDT)
Received: from mail-qy0-f172.google.com (mail-qy0-f172.google.com [209.85.216.172]) by core3.amsl.com (Postfix) with ESMTP id 4D9483A659C for <hybi@ietf.org>; Mon, 28 Mar 2011 10:03:44 -0700 (PDT)
Received: by qyk29 with SMTP id 29so1282052qyk.10 for <hybi@ietf.org>; Mon, 28 Mar 2011 10:05:21 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.229.63.154 with SMTP id b26mr2314737qci.163.1301331912906; Mon, 28 Mar 2011 10:05:12 -0700 (PDT)
Received: by 10.229.35.72 with HTTP; Mon, 28 Mar 2011 10:05:12 -0700 (PDT)
In-Reply-To: <4D90BE10.8050801@callenish.com>
References: <BANLkTi=G6bc=FquLM8agKWojmDkD9FohxA@mail.gmail.com> <4D90BE10.8050801@callenish.com>
Date: Mon, 28 Mar 2011 19:05:12 +0200
Message-ID: <BANLkTimLdsPnWZ1cLhEi2NdW0eizsfQhqQ@mail.gmail.com>
From: Iñaki Baz Castillo <ibc@aliax.net>
To: Bruce Atherton <bruce@callenish.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Cc: Hybi <hybi@ietf.org>
Subject: Re: [hybi] DNS SRV for WebSocket
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 28 Mar 2011 17:03:46 -0000

2011/3/28 Bruce Atherton <bruce@callenish.com>:
> Is there any reason that the interaction of Websockets and DNS SRV could not
> be handled in a separate draft? That is how it is done in the SIP world
> between RFC3261 and RFC3263.

Both are two different RFC, true, but RFC 3261 references RFC 3263 for
resolving server location based on DNS SRV.


> Also, my interpretation of the SIP RFC is that it allows for DNS lookups
> that do not use DNS SRV (via a "local policy"). I'm not sure that using DNS
> SRV lookups should be a mandatory part of every websockets implementation.
> Recommended, sure, but not required.

The point here is that DNS SRV is not mandatory. For example:

- The JS in a web page must open a WS connection with ws://mydomain.org.

- Then the WS client performs a SRV query for domain=mydomain.org,
service=ws and transport=tcp.

- If such DNS SRV record exists, then the client chooses one of the
entries (based on weight and priority) and performs a DNS A query for
the domain of the chosen entry, and then connects to the resolver IP
and the port indicated in the chosen SRV entry.

- In case such DNS SRV doesn't exist, then the WS client should
perform a DNS A query for mydomain.org, and connect to the resolved IP
and default port (80 for ws:// and 443 for wss://).

Also, in case the ws URI does contain a port (i.e:
ws://mydomain.org:8080) then the WS client MUST not perform a SRV
query, but just a DNS A query for mydomaing.org and connect to the
resolved IP and port 8080 (as usual).


So the WS client should check for the existence of a SRV record for
the given domain (if no port is given), but the SRV record could exist
or not. It's very flexible but, of course, in order to work properly,
it should be mandatory for WS clients.




-- 
Iñaki Baz Castillo
<ibc@aliax.net>