You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同一域名example.com下域控制器与Apache服务的BIND拆分DNS配置咨询

同一域名example.com下域控制器与Apache服务的BIND拆分DNS配置咨询

嗨,这个问题其实很典型——同一个域名既要承载AD域服务,又要跑Web服务,核心冲突在于DNS解析的指向矛盾,用BIND的**拆分DNS(视图View功能)**就能完美解决,我给你一步步拆解:

核心思路:拆分DNS(视图View)

简单来说,就是让BIND根据请求客户端的IP地址范围,返回不同的example.com解析结果:

  • 域内客户端(比如192.168.234.0/24、192.168.78.0/24网段的设备)访问example.com时,解析到域控制器,保证AD认证、域服务正常运行
  • 其他客户端(或者需要访问Web服务的设备)访问example.com时,解析到Apache服务器192.168.234.232

配置位置与具体步骤

1. BIND主配置文件修改

主配置文件路径根据系统不同略有差异:

  • RHEL/CentOS系:/etc/named.conf
  • Debian/Ubuntu系:/etc/bind/named.conf

打开文件,替换原有example.com区域配置,添加视图定义:

// 内部视图:匹配域内客户端IP,返回AD相关DNS记录
view "internal" {
    match-clients { 192.168.234.0/24; 192.168.78.0/24; localhost; };
    recursion yes; // 允许内部客户端递归查询,适配AD需求

    zone "example.com" IN {
        type master;
        file "internal/example.com.zone"; // 内部区域文件路径,后续要创建
        allow-update { none; };
    };

    // 可按需添加内部反向解析域等
};

// 外部视图:匹配所有其他客户端,返回Apache服务器记录
view "external" {
    match-clients { any; };
    recursion no; // 禁止外部客户端递归查询,提升安全性

    zone "example.com" IN {
        type master;
        file "external/example.com.zone"; // 外部区域文件路径,后续要创建
        allow-update { none; };
    };
};

2. 创建内部区域文件(AD专用)

区域文件存放路径:

  • RHEL/CentOS系:/var/named/internal/(需先创建internal目录)
  • Debian/Ubuntu系:/var/lib/bind/internal/

创建example.com.zone文件,包含AD所需的所有记录(可从AD自带的DNS导出记录来减少手动编写错误):

$TTL 86400
@   IN  SOA ns1.example.com. admin.example.com. (
        2024052001  ; 序列号,每次修改要递增
        3600        ; 刷新时间
        1800        ; 重试时间
        604800      ; 过期时间
        86400       ; 最小TTL
)
@   IN  NS  ns1.example.com.
@   IN  NS  ns2.example.com.

; 域控制器的A记录
ns1 IN  A   192.168.234.5
ns2 IN  A   192.168.78.5

; 域根A记录(指向主DC)
@   IN  A   192.168.234.5

; AD必需的SRV记录(Kerberos、LDAP等)
_kerberos._tcp.example.com. IN SRV 0 100 88 ns1.example.com.
_kerberos._tcp.example.com. IN SRV 0 100 88 ns2.example.com.
_ldap._tcp.example.com. IN SRV 0 100 389 ns1.example.com.
_ldap._tcp.example.com. IN SRV 0 100 389 ns2.example.com.

; 按需添加其他AD相关记录(如GC、KDC记录等)

3. 创建外部区域文件(Web服务专用)

同样在对应路径创建external/example.com.zone文件,仅保留指向Apache的记录:

$TTL 86400
@   IN  SOA ns1.example.com. admin.example.com. (
        2024052001  ; 序列号,需与内部文件不同或递增
        3600        ; 刷新时间
        1800        ; 重试时间
        604800      ; 过期时间
        86400       ; 最小TTL
)
@   IN  NS  ns1.example.com.
@   IN  NS  ns2.example.com.

; 域名指向Apache服务器
@   IN  A   192.168.234.232
; 若需要www子域名,可添加
www IN  A   192.168.234.232

; DNS服务器的A记录(外部可访问的话用DC或其他公网DNS IP)
ns1 IN  A   192.168.234.5
ns2 IN  A   192.168.78.5

4. 权限配置与服务重启

  • 确保区域文件所属用户为BIND服务用户(RHEL是named,Debian是bind):
    # RHEL示例
    chown -R named:named /var/named/internal /var/named/external
    # Debian示例
    chown -R bind:bind /var/lib/bind/internal /var/lib/bind/external
    
  • 重启BIND服务生效:
    # RHEL/CentOS
    systemctl restart named
    # Debian/Ubuntu
    systemctl restart bind9
    

测试验证

  • 在域内客户端执行dig example.com或nslookup example.com,应返回域控制器的IP(192.168.234.5或192.168.78.5)
  • 在非域内客户端执行同样命令,应返回Apache服务器的IP(192.168.234.232)

备注:内容来源于stack exchange,提问作者Mena

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 10:27:47