<?xml version='1.0' encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
  <!ENTITY RFC1035  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.1035.xml'>
  <!ENTITY RFC1112  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.1112.xml'>
  <!ENTITY RFC2119  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
  <!ENTITY RFC2131  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2131.xml'>
  <!ENTITY RFC2251  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2251.xml'>
  <!ENTITY RFC3315  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3315.xml'>
  <!ENTITY RFC3376  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3376.xml'>
  <!ENTITY RFC3492  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3492.xml'>
  <!ENTITY RFC3758  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3758.xml'>
  <!ENTITY RFC3810  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3810.xml'>
  <!ENTITY RFC3931  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3931.xml'>
  <!ENTITY RFC4045  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4045.xml'>
  <!ENTITY RFC4120  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4120.xml'>
  <!ENTITY RFC4188  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4188.xml'>
  <!ENTITY RFC4541  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4541.xml'>
  <!ENTITY RFC5198  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5198.xml'>
  <!ENTITY RFC5517  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5517.xml'>
  <!ENTITY RFC5895  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5895.xml'>
  <!ENTITY RFC6106  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6106.xml'>
  <!ENTITY RFC6165  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6165.xml'>
  <!ENTITY RFC6325  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6325.xml'>
  <!ENTITY RFC6762  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6762.xml'>
  <!ENTITY RFC6763  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6763.xml'>
  <!ENTITY RFC6951  PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6951.xml'>
  ]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc toc="yes" ?>
<?rfc tocindent="yes" ?>
<?rfc tocdepth="2" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<rfc category="info" docName="draft-otis-dnssd-mdns-xlink-00" ipr="trust200902">
  <front>
    <title abbrev="mDNS xlinks"> mDNS X-link review</title>
    <author fullname="Douglas Otis" initials="D." surname="Otis">
      <organization>Trend Micro</organization>
      <address>
         <postal>
           <street>10101 N. De Anza Blvd</street>
           <city>Cupertino</city>
           <region>CA</region>
           <code>95014</code>
           <country>USA</country>
         </postal>
         <phone>+1.408.257-1500</phone>
         <email>doug_otis@trendmicro.com</email>
       </address>
    </author>
    <date day="06" month="February" year="2014"/>
    <area>Internet Area</area>
    <workgroup>dnssd</workgroup>
    <keyword>bonjour, link-local, utf-8, hostname, service-discovery, gateway, cross-link, xlink,
      rbridge, vlan</keyword>
    <abstract>
      <t>Multicast DNS will not normally extend beyond the MAC Bridge. Such limitations are
        problematic when desired services are beyond the reach of multicast mDNS. This document
        explores options for overcoming this limitation.</t>
    </abstract>
    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT",
        "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in
          <xref target="RFC2119"/>.</t>
    </note>
  </front>
  <middle>
    <section title="Introduction">
      <t>mDNS <xref target="RFC6762"/> normally allows MAC entities to make their services known on
        MAC Bridged LANs without use of centralized discovery services. Multicast limits the range
        of this publication to LANs able to forward mDNS frames. A Bridge is a mechanism transparent
        to end stations on LANs interconnected by Bridges designated to forward frames normally
        through participation in a Spanning Tree Algorithm.</t>

      <t>A Bridge forwards frames based on prior source MAC associations with incoming frames on
        different LAN ports. Source MAC and LAN port associations are recommended to expire in 300
        seconds. Frames containing source multicast MAC are silently discarded as invalid. Frames
        containing a destination MAC on the same LAN port already associated with the MAC are
        silently discarded. A valid incoming frame with a destination not previously associated with
        a different LAN port is forwarded (flooded) to all other LAN ports, otherwise when a MAC
        destination address is associated with a different LAN port from which the frame was
        received, the frame is selectively forwarded to this port. All broadcast and multicast MAC
        are flooded to all other LAN ports because the MAC does not represent a valid source.
        Flooding operation may create a storm of replicated frames having an unknown MAC destination
        whenever forwarding is enabled on LAN ports connected in a loop.</t>

      <t>In IEEE 802.11 wireless networks, multicast frames are transmitted at a low data rate
        supported by all receivers. Multicast on wireless networks may thereby lower overall network
        throughput. Some network administrators block multicast traffic or convert it to a series of
        link-layer unicast frames.</t>

      <t>Wireless links may be orders of magnitude less reliable than their wired counterparts. To
        improve transmission reliability, the IEEE 802.11 MAC requires positive acknowledgement of
        unicast frames. It does not, however, support positive acknowledgement of multicast frames.
        As a result, it is common to observe much higher loss of multicast frames on wireless
        compared against wired network technologies.</t>
    </section>

    <section title="Possible Solutions">
      <section title="Selective Forwarding based on IGMP or MLD snooping">
        <t>Internet Group Management Protocol (IGMP) <xref target="RFC3376"/> supports multicast on
          IPv4 networks. Multicast Listener Discovery (MLD) <xref target="RFC3810"/> supports
          multicast management on IPv6 networks using ICMPv6 messaging in contrast to IGMP's bare IP
          encapsulation. This management allows routers to announce their multicast membership to
          neighboring routers. To optimize which LANs receive forwarded multicast frames, IGMP or
          MLD snooping can be used to determine the presence of listeners as a means to permit
          selective forwarding of multicast frames.</t>
      </section>

      <section title="RBridge">
        <t>RBridges <xref target="RFC6325"/> are compatible with previous IEEE 802.1 customer
          bridges as well as IPv4 and IPv6 routers and end nodes. RBridges may support either IEEE
          802.3 or some other link technology. RBridges are invisible to current IP routers as
          bridges are and, like routers, terminate the Bridge spanning tree protocol. The RBridge
          design supports VLANs and optimization of the distribution of multi-destination frames
          based on VLAN ID or on IP-derived multicast groups. It also allows unicast forwarding
          tables at transit RBridges to be sized according to the number of RBridges (rather than
          the number of end nodes), which allows their forwarding tables to be substantially smaller
          than in conventional customer bridges.</t>
        <t>Whether an additional layer can be added within the RBridge to implement selective
          multicast forwarding is unknown.</t>
      </section>
      <section title="L2TP VPN">
        <t>L2TP VPN <xref target="RFC3931"/> with experimental <xref target="RFC4045"/> attempt to
          handle multicast by mitigating redundant traffic which remains fairly problematic.</t>
      </section>
      <section title="VLAN">
        <t>There are several products being introduced into the market that attempt to solve the
          problem stated in the charter. They normally use VLAN <xref target="RFC5517"/> to
          selectively extend multicast forwarding beyond Bridge limitations. This does not represent
          a general solution but can support specific services being offered by dynamic devices
          within a local IP address space.</t>
      </section>
      <section title="Convert mDNS to DNS">
        <t>Rather than using MAC as an exchange basis, IP addresses made visible by DNS <xref
            target="RFC1035"/> that conform with <xref target="RFC6763"/> can be used instead.
          Direct access to an IP address is better assured with a single DHCP <xref target="RFC2131"
          /> or <xref target="RFC3315"/> server for IPv4 and IPv6 respectively that responds to
          interconnected networks. In such a configuration, it is possible to have DHCP indicate
          which DNS server is to be used as a means to offer combined local and Internet
          namespace.</t>
        <t>Automation needed to populate the information published in DNS normally depends on
          Kerberos <xref target="RFC4120"/> and LDAP <xref target="RFC2251"/> servers supporting
          either a campus or corporate network.</t>
        <t>Automated conversion of mDNS into unicast DNS can be problematic from a security
          standpoint as can the propagation of multicast frames. mDNS only requires compliance with
            <xref target="RFC5198"/> rather than IDNA2008 <xref target="RFC5895"/>. This means mDNS
          does not ensure instances are visually unique and may contain spaces and punctuation not
          permitted by IDNA2008. mDNS also permits name compression of SRV target names that DNS
          currently forbids.</t>
        <t>Replacing ASCII punctuation and spaces in the label with the '_' character, except when
          located as the leftmost character, may reduce some handling issues related to end of
          string parsing, since labels in DNS normally do not contain spaces or punctuation.
          Nevertheless, DNS is able to handle such labels within sub-domains of registered
          domains.</t>
        <t>Services outside the ".local." domain may have applications obtaining domain search lists
          provided by DHCP (<xref target="RFC2131"/> and <xref target="RFC3315"/> for IPv4 and IPv6
          respectively or RA DNSSL <xref target="RFC6106"/> also for IPv6. Internet domains need to
          be published in DNS as A-Labels <xref target="RFC3492"/> because IDNA2008 compliance
          depends on A-label enforcement by registrars. Therefore A-Labels and not U-Labels must be
          published in DNS for Internet domains. There is also a DNS extension to support the live
          browse feature found in mDNS.</t>
        <t>The SRV scheme used by mDNS has also been widely adopted in the Windows OS since it
          offered a functional replacement for Windows Internet Name Service (WINS) as their initial
          attempt which lacked sufficient name hierarchy.</t>

        <t>It is unknown whether sufficient filtering of mDNS to expose just those services likely
          needed will sufficiently protect wireless networks. The extent RBridge use and something
          analogous to IGMP or MLD for selective forwarding might help to mitigate otherwise
          spurious traffic is unknown.</t>

        <t>Open source of corporate server implementations based on a Debian distro are currently
          available with plug-ins able to support Windows and OS X.</t>

        <section title="Reliable Wireless Multicast">
          <t><xref target="RFC6951"/> transport protocol was designed to efficiently exchange frames
            rather than byte streams. It can operate with partial reliability <xref target="RFC3758"
            /> while still allowing receivers to detect and request specific lost frames. This might
            be possible while also using multicast MACs and IP Addresses. This transport also
            extends the DNS 16 bit transactional nonce with an additional 32 bit random session
            ID.</t>
        </section>
      </section>
    </section>

    <section title="IANA Considerations">
      <t>This document requires no IANA consideration.</t>
    </section>

    <section title="Security Considerations">
      <t>Layer 2 Bridging that might be used to extend mDNS is not inherently secure. See <xref
          target="RFC6325"/> for a list of possible concerns and mitigation methods.</t>
      <t>Conveying both the MAC and IP address beyond the LAN may enable attacks that would have
        otherwise been prevented.</t>
      <t>Moving mDNS services into DNS MUST only expose services able to withstand the greater
        exposure.</t>
      <t>Establish an implied ".local." as the first domain offered in a domain search list. This
        will better ensure local services receive higher priority. This scheme may result in a 3
        second delay. This delay might be mitigated by implying the ".local." domain last instead
        when there are fewer than three labels and they are also suitable for DNS.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors wish to acknowledge valuable contributions from the following: Dave Rand
          <vspace blankLines="5"/></t>
    </section>
  </middle>
  <back>
    <references title="References - Informative"> &RFC1035; &RFC2119; &RFC2131; &RFC2251; &RFC3315;
      &RFC3376; &RFC3492; &RFC3758; &RFC3810; &RFC3931; &RFC4045; &RFC4120; &RFC4541; &RFC5198;
      &RFC5517; &RFC5895; &RFC6106; &RFC6165; &RFC6325; &RFC6762; &RFC6763; &RFC6951; </references>
  </back>
</rfc>
