双重DNS的配置

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:
相信现在有不少地方都是起双重DNS的,即对外解析成公网地址,对内解析成内网地址。一般的做法是用两台DNS服务器分开来做的,但如果机器紧张,只有一台的话,或出于安全考虑的话,其实也是可以做的。在这里又分两种情况:使用Bind8和Bind9的做法是不一样的。
Bind8的话,原理很简单
在DNS服务器上运行两个BIND,分别为来自内部网络和外部网络的域名请求提供解析,每个BIND具有不同的配置文件和域名数据库文件,并分别在不同的端口监听。DNS服务器在接到客户端请求时,根据客户的IP地址将请求重定向到不同的BIND服务端口,这样就可以根据客户端的IP地址将不同的解析结果返回给客户端,而整个过程对于客户端来说都是透明的。实现的关键在于运行两个BIND及运用iptables命令进行IP地址及端口改写操作。
具体配置的话:
在/etc/下生成两个named配置文件named.in与named.out
named.in

## named.conf - configuration for bind(named.in)
#
# Generated automatically by redhat-config-bind, alchemist et al.
# Any changes not supported by redhat-config-bind should be put 
# in /etc/named.custom
#
include "/etc/named.custom";

include "/etc/rndc.key";

options { 
 directory "/var/named_in/"; 
 datasize 2098;
 ......
};


#Log Files
logging {
 category queries {
  default_syslog;
 };
};

#DataBase Files
zone "0.0.127.in-addr.arpa" { 
 type master; 
 file "0.0.127.in-addr.arpa.zone"; 
};
zone "10.in-addr.arpa" { 
 type master; 
 file "10.in-addr.arpa.zone"; 
};


zone "localhost" { 
 type master; 
 file "localhost.zone"; 
};
zone "xxu.edu.cn" { 
 type master; 
 file "xxu.edu.cn.zone"; 
};

named.out

## named.conf - configuration for bind(named.out)
#
# Generated automatically by redhat-config-bind, alchemist et al.
# Any changes not supported by redhat-config-bind should be put 
# in /etc/named.custom
#
include "/etc/named.custom";

include "/etc/rndc.key";

options { 
 directory "/var/named_out/";
 datasize 2098;
 ... ...
};
# 注意这里监听的端口不一样了
listen-on port 8053 {
 # 本机IP地址
 10.xx.xx.xx;
}; 


#Log Files
logging {
 category queries {
 default_syslog;
};


#DataBase Files
zone "0.0.127.in-addr.arpa" { 
 type master; 
 file "0.0.127.in-addr.arpa.zone"; 
};
zone "xx.xx.210.in-addr.arpa" { 
 type master; 
 file "xx.xx.210.in-addr.arpa.zone"; 
};


zone "localhost" { 
 type master; 
 file "localhost.zone"; 
};
zone "xxu.edu.cn" { 
 type master; 
 file "xxu.edu.cn.zone"; 
};

为什么选对外发布的做重定向呢,当时的考虑是对内解析的流量大,可以减少一个环节。

然后做iptables的重定向,在iptable配置文件中添加

-A PREROUTING -s ! 10.0.0.0/255.0.0.0 -i eth0 -p udp -m udp --dport 53 -j REDIRECT --to-ports 8053

-A POSTROUTING -o eth0 -p udp -m udp --sport 8053 -j SNAT --to-source 10.xx.xx.xx:53

COMMIT

最后在做一个启动脚本:

#!/bin/sh

echo "Enabling IP Forwarding ..."
echo 1 > /proc/sys/net/ipv4/ip_forward

echo "Enabling DNS(outside) Service ..."
/usr/sbin/named -u named -c /etc/named.out

echo "Enabling DNS(inside) Service ..."
/usr/sbin/named -u named -c /etc/named.in

重启机器就OK了!

如果是用的Bind9的话,那就简单多了!
只需要一个named.conf文件就搞定
具体配置:

include "/etc/rndc.key";

options { 
 directory "/var/named/"; 
 ... ...
};

#Log Files
logging {
 category queries {
  default_syslog;
 };
};

#DataBase Files
#注意view和match-clients的用法,就是它们在起作用
view "internal" {
 match-clients { 10.0.0.0/8; };
 recursion yes;
 zone "." { 
  type hint; 
  file "named.ca";
 };
 zone "0.0.127.in-addr.arpa" { 
  type master; 
  file "0.0.127.in-addr.arpa.zone"; 
 };
 zone "localhost" { 
  type master; 
  file "localhost.zone"; 
 };
 zone "xxu.edu.cn" { 
  type master; 
  file "xxu.edu.cn.in.zone"; 
 };
 zone "10.in-addr.arpa" { 
  type master; 
  file "10.in-addr.arpa.zone"; 
 };
};

view "external" {
 match-clients { any; };
 recursion yes;
 zone "." { 
  type hint; 
  file "named.ca";
 };
 zone "0.0.127.in-addr.arpa" { 
  type master; 
  file "0.0.127.in-addr.arpa.zone"; 
 };
 zone "localhost" { 
  type master; 
  file "localhost.zone"; 
 };
 zone "xxu.edu.cn" { 
  type master; 
  file "xxu.edu.cn.out.zone"; 
 };
 zone "xx.xx.210.in-addr.arpa" {
  type master;
  file "xx.xx.210.in-addr.arpa.zone";
 };
};

这样就配置好了!

至于具体的数据文件,我想大家都应该会配置了,我这里就不多说了!



本文转自 firehare 51CTO博客,原文链接:http://blog.51cto.com/firehare/588159,如需转载请自行联系原作者

相关文章
|
13天前
|
域名解析 网络协议 Ubuntu
DHCP与DNS的配置
通过这些步骤,您可以在Linux环境下成功配置和验证DHCP和DNS服务。希望这些内容对您的学习和工作有所帮助。
71 27
|
7天前
|
Java 数据库 开发者
详细介绍SpringBoot启动流程及配置类解析原理
通过对 Spring Boot 启动流程及配置类解析原理的深入分析,我们可以看到 Spring Boot 在启动时的灵活性和可扩展性。理解这些机制不仅有助于开发者更好地使用 Spring Boot 进行应用开发,还能够在面对问题时,迅速定位和解决问题。希望本文能为您在 Spring Boot 开发过程中提供有效的指导和帮助。
46 12
|
18天前
|
存储 人工智能 并行计算
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。
|
4月前
|
域名解析 存储 缓存
DNS是什么?内网电脑需要配置吗?
【10月更文挑战第22天】DNS是什么?内网电脑需要配置吗?
570 1
|
5月前
|
机器学习/深度学习 调度
mmseg配置解析 Polynomial Decay 多项式衰减
Polynomial Decay(多项式衰减)是一种常用的学习率调度方法,通过多项式函数逐步减少学习率,帮助模型更好地收敛。公式为:\[ lr = (lr_{initial} - \eta_{min}) \times \left(1 - \frac{current\_iter}{max\_iters}\right)^{power} + \eta_{min} \]。参数包括初始学习率、最小学习率、当前迭代次数、总迭代次数和衰减指数。适用于需要平滑降低学习率的场景,特别在训练后期微调模型参数。
117 0
mmseg配置解析 Polynomial Decay 多项式衰减
|
5月前
|
网络协议 Docker 容器
docker中的DNS配置
【10月更文挑战第5天】
961 1
|
5月前
|
弹性计算 网络协议 Ubuntu
如何在阿里云国际版Linux云服务器中自定义配置DNS
如何在阿里云国际版Linux云服务器中自定义配置DNS
|
5月前
|
JSON JavaScript 前端开发
深入解析ESLint配置:从入门到精通的全方位指南,精细调优你的代码质量保障工具
深入解析ESLint配置:从入门到精通的全方位指南,精细调优你的代码质量保障工具
164 0
|
5月前
|
编解码 计算机视觉
mmseg配置解析 align_corners=False
`align_corners=False` 是图像插值操作中的一个参数,影响输入和输出图像的角点对齐方式。`align_corners=True` 严格对齐角点,而 `align_corners=False` 均匀分布像素点,更适用于保持整体比例关系的任务,如语义分割。
87 0
|
5月前
|
机器学习/深度学习 编解码
mmseg配置解析 contract_dilation=True
`contract_dilation=True` 是 ResNetV1c 中的一种设置,用于解决多层膨胀卷积中的“栅格效应”。通过调整膨胀率,使卷积核在不同阶段更密集地覆盖输入特征图,避免信息丢失,提升特征提取质量,尤其在语义分割任务中效果显著。
84 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多