Geo Location

在使用基于地理位置的解析时,一定要指定一个默认位置。如果不指定,对于不匹配的地理位置,DNS 响应会在 rcode 字段中返回 NOERROR,并且 ANSWER 部分将不包含任何结果:

>> dig images.example.com

; <<>> DiG
9.8.2rc1-RedHat-9.8.2-0.37.rc1.45.amzn1 <<>> images.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR,
id: 51385
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1,
ADDITIONAL: 0

;; QUESTION SECTION
;images.example.com.    IN            A

;; AUTHORITY SECTION:
images.example.com.    60          IN           SOA        ns-1875.awsdns-42.co.uk.awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

;; Query time: 65 msec
;; SERVER: 172.31.0.2#53(172.31.0.2)
;; WHEN: Tue Feb  7 22:02:30 2017
;; MSG SIZE  rcvd: 124

测试

创建两个geo record,实现以下效果:

  • 当用户从中国访问时,显示nginx页面。
  • 从其他地区访问时,走default policy,返回nginx from mumbai页面。

配置从中国访问的规则:

img

配置default规则:

image-20191110165736552

使用中国的IP访问,得到nginx页面结果:

image-20191110165801716

挂香港代理访问,由于匹配到了default规则,所以页面显示nginx from mumbai

image-20191110165814473