2018年12月09日
使用bind和dnsmasq的阿里云CDN 本地DNS CNAME配置
最近申请了阿里云CDN对应用使用的图片和大文件进行下载加速。在做阿里云CDN测试时,调整DNS的CNAME需要走的审批流程比较长,想先用自己虚机上的dns配置CNAME进行CDN测试。
- 源站
- albertzhou.net
- 加速域名
选择图片和大文件时生成的加速域名看着不一样
Table 1: 加速类型和域名 类型 域名 选择图片加速时的域名 download.albertzhou.net.w.kunlungr.com 选择大文件加速时的域名 download.albertzhou.net.w.kunlunca.com
dnsmasq
在dnsmas的配置文件中只要新增配置一行CNAME配置就可以,比bind的配置简单多了,所以先用dnsmasq进行测试。测试了半天发现总是解析不到cname,原来dnsmasq的CNAME配置对target是有要求的。
具体如下:
There are significant limitations on the target; it must be a DNS name which is known to dnsmasq from /etc/hosts (or additional hosts files), from DHCP, from --interface-name or from another --cname.
target 域名必须要在 /etc/hosts 里面或者其他地方有指向。
在dnsmasq的配置文件中加一行 cname=xxx.xxx,target,然后在 /etc/hosts 中加一行target的ip,target的ip可以ping得到,如:
vim /etc/dnsmasq.d/k8s.conf
cname=download.albertzhou.net,download.albertzhou.net.w.kunlunca.com
vim /etc/hosts
124.165.219.100 download.albertzhou.net.w.kunlunca.com
bind
dnsmasq的CNAME中的target要在/etc/hosts中配,就算可以配置多个,也有点麻烦,而且不能完全模拟实际环境,只能上bind了。bind的配置比较麻烦,唉,再麻烦也要上。
前提
一级域名 albertzhou.net 已经在 /etc/named.rfc1912.zones 中配置了,可以直接在zone文件里面配置。
[root@node2 ~]# cat /etc/named.rfc1912.zones # 省略其他的zone配置 ... zone "albert.com" IN { type master; file "albert.com.zone"; }; ...
# 修改bind的zone,增加download.albertzhou.net的CNAME vim /var/named/albertzhou.net.zone $TTL 20 ; 20 seconds download IN CNAME download.albertzhou.net.w.kunlunca.com. # 重新加载zone配置 rndc reload
bind的配置ok了,就可以直接把cname的lookup递归到阿里云的dns,这点比dnsmasq省事。
测试
dig测试域名的解析。
[root@node2 ~]# dig download.albertzhou.net ; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7_5.1 <<>> download.albertzhou.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57938 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 7 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;download.albertzhou.net. IN A ;; ANSWER SECTION: download.albertzhou.net. 60 IN CNAME download.albertzhou.net.w.kunlunca.com. download.albertzhou.net.w.kunlunca.com. 180 IN A 123.129.244.229 ;; AUTHORITY SECTION: w.kunlunca.com. 10799 IN NS ns3.kunlunca.com. w.kunlunca.com. 10799 IN NS ns4.kunlunca.com. ;; ADDITIONAL SECTION: ns3.kunlunca.com. 10799 IN A 121.43.18.42 ns3.kunlunca.com. 10799 IN A 203.107.0.204 ns3.kunlunca.com. 10799 IN A 203.107.0.205 ns4.kunlunca.com. 10799 IN A 120.25.118.73 ns4.kunlunca.com. 10799 IN A 203.107.0.204 ns4.kunlunca.com. 10799 IN A 101.200.28.73 ;; Query time: 404 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Dec 19 15:22:42 CST 2018 ;; MSG SIZE rcvd: 260
再用curl测试实际下载文件的速度。
curl -vvv -o /dev/null download.albertzhou.net/bigfile.txt