Re: [tram] Anycast discovery, was: draft-ietf-tram-turn-server-discovery

Simon Perreault <sperreault@jive.com> Mon, 28 November 2016 13:31 UTC

Return-Path: <sperreault@jive.com>
X-Original-To: tram@ietfa.amsl.com
Delivered-To: tram@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B02811295BA for <tram@ietfa.amsl.com>; Mon, 28 Nov 2016 05:31:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level:
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=jive-com.20150623.gappssmtp.com
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 b0Jw8i_P4aoZ for <tram@ietfa.amsl.com>; Mon, 28 Nov 2016 05:31:03 -0800 (PST)
Received: from mail-qk0-x230.google.com (mail-qk0-x230.google.com [IPv6:2607:f8b0:400d:c09::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B2D5B12943A for <tram@ietf.org>; Mon, 28 Nov 2016 05:31:02 -0800 (PST)
Received: by mail-qk0-x230.google.com with SMTP id q130so139240224qke.1 for <tram@ietf.org>; Mon, 28 Nov 2016 05:31:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jive-com.20150623.gappssmtp.com; s=20150623; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=775L6ZqkwHJ/1N61z7W7YNySknHDleLuUjNUJkuGkU8=; b=B88hqsQfkCnVEMixfg3W8RfD4zRDxWhITZP9SEswPHkMJmn0JkpXDS/gk2yVs3qL95 tiyE8MN9GudOdqyBYcn4uBILok6rvAVL3CHNytQxXVxkhAhWuVksY44tpvxHrqXqJ3VW qUswVKzDk6nG1h1SC7lrs3boYGO96f8YK1jBFmuAsLSAePFqxlDYyAZxz9daMQORcFor 5N+l87L8Dbqn0Gn21A+i3CNBTs/i7Vlp5BhVGDRrc4s3iMbQeRQVHilvUH+L0f8xWDE3 2Pnl9BuNCpLhZACV0y4fyKCi7gGSBZh/trweF2H5hd5ZcRDrDtEKgB2LuuUKc62nNYQf DvxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=775L6ZqkwHJ/1N61z7W7YNySknHDleLuUjNUJkuGkU8=; b=k3ezVwwaIiGNpjreni1KHNoGxo4CzADaCx+H027Ppd3osobEztNRXKtmZw0OdtYU5A skZiSzLTQW1otZAq0IEfHRQbnZOQHy2b5m1UNQOTOoQ8CTgJF5ZJgJFr4+HvdD39q3pr t4M04bLOz/QPLBIKNiOrASqRJm2yopuabkmqMVEmM8N/hUrUeHoMrIEq7i6JOSwhJ26Z gR6RaUCMmbjv+GQ3CaFuNb3BdOk59rSx+WAvFfNuWpcvgPjdzfEOPLPT1Uge2kmEBsf5 4pQjoM3Iet2VDP4T6hlF6ZA6Bg2fM3k4KsuayOsYteAw9c9gQ+cdmVrKrUG3EI8POF3H NYCQ==
X-Gm-Message-State: AKaTC02uj8zx1dByJrrMGMs++VOG62X2RLuvlfXud7ILs+3fbqqUxGx2h5lhoEAzNu7CvDnUOX0SoEs595W8ZQ4jmWxcxxshvniXoW0ETUpRM19J15QYzZI=
X-Received: by 10.55.168.146 with SMTP id r140mr21015452qke.189.1480339861684; Mon, 28 Nov 2016 05:31:01 -0800 (PST)
Received: from MacBook-Pro-de-Simon.local (modemcable002.114-70-69.static.videotron.ca. [69.70.114.2]) by smtp.gmail.com with ESMTPSA id s89sm28298853qkl.27.2016.11.28.05.31.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Nov 2016 05:31:01 -0800 (PST)
To: Karl Stahl <karl.stahl@ingate.com>, "'Tirumaleswar Reddy (tireddy)'" <tireddy@cisco.com>, 'Brandon Williams' <brandon.williams@akamai.com>, "'Prashanth Patil (praspati)'" <praspati@cisco.com>, tram@ietf.org
References: <E1FFF433-D80C-4567-9C7D-16E46C025F00@cisco.com> <010501d23ba4$875bc760$96135620$@stahl@ingate.com> <295fd023-c73e-84f1-3acc-1b578c042434@akamai.com> <02cc01d23e4e$2da03150$88e093f0$@stahl@ingate.com> <a5f77a074936495e96d60d7cc83c6f37@XCH-RCD-017.cisco.com> <8db2f352-fa9b-8376-f6d6-fd53dd5abe05@akamai.com> <011701d24110$e76b8070$b6428150$@stahl@ingate.com> <d2442639-a81c-cd8d-dfd6-663a69f3f420@akamai.com> <982922d0d9c1411cb0a70f413b19220d@XCH-RCD-017.cisco.com> <583206ac.8558620a.5877d.48e5SMTPIN_ADDED_BROKEN@mx.google.com> <ef69c622-e1d9-7ec6-2ec2-e1ca00285803@jive.com> <583482f5.46d9540a.d3af4.d038SMTPIN_ADDED_BROKEN@mx.google.com> <82658049-45c6-0626-b6b5-b8684e92ab41@jive.com> <583556f7.c9079d0a.ac67d.0289SMTPIN_ADDED_BROKEN@mx.google.com> <c0c8fcda-34b7-4e76-4879-0e19e0e1092b@jive.com> <583b3b6c.d0cdca0a.24d3a.b35cSMTPIN_ADDED_BROKEN@mx.google.com>
From: Simon Perreault <sperreault@jive.com>
Message-ID: <5b9e6fc2-596f-17ee-7423-d35d1a59ed36@jive.com>
Date: Mon, 28 Nov 2016 08:30:58 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.5.0
MIME-Version: 1.0
In-Reply-To: <583b3b6c.d0cdca0a.24d3a.b35cSMTPIN_ADDED_BROKEN@mx.google.com>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/tram/limmkslZWZdMKL2mKS7fe0fnClk>
Cc: tram-chairs@ietf.org, 'Dan Wing' <dan@danwing.org>, 'Spencer Dawkins at IETF' <spencerdawkins.ietf@gmail.com>
Subject: Re: [tram] Anycast discovery, was: draft-ietf-tram-turn-server-discovery
X-BeenThere: tram@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Discussing the creation of a Turn Revised And Modernized \(TRAM\) WG, which goal is to consolidate the various initiatives to update TURN and STUN." <tram.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tram>, <mailto:tram-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tram/>
List-Post: <mailto:tram@ietf.org>
List-Help: <mailto:tram-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tram>, <mailto:tram-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 28 Nov 2016 13:31:17 -0000

Le 2016-11-27 à 15:00, Karl Stahl a écrit :
> I just looked into the GUI of a Cisco 14890/Linksys EA2700 WiFi Router
> having a single subnet for wireless and its 4 LAN ports. In a data crowded
> environment it is in need of a paralleled TURN server for a path to the high
> quality voip pipe in my triple play network access, especially with WebRTC
> voice+video wanting 2.5 mbps through the access for one session.
> 
> Finding "Single Port Forwarding" in the router GUI, it should be able to
> forward all STUN and TURN packets to a TURN server at the LAN,

I'm not following, sorry. Why would you want to use port forwarding and
have to deal with NAT issues, while there are much simpler mechanisms
available to you?

> but I could
> not find the routing table for adding a static anycast route, nor could I
> find a way to create an extra subnet on the LAN side (or at all).

http://www.linksys.com/us/support-article?articleNum=135048

Step 5 shows how to configure static routing table entries.

This is a super common feature on home routers. As another example, I'm
currently using an Asus RT-AC66U and it also has that feature:

http://www.asus.com/us/support/FAQ/1011706/

Note however that the preferred deployment scenario here would be to
have the TURN server be embedded on the home router so as to have one
leg on the LAN and another on the WAN and thus avoid NAT. No need for
manual routing setup in this case, and the current anycast discovery
method would work perfectly.

> The
> Binding anycast discovery method should work, but not the discussed
> separating between TWO TURN addresses.

See above. In addition, your proposed alternative would require NAT,
which is a non-starter.

> And thinking further, will we not just delay this highly needed RFC further
> by more demonstrations?...

(This discussion is not delaying anything. The DTLS one is.)

I will not respond to the paragraphs below because they ask questions
that are premature. Again with my chair hat on, problems with the
current mechanism need to be demonstrated before a solution can be
proposed. This has not yet happened.

Simon

> The more I look into this, and even if I would agree to all your
> comments/answers below, we cannot accept a discovery draft that is highly
> unclear, on what it is we are able to discover (TWO TURN servers or combined
> into ONE, listening to TWO IP addresses, not described here or in RFC5766
> (TURN protocol not being changed is no excuse)) and with a method
> description that even qualified members of this WG have discussed in terms
> of using DTLS for the anycast-addressed Allocate or Binding request packets
> (anycast packets *are over UPD*) and similarly confused by the lack of
> distinction between discovery and usage in the draft.
> 
> I understand and share the opinion that it is urgent to now finally get this
> draft into place, but accepting the anycast method as it is in this version,
> may add another decade to finally resolve the NAT/Firewall traversal problem
> that has plagued real-time communication since SIP was introduced in early
> 2000, when we now are about to complete the ICE/STUN/TURN suit into
> something deployable (as we know, instead of ICE, SBCs are still what is
> used for NAT/Firewall traversal - we make them :-) - but SBCs are not usable
> with WebRTC. 
> 
> The magic of exchanging the anycast addressed Allocate request to a Binding
> request for getting the IP address of *the TURN server* is a resolution, and
> the text for that update is already suggested. This method was proposed
> already in October 2013 after detailed discussion on the RTCWEB list after
> which the TRAM WG was formed
> https://www.ietf.org/mail-archive/web/tram/current/msg00132.html
> You Simon, already then, pointed out the two relevant issues/problems, 
> https://www.ietf.org/mail-archive/web/tram/current/msg00138.html 
> which I also in the suggested "Deployment Considerations for TURN Servers
> Provided by the Local or Access Network" to be added, now have spelled out
> the full solutions to (including the "leakage-problem" that is related to
> your second issue raised at that time).
> 
> So, I think we safely and quickly can fix up this draft for becoming the
> long awaited RFC that gets us an anycast method that at least works for
> detecting "a TURN server" (OK, not "ordinary TURN server" and absolutely not
> un-described "anycast TURN server"). And without having to bother about how
> the then anycast addressed Binding arrives at *the TURN server*, we can
> remove the "not all TURN servers may support anycast" under section 3 and
> have no worries over that ">Anycast *is* difficult to implement in many
> real-world scenarios,".
> 
> /Karl
> 
> PS: I don't agree to the "you'd be shooting yourself in the foot" comment,
> which you made on a quote from draft-ietf-rtcweb-return-00, which this
> specification should service with a working and deployable discovery method
> (which I believe will be done by the changes suggested). Then there will be
> no need to ">NAT to a different UDP port, so that you are able to
> differentiate unicast and anycast traffic". I said something about "robust"
> in my suggested deployment considerations to add to this draft - Robustness
> must also be a goal for successful deployment and for this draft.
> 
> And, since the configuration described in draft-ietf-rtcweb-return-00, is
> for USAGE of the TURN server paralleling the default gateway, those authors
> could/should not foresee that we come up with a DISCOVERY method that will
> complicate deployment configuration by requiring an extra subnet on the LAN
> side (that may not be supported by the default gateway router). Using DHCP
> for discovery, one would not have thought of this as a
> shoot-yourself-in-the-foot deployment.
> 
> But DHCP is unfortunately not commonly available on many of the access
> networks we use today (LTE.., IPv6) (and the DHCP discovery is also
> unnecessarily complicated by going via domain name + DNS rather than
> defining a new IANA DHCP option (but I not going to request such change :-)
> since we cannot use DHCP discovery on all networks a WebRTC browser is
> commonly used from anyway). We simply need the anycast discovery method for
> WebRTC browsers' general usage.
> 
> The anycast discovery method must be clear, well defined and understood by
> readers of the draft, and with the aim to work in all deployment scenarios
> (for USAGE of such TURN server) and to be as robust and tolerant as
> possible.
> 
> Let's do it! That is also faster and simpler than just making current method
> clearly defined and understood.
> (We are just making a small change to the method: Allocate -> Binding in the
> DISCOVERY package to get all these advantages.)

-- 
Simon Perreault
Director of Engineering, Platform | Jive Communications, Inc.
https://jive.com | +1 418 478 0989 ext. 1241 | sperreault@jive.com