首页 > 系统相关 >linux DNS服务器配置

linux DNS服务器配置

时间:2023-09-09 15:32:31浏览次数:49  
标签:记录 域名 DNS linux 服务器 com example

1、yum install -y bind      安装域名服务

vim /etc/named.conf

这个服务使用 /etc/named.conf 作为配置文件。

BIND 在那个文件中使用像下面这样的一些语句:

  • options: 用于全局 BIND 配置。
  • logging: 配置哪些需要记录,哪些需要忽略。我推荐你看看 Linux syslog server。
  • zone: 定义 DNS 区域。
  • include: 在 named.conf 中包含另一个文件。

在 options 语句中可以看到 BIND 的工作目录在 /var/named。

zone 语句可用于定义 DNS 区域,比如域名 google.com,它包含子域名 mail.google.com 和 analytics.google.com。

上述三个域名(主域名和子域名) 都有一个由 zone 语句定义的区域。

定义一个主域服务器

在 /etc/named.conf 的配置文件中,你可以使用如下语法定义一个主域服务器:

zone    "likegeeks.com" {

type master;

file likegeeks.com.db

};

包含主要区域信息的文件存放在 /var/named 目录下,从 options 可知,这是一个工作目录。

注意:软件服务器或者托管面板会根据你的域名自动为你创建主域服务器信息的文件名,因此如果你的域名是 example.org,那么你主域服务器信息的文件就为 /var/named/example.org.db。

类型为 master,也就是说这是一个主域服务器。

定义一个缓存服务器

即使你已经配置了主域或者辅助域服务器,你仍有必要(不是必须)定义一个缓存服务器,因为这样你可以减少DNS服务器的查询次数。

在定义缓存服务器之前,你需要先定义三个区域选择器,第一个:

zone      "." IN {

type hint;

file "root.hint";

};

zone      "." IN {

type hint;

file "root.hint";

};

zone      "." IN {

type hint;

file "root.hint";

};

zone      "localhost" IN {

type master;

file "localhost.db";

};

定义第三个区域是为了反向查找到本地主机。这种反向查找是把本地的IP地址指向本地主机。

zone      "0.0.127.in-addr.arpa" IN {

type master;

file "127.0.0.rev";

};

把这三个区域信息放到/etc/named.conf文件里,你的系统就可以以缓存服务器来工作了。但是如何引用类似likegeeks.com.db, localhost.db, 和 127.0.0.rev这些文件中的内容呢?

这些文件包含具有某些选项的每个区域的DNS记录类型。 那么,这些DNS记录类型是什么以及它们是如何写的?

DNS记录类型

数据库文件包含诸如SOA、NS、A、PTR、MX、CNAME和TXT在内的记录类型。

我们看看每一种类型都是如何记录的吧。

SOA:起始授权机构记录

SOA记录按如下形式开始描述一个站点的DNS条目:

example.com.      86400      IN      SOA      ns1.example.com.   mail.example.com.      (

2017012604 ;serial

86400 ;refresh, seconds

7200 ;retry, seconds

3600000 ;expire, seconds

86400 ;minimum, seconds

)

第一行以域名example.com开始,以句号结束——该语句和/etc/named.conf文件中的区域定义是一致的。我们要始终记得,DNS配置文件是极其挑剔的。

IN 告诉域名服务器:这是一条网络记录。

SOA 告诉域名服务器:这是一条起始授权机构记录。

ns1.example.com. 是该文件所在域的域名服务器的完全合格域名(FQDN: Fully Qualified Domain Name)。

mail.example.com. 是域管理员的邮箱地址。你会发现这个邮箱地址没有“@”标志,而是被句号所取代,并且末尾还有一个句号。

第2行是一个序列码,它被用来告诉域名服务器文件是什么时候升级的。因此,如果你对区域码做了变更,你必须对这个序列码进行递增。这个序列码的格式是 YYYYMMDDxx ,其中的 xx 是从 00 开始的。

第3行是每秒刷新率。这个值被用来告诉第二个域名服务器查询主服务器中的记录是否已经被更新的频率。

第4行是每秒重试的频率。如果第二个服务器多次尝试连接主域名服务器来进行更新检测,但无法连接上的时候,第二个服务器就会在每秒内重试指定的数值次数。

第5行是超时指示。其目的是为了第二个服务器能将区域数据缓存下来。这个值告诉这些服务器如果它们不能连接到主服务器来进行更新,那么它们就会在这个指定数值秒数之后抛弃这个值。

第6行告诉缓存服务器,如果它们不能连接到主域名服务器时,它们应该在超时前等待多久。

NS: Name Server Records(名称服务器记录)

NS记录用于指定哪个名称服务器维护该域的记录。

你可以这样编写的NS记录:

IN           NS         ns1.example.com.

IN           NS         ns2.example.com.

并不需要有2个NS记录,但是通常偏好有备份名称服务器。

A和AAAA: Address Records(地址记录)

A记录用于提供从主机名到IP地址的映射support IN A 192.168.1.5。

如果你在地址为192.168.1.5上的support.example.com上有一个主机,你可以像上面的例子那样输入。

请注意,我们所写的主机并没有句号。

PTR: Pointer Records(指针记录)

PTR记录用于执行反向名称解析,允许某人指定IP地址然后找出对应的主机名。

这与A记录的功能相反:192.168.1.5 IN PTR support.example.com.

在这里,我们键入具有点号的完整主机名。

MX: Mail Exchange Records(邮件交换记录)

MX记录告诉其他站点关于你所在域的邮件服务器地址:example.com. IN MX 10 mail.

当然这个域以句号结束。数字10是邮件服务器的重要性标志,如果你拥有多个邮件服务器,其中较小的数字不太重要。

CNAME: Canonical Name Records(权威名称记录)

CNAME记录允许你为主机名创建别名。当你想提供一个易于记住的名称时,这很有用。

假设某个站点具有一个主机名为whatever-bignameis.example.com的Web服务器,并且由于系统是Web服务器,因此可以为主机创建一个名为www的CNAME记录或者别名。

你可以创建名为www.example.com的域名创建CNAME记录:

whatever-bignameis      IN           A                    192.168.1.5

www                     IN           CNAME                whatever-bignameis

第一行通知DNS服务器关于别名的位置。第二行创建一个指向www的别名。

TXT记录

您可以将任何信息存储到TXT记录中,例如你的联系方式或者你希望人们在查询DNS服务器时可获得的任意其他信息。

你可以这样保存TXT记录:example.com. IN TXT ” YOUR INFO GOES HERE”.

此外,RP记录被创建为对host联系信息的显式容器:example.com. IN RP mail.example.com. example.com。

DNS TTL值

在/etc/named.conf文件的顶部,这里有一个$TTL条目。

该条目告诉BIND每个单独记录的TTL值(time to live,生存时间值)。

它是以秒为单位的数值,比如14,400秒(4个小时),因此DNS服务器最多缓存你的域文件4个小时,之后就会向你的DNS服务器重新查询。

你可以降低这个值,但是默认值通常是合理的。除非你知道你正在做什么。

捕获配置错误

当您写入域文件时,也许您忘记了一个句号或空格或其他任意错误。

你可以从日志诊断Linux DNS服务器错误。BIND服务通过/var/log/messages上的错误,可以使用tail命令来查看实时错误日志,须使用-f选项:$ tail -f /var /log/messages。

因此,当你编写域文件或修改/etc/named.config并重新启动服务时,显示错误之后,你可以从日志中轻松识别错误类型。

Host命令

在你成功添加或修改记录后,可以使用host命令查看主机是否正确解析。

host命令允许你将主机名解析为IP地址:$ host example.com。

此外,你可以执行反向查找:$ host 192.168.1.5。

Whois命令

whois命令用于确定域名的所有权及其拥有者的e-mail地址和联系电话:$ whois example.com.

Rndc命令

rndc工具可用于安全地管理名称服务器,因为与服务器的所有通信均通过数字签名进行身份验证。

此工具用于控制名称服务器和调试问题。 你可以通过以下方式检查Linux DNS服务器的状态:$ rndc status。

此外,如果你更改任何域(zone)文件,您可以重新加载服务,而无须重启命名服务:$ rndc reload example.com。

在这里,我们重新加载example.com域文件。 你可以重新加载所有域:$ rndc reload。

或者你可以添加新的域或更改服务的配置。 你可以重新加载配置,如下所示:

$ rndc reconfig。

Linux DNS解析器

我们已经知道Linux DNS服务器的工作原理以及如何配置它。另一部分当然是与DNS服务器交互的(正在与DNS服务器通信以将主机名解析为IP地址的)客户端。

在Linux上,解析器位于DNS的客户端。要配置解析器,可以检查/etc/resolv.conf这个配置文件。

在基于Debian的发行版上,可以查看/etc/resolvconf/resolv.conf.d/目录。

/etc/resolv.conf文件中包含客户端用于获取其本地DNS服务器地址所需的信息。

第一个表示默认搜索域,第二个表示主机名称服务器(nameserver)的IP地址。

名称服务器行告诉解析器哪个名称服务器可使用。 只要你的BIND服务正在运行,你就可以使用自己的DNS服务器。

标签:记录,域名,DNS,linux,服务器,com,example
From: https://blog.51cto.com/u_16077267/7419750

相关文章

  • linux gcc rpath
    linux下程序运行时如果想要到指定路径下查找依赖库,除了使用LD_LIBRARY_PATH,还可以使用编译选项rpath:g++-Wl,-rpath='$ORIGIN/libs'-omainmain.cpp-L.-lmylib那么只要把libmylib.so放到libs目录下,main即可正常执行。如果是在QT中,则改为:QMAKE_LFLAGS+="-Wl,-rpath='\$......
  • Linux 开发常用网站
    根据命令查安装包https://command-not-found.com/linuxkernel源码在线阅读https://elixir.bootlin.com/linux/v5.19.11/sourcelinuxkenel源码下载https://www.kernel.org/https://github.com/torvalds/linuxlinux内核文档在线阅读https://www.kernel.org/doc/html......
  • Windows平台 CLion 远程调试 Linux 的 C++ 程序
    Windows平台CLion远程调试Linux的C++程序1.CLion的安装Pass2.Linux环境的配置2.1.安装gdbserver这里举例Ubuntu环境下的安装:sudoapt-getinstallgdbserver2.2配置CLion2.2.1.配置Toolchains首先在CLion的File->Settings->Tools->SSHConfigu......
  • Linux部署项目常用命令(持续更新)
    防火墙配置#启动防火墙服务systemctlstartfirewalld#关闭防火墙服务systemctlstopfirewalld#查看防火墙服务状态systemctlstatusfirewalld#开机禁用防火墙服务systemctldisablefirewalld#开机自启防火墙服务systemctlenablefirewalld端口配置......
  • idrac登陆dell服务器 提示ssl错误解决方法
    1、使用idrac登陆dell服务器,提示ssl登陆错误,SSLmisserror错误2、勾选SSL以及TLS全选(兼容全部加密证书类型)3、edge使用IE模式访问......
  • Linux下C语言调用libcurl库获取天气预报信息
    一、概述当前文章介绍如何在Linux(Ubuntu)下使用C语言调用libcurl库获取天气预报的方法。通过HTTPGET请求访问百度天气API,并解析返回的JSON数据,可以获取指定城市未来7天的天气预报信息。二、设计思路【1】使用libcurl库进行HTTPGET请求在代码中包含<curl/curl.h>头文件,以便使用libc......
  • 运维工程师工作时最常用的20个Linux命令有哪些?建议收藏
    运维人员在管理和维护Linux系统时,需要经常使用一些常见的命令来完成各种任务。下面是20个运维高频使用的Linux命令及其示例。1、cd改变当前工作目录示例:进入“/var/log”目录:cd/var/log2、ls列出目录内容示例:列出当前目录内容:ls3、cat查看文件内容示例:查看“/var/......
  • Linux环境编程-库
    一、库:库文件是目标文件的集合,可以被其他代码调用,把代码封装成库文件后方便使用、方便管理,安全性高、保密性强静态库:就是目标文件的集合,当调用静态库时,编译器会把静态库的所有的二进制指令拷贝到最后的可执行文件中优点:运行速度比共享库要快,运行时不需要依赖静态库文件。(它......
  • Linux与Windows双系统,安装完linux后无法通过grub进入Windows的解决方法
    其中有提示,所以解决方案也非常明确Warning:os-proberwillnotbeexecutedtodetectotherbootablepartitions.SystemsonthemwillnotbeaddedtotheGRUBbootconfiguration.CheckGRUB_DISABLE_OS_PROBERdocumentationentry.可以参考:https://huaweicloud.cs......
  • 在 Linux 系统上安装主播软件
    捕获设置在顶层菜单中,我们选择“File”→“Settings”,然后我们选择“Output”来设置要生成的文件的选项。这里我们可以设置想要的音频和视频的比特率、新创建的文件的目标路径和文件格式。这上面还提供了粗略的质量设置。如果我们将顶部的输出模式从“Simple”更改为“A......