nss3.dll(switchdns地址推荐)

2023年9月2日18:06:51nss3.dll(switchdns地址推荐)已关闭评论

见字如面,大家好,我是小斐,今天带来关于LDNS的最佳实践,关于bind 9的在生产环境中的使用,本篇文章争取言简意赅的说明bind 9在内部企业中的应用。

环境说明:

系统:Ubuntu 22.04.1 LTS

机器:两台做主从(主服务器和辅助服务器)

主:192.168.10.200

从:192.168.10.201

bind 9安装

默认安装目录

默认情况下,BIND 将安装在 /usr/local 中,并将文件放在它的这些子目录中:

sbinnamed 和所有与 BIND 相关的系统管理工具,例如 rndc、dnssec-keygen、named-checkconf 等。bin非管理员用户的工具 - 你会在这里找到 dig、host 和 nsupdatelib目标代码库shareBIND的手册页和各种子目录includeC头文件

编译时未更改默认目录BIND将使用以下目录(相对于根目录 "/")

/etc配置文件(例如 named.conf、rndc.conf)/var/runnamed 创建和使用的运行时文件

源码编译安装

新建构建目录 下载的源码包放置在该目录中root@dns01:/homemkdir bulidsroot@dns01:/home/bulidspwd/home/bulidswget可能会比较慢root@dns01:/home/bulidswget https://downloads.isc.org/isc/bind9/9.18.9/bind-9.18.9.tar.xzroot@dns01:/home/bulidstar -xvf bind-9.18.9.tar.xz进入解压后的目录中root@dns01:/home/bulids/bind-9.18.9pwd/home/bulids/bind-9.18.9查看编译选项参数帮助root@dns01:/home/bulids/bind-9.18.9./configure --help编译依赖库安装root@dns01:/home/bulids/bind-9.18.9apt-get install gcc zlib1g-dev build-essential pkg-config autoconf automake libtool libssl-dev libcap-dev libxml2 libxml2-dev libfstrm-dev libprotobuf-c-dev liblmdb-dev libmaxminddb-dev libidn2-dev libreadline-dev libjson-c-dev fstrm-bin protobuf-c-compiler源码编译libuv依赖 辅助服务器使用了 libuv-1.44.2 版本root@dns01:/home/bulids/libuv-1.42.0wget https://dist.libuv.org/dist/v1.42.0/libuv-v1.42.0.tar.gzroot@dns01:/home/bulidstar -zxvf libuv-v1.42.0.tar.gzroot@dns01:/home/bulidscd libuv-1.42.0/root@dns01:/home/bulids/libuv-1.42.0pwd/home/bulids/libuv-1.42.0root@dns01:/home/bulids/libuv-1.42.0sh autogen.shroot@dns01:/home/bulids/libuv-1.42.0./configureroot@dns01:/home/bulids/libuv-1.42.0make -j4root@dns01:/home/bulids/libuv-v1.42.0make installroot@dns01:/home/bulids/libuv-v1.42.0ldconfig源码编译jemalloc 官方推荐更换内存分配器为jemalloc 解决OOM问题 提高性能root@dns01:/home/bulidswget https://github.com/jemalloc/jemalloc/releases/download/5.3.0/jemalloc-5.3.0.tar.bz2root@dns01:/home/bulidstar -xjvf jemalloc-5.3.0.tar.bz2root@dns01:/home/bulidscd jemalloc-5.3.0root@dns01:/home/bulids/jemalloc-5.3.0./configureroot@dns01:/home/bulids/jemalloc-5.3.0make -j8root@dns01:/home/bulids/jemalloc-5.3.0make installroot@dns01:/home/bulids/jemalloc-5.3.0ldconfig官方关于内存OOM问题分析https://www.isc.org/blogs/jemalloc-glitch/源码编译bind 9 编译帮助执行 ./configure --helproot@dns01:/home/bulidscd bind-9.18.9root@dns01:/home/bulids/bind-9.18.9./configure --prefix=/usr/local/bind --with-openssl --with-json-c --enable-largefile --with-libidn2 --enable-full-report --enable-dnstap --disable-dohroot@dns01:/home/bulids/bind-9.18.9makeroot@dns01:/home/bulids/bind-9.18.9make install

编译安装完成后如下所示:/usr/local/bind

编译参数说明:

--prefix=/usr/local/bind定义安装目录 如不定义则安装默认目录安装--sysconfdir=$PERFIX/etc如定义安装目录 就根据--prefix参数定义的目录 创建下一级配置文件所在目录--localstatedir=$PERFIX/var如定义安装目录 就根据--prefix参数目录 创建下一级目录named运行动态生成的文件目录--with-openssl开启openssl--with-json-cHTTP 统计信息格式--enable-largefile2G以上大文件支持--with-libidn2dig 国际化通用域名 IDN支持--enable-full-report编译显示全部报告--enable-dnstap开启dnstap日志记录--disable-doh关闭DNS over HTTPS

编译官方文档说明:

bind 9运行

bind服务器配置角色

主服务器:负责至少解析一个域内的域名,维护所负责解析的域数据库,可对该域数据进行读写操作辅服务器:负责从主服务器或其他辅服务器中复制相关解析库,为主服务器缓解解析压力缓存服务器:不负责域名解析,仅仅作为缓存,加速解析速度转发服务器:发现非本机负责的请求后,不再向根发起请求,而是直接转发给指定的一台或多台服务器,自身并不保存查询

为了命令方便,把bind 9相关的命令加入环境变量,使得命令不需要绝对路径执行

root@dns01:/usr/local/bindvim /etc/profileexport PATH=${PATH}:/usr/local/bind/bin:/usr/local/bind/sbin在文件末尾输入这行环境变量root@dns01:/usr/local/bindsource /etc/profileroot@dns01:/usr/local/bindnamed -V 查看bind 9版本信息和默认路径

主服务器 - Primary Authoritative Name Server

为了安全 以非root运行root@dns01:/usr/local/bindgroupadd -g 53 -r bindroot@dns01:/usr/local/binduseradd -u 53 -s /sbin/nolgin -r bind -g bind授权bind目录 named权限root@dns01:/usr/local/bindchown -R bind:bind /usr/local/bind使用rndc-confgen生成rndc.conf配置文件root@dns01:/usr/local/bind/etc/usr/local/bind/sbin/rndc-confgen > /usr/local/bind/etc/rndc.confrndc.conf配置文件是运行rndc工具所需 rndc是官方推荐管理bind的远程管理工具 rndc 以953端口运行root@dns01:/usr/local/bind/etcvim rndc.confStart of rndc.confkey"rndc-key"{ algorithm hmac-sha256; secret"Ocpnouni6h/ob6Bw9aWAYBoCSYNJQVK/fG3XsYVm56k="; }; options { default-key"rndc-key"; default-server127.0.0.1; default-port953; };End of rndc.conf取rndc.conf文件中最后10行的前面9行重定向named.conf文件中,再去掉每一行前面的\符号root@dns01:/usr/local/bind/etctail -10 rndc.conf | head -9 | sed s/\ //g > named.conf上面为什么这么做呢 是因为rndc要管理bind必须在named.conf中 导入rndc-key信息和controls信息

named.conf 主服务器配置

key"rndc-key" {algorithmhmac-sha256;secret"Ocpnouni6h/ob6Bw9aWAYBoCSYNJQVK/fG3XsYVm56k=";};//rndc通道controls{inet127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; };};//日志输出 新建日志文件夹logslogging{channelexample_log {file"logs/example.log" versions 3 size 250k;severityinfo;};categorydefault {example_log;};};//为本地主机提供正向映射区域zone"localhost" {typeprimary;file"etc/localhost-forward.db"; //这个文件不需要改变notifyno;};//为环回口提供反向映射区域 127.0.0.1zone"0.0.127.in-addr.arpa" {typeprimary;file"etc/localhost.rev"; //这个文件不需要改变notifyno;};DNS 全局选项配置文件include"/usr/local/bind/etc/named.conf.options";自定义区域配置文件include"/usr/local/bind/etc/named.conf.local";默认区域,例如localhost,其反向和根提示include "/usr/local/bind/etc/named.conf.default-zones";

localhost-forward.db 主服务器配置

$TTL3hlocalhost.SOAlocalhost.nobody.localhost.421d12h1w3hNSlocalhost.A127.0.0.1AAAA::1

localhost.rev 主服务器配置

$TTL1D@IN SOA localhost. root.localhost. (2007091701; serial30800; refresh7200; retry604800; expire300) ; minimumINNS localhost.1IN PTR localhost.

named.conf.options 主服务器配置

options { version"not currently available";//隐藏bind版本,为了安全考虑directory"/usr/local/bind";//运行时数据的目录pid-file"/usr/local/bind/var/run/named.pid";//pid文件recursion no;//全局递归关闭allow-query { any; };//面向所有源IP提供解析服务allow-query-cache { none; };//面向所有源IP不提供查询缓存listen-onport53{ any; };//监听IPv4的53端口 可改为本机IP 192.168.10.200//forwarders { 除了本地配置的域名,其他都转发DNS查询到上级DNS服务器// 223.5.5.5;// 114.114.114.114//};//forward only; 针对外网域名只转发上级DNS中dnssec-validation no;DNSSEC验证关闭listen-on-v6 { none; };//关闭监听IPv6的53端口};

named.conf.local 主服务器配置

//example.com提供映射区域zone"example.com"{//这是主服务器区域typeprimary;file"zones/primary.example.com";notifyyes;//启动区域传输also-notify{192.168.10.201;};//允许从服务器可以复制allow-transfer{192.168.10.201;//从服务器IP};};//创建反向区域文件192.168.10.xzone"10.168.192.in-addr.arpa"{typeprimary;file"zones/db.192.168.10";notifyyes;//启动区域传输also-notify{192.168.10.201;};//允许从服务器可以复制allow-transfer{192.168.10.201;//从服务器IP};};

区域配置文件:example.com 以这个域名为例

cat primary.example.com 文件;BINDdatafileforexample.com$TTL604800@INSOAns01.example.com.admin.example.com.(2022120601;Serial604800;Refresh86400;Retry2419200;Expire604800);NegativeCacheTTL@INNSns01.example.com.@INA192.168.10.200@INAAAA::1ns01INA192.168.10.200cat db.192.168.10 文件 192.168.10.rev 官方示例配置文件命名方式:网络位.rev;BINDreversedatafileforlocal192.168.10.XXXnet$TTL604800@INSOAns01.example.com.admin.example.com.(2022120601;Serial604800;Refresh86400;Retry2419200;Expire604800);NegativeCacheTTL;@INNSns01.example.com.200INPTRns01.example.com.

新建systemd管理配置文件:

vim /lib/systemd/system/named.service

[Unit]Description=BIND Domain Name ServerDocumentation=man:named(8)After=network.targetWants=nss-lookup.targetBefore=nss-lookup.target[Service]Type=forkingEnvironmentFile=-/usr/local/bind/etc/namedExecStart=/usr/local/bind/sbin/named$OPTIONSExecReload=/usr/local/bind/sbin/rndc reloadExecStop=/usr/local/bind/sbin/rndc stopRestart=on-failure[Install]WantedBy=multi-user.targetAlias=bind9.service

在创建named环境变量文件 vim named

run resolvconf?RESOLVCONF=nostartup options for the serverOPTIONS="-u bind -c /usr/local/bind/etc/named.conf"指定启用用户和启动配置文件

主服务器启动

root@dns01:/usr/local/bind/etcsystemctl daemon-reloadroot@dns01:/usr/local/bind/etcsystemctl start named.service

启动失败排错:

执行上述操作,无法看到具体的错误信息,故想到named可以前台允许,打印运行信息:

-g 前台运行 -u 启用用户 -c 指定启动配置文件root@dns01:/usr/local/bind/sbinnamed -u bind -c ../etc/named.conf -g06-Dec-202213:23:17.270loading configuration from/usr/local/bind/sbin/../etc/named.conf06-Dec-202213:23:17.274directory/usr/local/bind/var/runisnotwritable06-Dec-202213:23:17.274/usr/local/bind/etc/named.conf.options:3: parsingfailed:permission denied06-Dec-202213:23:17.274loadingconfiguration:permission denied06-Dec-202213:23:17.274exiting (due to fatal error)

发现问题 directory /usr/local/bind/var/run is not writable 指定的运行时数据目录不可写,发现没用创建该目录,新建该目录,并授权bind:

root@dns01:/usr/localmkdir -p /usr/local/bind/var/runroot@dns01:/usr/localchown -R bind:bind /usr/local/bindroot@dns01:/usr/local/bind/sbinnamed -u bind -c ../etc/named.conf -g第二次运行还是报错,不过是新的错误06-Dec-202213:33:44.844notusing config file logging statementforlogging due to -g option06-Dec-202213:33:44.844checking logging configurationfailed:filenotfound06-Dec-202213:33:44.844loadingconfiguration:filenotfound06-Dec-202213:33:44.844exiting (due to fatal error)检查配置文件named.conf

发现日志记录配置文件路径写错了,log应改为logs文件夹:

因为我新建的文件夹就是logs文件夹,故日志记录开启日志记录,但由于路径设置错误,故启动失败。

修改为:

touch example.logchown-Rbind:bind/usr/local/bind

启动:

root@dns01:/usr/local/bind/etc systemctl start named.service

root@dns01:/usr/local/bind/etc systemctl status named.service

named启动成功

验证主服务器是否有效:这里的主服务器也即是权威服务器

修改客户端机器DNS和DNS后缀搜索列表vim/etc/netplan/00-installer-config.yamlThis is the network config written by subiquitynetwork:ethernets:ens33:addresses:-192.168.10.200/24gateway4:192.168.10.254nameservers:addresses:[192.168.10.200]修改主服务器DNS地址search:[example.com]输入搜索域列表 可选version:2配置生效netplanapply

dig命令测试验证:

digns01.example.com

如上图所示,解析成功,主服务器(primary DNS)安装完成。

辅助服务器 - Secondary Authoritative Name Server

1、源码编译安装(同上)

2、辅助服务器启动配置

rndc.conf 辅助服务器配置

root@dns02:/home/bulids/bind-9.18.9cd /usr/local/bind/root@dns02:/usr/local/bindlsbin etcincludelib sbin share新建目录root@dns02:/usr/local/bindmkdir logsroot@dns02:/usr/local/bindmkdir zonesroot@dns02:/usr/local/bindmkdir -p var/run最终目录结构root@dns02:/usr/local/bindlsbin etcincludelib logs sbin share var zones为了安全 以非root运行root@dns02:/usr/local/bindgroupadd -g 53 -r bindroot@dns02:/usr/local/binduseradd -u 53 -s /sbin/nolgin -r bind -g bind授权bind目录 named权限root@dns02:/usr/local/bindchown -R bind:bind /usr/local/bind使用rndc-confgen生成rndc.conf配置文件root@dns02:/usr/local/bind/etc/usr/local/bind/sbin/rndc-confgen > /usr/local/bind/etc/rndc.confrndc.conf配置文件是运行rndc工具所需 rndc是官方推荐管理bind的远程管理工具 rndc 以953端口运行root@dns02:/usr/local/bind/etcvim rndc.confStart of rndc.confkey"rndc-key"{ algorithm hmac-sha256; secret"D4Ap4JN71LvPpFeIA+pwOoNsUP/+Rf98uI3IhDoA+Ls="; }; options { default-key"rndc-key"; default-server127.0.0.1; default-port953; };End of rndc.conf取rndc.conf文件中最后10行的前面9行重定向named.conf文件中,再去掉每一行前面的\符号root@dns02:/usr/local/bind/etctail -10 rndc.conf | head -9 | sed s/\ //g > named.conf上面为什么这么做呢 是因为rndc要管理bind必须在named.conf中 导入rndc-key信息和controls信息

named.conf 辅助服务器配置

key"rndc-key" {algorithmhmac-sha256;secret"D4Ap4JN71LvPpFeIA+pwOoNsUP/+Rf98uI3IhDoA+Ls=";};//rndc控制通道controls{inet127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; };};//日志输出logging{channelexample_log {file"logs/example.log" versions 3 size 250k;severityinfo;};categorydefault {example_log;};};//为本地主机提供正向映射区域zone"localhost" {typeprimary;file"etc/localhost-forward.db";notifyno;};//为环回口提供反向映射区域 127.0.0.1zone"0.0.127.in-addr.arpa" {typeprimary;file"etc/localhost.rev";notifyno;};include"/usr/local/bind/etc/named.conf.options";include"/usr/local/bind/etc/named.conf.local";include "/usr/local/bind/etc/named.conf.default-zones";

localhost-forward.db 辅助服务器配置 同上

$TTL3hlocalhost.SOAlocalhost.nobody.localhost.421d12h1w3hNSlocalhost.A127.0.0.1AAAA::1

localhost.rev 辅助服务器配置 同上

$TTL1D@IN SOA localhost. root.localhost. (2007091701; serial30800; refresh7200; retry604800; expire300) ; minimumINNS localhost.1IN PTR localhost.

named.conf.options 辅助服务器配置

options{version"not currently available";directory"/usr/local/bind";pid-file"/usr/local/bind/var/run/named.pid";recursionno;allow-query{any;};allow-query-cache{none;};listen-onport53{192.168.10.201;};//修改辅助服务器IP地址//forwarders{//223.5.5.5;//114.114.114.114//};//forwardonly;dnssec-validationno;listen-on-v6{none;};//关闭IPv6端口监听//auth-nxdomainno;};

named.conf.local 辅助服务器配置

// 我们是 example.com 的辅助服务器zone"example.com"{// 这是辅助服务器区域typesecondary; masterfile-format text;// 默认raw格式 打开时乱码显示 text文本格式 可查看从主服务器更新过来的数据file"zones/secondary.example.com";// 主服务器IPprimaries {192.168.10.200; };// 注意替换主DNS服务器IP};// 反向区域文件 192.168.10.xzone"10.168.192.in-addr.arpa"{typesecondary; masterfile-format text;// 默认raw格式 打开时乱码显示 text文本格式 可查看从主服务器更新过来的数据file"zones/db.192.168.10"; primaries {192.168.10.200; };// 注意替换主DNS服务器IP};

启动:

新建systemd管理配置文件:vim/lib/systemd/system/named.service

[Unit]Description=BIND Domain Name ServerDocumentation=man:named(8)After=network.targetWants=nss-lookup.targetBefore=nss-lookup.target[Service]Type=forkingEnvironmentFile=-/usr/local/bind/etc/namedExecStart=/usr/local/bind/sbin/named$OPTIONSExecReload=/usr/local/bind/sbin/rndc reloadExecStop=/usr/local/bind/sbin/rndc stopRestart=on-failure[Install]WantedBy=multi-user.targetAlias=bind9.service

named文件新建:vim /usr/local/bind/etc/named

run resolvconf?RESOLVCONF=nostartup options for the serverOPTIONS="-u bind -c /usr/local/bind/etc/named.conf"指定启用用户和启动配置文件

最后执行权限授权:chown -R bind:bind /usr/local/bind

root@dns02:/usr/local/bind/zonessystemctl daemon-reloadroot@dns02:/usr/local/bind/zonessystemctl start named.serviceroot@dns02:/usr/local/bind/zonessystemctl status named.service 查看启动成功

启动后:secondary.example.com和db.192.168.10 会从主服务器中自动更新过来,不用自己新建。

添加辅助服务器到区域中:

修改主服务器 zone 区域配置root@dns01:/usr/local/bind/zonesvimprimary.example.com;BINDdatafileforexample.com$TTL604800@INSOAns01.example.com.admin.example.com.(2022120602;Serial604800;Refresh86400;Retry2419200;Expire604800);NegativeCacheTTL@INNSns01.example.com.@INNSns02.example.com.ns01INA192.168.10.200ns02INA192.168.10.201修改主服务器 zone 反向区域配置root@dns01:/usr/local/bind/zonesvimdb.192.168.10192.168.254.rev 官方示例配置文件命名方式:网络位.rev;BINDreversedatafileforlocal192.168.10.XXXnet$TTL604800@INSOAns01.example.com.admin.example.com.(2022120602;Serial604800;Refresh86400;Retry2419200;Expire604800);NegativeCacheTTL;@INNSns01.example.com.@INNSns02.example.com.200INPTRns01.example.com.201INPTRns02.example.com.

修改完后:可看到辅助服务器配置文件立即更新

查看辅助区域文件root@dns02:/usr/local/bind/zonesvim secondary.example.com$ORIGIN . $TTL604800;1week example.com IN SOA ns01.example.com. admin.example.com. (2022120602; serial604800; refresh (1week)86400;retry(1day)2419200; expire (4weeks)604800; minimum (1week) ) NS ns01.example.com. NS ns02.example.com. $ORIGIN example.com. ns01 A192.168.10.200ns02 A192.168.10.201查看辅助区域IP反向映射配置文件root@dns02:/usr/local/bind/zonesvim db.192.168.10 192.168.254.rev 官方示例配置文件命名方式:网络位.rev$ORIGIN . $TTL604800;1week10.168.192.in-addr.arpa IN SOA ns01.example.com. admin.example.com. (2022120602; serial604800; refresh (1week)86400;retry(1day)2419200; expire (4weeks)604800; minimum (1week) ) NS ns01.example.com. NS ns02.example.com. $ORIGIN10.168.192.in-addr.arpa.200PTR ns01.example.com.201PTR ns02.example.com.

测试区域配置文件:named-checkzone

root@dns01:/usr/local/bindnamed-checkzone example.com zones/primary.example.comzone example.com/IN:loaded serial2022120601OK上面信息代表区域配置文件没有语法错误root@dns01:/usr/local/bindnamed-checkzone db.192.168.10 zones/db.192.168.10zone db.192.168.10/IN:loaded serial2022120601OK

dig测试验证:

缓存服务器 - Caching Name Servers

1、源码编译安装(同上)

2、缓存服务器启动配置

配置和安装方式都和主服务器大同小异,配置文件修改下:

named.conf 配置:

key"rndc-key"{ algorithm hmac-sha256; secret"Ocpnouni6h/ob6Bw9aWAYBoCSYNJQVK/fG3XsYVm56k="; };// rndc通道controls { inet127.0.0.1port953allow {127.0.0.1; } keys {"rndc-key"; }; };// 允许查询并缓存的内部私有IP地址段acl corpnets {192.168.4.0/24;192.168.7.0/24; };// 日志输出logging { channel example_log { file"logs/example.log"versions3size250k; severity info; }; category default { example_log; }; };// 根区域 提示文件zone"."{typehint; file"etc/named.root"; };// 为本地主机提供正向映射区域zone"localhost"{typeprimary; file"etc/localhost-forward.db"; notify no; };// 为环回口提供反向映射区域 127.0.0.1zone"0.0.127.in-addr.arpa"{typeprimary; file"etc/localhost.rev"; notify no; };// 为本地IP反向映射区域zone"10.168.192.in-addr.arpa"{typeprimary; file"etc/192.168.10.rev"; notify no; }; include"/usr/local/bind/etc/named.conf.options"; include"/usr/local/bind/etc/named.conf.local"; include"/usr/local/bind/etc/named.conf.default-zones";

根提示文件下载:named.root 放在/usr/local/bind/etc 目录下

named.conf.options 配置:

options{version"not currently available";directory"/usr/local/bind";pid-file"/usr/local/bind/var/run/named.pid";recursionyes;allow-query{corpnets;};allow-query-cache{corpnets;};//指定哪些主机(IP地址列表)可以访问此服务器的缓存,从而有效地控制递归。listen-onport53{192.168.10.200;};dnssec-validationno;listen-on-v6{none;};empty-zones-enableyes;};

转发服务器 - Forwarding Name Servers

1、源码编译安装(同上)

2、缓存服务器启动配置

配置和安装方式都和主服务器大同小异,配置文件修改下:

named.conf 配置:

key"rndc-key" {algorithmhmac-sha256;secret"Ocpnouni6h/ob6Bw9aWAYBoCSYNJQVK/fG3XsYVm56k=";};//rndc通道controls{inet127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; };};//允许查询并缓存的内部私有IP地址段aclcorpnets {192.168.4.0/24;192.168.7.0/24;};//日志输出logging{channelexample_log {file"logs/example.log" versions 3 size 250k;severityinfo;};categorydefault {example_log;};};//为本地主机提供正向映射区域zone"localhost" {typeprimary;file"etc/localhost-forward.db";notifyno;};//为环回口提供反向映射区域 127.0.0.1zone"0.0.127.in-addr.arpa" {typeprimary;file"etc/localhost.rev";notifyno;};//为本地IP反向映射区域zone"10.168.192.in-addr.arpa" {typeprimary;file"etc/192.168.10.rev";notifyno;};include"/usr/local/bind/etc/named.conf.options";include "/usr/local/bind/etc/named.conf.local";include "/usr/local/bind/etc/named.conf.default-zones";

named.conf.options 配置:该配置应用在内网有内网域名和公网解析交给公共DNS的场景

options{version"not currently available";directory"/usr/local/bind";pid-file"/usr/local/bind/var/run/named.pid";recursionyes;allow-query{corpnets;};allow-query-cache{corpnets;};//指定哪些主机(IP地址列表)可以访问此服务器的缓存,从而有效地控制递归。listen-onport53{192.168.10.200;};dnssec-validationno;listen-on-v6{none;};empty-zones-enableyes;forwarders{223.5.5.5;114.114.114.114;};//表示将转发除已定义区域以外的所有查询forwardonly;};

区域转发服务器配置:

此转发解析器配置仅将区域example.com的递归查询转发到位于 192.168.250.3 和 192.168.230.27 的解析器。所有其他递归查询,除了那些针对已定义区域的查询和那些答案已经在其缓存中的查询,都由这个解析器处理。转发解析器将缓存来自公共网络和转发解析器的所有响应

named.conf 配置:

key"rndc-key"{algorithmhmac-sha256;secret"Ocpnouni6h/ob6Bw9aWAYBoCSYNJQVK/fG3XsYVm56k=";};//rndc通道controls{inet127.0.0.1port953allow{127.0.0.1;}keys{"rndc-key";};};//允许查询并缓存的内部私有IP地址段aclcorpnets{192.168.4.0/24;192.168.7.0/24;};//日志输出logging{channelexample_log{file"logs/example.log"versions3size250k;severityinfo;};categorydefault{example_log;};};//为本地主机提供正向映射区域zone"localhost"{typeprimary;file"etc/localhost-forward.db";notifyno;};//为环回口提供反向映射区域127.0.0.1zone"0.0.127.in-addr.arpa"{typeprimary;file"etc/localhost.rev";notifyno;};//为本地IP反向映射区域zone"10.168.192.in-addr.arpa"{typeprimary;file"etc/192.168.10.rev";notifyno;};//区域文件转发example.comzone"example.com"{typeforward;forwarders{192.168.10.100;//针对example.com的查询转发到192.168.10.100和192.168.10.101上192.168.10.101;};forwardonly;};include"/usr/local/bind/etc/named.conf.options";include "/usr/local/bind/etc/named.conf.local";include "/usr/local/bind/etc/named.conf.default-zones";

named.conf.options 配置

options{version"not currently available";directory"/usr/local/bind";pid-file"/usr/local/bind/var/run/named.pid";recursionyes;allow-query{corpnets;};allow-query-cache{corpnets;};//指定哪些主机(IP地址列表)可以访问此服务器的缓存,从而有效地控制递归。listen-onport53{192.168.10.200;};dnssec-validationno;listen-on-v6{none;};empty-zones-enableyes;};

bind 9混杂模式

不同角色配置起到不同的功能,但是实际情况是主服务器和辅助服务器,可能需要启用缓存和转发服务器的功能,故在实际环境中,主服务器和辅助服务器 同时也是缓存服务器和转发服务器,可以把配置进行结合启用。

到此就介绍关于bind 9安装和搭建以及基本的运行配置。下一篇将介绍核心配置文件,named.conf配置文件的语法和参数说明。

懵懂先生