def get_asn_verbose_dns(self, asn=None):
        """
        The function for retrieving the information for an ASN from
        Cymru via port 53 (DNS). This is needed since IP to ASN mapping via
        Cymru DNS does not return the ASN Description like Cymru Whois does.

        Args:
            asn (:obj:`str`): The AS number (required).

        Returns:
            str: The raw ASN data.

        Raises:
            ASNLookupError: The ASN lookup failed.
        """

        if asn[0:2] != 'AS':

            asn = 'AS{0}'.format(asn)

        zone = '{0}.asn.cymru.com'.format(asn)

        try:

            log.debug('ASN verbose query for {0}'.format(zone))
            data = self.dns_resolver.query(zone, 'TXT')
            return str(data[0])

        except (dns.resolver.NXDOMAIN, dns.resolver.NoNameservers,
                dns.resolver.NoAnswer, dns.exception.Timeout) as e:

            raise ASNLookupError(
                'ASN lookup failed (DNS {0}) for {1}.'.format(
                    e.__class__.__name__, asn)
            )

        except:  # pragma: no cover

            raise ASNLookupError(
                'ASN lookup failed for {0}.'.format(asn)
            )
The function for retrieving the information for an ASN from
        Cymru via port 53 (DNS). This is needed since IP to ASN mapping via
        Cymru DNS does not return the ASN Description like Cymru Whois does.

        Args:
            asn (:obj:`str`): The AS number (required).

        Returns:
            str: The raw ASN data.

        Raises:
            ASNLookupError: The ASN lookup failed.