<?xml version='1.0' encoding='US-ASCII'?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc rfcedstyle="yes"?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc autobreaks="yes"?>
<?rfc tocindent="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc ipr="trust200902" number="7350" category="std" updates="5389, 5928" obsoletes="" submissionType="IETF" consensus="yes">
  <front>
    <title abbrev="STUN over DTLS">Datagram Transport Layer Security
    (DTLS) as Transport
    for&nbsp;Session&nbsp;Traversal&nbsp;Utilities&nbsp;for&nbsp;NAT&nbsp;(STUN)</title>
    <author initials="M." surname="Petit-Huguenin" fullname="Marc Petit-Huguenin">
      <organization>Jive Communications</organization>
      <address>
        <postal>
          <street>1275 West 1600 North, Suite 100</street>
          <city>Orem</city>
          <region>UT</region>
          <code>84057</code>
          <country>USA</country>
        </postal>
        <email>marcph@getjive.com</email>
      </address>
    </author>
    <author initials="G." surname="Salgueiro" fullname="Gonzalo Salgueiro">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>7200-12 Kit Creek Road</street>
          <city>Research Triangle Park</city>
          <region>NC</region>
          <code>27709</code>
          <country>USA</country>
        </postal>
        <email>gsalguei@cisco.com</email>
      </address>
    </author>
    <date month="August" year="2014"/>
   
 <area>TSV</area>
   
 <workgroup>TRAM</workgroup>

 <abstract>
      <t>This document specifies the usage of Datagram Transport Layer Security (DTLS) as a transport protocol for Session Traversal Utilities for NAT (STUN).  It provides guidance on when and how to use DTLS with the currently standardized STUN usages.  It also specifies modifications to the STUN and Traversal Using Relay NAT (TURN) URIs and to the TURN resolution mechanism to facilitate the resolution of STUN and TURN URIs into the IP address and port of STUN and TURN servers supporting DTLS as a transport protocol.  This document updates RFCs 5389 and 5928.  </t>
    </abstract>
  </front>
  <middle>
    <section anchor="section.intro" title="Introduction" toc="default">
      <t><xref target="RFC5389" pageno="false" format="default">STUN</xref> defines Transport Layer Security (TLS) over TCP (simply referred to as <xref target="RFC5246" pageno="false" format="default">TLS</xref>) as the transport for STUN due to additional security advantages it offers over plain UDP or TCP transport.  But, TCP (and thus TLS-over-TCP) is not an optimal transport when STUN is used for its originally intended purpose, which is to support multimedia sessions.  This is a well documented and understood transport limitation for real-time communications.  </t>
      <t>DTLS-over-UDP (referred to in this document as simply <xref target="RFC6347" pageno="false" format="default">DTLS</xref>) offers the same security advantages as TLS-over-TCP, but without the undesirable concerns.  </t>
    </section>
    <section anchor="section.terminology" title="Terminology" toc="default">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in <xref target="RFC2119" pageno="false" format="default"/> when they appear in ALL CAPS.  When these words are not in ALL CAPS (such as "must" or "Must"), they have their usual English meanings, and are not to be interpreted as RFC 2119 key words.  </t>
    </section>
    <section anchor="section.transport" title="DTLS as Transport for STUN" toc="default">
      <t><xref target="RFC5389" pageno="false" format="default">STUN</xref> defines three transports: UDP, TCP, and TLS.  This document adds DTLS as a valid transport for STUN.  </t>

      <t>STUN over DTLS MUST use the same retransmission rules as STUN over UDP (as described in Section 7.2.1 of <xref target="RFC5389" pageno="false" format="default"/>).  It MUST also use the same rules that are described in Section 7.2.2 of <xref target="RFC5389" pageno="false" format="default"/> to verify the server identity.  Instead of TLS_RSA_WITH_AES_128_CBC_SHA, which is the default cipher suite for STUN over TLS, implementations of STUN over DTLS, and deployed clients and servers, MUST support TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 and TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, and MAY support other cipher suites.  Perfect Forward Secrecy (PFS) cipher suites MUST be preferred over non-PFS cipher suites.  Cipher suites with known weaknesses, such as those based on (single) DES and RC4, MUST NOT be used.  Implementations MUST disable TLS-level compression.  The same rules established in Section 7.2.2 of <xref target="RFC5389" pageno="false" format="default"/> for keeping open and closing TCP/TLS connections MUST be used as well for DTLS associations.  </t>

      <t>In addition to the path MTU rules described in Section 7.1 of <xref target="RFC5389" pageno="false" format="default"/>, if the path MTU is unknown, the actual STUN message needs to be adjusted to take into account the size of the (13-byte) DTLS Record header, the MAC size, and the padding size.</t>

      <t>By default, STUN over DTLS MUST use port 5349, the same port number as STUN over TLS.  However, the Service Record (SRV) procedures can be implemented to use a different port (as described in Section 9 of <xref target="RFC5389" pageno="false" format="default"/>).  When using SRV records, the service name MUST be set to "stuns" and the protocol name to "udp".  </t>

      <t><xref target="RFC3489" pageno="false" format="default">Classic STUN</xref> (which was obsoleted by <xref target="RFC5389"/>) defines only UDP as a transport, and DTLS MUST NOT be used.  Any STUN request or indication without the magic cookie (see Section 6 of <xref target="RFC5389" pageno="false" format="default"/>) over DTLS MUST always result in an error.  </t>
    </section>
    <section anchor="section.usages" title="STUN Usages" toc="default">
      
<t>Section 7.2 of <xref target="RFC5389" pageno="false" format="default"/> states that STUN usages must specify which transport protocol is used.  The following sections discuss if and how the existing STUN usages are used with DTLS as the transport.  Future STUN usages MUST take into account DTLS as a transport and discuss its applicability.  In all cases, new STUN usages MUST explicitly state if implementing the denial-of-service countermeasure described in Section 4.2.1 of <xref target="RFC6347" pageno="false" format="default"/> is mandatory.  </t>
      <section anchor="section.usages.nat-discovery" title="NAT Discovery Usage" toc="default">
        
<t>As stated by Section 13 of <xref target="RFC5389" pageno="false" format="default"/>, "...TLS provides minimal security benefits..." for this particular STUN usage.  DTLS will also similarly offer only limited benefit.  This is because the only mandatory attribute that is TLS/DTLS protected is the XOR&nbhy;MAPPED&nbhy;ADDRESS, which is already known by an on-path attacker, since it is the same as the source address and port of the STUN request.  On the other hand, using TLS/DTLS will prevent an active attacker to inject XOR-MAPPED-ADDRESS in responses.  The TLS/DTLS transport will also protect the SOFTWARE attribute, which can be used to find vulnerabilities in STUN implementations.  </t>

        <t>Regardless, this usage is rarely used by itself, since using <xref target="RFC5766" pageno="false" format="default">TURN</xref> with <xref target="RFC5245" pageno="false" format="default">Interactive Connectivity Establishment (ICE)</xref> is generally indispensable, and TURN provides the same NAT Discovery feature as part of an allocation creation.  In fact, with ICE, the NAT Discovery usage is only used when there is no longer any resource available for new allocations in the TURN server.  </t>

        <t>A STUN server implementing the NAT Discovery usage and using DTLS MUST implement the denial-of-service countermeasure described in Section 4.2.1 of <xref target="RFC6347" pageno="false" format="default"/>.</t>

        <section anchor="section.usages.nat-discovery.uris" title="DTLS Support in STUN URIs" toc="default">
          <t>This document does not make any changes to the syntax of a <xref target="RFC7064" pageno="false" format="default">STUN URI</xref>.  As indicated in Section 3.2 of <xref target="RFC7064" pageno="false" format="default"/>, secure transports like STUN over TLS, and now STUN over DTLS, MUST use the "stuns" URI scheme.  </t>

          <t>The &lt;host&gt; value MUST be used when using the rules in Section 7.2.2 of <xref target="RFC5389" pageno="false" format="default"/> to verify the server identity.  A STUN URI containing an IP address MUST be rejected, unless the domain name is provided by the same mechanism that provided the STUN URI, and that domain name can be passed to the verification code.  </t>
        </section>
      </section>
      <section anchor="section.usages.rfc5245.7" title="Connectivity Check Usage" toc="default">
        <t>Using DTLS would hide the USERNAME, PRIORITY, USE-CANDIDATE,
	ICE&nbhy;CONTROLLED, and ICE-CONTROLLING attributes.  But, because
	MESSAGE&nbhy;INTEGRITY protects the entire STUN response using a
	password that is known only by looking at the Session Description
	Protocol (SDP) exchanged, it is not possible for an attacker that does not have access to this SDP to inject an incorrect XOR-MAPPED-ADDRESS, which would subsequently be used as a peer reflexive candidate.  </t>

        <t>Adding DTLS on top of the connectivity check would delay, and consequently impair, the ICE process.  Adding additional round trips to ICE is undesirable, so much that there is a proposal (<xref target="ICE-DTLS" pageno="false" format="default"/>) to use the DTLS handshake used by the WebRTC Secure Real-time Transport Protocol (SRTP) streams as a replacement for the connectivity checks.  </t>
        <t>STUN URIs are not used with this usage.</t>
      </section>
      <section anchor="section.usages.rfc5245.20" title="Media Keep-Alive Usage" toc="default">
        <t>When STUN Binding Indications are being used for media keep-alive (described in Section 10 of <xref target="RFC5245" pageno="false" format="default"/>), it runs alongside an RTP or RTP Control Protocol (RTCP) session.  It is possible to send these media keep-alive packets inside a separately negotiated non-SRTP DTLS session if <xref target="RFC5764" pageno="false" format="default">DTLS-SRTP</xref> is used, but that would add overhead, with minimal security benefit.  </t>
        <t>STUN URIs are not used with this usage.</t>
      </section>
      <section anchor="section.usages.rfc5626" title="SIP Keep-Alive Usage" toc="default">
        <t>The SIP keep-alive (described in <xref target="RFC5626" pageno="false" format="default"/>) runs inside a SIP flow.  This flow would be protected if a SIP over DTLS transport mechanism is implemented (such as described in <xref target="SIP-DTLS" pageno="false" format="default"/>).  </t>
        <t>STUN URIs are not used with this usage.</t>
      </section>

      <section anchor="section.usages.rfc5780" title="NAT Behavior Discovery Usage" toc="default">
        <t>The NAT Behavior Discovery usage is Experimental and to date has never been effectively deployed.  Despite this, using DTLS would add the same security properties as for the <xref target="section.usages.nat-discovery" pageno="false" format="default">NAT Discovery usage</xref>.  </t>

        <t>The STUN URI can be used to access the NAT Discovery feature of a NAT Behavior Discovery server, but accessing the full features would require definition of a "stun-behaviors:" URI, which is out of scope for this document.</t>

        <t>A STUN server implementing the NAT Behavior Discovery usage and using DTLS MUST implement the denial-of-service countermeasure described in Section 4.2.1 of <xref target="RFC6347" pageno="false" format="default"/>.</t>
      </section>

      <section anchor="section.usages.rfc5766" title="TURN Usage" toc="default">
        <t><xref target="RFC5766" pageno="false" format="default">TURN</xref> defines three combinations of transports/allocations: UDP/UDP, TCP/UDP, and TLS/UDP.  This document adds DTLS/UDP as a valid combination.  A TURN server using DTLS MUST implement the denial-of-service countermeasure described in Section 4.2.1 of <xref target="RFC6347" pageno="false" format="default"/>.  </t>

        <t><xref target="RFC6062" pageno="false" format="default"/> states that TCP allocations cannot be obtained using a UDP association between client and server.  The fact that DTLS uses UDP implies that TCP allocations MUST NOT be obtained using a DTLS association between client and server.  </t>
        
        <t>By default, TURN over DTLS uses port 5349, the same port number as TURN over TLS.  However, the SRV procedures can be implemented to use a different port (as described in Section 6 of <xref target="RFC5766" pageno="false" format="default"/>).  When using SRV records, the service name MUST be set to "turns" and the protocol name to "udp".  </t>

        <section anchor="section.uris" title="DTLS Support in TURN URIs" toc="default">
          <t>This document does not make any changes to the syntax of a <xref target="RFC7065" pageno="false" format="default">TURN URI</xref>.  As indicated in Section 3 of <xref target="RFC7065" pageno="false" format="default"/>, secure transports like TURN over TLS, and now TURN over DTLS, MUST use the "turns" URI scheme.  When using the "turns" URI scheme to designate TURN over DTLS, the transport value of the TURN URI, if set, MUST be "udp".  </t>

          <t>The &lt;host&gt; value MUST be used when using the rules in Section 7.2.2 of <xref target="RFC5389" pageno="false" format="default"/> to verify the server identity.  A TURN URI containing an IP address MUST be rejected, unless the domain is provided by the same mechanism that provided the TURN URI, and that domain name can be passed to the verification code.  </t>
        </section>

        <section anchor="section.resolution" title="Resolution Mechanism for TURN over DTLS" toc="default">
          <t>This document defines a new Straightforward-Naming Authority Pointer (S-NAPTR) application protocol tag: "turn.dtls".</t>

          <t>The &lt;transport&gt; component, as provisioned or resulting from the parsing of a TURN URI, is passed without modification to the TURN resolution mechanism defined in Section 3 of <xref target="RFC5928" pageno="false" format="default"/>, but with the following alterations to that algorithm:</t>

          <t><list style="symbols"><t>The acceptable values for the transport name are extended with the addition of "dtls".</t><t>The acceptable values in the ordered list of supported TURN transports is extended with the addition of "Datagram Transport Layer Security (DTLS)".</t><t>The resolution algorithm check rules list is extended with the addition of the following step: 
<list style="empty">
<t>If &lt;secure&gt; is true and &lt;transport&gt; is defined as "udp" but the list of TURN transports supported by the application does not contain DTLS, then the resolution MUST stop with an error.</t></list> </t>
<t>The 5th rule of the resolution algorithm check rules list is modified to read like this: <list style="none">
<t>If &lt;secure&gt; is true and &lt;transport&gt; is not defined but the list of TURN transports supported by the application does not contain TLS or DTLS, then the resolution MUST stop with an error.</t></list> </t>

<t>Table 1 is modified to add the following line:</t></list> </t>
          <texttable title="" suppress-title="false" align="center" style="full">
            <ttcol align="left">&lt;secure&gt;</ttcol>
            <ttcol align="left">&lt;transport&gt;</ttcol>
            <ttcol align="left">TURN Transport</ttcol>
            <c>true</c>
            <c>"udp"</c>
            <c>DTLS</c>
          </texttable>
          <t><list style="symbols"><t>In step 1 of the resolution algorithm, the default port for DTLS is 5349.</t>
<t>In step 4 of the resolution algorithm, the following is added to the list of conversions between the filtered list of TURN transports supported by the application and application protocol tags: 
<list style="empty">
<t>"turn.dtls" is used if the TURN transport is DTLS.</t></list> </t></list> </t>
          
<t>Note that using the resolution mechanism in <xref target="RFC5928" pageno="false" format="default"/> does not imply that additional round trips to the DNS server will be needed (e.g., the TURN client will start immediately if the TURN URI contains an IP address).</t>
        </section>
      </section>
    </section>

  
  <section anchor="section.security" title="Security Considerations" toc="default">
      <t>STUN over DTLS as a STUN transport does not introduce any specific security considerations beyond those for STUN over TLS detailed in <xref target="RFC5389" pageno="false" format="default"/>.</t>
      <t>The usage of "udp" as a transport parameter with the "stuns" URI scheme does not introduce any specific security issues beyond those discussed in <xref target="RFC7064" pageno="false" format="default"/>.</t>
      <t>TURN over DTLS as a TURN transport does not introduce any specific security considerations beyond those for TURN over TLS detailed in <xref target="RFC5766" pageno="false" format="default"/>.</t>
      <t>The usage of "udp" as a transport parameter with the "turns" URI scheme does not introduce any specific security issues beyond those discussed in <xref target="RFC7065" pageno="false" format="default"/>.</t>
      <t>The new S-NAPTR application protocol tag defined in this document as well as the modifications this document makes to the TURN resolution mechanism described in <xref target="RFC5928" pageno="false" format="default"/> do not introduce any additional security considerations beyond those outlined in <xref target="RFC5928" pageno="false" format="default"/>.</t>
    </section>
  
  <section anchor="section.iana" title="IANA Considerations" toc="default">
      <section anchor="section.iana.tag" title="S-NAPTR Application Protocol Tag" toc="default">
        <t>This specification contains the registration information for one
	S-NAPTR application protocol tag in the "Straightforward-NAPTR
	(S-NAPTR) Parameters" registry under "S-NAPTR Application Protocol Tags" (in accordance with <xref target="RFC3958" pageno="false" format="default"/>).</t>

        <t>
<?rfc subcompact="yes"?>
<list style="hanging">
<t hangText="Application Protocol Tag:">
turn.dtls</t>
<t hangText="Intended Usage:">
See <xref target="section.resolution" pageno="false" format="default"/>
</t>
<t hangText="Interoperability considerations:">
N/A</t>
<t hangText="Security considerations:">
See <xref target="section.security" pageno="false" format="default"/>
</t>
<t hangText="Relevant publications:">
This document</t>
<t hangText="Contact information:">
Marc Petit-Huguenin &lt;petithug@acm.org&gt;</t>
<t hangText="Author/Change controller:">
The IESG</t>
</list>
<?rfc subcompact="no"?>
 </t>
      </section>
      
   <section anchor="section.iana.port-number" title="Service Name and Transport Protocol Port Number" toc="default">
        <t>This specification contains the registration information for two Service Name and Transport Protocol Port Numbers in the "Service Names and Transport Protocol Port Numbers/Service Name and Transport Protocol Port Number" registry (in accordance with <xref target="RFC6335" pageno="false" format="default"/>).</t>
       
 <section anchor="section.iana.port-number.stuns" title="The &quot;stuns&quot; Service Name" toc="default">
          <t>IANA has modified the following entry in the registry "Service
	  Names and Transport Protocol Port Numbers/Service Name and Transport
	  Protocol Port Number":

<?rfc subcompact="yes"?>
<list style="hanging">
<t hangText="Service Name:">stuns</t>
<t hangText="PortNumber:">5349</t>
<t hangText="Transport Protocol:">udp</t>
<t hangText="Description:">Reserved for a future enhancement of STUN</t>
<t hangText="Assignee:"/>
<t hangText="Contact:"/>
<t hangText="Reference:">RFC 5389</t>
</list>
<?rfc subcompact="no"?>
</t>

<t>So that it contains the following:
<?rfc subcompact="yes"?>
<list style="hanging">
<t hangText="Service Name:">stuns</t>
<t hangText="Port Number:">5349</t>
<t hangText="Transport Protocol:">udp</t>
<t hangText="Description:">STUN over DTLS</t>
<t hangText="Assignee:">IESG</t>
<t hangText="Contact:">IETF Chair &lt;chair@ietf.org&gt;</t>
<t hangText="Reference:">RFC 7350</t>
<t hangText="Assignment Notes:">This service name was initially created by RFC&nbsp;5389.</t>
</list>
<?rfc subcompact="no"?>
	  </t>
        </section>
      
  <section anchor="section.iana.port-number.turns" title="The &quot;turns&quot; Service Name" toc="default">
          <t>IANA has modified the following entry in the registry "Service Names and Transport Protocol Port Numbers/Service Name and Transport Protocol Port Number":

<?rfc subcompact="yes"?>
<list style="hanging"><t hangText="Service Name:">turns</t><t hangText="Port Number:">5349</t><t
	  hangText="Transport Protocol:">udp</t><t hangText="Description:">Reserved for a
	  future enhancement of TURN</t><t hangText="Assignee:"/><t
	  hangText="Contact:"/><t hangText="Reference:">RFC
	  5766</t></list>
<?rfc subcompact="no"?>
</t>
          <t>So that it contains the following:
<?rfc subcompact="yes"?>
<list style="hanging"><t hangText="Service Name:">turns</t><t hangText="Port Number:">5349</t><t
	  hangText="Transport Protocol:">udp</t><t hangText="Description:">TURN over
	  DTLS</t><t hangText="Assignee:">IESG</t><t hangText="Contact:">IETF Chair
	  &lt;chair@ietf.org&gt;</t><t hangText="Reference:">RFC 7350</t><t hangText="Assignment Notes:">This service name
	  was initially created by RFC&nbsp;5766.</t></list> 
<?rfc subcompact="no"?>
</t>
        </section>
      </section>
    </section>
    
   <section anchor="section.acknowledgements" title="Acknowledgements" toc="default">
      <t>Thanks to Alan Johnston, Oleg Moskalenko, Simon Perreault, Thomas Stach, Simon Josefsson, Roni Even, Kathleen Moriarty, Benoit Claise, Martin Stiemerling, Jari Arkko, and Stephen Farrell for the comments, suggestions, and questions that helped improve this document.</t>
    </section>
  </middle>
  <back>
    <references title="Normative References">

<?rfc include='reference.RFC.2119" ?>
<?rfc include='reference.RFC.3489" ?>
<?rfc include='reference.RFC.3958" ?>
<?rfc include='reference.RFC.5245" ?>
<?rfc include='reference.RFC.5246" ?>
<?rfc include='reference.RFC.5389" ?>
<?rfc include='reference.RFC.5626" ?>
<?rfc include='reference.RFC.5764" ?>
<?rfc include='reference.RFC.5766" ?>
<?rfc include='reference.RFC.5928" ?>
<?rfc include='reference.RFC.6062" ?>
<?rfc include='reference.RFC.6335" ?>
<?rfc include='reference.RFC.6347" ?>
<?rfc include='reference.RFC.7064" ?>
<?rfc include='reference.RFC.7065" ?>

    </references>


    <references title="Informative References">
   
<!--draft.thomson-rtcweb-ice-dtls, Expired-->
      <reference anchor="ICE-DTLS">
        <front>
          <title>Using Datagram Transport Layer Security (DTLS) For Interactivity Connectivity Establishment (ICE) Connectivity Checking: ICE-DTLS</title>
          <author initials="M" surname="Thomson" fullname="Martin Thomson">
            <organization/>
          </author>
          <date month="March" year="2012"/>
        </front>
        <seriesInfo name="Work" value="in Progress"/>
      </reference>

<!--draft.jennings-sip-dtls-05, Expired-->
<reference anchor='SIP-DTLS'>
<front>
<title>Session Initiation Protocol (SIP) over Datagram Transport Layer Security  (DTLS)</title>
<author initials='C' surname='Jennings' fullname='Cullen Jennings'>
    <organization />
</author>
<author initials='N' surname='Modadugu' fullname='Nagendra Modadugu'>
    <organization />
</author>
<date month='October' year='2007' />
</front>
<seriesInfo name='Work' value='in Progress' />
</reference>


    </references>
    <section anchor="appendix.examples" title="Examples" toc="default">
      
<t><xref target="example.1" pageno="false" format="default"/> shows how the &lt;secure&gt;, &lt;port&gt;, and &lt;transport&gt; components are populated for a TURN URI that uses DTLS as its transport.  For all these examples, the &lt;host&gt; component is populated with "example.net".  </t>
      
      <texttable anchor="example.1" title="" suppress-title="false" align="center" style="full">
        <ttcol align="left">URI</ttcol>
        <ttcol align="left">&lt;secure&gt;</ttcol>
        <ttcol align="left">&lt;port&gt;</ttcol>
        <ttcol align="left">&lt;transport&gt;</ttcol>
        <c>turns:example.net?transport=udp</c>
        <c>true</c>
        <c/>
        <c>DTLS</c>
      </texttable>
      <t>With the DNS Resource Records (RRs) in <xref target="example.2" pageno="false" format="default"/> and an ordered TURN transport list of {DTLS, TLS, TCP, UDP}, the resolution algorithm will convert the TURN URI "turns:example.net" to the ordered list of IP address, port, and protocol tuples in <xref target="table.2" pageno="false" format="default"/>.</t>
      
<figure anchor="example.2" title="" suppress-title="false" align="left" alt="" width="" height="">
        <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height="">example.net.
IN NAPTR 100 10 "" RELAY:turn.udp:turn.dtls "" datagram.example.net.
IN NAPTR 200 10 "" RELAY:turn.tcp:turn.tls "" stream.example.net.

datagram.example.net.
IN NAPTR 100 10 S RELAY:turn.udp "" _turn._udp.example.net.
IN NAPTR 200 10 S RELAY:turn.dtls "" _turns._udp.example.net.

stream.example.net.
IN NAPTR 100 10 S RELAY:turn.tcp "" _turn._tcp.example.net.
IN NAPTR 200 10 A RELAY:turn.tls "" a.example.net.

_turn._udp.example.net.
IN SRV   0 0 3478 a.example.net.

_turn._tcp.example.net.
IN SRV   0 0 5000 a.example.net.

_turns._udp.example.net.
IN SRV   0 0 5349 a.example.net.

a.example.net.
IN A     192.0.2.1
			   </artwork>
      </figure>
      <texttable anchor="table.2" title="" suppress-title="false" align="center" style="full">
        <ttcol align="left">Order</ttcol>
        <ttcol align="left">Protocol</ttcol>
        <ttcol align="left">IP address</ttcol>
        <ttcol align="left">Port</ttcol>
        <c>1</c>
        <c>DTLS</c>
        <c>192.0.2.1</c>
        <c>5349</c>
        <c>2</c>
        <c>TLS</c>
        <c>192.0.2.1</c>
        <c>5349</c>
      </texttable>
    </section>
 
  
  </back>
</rfc>
