Consolidated Platform Configuration Guide, Cisco IOS XE Release 3.3SE (Cisco WLC 5700 Series)
Configuring the Service Discovery Gateway
Downloads: This chapterpdf (PDF - 2.03 MB) The complete bookPDF (PDF - 22.45 MB) | The complete bookePub (ePub - 5.56 MB) | Feedback

Configuring the Service Discovery Gateway

Contents

Configuring the Service Discovery Gateway

Finding Feature Information

Your software release may not support all the features documented in this module. For the latest caveats and feature information, see Bug Search Tool and the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the feature information table at the end of this module.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to http:/​/​www.cisco.com/​go/​cfn. An account on Cisco.com is not required.

Restrictions for Configuring the Service Discovery Gateway

The following are restrictions for configuring the Service Discovery Gateway:

  • The Service Discovery Gateway does not support topologies with multiple hops. All network segments must be connected directly to it. The Service Discovery Gateway can learn services from all connected segments to build its cache and respond to requests acting as a proxy.

  • The use of third-party mDNS servers or applications are not supported with this feature.

Information about the Service Discovery Gateway and mDNS

mDNS

mDNS was defined to achieve zero configuration, with zero configuration being defined as providing the following features:

  • Addressing—Allocating IP addresses to hosts

  • Naming—Using names to refer to hosts instead of IP addresses

  • Service discovery—Finding services automatically on the network

With mDNS, network users no longer have to assign IP addresses, assign host names, or type in names to access services on the network. Users only need to ask to see what network services are available, and choose from a list.

With mDNS, addressing is accomplished through the use of DHCP/DHCPv6 or IPv4 and IPv6 Link Local scoped addresses. The benefit of zero-configuration occurs when no infrastructure services such as DHCP or DNS are present and self-assigned link-local addressing can be used. The client can then select a random IPv4 address in the link-local range (169.254.0.0/24) or use its IPv6 link-local address (FE80::/10) for communication.

With mDNS, naming (name-to-address translation on a local network using mDNS) queries are sent over the local network using link-local scoped IP multicast. Because these DNS queries are sent to a multicast address (IPv4 address 224.0.0.251 or IPv6 address FF02::FB), no single DNS server with global knowledge is required to answer the queries. When a service or device sees a query for any service it is aware of, it provides a DNS response with the information from its cache.

With mDNS, service discovery is accomplished by browsing. An mDNS query is sent out for a given service type and domain, and any device that is aware of matching services replies with service information. The result is a list of available services for the user to choose from.

The mDNS protocol (mDNS-RFC), together with DNS Service Discovery (DNS-SD-RFC) achieves the zero-configuration addressing, naming, and service discovery.

mDNS-SD

Multicast DNS Service Discovery (mDNS-SD) uses DNS protocol semantics and multicast over well-known multicast addresses to achieve zero configuration service discovery. DNS packets are sent to and received on port 5353 using a multicast address of 224.0.0.251 and its IPv6 equivalent FF02::FB.

Because mDNS uses a link-local multicast address, its scope is limited to a single physical or logical LAN. If the networking reach needs to be extended to a distributed campus or to a wide-area environment consisting of many different networking technologies, mDNS gateway is implemented. An mDNS gateway provides a transport for mDNS packets across Layer 3 boundaries by filtering, caching, and redistributing services from one Layer 3 domain to another.

mDNS-SD Considerations for Wireless Clients

  • mDNS packets can be sent out of Layer 3 interfaces that might not have an IP address.

  • Packets with mDNS multicast IP and multicast MAC are sent on a multicast CAPWAP tunnel, if multicast-multicast mode is enabled. A multicast CAPWAP tunnel is a special CAPWAP tunnel used for reducing the number of copies of multicast packet that are required to be generated for each AP CAPWAP tunnel. Sending packets on the multicast CAPWAP tunnel requires the outer IP header to be destined to the multicast CAPWAP tunnel's address, which all APs are subscribed to.

  • All mDNS packet handling is done at a foreign switch for roamed clients. A foreign switch is the new switch that a roamed wireless client is actually attached to, which is called the point of attachment.

Service Discovery Gateway

The Service Discovery Gateway feature enables multicast Domain Name System (mDNS) to operate across Layer 3 boundaries (different subnets). An mDNS gateway provides transport for service discovery across Layer 3 boundaries by filtering, caching, and redistributing services from one Layer 3 domain (subnet) to another. Prior to implementation of this feature, mDNS was limited in scope to within a subnet because of the use of link-local scoped multicast addresses. This feature enhances Bring Your Own Device (BYOD).

mDNS Gateway and Subnets

You need to enable an mDNS gateway for service discovery to operate across subnets. You can enable mDNS gateway for a device or for an interface.


Note


You need to configure service routing globally before configuring at the interface level.


After the device or interface is enabled, you can redistribute service discovery information across subnets. You can create service policies and apply filters on either incoming service discovery information (called IN-bound filtering) or outgoing service discovery information (called OUT-bound filtering).


Note


If redistribution is enabled globally, global configuration is given higher priority than interface configuration.


Figure 1. Sample Networking Scenario. For example, if the mDNS gateway functionality is enabled on the router in this figure, then service information can be sent from one subnet to another and vice-versa. For example, the printer and fax service information being advertised in the network with IP address 192.0.2.6 are redistributed to the network with IP address 198.51.100.4. The printer and fax service information in the network with IP address 192.0.2.6 is learned by mDNS-enabled hosts and devices in the other network.

Filtering

After configuring the mDNS gateway and subnets, you can filter services that you want to redistribute. While creating a service list, the permit or deny command options are used:

  • The permit command option allows you to permit or transport specific service list information.

  • The deny option allows you to deny service list information that is available to be transported to other subnets.

You need to include a sequence number when using the permit or deny command option. The same service list name can be associated with multiple sequence numbers and each sequence number will be mapped to a rule.


Note


If no filters are configured, then the default action is to deny service list information to be transported through the device or interface.


Query is another option provided when creating service lists. You can create queries using a service list. If you want to browse for a service, then active queries can be used. This function is helpful to keep the records refreshed in the cache.


Note


Active queries can only be used globally and cannot be used at the interface level.


A service end-point (such as a printer or fax) sends unsolicited announcements when a service starts up. After that, it sends unsolicited announcements whenever a network change event occurs (such as an interface coming up or going down). The device always respond to queries.

After creating a service list and using the permit or deny command options, you can filter using match statements (commands) based on service-instance, service-type, or message-type (announcement or query).

How to Configure the Service Discovery Gateway

Configuring the Service List (CLI)

This procedure describes how to create a service list, apply a filter for the service list, and configure parameters for the service list name.

SUMMARY STEPS

    1.    enable

    2.    configure terminal

    3.    service-list mdns-sd service-list-name {deny sequence-number | permit sequence-number | query}

    4.    match message-type {announcement | any | query}

    5.    match service-instance { LINE }

    6.    match service-type {LINE }

    7.    end


DETAILED STEPS
     Command or ActionPurpose
    Step 1 enable


    Example:
    Controller> enable
    
    
     

    Enables privileged EXEC mode.

    • Enter your password if prompted.

     

    Step 2configure terminal


    Example:
    
    Controller# configure terminal
    
    
     

    Enters the global configuration mode.

     
    Step 3service-list mdns-sd service-list-name {deny sequence-number | permit sequence-number | query}


    Example:
    Controller(config)# service-list mdns-sd sl1 permit 3
    
    
    Controller(config)# service-list mdns-sd sl4 query 
    
    
     
    Enters mDNS service discovery service list mode. In this mode, you can:
    • Create a service list and apply a filter on the service list according to the permit or deny option applied to the sequence number.

    • Create a service list and associate a query for the service list name if the query option is used.

    Note   

    The sequence number sets the priority of the rule. A rule with a lower sequence number is selected first and the service announcement or query is allowed or denied accordingly. You define the sequence number as per your network requirements.

     

    Step 4match message-type {announcement | any | query}


    Example:
    Controller(config-mdns-sd-sl)#  match message-type announcement
    
    
    
     

    (Optional) Sets the message type to match. You can match the following message types:

    • announcement

    • any

    • query

    These commands configure the parameters for the service list name that is created in step 2.

    If the match message-type is an announcement, then the service list rule only allows service advertisements or announcements for the device. If the match message-type is a query, then only a query from the client for a certain service in the network is allowed.

    Multiple service maps of the same name with different sequence numbers can be created and the evaluation of the filters will be ordered on the sequence number. Service lists are an ordered sequence of individual statements, each one has a permit or deny result. Evaluation of service list consists of a list scan, in a predetermined order, and an evaluation of the criteria of each statement that matches. A list scan is stopped once the first statement match is found and an action permit/deny associated with the statement match is performed. The default action after scanning through the entire list is to deny.

    Note   

    You cannot use the match command if you have used the query option in the previous step. The match command can be used only for the permit or deny option.

     

    Step 5match service-instance { LINE }


    Example:
    Controller(config-mdns-sd-sl)##  match service-instance servInst 1
    
    
     

    (Optional) Sets the service instance to match.

    This command configures the parameters for the service list name that is created in step 2.

    Note   

    You cannot use the match command if you have used the query option in the previous step. The match command can be used only for the permit or deny option.

     

    Step 6match service-type {LINE }


    Example:
    Controller(config-mdns-sd-sl)#  match service-type _ipp._tcp
    
    
     

    (Optional) Sets the value of the mDNS service type string to match.

    This command configures the parameters for the service list name that is created in step 2.

    Note   

    You cannot use the match command if you have used the query option in the previous step. The match command can be used only for the permit or deny option.

     

    Step 7end


    Example:
    
    Controller(config-mdns-sd-sl)# end
    
    
     

    Returns to privileged EXEC mode.

     
    What to Do Next

    Proceed to enable the mDNS gateway and redistribution of services.

    Configuring the Service List (GUI)


      Step 1   Choose Configuration > Controller > mDNS > Static Service.
      Step 2   Click Create Service. The Service List > Create Service page is displayed.
      Step 3   In the Service List Name text box, enter the service list name.
      Step 4   From the Service rule drop-down list, choose from the following options:
      • permit—permits the service list.
      • deny—denies the service list.
      Step 5   In the Sequence number text box, enter the priority of the rule. A rule with a lower sequence number is selected first and the service announcement or query is allowed or denied accordingly. You define the sequence number as per your network requirements.
      Step 6   From the Message type drop-down list, choose the message type to match from the following options:
      • announcement—The service list rule allows only service advertisements or announcements for the device.
      • query—The service list rule allows only a query from the client for a service in the network.
      • any—The service list rule allows any type of message.

      Multiple service maps of the same name with different sequence numbers can be created and the evaluation of the filters will be ordered on the sequence number. Service lists are an ordered sequence of individual statements, each one has a permit or deny result. Evaluation of service list consists of a list scan, in a predetermined order, and an evaluation of the criteria of each statement that matches. A list scan is stopped once the first statement match is found and an action permit/deny associated with the statement match is performed. The default action after scanning through the entire list is to deny.

      Step 7   In the Service instance text box, enter the service instance to match.
      Step 8   In the Custom text box, enter the mDNS service type string to match. The Learned Service box shows the services that are added after enabling the learned service type configured by navigating to Configuration > Controller > mDNS > Global. For example, _roap._tcp.local. The Selected Service box shows the learned service that you have selected for an mDNS service.
      Step 9   Click Apply.
      Step 10   Click Save Configuration.

      What to Do Next

      Proceed to enable the mDNS gateway and redistribution of services.

      Enabling mDNS Gateway and Redistributing Services (CLI)

      After enabling mDNS gateway for a device, you can apply filters (apply IN-bound filtering or OUT-bound filtering) and active queries by using service-policy and service-policy-query commands, respectively. You can redistribute services and service announcements using the redistribute mdns-sd command, and set some part of the system memory for cache using the cache-memory-max command.


      Note


      By default, mDNS gateway is disabled on all interfaces.


      SUMMARY STEPS

        1.    enable

        2.    configure terminal

        3.    service-routing mdns-sd

        4.    service-policy service-policy-name {IN | OUT}

        5.    redistribute mdns-sd

        6.    cache-memory-max cache-config-percentage

        7.    service-policy-query service-list-query-name service-list-query-periodicity

        8.    exit

        9.    wireless multicast

        10.    no wireless mdns-bridging

        11.    end


      DETAILED STEPS
         Command or ActionPurpose
        Step 1 enable


        Example:
        Controller> enable
        
        
         

        Enables privileged EXEC mode.

        • Enter your password if prompted.

         

        Step 2configure terminal


        Example:
        
        Controller# configure terminal
        
        
         

        Enters the global configuration mode.

         
        Step 3 service-routing mdns-sd


        Example:
        Controller (config)# service-routing mdns-sd
        
        
         

        Enables mDNS gateway functionality for a device and enters multicast DNS configuration (config-mdns) mode.

        Note   

        This command enables the mDNS function globally.

        Note   

        Enter the service-routing mdns-sd source-interface if-name command in either global-config or interface-config mode, to specify an alternate source interface for outgoing mDNS packets, so its IP address can be used when there is none configured on the outgoing interface.

         
        Step 4 service-policy service-policy-name {IN | OUT}


        Example:
        Controller (config-mdns)# service-policy serv-pol1 IN
        
        
         

        (Optional) For a service list, applies a filter on incoming service discovery information (IN-bound filtering) or outgoing service discovery information (OUT-bound filtering).

         

        Step 5 redistribute mdns-sd


        Example:
        Controller (config-mdns)# redistribute mdns-sd
        
        
         

        (Optional) Redistributes services or service announcements across subnets.

        Note   

        If redistribution is enabled globally, global configuration is given higher priority than interface configuration.

         
        Step 6cache-memory-max cache-config-percentage


        Example:
        Controller (config-mdns)# cache-memory-max 20
        
        
         

        (Optional) Sets some part of the system memory (in percentage) for cache.

        Note   

        By default, 10 percent of the system memory is set aside for cache. You can override the default value by using this command.

         

        Step 7 service-policy-query service-list-query-name service-list-query-periodicity


        Example:
        Controller (config-mdns)# service-policy-query sl-query1 100
        
        
         

        (Optional) Configures service list-query periodicity.

         
        Step 8exit


        Example:
        Controller (config-mdns)#exit
        
        
         

        (Optional) Returns to global configuration mode.

         
        Step 9wireless multicast


        Example:
        Controller (config)# wireless multicast
        
        
         

        (Optional) Enables wireless Ethernet multicast support.

         
        Step 10no wireless mdns-bridging


        Example:
        Controller (config)# no wireless mdns-bridging
        
        
         

        (Optional) Disables bridging of mDNS packets to wireless clients.

         
        Step 11end


        Example:
        
        Controller(config)# end
        
        
         

        Returns to privileged EXEC mode.

         

        Configuring Interface Service Rules (GUI)


          Step 1   Choose Configuration > Controller > mDNS > Interface.
          Step 2   Click an interface name.

          The Interface Service Rules page is displayed.

          Step 3   From the Service Policy IN drop-down list, choose the service policy that should be applied for incoming mDNS messages.
          Step 4   From the Service Policy OUT drop-down list, choose the service policy that should be applied for outgoing mDNS messages.
          Step 5   Select or unselect the Redistribution check box to enable or disable redistribution of service announcements received on one interface over all the interfaces or over a specific interface.
          Step 6   Click Apply.
          Step 7   Click Save Configuration.

          Configuring mDNS Global Rules (GUI)


            Step 1   Choose Configuration > Controller > mDNS > Global.
            Step 2   Select the mDNS gateway check box.
            Step 3   Follow these steps to configure the controller as designated gateway and apply proximity rules:
            1. Click the Advanced tab.
            2. Select or unselect the Self Designated Gateway check box.
            3. Under Proximity, in the Max Services Option box, enter the maximum number of devices supported with a particular service type that are in proximity. The valid range is between 1 and 100.
            4. From the Service List Active Query drop-down list, choose the services that are filtered for proximity. You can create a custom service list, by choosing Create New and then specifying the service list name.
            5. Click New to add a service type, and from the Service Type drop-down list, choose the service type to be added, and click OK. See the online help for detailed descriptions of the fields.
            Step 4   From the Learn Service drop-down list, choose from the following options:
            • Enable— Allows the controller to learn all the announced services. It is used to learn services by enabling all announcement/queries by using Service Policy IN of type GUI-permit-all and in Service Policy OUT of type GUI-deny-all.
            • Disable— Denies all the traffics IN and OUT. It is used to deny services by disabling all announcement/queries by using Service Policy IN of type GUI-deny-all and in Service Policy OUT of type GUI-deny-all.
            • Custom— You can set your own IN and OUT policy. It allows you to define a custom service list.
            Step 5   Click Apply.
            Step 6   Click Save Configuration.

            Monitoring Service Discovery Gateway

            Table 1 Monitoring Service Discovery Gateway

            Command

            Purpose

            show mdns requests [detail | name record-name| type record-type [ name record-name]]

            This command displays information for outstanding mDNS requests, including record name and record type information.

            show mdns cache [interface type number | name record-name [type record-type]| type record-type]

            This command displays mDNS cache information.

            show mdns statistics {all | service-list list-name | service-policy {all | interface type number }}

            This command displays mDNS statistics.

            Configuration Examples

            Example: Specify Alternative Source Interface for Outgoing mDNS Packets

            The following example displays how to specify an alternate source interface for outgoing mDNS packets, so its IP address can be used when there is none configured on the outgoing interface.

            Controller(config)# service-routing mdns-sd
            Controller(config-mdns)# source-interface if-name
            
            

            Example: Redistribute Service Announcements

            The following example displays how to redistribute service announcements received on one interface over all the interfaces or over a specific interface.

            Controller(config)# service-routing mdns-sd
            Controller(config-mdns)# Redistribute mdns-sd if-name
            
            

            Example: Disable Bridging of mDNS Packets to Wireless Clients

            The following example displays how to disable bridging of mDNS packets to wireless clients.

            Controller(config)# wireless multicast
            Controller(config)# no wireless mdns-bridging
            
            

            Example: Creating a Service-List, Applying a Filter and Configuring Parameters

            The following example shows the creation of a service-list sl1. The permit command option is being applied on sequence number 3 and all services with message-type announcement are filtered and available for transport across various subnets associated with the device.

            Controller# configure terminal
            Controller(config)# service-list mdns-sd sl1 permit 3
            Controller(config-mdns-sd-sl)#match message-type announcement
            Controller(config-mdns)# exit
            
            

            Example: Enabling mDNS Gateway and Redistributing Services

            The following example shows how to enable an mDNS gateway for a device and enable redistribution of services across subnets. IN-bound filtering is applied on the service-list serv-pol1. Twenty percent of system memory is made available for cache and service-list-query periodicity is configured at 100 seconds.

            Controller# configure terminal
            Controller# service-routing mdns-sd
            Controller(config-mdns)# service-policy serv-pol1 IN
            Controller(config-mdns)# redistribute mdns-sd
            Controller(config-mdns)# cache-memory-max 20
            Controller(config-mdns)# service-policy-query sl-query1 100
            Controller(config-mdns)# exit
            
            

            Example: Global mDNS Configuration

            The following example displays how to globally configure mDNS.

            
            Controller# configure terminal 
            Controller(config)# service-list mdns-sd mypermit-all permit 10 
            Controller(config-mdns-sd-s1)# exit 
            Controller(config)# service-list mdns-sd querier query
            Controller(config-mdns-sd-s1)# service-type _dns._udp
            Controller(config-mdns-sd-s1)# end
            Controller# configure terminal 
            Controller(config)# service-routing mdns-sd
            Controller(config-mdns)# service-policy mypermit-all IN
            Controller(config-mdns)# service-policy mypermit-all OUT
            

            Example: Interface mDNS Configuration

            The following example displays how to configure mDNS for an interface.

            
            Controller(config)#interface Vlan136
            Controller(config-if)# description *** Mgmt VLAN ***
            Controller(config-if)# ip address 9.7.136.10 255.255.255.0
            Controller(config-if)# ip helper-address 9.1.0.100
            Controller(config-if)# service-routing mdns-sd
            Controller(config-if-mdns-sd)#  service-policy mypermit-all IN
            Controller(config-if-mdns-sd)# service-policy mypermit-all OUT
            Controller(config-if-mdns-sd)#  service-policy-query querier 60
            
            

            Monitoring Service Cache (GUI)

            Click Monitor > Controller > mDNS > Service Cache to view domain names and other details of the service providers.

            Each service advertisement contains a record that maps the domain name of the service provider to the IP address. The details of the following parameters is displayed:

            Name Displays the hostname assigned to each service provider machine.
            VLAN ID Displays the VLAN ID of the service provider.
            MAC ID Displays the MAC address of the service provider machine.
            TTL Displays the Time to Live (TTL) value in seconds that determines the validity of the service offered by the service provider. The service provider is removed from the Controllerwhen the TTL expires.
            Remaining Displays the time left in seconds before the service provider is removed from the Controller.
            Type Displays the service type record. Values are as follow:
            • PTR
            • TXT
            • SRV
            RR Record Data Displays IP addresses, service names of the announced services.

            Monitoring Static Service Cache (GUI)

            Click Monitor > Controller > mDNS > Static Service Cache to view domain names and other details of the service providers.

            Each service advertisement contains a record that maps the domain name of the service provider to the IP address. The details of the following parameters is displayed:

            Name Displays the hostname assigned to each service provider machine.
            VLAN ID Displays the VLAN ID of the service provider.
            MAC ID Displays the MAC address of the service provider machine.
            TTL Displays the Time to Live (TTL) value in seconds that determines the validity of the service offered by the service provider. The service provider is removed from the Controllerwhen the TTL expires.
            Remaining Displays the time left in seconds before the service provider is removed from the Controller.
            Type Displays the service type record. Values are as follow:
            • PTR
            • TXT
            • SRV
            RR Record Data Displays IP addresses, service names of the announced services.

            Where to Go Next for Configuring Services Discovery Gateway

            You can configure the following:

            • IGMP

            • Wireless Multicast

            Additional References

            Related Documents

            Related Topic Document Title

            Configuring DNS

            IP Addressing: DNS Configuration Guide, Cisco IOS XE Release 3SE

            DNS conceptual information

            'Information About DNS' section in IP Addressing: DNS Configuration Guide, Cisco IOS XE Release 3SE

            Platform-independent configuration information

            IP Addressing: DNS Configuration Guide, Cisco IOS XE Release 3SE

            Error Message Decoder

            Description Link

            To help you research and resolve system error messages in this release, use the Error Message Decoder tool.

            https:/​/​www.cisco.com/​cgi-bin/​Support/​Errordecoder/​index.cgi

            Standards and RFCs

            Standard/RFC Title

            RFC 6763

            DNS-Based Service Discovery

            Multicast DNS Internet-Draft

            Multicast

            MIBs

            MIB MIBs Link

            All supported MIBs for this release.

            To locate and download MIBs for selected platforms, Cisco IOS releases, and feature sets, use Cisco MIB Locator found at the following URL:

            http:/​/​www.cisco.com/​go/​mibs

            Technical Assistance

            Description Link

            The Cisco Support website provides extensive online resources, including documentation and tools for troubleshooting and resolving technical issues with Cisco products and technologies.

            To receive security and technical information about your products, you can subscribe to various services, such as the Product Alert Tool (accessed from Field Notices), the Cisco Technical Services Newsletter, and Really Simple Syndication (RSS) Feeds.

            Access to most tools on the Cisco Support website requires a Cisco.com user ID and password.

            http:/​/​www.cisco.com/​support

            Feature History and Information for Services Discovery Gateway

            Release

            Modification

            Cisco IOS XE 3.3SE

            This feature was introduced.