CloudStack Console 访问虚拟机 DNS 无法解析问题
CloudStack 在使用页面console 访问虚拟机时,会使用一个特殊的域名xxx-xxx-xxx-xxx.realhostip.com/client?***
这个域名是由 citrix 提供的一个特殊域名服务,会自动把域名解析为前面的 xxx.xxx.xxx.xxx 这个 ip 地址,一般而言这个地址都是一个内网地址,比如192.168.1.11
出现 dns 无法解析或者找不到服务器的错误,是当前自己机器设置的 dns 上不能正确解析该域名,搜索之后发现是由于路由使用了 dd-wrt 或 open-wrt 这样的固件,并且使用了 dnsmasq 用做本地 dns 缓存而导致的,其原因是启动了 No DNS Rebind 这个选项,把这个取消掉之后就可以正常访问了。
具体解释参见 http://shankerbalan.net/blog/cloudstack-console-proxy-unable-to-resolve-dns-address/
According to dnsmasq(8),
-stop-dns-rebind Reject (and log) addresses from upstream nameservers which are in the private IP ranges. This blocks an attack where a browser behind a firewall is used to probe machines on the local network.