我正在尝试在testing环境中设置一个名称服务器,以使用简单的循环方法将stream量路由到两个不同的OpenStack Swift代理服务器。 我试图使用BIND9来完成这一点,但我有问题得到IP正确parsing。 我已经通过互联网研究的尝试和错误一起修补了这一点,所以我对BIND的理解可能存在差距。
所有服务器都是Ubuntu 11.04服务器映像
我已经使用网关盒子的IP地址将/etc/resolv.conf更新到当前名称服务器行上方的其他名称服务器行。
named.local.conf :
zone "mygateway.com" { type master; file "mygateway.com.db"; }; zone "183.9.15.in-addr.arpa" { type master; file "rev.183.9.15.in-addr.arpa"; };
mygateway.com.db文件:
; BIND data file for local loopback interface ; $TTL 499 @ IN SOA ns admin ( 201006 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1 ns1 IN A 15.9.183.217 gw.mygateway.com IN A 15.9.183.217 TXT "Swift Gateway" www IN A 15.9.183.223 ; IP address of server1 www IN A 15.9.183.216 ; IP address of server2
rev.183.9.15.in-addr.arpa文件:
; ; BIND data file for local loopback interface ; $TTL 499 @ IN SOA ns1.mygateway.com admin.mygateway.com ( 201007 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1 ns1 IN A 15.9.183.217 217 IN PTR mygateway.com www IN A 15.9.183.223 www IN A 15.9.183.216
挖输出是:
$ dig -x 15.9.183.217 ; <<>> DiG 9.7.3 <<>> -x 15.9.183.217 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9011 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;217.183.9.15.in-addr.arpa. IN PTR ;; ANSWER SECTION: 217.183.9.15.in-addr.arpa. 499 IN PTR mygateway.com.183.9.15.in-addr.arpa. ;; AUTHORITY SECTION: 183.9.15.in-addr.arpa. 499 IN NS ns1.183.9.15.in-addr.arpa. ;; ADDITIONAL SECTION: ns1.183.9.15.in-addr.arpa. 499 IN A 15.9.183.217 ;; Query time: 0 msec ;; SERVER: 15.9.183.217#53(15.9.183.217) ;; WHEN: Wed Jul 20 01:30:34 2011 ;; MSG SIZE rcvd: 105
我正在运行swauth-prep命令,该命令将网关http作为参数来访问REST api(8080在代理服务器上为httpsconfiguration):
swauth-prep -K mykey -A https://15.9.183.217:8080/auth
这个configuration看起来是正确的循环分配?
有没有办法可以validation循环法正在工作? (通过挖或其他命令行操作)
您的转发区域对于DNS轮询(一个主机名,两个地址)是正确的。 您可以通过运行dig www.mygateway.com确认您的DNS服务器正在返回这两个logging。 你应该收到两个Alogging。
您的反向区域configuration不正确的循环DNS。 你在那里创build的是www.183.9.15.in-addr.arpa的条目,它们都会被返回,而客户端的parsing器库则会select这些条目。 这绝对不是你想要的。
你可能想要的是这样的logging:
216 IN PTR www.mygateway.com. 223 IN PTR www.mygateway.com.
这将确保15.9.183.216和15.9.183.223的反向DNS查询返回“www.mygateway.com”(并因此匹配转发Alogging)。
请记住,循环法DNS并不能保证即使负载分配:使用哪个logging的select由客户端parsing器库进行,可以随机决定,首先接收哪个logging,最后接收哪个logging,或者任何另外一些醉酒的程序员在parsing器库的时候想出了一些方法。
DNS轮询是便宜和合理有效的,但是如果你需要良好的负载平衡,你可能想投资于负载平衡硬件(或软件-PH , HAProxy等)。
强制性插件:您的问题和您在上面犯的一些错误意味着对一些基本的DNS概念的根本性误解。 我强烈build议你拿起一份DNS和BIND (电子地或从当地的书店),并通读它 – 至less是第1,5,6章,在你的情况下是第10章的相关部分。
这样节省的时间远远超过了这本书的价格。