Dig-x相当于AWS Route 53

我有一个与AWS Elastic IP(EIP)相关的IP号码。 我想知道,我的Route 53域中的DNSlogging与Alogging的IP相关联。

在传统的DNS服务中,我将运行dig -x $ EIP并获取PTRlogging并完成。

亚马逊只允许填写某种forms的实际PTRlogging。

否则,PTRlogging指向amazonaws.com。

Route 53的API 似乎也不支持 dig -x方法。 此外,数据看起来像XML,这将使命令行有点具有挑战性。

那么,我怎样才能得到这些数据呢?

既然您说您要使用这些数据来运行当前正在运行的AWS节点的端口扫描,那么为什么不通过列出当前正在运行的AWS实例来收集IP信息呢?

您可能在DNS中有没有当前主机运行的logging,并且您可能有运行的主机实际上不在DNS中,所以我认为实例列表将是一个更好的“真相来源”。

下面是一个用于抓取实例列表的boto脚本示例。 boto list实例一些实例参数是实例当前的外部和内部IP地址。

如果你真的想坚持route53的方法,你可以使用boto来遍历你的托pipe区域中的所有logging。 boto docs为route53 api

$ cat list-r53.py #!/usr/bin/python """ Simple script to lsit route 53 entries WARNING: (boto requires credential to be stored in a dotfile for the user) eg. Contents of ~/.boto are below: [Credentials] aws_access_key_id = ABC123DEF456 aws_secret_access_key = NOC4KE4U """ from boto.route53.connection import Route53Connection route53 = Route53Connection() results = route53.get_all_hosted_zones() for zone in results['ListHostedZonesResponse']['HostedZones']: print "========================================" print "Zone:",zone['Name'] zone_id = zone['Id'].replace('/hostedzone/', '') for rset in route53.get_all_rrsets(zone_id): print "\t%s: %s %s @ %s" % (rset.name, rset.type, rset.resource_records, rset.ttl) $ ./list-r53.py ======================================== Zone: serverfault.com. serverfault.com.: NS [u'ns-1638.awsdns-12.co.uk.', u'ns-699.awsdns-23.net.', u'ns-301.awsdns-37.com.', u'ns-1459.awsdns-54.org.'] @ 172800 serverfault.com.: SOA [u'ns-1638.awsdns-12.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400'] @ 900 192.168.1.1.serverfault.com.: PTR [u'sample.serverfault.com.'] @ 300 sample.serverfault.com.: A [u'192.168.1.1'] @ 300 

祝你好运。

我决定,而不是相当于,我真的希望dig -x为我所有的亚马逊EIP工作。 这是我做的。

首先,我为此创build了一个名为ns1的新AWS实例。 在ns1上,我安装了以下内容:

  1. cli53
  2. r53 *
  3. BIND9
  4. H2N

安装软件后,我编写了一些自定义的shell脚本来完成提升。

首先,cli53-to-hosts生成一个dynamic生成的/ etc / hosts文件的版本。 这项工作是通过cli53 export myzone.com完成的,然后是组织sorting。

类似地,cli53到networking列出了我需要生成in-addr.arpa区域的networking列表。 因为这些不是全局名称空间中的真实区域,所以我在/ 16掩码级别欺骗并创build了它们,例如50.18,107.23等。

通过hosts文件和一个运行DNS的networking列表,h2n脚本(来自O'Reilly的DNS和BIND书)完成了这项工作。 它写出一个named.conf文件和一系列反向dns的区域文件。

所有这一切都是通过一个名为configure-dns的最终脚本每晚从cron中调用的:

 #!/bin/bash . ~/.profile cli53-to-hosts > /usr/local/etc/hosts cli53-to-networks > /usr/local/etc/h2n/h2n.conf cd /etc/bind h2n -N 255.255.0.0 -f /usr/local/etc/h2n/h2n.conf -H /usr/local/etc/hosts -d mydomain.com -u [email protected] -h ns1.mydomain.com -p mydomain.com 

最终的结果是:

 mv-m-dmouratis:~ dmourati$ dig -x 50.18.205.42 @ns1.mydomain.com ; <<>> DiG 9.8.3-P1 <<>> -x 50.18.205.42 @ns1.mydomain.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55551 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;42.205.18.50.in-addr.arpa. IN PTR ;; ANSWER SECTION: 42.205.18.50.in-addr.arpa. 86400 IN PTR bounce.mydomain.com. ;; AUTHORITY SECTION: 18.50.in-addr.arpa. 86400 IN NS ns1.mydomain.com. ;; Query time: 32 msec ;; SERVER: 54.218.3.75#53(54.218.3.75) ;; WHEN: Tue Jun 11 19:21:46 2013 ;; MSG SIZE rcvd: 93 

这当然是一个很好的工作,但奇怪的是满足。 我想我是工作PTRlogging的坚强后盾,无法放弃一直让他们工作的成功logging。