TURN draft-ietf-behave-turn-09 Philip Matthews Rohan Mahy Jonathan Rosenberg.

Slides:



Advertisements
Similar presentations
STUN Open Issues Jonathan Rosenberg dynamicsoft. Changes since -00 Answered UNSAF considerations –Still awaiting response from Leslie on whether they.
Advertisements

CPSC Network Layer4-1 IP addresses: how to get one? Q: How does a host get IP address? r hard-coded by system admin in a file m Windows: control-panel->network->configuration-
20.1 Chapter 20 Network Layer: Internet Protocol Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
1 Internet Protocol Version 6 (IPv6) What the caterpillar calls the end of the world, nature calls a butterfly. - Anonymous.
2: Comparing IPv4 and IPv6 Rick Graziani Cabrillo College
Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Internet Control Protocols Savera Tanwir. Internet Control Protocols ICMP ARP RARP DHCP.
NAT Traversal for P2PSIP Philip Matthews Avaya. Peer X Peer Y Peer W 2. P2PSIP Network Establishing new Peer Protocol connection Peer Protocol messages.
1 © 2005 Cisco Systems, Inc. All rights reserved. Cisco Confidential Session Number Presentation_ID STUN, TURN and ICE Cary Fitzgerald.
CSCI 4550/8556 Computer Networks Comer, Chapter 23: An Error Reporting Mechanism (ICMP)
STUN bis draft-ietf-behave-rfc3489bis Jonathan Rosenberg Cisco Systems.
ICE Jonathan Rosenberg dynamicsoft. Issue 1: Port Restricted Flow This case does not work well with ICE right now Race condition –Works if message 13.
Internet Networking Spring 2003
© 2007 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.1 Computer Networks and Internets with Internet Applications, 4e By Douglas.
Chapter 23: ARP, ICMP, DHCP IS333 Spring 2015.
RTP Multiplexing draft-rosenberg-rtcweb-rtpmux Jonathan + {Rosenberg, Lennox}
Gursharan Singh Tatla Transport Layer 16-May
SIP and NAT Dr. Jonathan Rosenberg Cisco Fellow. What is NAT? Network Address Translation (NAT) –Creates address binding between internal private and.
Company Confidential 1 © 2005 Nokia V1-Filename.ppt / yyyy-mm-dd / Initials Modification Proposals to Current TURN Spec Mikael Latvala.
CAPWAP Editor’s Report Pat R. Calhoun Cisco Systems, Inc.
TURN draft-ietf-behave-turn-07 Philip Matthews, Avaya Jonathan Rosenberg, Cisco Rohan Mahy, Plantronics.
1 CMPT 471 Networking II ICMP © Janice Regan, 2012.
Petrozavodsk State University, Alex Moschevikin, 2003NET TECHNOLOGIES Internet Control Message Protocol ICMP author -- J. Postel, September The purpose.
Network Layer4-1 NAT: Network Address Translation local network (e.g., home network) /24 rest of.
1 IP: putting it all together Part 2 G53ACC Chris Greenhalgh.
TCP/IP Essentials A Lab-Based Approach Shivendra Panwar, Shiwen Mao Jeong-dong Ryoo, and Yihan Li Chapter 5 UDP and Its Applications.
NVO3 dataplane encapsulation requirements discussion Erik Nordmark, Arista Networks.
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
1 The Internet and Networked Multimedia. 2 Layering  Internet protocols are designed to work in layers, with each layer building on the facilities provided.
Transport Layer: TCP and UDP. Overview of TCP/IP protocols Comparing TCP and UDP TCP connection: establishment, data transfer, and termination Allocation.
(Business) Process Centric Exchanges
July 16, Diameter EAP Application (draft-ietf-aaa-eap-02.txt) on behalf of...
1 STUN Changes draft-ietf-behave-rfc3489bis-03 Jonathan Rosenberg Dan Wing Cisco Systems.
1 Network Layer Lecture 16 Imran Ahmed University of Management & Technology.
TURN -01 Changes and Issues Rohan Mahy BEHAVE at IETF66 - Montreal.
CSC 600 Internetworking with TCP/IP Unit 7: IPv6 (ch. 33) Dr. Cheer-Sun Yang Spring 2001.
1 An Error Reporting Mechanism (ICMP). 2 IP Semantics IP is best-effort Datagrams can be –Lost –Delayed –Duplicated –Delivered out of order –Corrupted.
RFC3489bis Jonathan Rosenberg Cisco. Issue #1: IPSec Demux Raised by HIP folks IPSec in the kernel and ICE in userland –IPSec kicksc all packets with.
SIP working group IETF#70 Essential corrections Keith Drage.
IETF-81, Quebec City, July 25-29, 2011
Making SIP NAT Friendly Jonathan Rosenberg dynamicsoft.
Packet Format Issues #227: Need Shim Header to indicate Crypto Property of packet Do we need to add pre-amble header to indicate if data is encrypted or.
Interactive Connectivity Establishment : ICE
Real-Time Streaming Protocol draft-ietf-mmusic-rfc2326bis-01.txt Magnus Westerlund.
TURN Jonathan Rosenberg Cisco Systems. Changes since last version Moved to behave terminology Many things moved into STUN –Basic request/response formation.
IETF66 DIME WG John Loughney, Hannes Tschofenig and Victor Fajardo 3588-bis: Current Issues.
MULTIPLEXING/DEMULTIPLEXING, CONNECTIONLESS TRANSPORT.
SIP PUBLISH Method Jonathan Rosenberg dynamicsoft.
MSRP & Relays Ben Campbell Cullen Jennings Rohan Mahy.
Session Traversal Utilities for NAT (STUN) IETF-92 Dallas, March 26, 2015 draft-ietf-tram-stunbis Marc Petit-Huguenin, Gonzalo Salgueiro.
Currently Open Issues in the MIPv6 Base RFC MIPv6 security design team.
July 2007 CAPWAP Protocol Specification Editors' Report July 2007
RFC 2716bis Wednesday, July 12, 2006 Draft-simon-emu-rfc2716bis-02.txt Dan Simon Bernard Aboba IETF 66, Montreal, Canada.
Uni Innsbruck Informatik th IETF, PMTUD WG: Path MTU Discovery Using Options draft-welzl-pmtud-options-01.txt Michael Welzl
UDP : User Datagram Protocol 백 일 우
Chapter 3 TCP and IP 1 Chapter 3 TCP and IP. Chapter 3 TCP and IP 2 Introduction Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Internet.
MIDCOM MIB Juergen Quittek, Martin Stiemerling, Pyda Srisuresh 60th IETF meeting, MIDCOM session.
Draft-ietf-p2psip-base-08 Cullen Jennings Bruce Lowekamp Eric Rescorla Salman Baset Henning Schulzrinne March 25, 2010.
Network Layer Protocols COMP 3270 Computer Networks Computing Science Thompson Rivers University.
The Transport Layer Implementation Services Functions Protocols
Chapter 9: Transport Layer
Instructor Materials Chapter 9: Transport Layer
PANA Issues and Resolutions
draft-ietf-simple-message-sessions-00 Ben Campbell
Topic #1 & #5 “All that has to do with header formats”
Transport Layer Our goals:
Guide to TCP/IP Fourth Edition
Net 323 D: Networks Protocols
DHCP: Dynamic Host Configuration Protocol
NET 323D: Networks Protocols
Presentation transcript:

TURN draft-ietf-behave-turn-09 Philip Matthews Rohan Mahy Jonathan Rosenberg

Recent Work on TURN Two new versions -08 and -09 since Philly One conf call on April 8th. Some work on STUN (e.g. SOFTWARE attribute, duplicated responses) which has also affected TURN.

Changes in -08 Removed BANDWIDTH attribute –Was poorly specified; not clear how to fix; not seen as critical to specify now; left to a separate document. Changed REQUESTED-PROPS to contain a set of one-bit flags –Provides an easier way to add new properties; already added new P flag. Preserving vs Non-Preserving Allocations (see next slide)

Preserving vs Non-Preserving Allocations Preserving allocations relay all the secondary IP headers fields (DSCP, TTL, ECN, flow label, fragmentation fields, options/extensions) “correctly”. They also relay ICMP error messages. Non-Preserving allocations relay at least one of these fields “incorrectly” and/or do not relay ICMP messages. Preserving allocations support Path MTU Discovery, QoS, etc. If desired, a client requests a Preserving allocation by setting the P bit in REQUESTED-PROPS. Server may or may not be able to grant request. –Probably requires privileged operations or kernel access to support –Non-preserving allocations can be implemented by an un-privileged application.

Changes in -09 Mostly bugfixes and clarifications. Added ICMP attribute –Needed to support ICMP msg relaying in Preserving allocations Changed codepoint for “Wrong Credentials” error to 441 to avoid conflict with “Stale Nonce” error. If server responds with 508 “Insufficent Port Capacity”, it now includes the REQUEST-PROPS attribute with all supported flags set to 1. Discuss use of new SOFTWARE attribute. –09 calls this “SOFTWARE-TYPE”; will fix in next version. Renamed “RELAY-ADDRESS” to “RELAYED- ADDRESS” for consistency.

Changes in -09 (cont.) Noted that TURN msgs can be demuxed from other messages (.e.g., ICE connectivity checks and RTP or other application data) by checking if source tranport address is the TURN server. Discussed the issue of retransmitted Allocation requests, where the first request fails but the second succeeds. Stated that server MAY remember transmitted failure responses to handle this case. Clarified that is is OK to delete a non-existent allocation. About 13 other changes/clarifications. See list of changes in the document.

Issue: Unauthenticated Permission Refresh Cullen: Concerned that Send indications and ChannelData msgs are not authenticated, but they install or refresh the corresponding permission. –Seriousness of this problem not really known yet.

Diagram NAT TURN Client Bad Guy Send to Self w. spoofed 5-tuple 1 2 Allocate 3 UDP from self to alloc 4 Data From BadGuy BadGuy needs to: 1.Know TURN service IP/port 2.Learn reflexive IP/port (on-path) 3.Spoof reflexive IP/port 4.Learn allocation (on-path or guess) Client will detect attack – Gets data from unknown peer, unless

Without TURN NAT Client Bad Guy 1 Data to Peer 4 BadGuy needs to: 1.Learn reflexive IP/port (on-path) 2.Spoof reflexive IP/port Subset of requirements of previous attack

Solutions Option 1: Do nothing. A concerned client can use TLS to avoid the problem. Option 2: Add DTLS to improve Option 1 – now UDP works securely Option 3: Introduce a Send request/response transaction in addition to the current Send indication. –Can use w/o DATA attribute to install/refresh a permission, or with DATA attribute to install/refresh and send data. –Send indications and ChannelData msgs no longer refresh permissions. –ChannelBind transactions can also refresh permissions (as they do today) Option 4: Clients MUST ignore Data from unknown peers Proposal: Option 4

Preserving Mechanism Introduced in TURN-08 Written/Reads much like an extension – i.e., isolated into its own section Introduces complicated stuff that is hard to implement/understand for the typical app developer Not used/needed by any existing TURN implementation or usage Needs significant review Proposal: –Extract to separate document and proceed independently

Issue: IPv6 support draft-ietf-behave-turn: IPv4 -> IPv4 and IPv6 -> IPv6 draft-ietf-behave-turn-ipv6: IPv4 -> IPv6 Base TURN spec has restriction that the relayed transport address and the 5-tuple must use same address family Some do not like this restriction, especially in the light of NAT64 and similar proposals. Option 1: Keep restriction, and leave split as is. Option 2: Drop restriction, and merge second document into first –Would have to cover details of IPv4 -> IPv6 header translation. Could reference SIIT (RFC 2765) for much of this, but will likely need to tweak details. –How interested are people in IPv4 -> IPv6 case right now? –Unclear how much this would delay TURN

Issue: ALTERNATE-SERVER At last meeting, we agreed to keep ALTERNATE- SERVER in TURN for use in things like anycast discovery of servers. –However, details of anycast discovery are more complex than expected. Possible interim proposal: –ALTERNATE-SERVER allowed in authenticated Allocate responses (only). –Authentication requires 2 round trips. TURN server provider must ensure these two round trips “work”. –One option is to return NONCE and REALM values that work with any server in the group. Alternative: Defer entirely to future extension –Many other protocols that use anycast have not included it in their core protocol definition

Other additions: PMTUD with Non-Preserving Allocations It would be nice to do PMTUD even with a non-preserving allocation Cullen: Could include a flag in a Send indication that says “please set DF bit”. –Only allows PMTUD in client-->peer direction Plan to add unless someone objects or has a better suggestion

Open Issue: Add Channel Number to ChannelBind Response Proposed by Scott Godin – found it helped his implementation Suggest: eliminate any and all feature creep – without clear benefit, skip this

Open Issue: Detecting In-Use Channels Do we need a way to discover whether a channel is currently in use? Suggestion: feature creep – no need

Open Issue: Public TURN Server Do we need guidance on what it means to run a public open TURN server? E.g., don’t use long term auth? Proposal: An operational issue – don’t address