企业内部DNS跨国配置案例

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 背景介绍:总公司与北京分公司均由总公司进行统一管理。总公司的主从DNS担任解析总公司服务器与北京分公司的服务器解析任务。总公司DNS委派其他两个公司管理自己域下的服务器解析任务。要求任何一个节点都能解析到公司全部域名的结果。

img_14d6fc3b5ef12946eba4d2a6bb8d30a7.png

背景介绍:总公司与北京分公司均由总公司进行统一管理。总公司的主从DNS担任解析总公司服务器与北京分公司的服务器解析任务。总公司DNS委派其他两个公司管理自己域下的服务器解析任务。要求任何一个节点都能解析到公司全部域名的结果。这里仅仅是搭建DNS服务器,以解析的结果为验证。所以暂不考虑网络方面的事情,只要确保DNS能相互解析就算配置成功。

一、步骤梳理

  • 设定主从服务器的配置
  • 设定主服务器字节区域解析数据库
  • bj.jd.com子域分配给自己管理
  • yd.jd.comsh.jd.com分别委派给各自的服务器
  • 子域服务器设定各自的区域解析数据库
  • 子域服务器设定将jd.com域转发至主从服务器中

二、bind配置文件结构

本地解析文件
   /etc/hosts
主配置文件
   /etc/named.conf
   /etc/named.rfc1912.zones
   /etc/rndc.key
解析库文件
   /var/named
           \----slaves      #文件夹,当为slave,则在master同步的数据放在此文件
           \----named.ca        #互联网根的信息
           \----name            #自定义的数据文件放在此目录下

三、搭建过程

1.主DNS服务器

安装bind并配置DNS的主配置文件

//安装bind
yum install bind
//
//配置bind的主配置文件
vim /etc/named.conf
  listen-on port 53 { 10.0.0.57; };    //设置监听的IP
  allow-query     { any; };            //设置允许所有人访问DNS服务
  forwarders { 114.114.114.114; };     //设定转发,本机没有的记录全部转发至其他DNS
  dnssec-enable no;                    //关闭DNS安全认证
  dnssec-validation no;                //关闭DNS安全确认
  include "/etc/named.rfc1912.zones";  //引入外部区域配置文件

在区域配置文件/etc/named.rfc1912.zones创建新的解析区域

//修改区域配置文件
vim /etc/named.rfc1912.zones
  zone "jd.com" IN {                   //创建jd.com域
          type master;                 //在jd域为主DNS
          file "jd.com.zone";          //区域数据库的配置文件名称,默认路径在/var/named/.....
  }; 

  zone "bj.jd.com" IN {                //创建子域bj.jd.com
          type master;                 //在子域中为主DNS
          file "bj.jd.com.zone";       //区域数据库的配置文件名称,默认路径在/var/named/.....
  };

创建解析数据库文件,数据库默认全部在/var/named目录下,创建的区域数据库文件名一定要与上面配置的区域数据库名称一致。NS类型的记录为设置管理此域的服务器,因为配置了主从两个服务器所以要将两个服务器都创建NS记录。但是仅仅创建NS记录是不够的,因为客户端访问的时候不能知道到底谁是NS服务器,所以还需要给管理此域的服务器建立一条A记录,解析出管理此域的服务器。

vim /var/named/jd.com.zone
  $TTL 1D
  @       IN SOA  dns1 root.jd.com. (
                                        16      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
          NS      dns1                  //NS指定管理此域的服务器
          NS      dns2                  //NS指定管理此域的服务器
  sh      NS      dns.sh                //将sh子域委派给sh.jd.com进行管理
  yd      NS      dns.yd                //将yd子域委派给sh.yd.com进行管理
  dns1    A       10.0.0.57             //为管理此域的服务器与子域服务器创建A记录
  dns2    A       10.0.0.56
  dns.sh  A       10.0.0.66
  dns.yd  A       10.0.0.67
  www     A       10.10.0.10            //为主服务器直接管理的解析记录创建A记录
  oa      A       10.10.0.11
  sql     A       10.10.0.12

因在/etc/named.rfc1912.zones文件中创建了两个区域,所以一共要对应两个区域解析数据库。上面创建的数据库时给jd.com创建的数据文件。现在需要创建的是bj.jd.com的数据库文件,也就是Master服务器自己管理的子域。因为总公司与北京分公司都在北京,所以主DNS直接自己管理自己的子域。

$TTL 1D
@       IN SOA   dns1 root.bj.jd.com. (
                                        5       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
        NS      dns2
dns1    A       10.0.0.57
dns2    A       10.0.0.56
ftp     A       10.20.0.12
oa      A       10.20.0.13

2.从服务器

修改从服务器的主配置文件

vim /etc/named.conf
options {
        listen-on port 53 { 10.0.0.56; };
        allow-query     { any; };
        recursion yes;
        dnssec-enable no; 
        dnssec-validation no; 
};
 include "/etc/named.rfc1912.zones";

创建区域文件,因为从服务器只是同步主服务器的数据,所以不需要解析的数据库文件,只需要设定好谁是主服务器即可。

zone "jd.com" IN {                       //设定需要同步的区域,主从是相对于区域而言的所以要设定区域。
        type slave;                      //设定服务器类型为slave从
        masters { 10.0.0.57 ;};          //设定主服务器的IP地址
        file "slaves/jd.com.zone";       //主服务配置文件都会在/var/named/slaves目录下,设定同步回来的数据库文件名
};

zone "bj.jd.com" IN {                    //含义与上面类似,这里设置同步自己管理的子域
        type slave;
        masters { 10.0.0.57 ;}; 
        file "slaves/bj.jd.com.zone";
};

3.印度

后面印度分公司与上海分公司的配置除了设定一下需要转发的区域,其他的跟之前的主服务器配置都是大同小异。所以下面的仅仅对不通配置进行标注。

options {
        listen-on port 53 { 10.0.0.67; };
//      listen-on-v6 port 53 { ::1; };
        allow-query     { any; };
        recursion yes;
        dnssec-enable no;
        dnssec-validation no;
};
 include "/etc/named.rfc1912.zones";

设定转发区域。由于子公司仅仅管理自己的yd.jd.com域,那公司内部需要访问总公司的域名,就需要将其转发至上游的总公司。

zone "yd.jd.com" IN {
        type master;
        file "yd.jd.com.zone";
};

zone "jd.com" IN {                        //设定转发,客户端访问jd.com域时全部转发至指定的服务器
        type forward;
        forward first;
        forwarders {10.0.0.57;};         //设定转发至10.0.0.57服务器。
};

创建印度分公司的区域解析文件

$TTL 1D
@       IN SOA  dns root.yd.jd.com. (
                                        1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns 
dns     A       10.0.0.67
oa      A       10.40.0.13
ftp     A       10.40.0.12

4.上海

修改主配置文件

options {
        listen-on port 53 { 10.0.0.66; };
        listen-on-v6 port 53 { ::1; };
        allow-query     { any; };
        recursion yes;
        dnssec-enable no;
        dnssec-validation no;
};
 include "/etc/named.rfc1912.zones";

创建区域记录,设定转发

zone "sh.jd.com" IN {
        type master;
        file "sh.jd.com.zone";
};

zone "jd.com" IN {                        //设定转发,客户端访问jd.com域时全部转发至指定的服务器
        type forward;
        forward first;
        forwarders {10.0.0.57;};         //设定转发至10.0.0.57服务器。
};

创建上海分公司自己管理的区域解析文件。

$TTL 1D
@       IN SOA  dns root.sh.jd.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns
dns     A       10.0.0.66
ftp     A       10.30.0.12
oa      A       10.30.0.1

四、结果测试

将windwos的DNS设置为10.0.0.66,然后尝试解析10.0.0.67管理的域。成功得到解析结果。
img_2fd161b74842fc55878cee15af5c33b0.png

五、测试工具

dig [-t type] name [@SERVER] [query options]
dig只用于测试dns系统,不会查询hosts文件进行解析
#常用组合
dig www.taobao.com @10.0.0.10                #指定以10.0.0.10为DNS进行解析
 dig +trace taobao.com                       #跟踪解析的过程

六、注意事项

  • 权限:BIND安装时会创建一个用户,BIND运行也是用此用户的身份运行的。所以在解析的时候要确保创建的namde用户拥有对数据可的读权限。
  • 端口:在bind的主配置文件named.conf确保监听的端口已经设置、确保可以对所有人提供DNS服务。
  • 主从更新机制:当Master的版本号变大时,Slave才会同步Master上的数据。
  • SELinux:SELinux安全的可能让自己也无法访问服务,索性直接关闭
  • Iptables:当任何配置都没有错误的时候注意防火墙是否配置正确
  • 创建委派:创建委派一定要将主主配置文件dnssec-enablednssec-validation设置为no
  • 其他疑问:鸟哥的文章或许能解开你的疑惑鸟哥官网

七、安全相关

在全局配置文件中/etc/named.conf可以配置与安全相关的选项

  • allow-query {}: 允许查询的主机;白名单
  • allow-transfer {}:允许区域传送的主机;白名单
  • allow-recursion {}: 允许递归的主机,建议全局使用
  • allow-update {}: 允许更新区域数据库中的内容

七、实验中遇到的坑

  • 启动服务时提示:Failed to start Berkeley Internet Name Domain (DNS).
    解决办法:多半是因为配置文件写错,根据systemclt status named 查看报警的具体配置
  • rndc reload同步配置rndc: neither /etc/rndc.conf nor /etc/rndc.key was found
    解决办法:这个是由于key的问题,可以忽略不管付传送门
  • 添加域后重启服务提示 loading from master file sh.jd.com.zone; failed: file not found
    解决办法:检查主配置文件与数据库文件的名字是否相符
  • 创建委派后提示:zone jd.com/IN: sh.jd.com/NS 'sh.jd.com' (out of zone) has no addresses records (A or AAAA)配置文件检查无误,返回但是解析无返回结果
    解决办法:在父域中创建委派,然后通过named-checkzone命令检查区域配置文件,一直提示A记录不存在。检查父域到子域能否ping通,检查子域防火墙是否关闭
目录
相关文章
|
5月前
|
安全 虚拟化
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力。通过具体案例,展示了方案的制定和实施过程,强调了目标明确、技术先进、计划周密、风险可控和预算合理的重要性。
108 5
|
28天前
|
存储 缓存 网络协议
阿里云特惠云服务器99元与199元配置与性能和适用场景解析:高性价比之选
2025年,阿里云长效特惠活动继续推出两款极具吸引力的特惠云服务器套餐:99元1年的经济型e实例2核2G云服务器和199元1年的通用算力型u1实例2核4G云服务器。这两款云服务器不仅价格亲民,而且性能稳定可靠,为入门级用户和普通企业级用户提供了理想的选择。本文将对这两款云服务器进行深度剖析,包括配置介绍、实例规格、使用场景、性能表现以及购买策略等方面,帮助用户更好地了解这两款云服务器,以供参考和选择。
|
4月前
|
供应链 监控 搜索推荐
企业销售管理利器:销售易、飞鱼和800客CRM深度解析
- **销售易**:集营销、销售和服务于一体,提供全渠道获客、潜客识别、线索转化等功能,适合中大型企业,尤其适用于快消品、汽车等行业。 - **飞鱼**:由巨量引擎推出,专注于广告主的销售线索管理,实现自动获取、同步及跟进,适合各类规模企业,广泛应用于电商、金融等领域。 - **800客**:功能全面,涵盖市场、客户、销售、服务等管理模块,适合中小型到大型企业,提供定制化服务,满足个性化需求。 通过对比各产品的功能与适用场景,企业可根据自身需求选择最合适的CRM解决方案,以优化销售流程并深化客户关系。
|
1月前
|
开发框架 .NET 中间件
.net8 使用 license 证书授权案例解析
本文介绍了如何使用 `.NET CLI` 创建并改造一个 `ASP.NET Core Web API` 项目,以实现基于许可证的授权机制。具体步骤包括创建项目、添加必要的 NuGet 包(如 `Standard.Licensing` 和 `Swashbuckle.AspNetCore`),以及修改 `Program.cs` 文件以集成自定义的许可证验证中间件。项目结构中新增了 `LicenseController` 接口用于处理授权相关操作,并通过测试流程验证了默认天气接口在未授权和授权状态下的响应情况。整个过程确保了应用程序能够在启动时正确验证许可证,保障系统的安全性与可控性。
98 8
.net8 使用 license 证书授权案例解析
|
29天前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
1月前
|
机器学习/深度学习 人工智能 搜索推荐
技术革新下的培训新趋势:案例解析
从最初的“试试看”,到如今的“非做不可”,企业培训已经成为央国企和上市公司不可或缺的战略环节。无论是AI与大模型的赋能,DeepSeek,还是具身智能、智算技术和数据科学的实战应用,这些课程都在为企业打开新的可能性。
|
2月前
|
域名解析 网络协议 Ubuntu
DHCP与DNS的配置
通过这些步骤,您可以在Linux环境下成功配置和验证DHCP和DNS服务。希望这些内容对您的学习和工作有所帮助。
184 27
|
4月前
|
NoSQL Java Linux
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
354 76
|
2月前
|
Java 数据库 开发者
详细介绍SpringBoot启动流程及配置类解析原理
通过对 Spring Boot 启动流程及配置类解析原理的深入分析,我们可以看到 Spring Boot 在启动时的灵活性和可扩展性。理解这些机制不仅有助于开发者更好地使用 Spring Boot 进行应用开发,还能够在面对问题时,迅速定位和解决问题。希望本文能为您在 Spring Boot 开发过程中提供有效的指导和帮助。
133 12
|
2月前
|
存储 人工智能 并行计算
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
    下一篇
    oss创建bucket