为BIND文件中的2个logging/服务器configuration类似前缀的正确方法?

我的域名提供商的configuration工具似乎不支持我想要做什么,我不知道下面的适当的BIND语法 – 任何指针赞赏!

我有单独的物理生产服务器和登台服务器,我希望domain.org指向生产,staging.domain.org指向登台服务器+每个服务器都有m / www / api前缀。

以下是我认为我需要在domain.org的区域文件中使用的内容:

@ 10800 IN A $production-IP staging 10800 IN A $staging-IP api 10800 IN CNAME domain.org api 10800 IN CNAME staging.domain.org. m 10800 IN CNAME domain.org. m 10800 IN CNAME staging.domain.org. www 10800 IN CNAME domain.org. www 10800 IN CNAME staging.domain.org. 

但是,我不知道这是否仍然BIND模糊或如果这些只是一堆重复的logging?

谢谢!

所有不以结尾的名字. 由当前的域设置来限定。 如果这是domain.org您提出的configuration将如下所示:

 domain.org 10800 IN A $production-IP staging.domain.org 10800 IN A $staging-IP api.domain.org 10800 IN CNAME domain.org.domain.org. api.domain.org 10800 IN CNAME staging.domain.org. m.domain.org 10800 IN CNAME domain.org. m.domain.org 10800 IN CNAME staging.domain.org. www.domain.org 10800 IN CNAME domain.org. www.domain.org 10800 IN CNAME staging.domain.org. 

我怀疑这不是你想要的。 你可以尝试其中任何一种,但是这两种都不能真正为你节省:

选项1

 domain.org 10800 IN A $production-IP staging.domain.org 10800 IN A $staging-IP api 10800 IN CNAME domain.org. m 10800 IN CNAME domain.org. www 10800 IN CNAME domain.org. api.staging 10800 IN CNAME staging.domain.org. m.staging 10800 IN CNAME staging.domain.org. www.staging 10800 IN CNAME staging.domain.org. 

选项2

 $ORIGIN domain.org. @ 10800 IN A $production-IP api 10800 IN CNAME domain.org. m 10800 IN CNAME domain.org. www 10800 IN CNAME domain.org. $ORIGIN staging.domain.org. @ 10800 IN A $staging-IP api 10800 IN CNAME staging.domain.org. m 10800 IN CNAME staging.domain.org. www 10800 IN CNAME staging.domain.org. 

恕我直言,你的语法是不正确的….这是正确的语法:

 @ 10800 IN A $production-IP staging 10800 IN A $staging-IP api 10800 IN CNAME domain.org api.staging 10800 IN CNAME staging.domain.org. m 10800 IN CNAME domain.org. m.staging 10800 IN CNAME staging.domain.org. www 10800 IN CNAME domain.org. www.staging 10800 IN CNAME staging.domain.org. 

(你可以看到你定义了api,m和www两次指向不同的地方…当你阅读这些语法,api本身 – 而不是点后面,真的读取api.mydomain.org …当你有api.staging – 最后不是点,你在说什么是api.staging.mydomain.org。

另外…你的TTL是3个小时(10800 …秒),在“旧时代”是好的…在我的DNS服务器我用了不超过30分钟,没有可怕的负载在服务器上: )

干杯!

马科斯

您需要不同的左侧标签来支持生产和分期的前缀名称。 正如所写的,没有办法区分两者之间的等等,因为你已经为m.domain.org等创build了两个条目。

最简单的方法是使用$ORIGIN指令两次,并结合@引用当前的原点:

 $TTL 10800 ; to avoid repetition $ORIGIN domain.org. @ IN A $production-IP api IN CNAME @ m IN CNAME @ www IN CNAME @ $ORIGIN staging ; NB - implicitly adds current $ORIGIN @ IN A $staging-IP api IN CNAME @ m IN CNAME @ www IN CNAME @