使用bind9 CNAME别名从EC2实例连接到RDS数据库

更新:现在正在工作。 原来我在named.conf.options文件里丢失了一个有效的DNS转发器。

我试图让内部DNS启动并在EC2实例上运行。 主要目标是能够为其他AWS服务定义CNAME别名。 例如:除了使用可能随时间变化的RDS端点,还可以使用别名mysql.company.int

我使用bind9 ,这是我的configuration文件:

/etc/bind/named.conf.local

 zone "company.int" { type master; file "/etc/bind/db.company.int"; }; 

/etc/bind/db.company.int

 ; $TTL 3600 @ IN SOA company.int. company.localhost. ( 20120617 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS company.int. @ IN A 127.0.0.1 @ IN AAAA ::1 ; CNAME mysql IN CNAME xxxx.eu-west-1.rds.amazonaws.com. 

dig命令确保我的别名正在工作:

 $ dig mysql.company.int ... ;; ANSWER SECTION: mysql.company.int. 3600 IN CNAME xxxx.eu-west-1.rds.amazonaws.com. xxxx.eu-west-1.rds.amazonaws.com. 60 IN CNAME ec2-yyy-yy-yy-yyy.eu-west-1.compute.amazonaws.com. ec2-yyy-yy-yy-yyy.eu-west-1.compute.amazonaws.com. 589575 IN A zzz.zz.zz.zzz ... 

据我所知,一个简单的CNAME别名不需要反向区域。 但是,当我尝试连接到MySQL使用我新创build的别名操作正在给我一个超时。

 $ mysql -uuser -ppassword -hmysql.company.int ERROR 2003 (HY000): Can't connect to MySQL server on 'mysql.company.int' (110) 

有任何想法吗? 谢谢你的优势!

是xxxx.eu-west-1.rds.amazonaws.com解决您在运行'mysql'命令的计算机上的RDS端点的IP地址? 我们有一个类似的设置,但在我们的案例中,dig在回答部分列出了RDS端点的实际IP地址,即:

 $ dig mysql.company.int ... ;; ANSWER SECTION: mysql.company.int. 3600 IN CNAME xxxx.eu-west-1.rds.amazonaws.com. xxxx.eu-west-1.rds.amazonaws.com. 60 IN A xxx.xxx.xxx.xxx ...