轻松学会Linux DNS配置 (linux配置dns)

作为一名Linux系统管理员或网络工程师,了解和掌握DNS(Domn Name System)配置是非常重要的。DNS是互联网基础设施的一部分,它允许我们通过域名来查找和访问互联网上的网站和资源。在这篇文章中,我们将介绍如何在Linux系统上配置和管理DNS服务。

1.了解DNS的基本原理

为了理解如何配置DNS,我们需要了解一些基本的DNS原理。DNS由一个名为“域”的名称空间组成,它是一个层次结构。例如,www.example.com这个完整的域名可以被分解成三个部分:www是主机名,example是二级域名,com是一级域名。DNS服务器将这些域名映射到IP地址,以便我们可以使用名称来访问主机。

DNS有两种常见的记录类型:A记录和CNAME记录。A记录将域名映射到IP地址,而CNAME记录将域名映射到另一个域名。例如,www.example.com可以有一个对应的A记录和一个对应的CNAME记录。A记录将www.example.com映射到IP地址,CNAME记录将www.example.com映射到example.com。

2.安装和配置BIND

BIND(Berkeley Internet Name Domn)是一个广泛使用的DNS服务器软件。它是Linux系统上最常用的DNS服务器软件之一。在大多数Linux系统中,BIND可以通过软件包管理器安装。在CentOS上,可以使用以下命令安装BIND:

“`

sudo yum install bind bind-utils

“`

在Debian/Ubuntu上,可以使用以下命令安装BIND:

“`

sudo apt-get install bind9 bind9utils

“`

安装完BIND后,我们需要进行一些配置。BIND的配置文件通常在/etc/named.conf文件中。可以使用以下命令编辑该文件:

“`

sudo vi /etc/named.conf

“`

可以在该文件中配置BIND的选项,包括监听的IP地址、日志记录等。在该文件中还可以指定DNS的域名和记录类型。例如,以下配置将example.com的A记录映射到IP地址192.168.0.1:

“`

zone “example.com” {

type master;

file “/var/named/example.com.zone”;

};

“`

此外,我们还需要在文件系统上创建DNS数据文件,用于存储DNS记录。可以使用以下命令创建一个空白的数据文件:

“`

sudo touch /var/named/example.com.zone

“`

为了添加记录,可以将相应的条目添加到数据文件中。例如,以下条目将www.example.com映射到IP地址192.168.0.1:

“`

www IN A 192.168.0.1

“`

3.测试DNS配置

一旦完成DNS配置,我们就可以测试它是否正常工作。可以使用nslookup命令来查询DNS记录。例如,以下命令将查询www.example.com的IP地址:

“`

nslookup www.example.com

“`

如果DNS配置正确,则应该返回查询到的IP地址。如果配置存在问题,则可能会返回错误信息。

另一个有用的测试方法是使用dig命令。该命令提供了更详细的DNS查询信息。例如,以下命令将查询www.example.com的A记录:

“`

dig A www.example.com

“`

该命令将返回许多详细的DNS信息,包括查询的DNS服务器和响应时间等。

4.配置DNS前缀

通常,在企业网络中,DNS前缀(也称为搜索域)是一种常见的配置方式。这使得主机可以通过短名称访问其他主机。例如,如果DNS前缀为example.com,则可以使用“www”来代替“www.example.com”。

我们可以通过修改/etc/resolv.conf文件来配置DNS前缀。可以在该文件中添加一个domn条目来指定DNS前缀。例如,以下配置将设置DNS前缀为example.com:

“`

search example.com

“`

此外,我们还需要指定DNS服务器的IP地址。该设置可以通过在该文件中添加nameserver条目来实现。例如,以下配置将添加一个DNS服务器的IP地址:

“`

nameserver 192.168.0.1

“`

5.

配置和管理DNS服务是Linux系统管理员和网络工程师的必备技能之一。在本文中,我们了解了DNS的基本原理,介绍了如何安装和配置BIND DNS服务器,以及如何测试和配置DNS前缀。通过这些知识,我们可以,并提高我们在网络管理方面的技能水平。

相关问题拓展阅读:

如何在在Linux系统上配置DNS服务器

安装 BIND 软件包

1、安装

# yum -y install bind caching-nameserver

2、配置

下面的例子是亮毁薯以公网IP(172.16.0.80/29),局域网IP(192.168.0.0/24),域名(linuxde.net)作说明。余纯在配置你自己的服务器时,请使用你自己的IP和域名。

# vim /etc/named.conf

options {

directory “/var/named”;

# query range

allow-query { localhost; 192.168.0.0/24; };

# transfer range

allow-transfer { localhost; 192.168.0.0/24; };

# recursion range

allow-recursion { localhost; 192.168.0.0/24; };

};

controls {

inet 127.0.0.1 allow { localhost; } keys { rndckey; };

};

# here is the section for internal informations

vimew “internal” {

match-clients {

localhost;

192.168.0.0/24;

};

zone “.” IN {

type hint;

file “named.ca”;

};

# set zones for internal

zone “linuxde.net” IN {

type master;

file “linuxde.net.lan”;

allow-update { none; };

};

# set zones for internal

zone “0.168.192.in-addr.arpa” IN {

type master;

file “0.168.192.db”;

allow-update { none; };

};

zone “localdomain” IN {

type master;

file “localdomain.zone”;

allow-update { none; };

};

zone “localhost” IN {

type master;

file “localhost.zone”;

allow-update { none; };

};

zone “敬者0.0.127.in-addr.arpa” IN {

type master;

file “named.local”;

allow-update { none; };

};

zone “255.in-addr.arpa” IN {

type master;

file “named.broadcast”;

allow-update { none; };

};

zone “0.in-addr.arpa” IN {

type master;

file “named.zero”;

allow-update { none; };

};

};

vimew “external” {

match-clients {

any;

};

zone “.” IN {

type hint;

file “named.ca”;

};

# set zones for external

zone “linuxde.net” IN {

type master;

file “linuxde.net.wan”;

allow-update { none; };

};

# set zones for external *note

zone “80.0.16.172.in-addr.arpa” IN {

type master;

file “80.0.16.172.db”;

allow-update { none; };

};

};

include “/etc/rndc.key”;

# *note : For How to write for reverse resolvimng, Write network address reversely like below.

the case for 192.168.0.0/24

network address? 192.168.0.0

range of network? 192.168.0..168.0.255

how to write? 0.168.192.in-addr.arpa

case of 172.16.0.80/29

network address? 172.16.0.80

range of network? 172.16.0..16.0.87

how to write? 80.0.16.172.in-addr.arp

设置Zones

创建zone文件以便服务器能解析域名IP。

1、内部zone文件

这个例子使用的是内网地址(192.168.0.0/24),域名(linuxde.net),请根据自己的具体情况配置。

# vim /var/named/linuxde.net.lan

$TTL

@IN SOA ns.linuxde.net. root.linuxde.net. (

;Serial

;Refresh

;Retry

;Expire

;Minimum TTL

)

# define name server

IN NS ns.linuxde.net.

# internal IP address of name server

IN A.168.0.17

# define mail exchanger

IN MX 10 ns.linuxde.net.

# define IP address and hostname

nsIN A.168.0.17

2、外部zone文件

这个例子使用的是外网地址(172.16.0.80/29),域名(linuxde.net),请替换成自己的。

# vim /var/named/linuxde.net.wan

$TTL

@IN SOA ns.linuxde.net. root.linuxde.net. (

;Serial

;Refresh

;Retry

;Expire

;Minimum TTL

)

# define name server

INNS ns.linuxde.net.

# external IP address of name server

INA.16.0.82

# define Mail exchanger

INMX 10 ns.linuxde.net.

# define IP address and hostname

ns INA.16.0.82

创建zone文件使服务器能够反向解析IP到域名。

3、内部zone文件

这个例子使用的是内网地址(192.168.0.0/24),域名(linuxde.net),请使用自己的设置替换。

# vim /var/named/0.168.192.db

$TTL

@IN SOA ns.linuxde.net. root.linuxde.net. (

;Serial

;Refresh

;Retry

;Expire

;Minimum TTL

)

# define name server

INNS ns.linuxde.net.

# define range that this domain name in

INPTR linuxde.net.

# define IP address and hostname

INA.255.255.0

INPTR ns.linuxde.net.

4、外部zone文件

这例子使用外网地址(172.16.0.80/29),域名(linuxde.net),请替换成自己的。

# vim /var/named/80.0.16.172.db

$TTL

@IN SOA ns.linuxde.net. root.linuxde.net. (

;Serial

;Refresh

;Retry

;Expire

;Minimum TTL

)

# define name server

INNS ns.linuxde.net.

# define range that this domain name in

INPTR linuxde.net.

# define IP address and hostname

INA.255.255.248

INPTR ns.linuxde.net.

启动BIND

1、完成BIND的配置后,在启动named之前,还需要建立chroot环境。

# yum -y install bind-chroot

# /etc/rc.d/init.d/named start

# chkconfig named on

2、操作检验

确认服务器已经正确解析域名或IP地址。

# dig ns.linuxde.net.

; > DiG 9.3.4 > ns.linuxde.net.

;; global options: printcmd

;; Got answer:

;; ->>HEADER> DiG 9.3.4 > -x 192.168.0.17

;; global options: printcmd

;; Got answer:

;; ->>HEADER

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:

;17.0.168.192.in-addr.arpa.IN PTR

;; ANSWER SECTION:

17.0.168.192.in-addr.arpa.IN PTR ns.linuxde.net.

;; AUTHORITY SECTION:

0.168.192.in-addr.arpa.IN NS ns.linuxde.net.

;; ADDITIONAL SECTION:

ns.linuxde.net.0 IN A.168.0.17

;; Query time: 0 msec

;; SERVER: 192.168.0.17#53(192.168.0.17)

;; WHEN: Thu Mar 8 19:37:

;; MSG SIZE rcvd: 107

配置从DNS服务器

配置从DNS服务器比较简单。下面的例子主DNS是“ns.linuxde.net”,从DNS是“ns.example.info”。

1、在主DNS服务器的zone文件作如下配置

# vim /var/named/linuxde.net.wan

$TTL

@IN SOA ns.linuxde.net. root.linuxde.net. (

# update serial

;Serial

;Refresh

;Retry

;Expire

;Minimum TTL

)

INNS ns.linuxde.net.

# add name server

INNS ns.example.info.

INA.16.0.82

INMX 10 ns.linuxde.net.

nsINA.16.0.82

# rndc reload

server reload successful

2、配置从DNS服务器

# vim /etc/named.conf

# add these lines below

zone “linuxde.net” IN {

type slave;

masters { 172.16.0.82; };

file “slaves/linuxde.net.wan”;

};

# rndc reload

server reload successful

# ls /var/named/slaves

linuxde.net.wan# zone file in master DNS has been just transfered

设置别名记录,如果你想为你的主机设置另一个名称,在zone文件定义CNAME记录

# vim /var/named/server-Linux.info.wan

$TTL

@IN SOA ns.server-linux.info. root.server-linux.info. (

# update serial

;Serial

;Refresh

;Retry

;Expire

;Minimum TTL

)

INNS ns.server-linux.info.

INA.16.0.82

INMX 10 ns.server-linux.info.

nsINA.16.0.82

# aliase IN CNAME server’s name

ftpINCNAME ns.server-linux.info.

# rndc reload

server reload successful

以下是一个整理的主配文件参数解释(仅供参考)/**/代表注释:

options { /*OPTIONS选项用来定义一些影响整个DNS服务器的环境,如这里的DI RECTORY用来指定在本文件指定的文件的路径,如这里的是将其指定到 /var/named 下,在这里你还可以指定端口等等。不指定则端口是53

*/

directory “/var/named”;

}; //

//

// a caching only nameserver config

//

controls {

inet 127.0.0.1 allow { localhost; } keys { rndckey; };

};

zone “.” IN { //在这个文件中是用zone关键字来定义域区的,一个zone关键字定义一个域区

type hint;

/*在这里type类型有三种,它们分别是master,slave和hint它们的含义分别是:

master:表示定义的是主域名服务器

slave :表示定义的是辅助域名服务器

hint:表示是互联网中根域名服务器

*/

file “named.ca”; //用来指定具体存放DNS记录的文件

};

zone “localhost” IN { //定义一具域名为localhost的正向区域

type master;

file “localhost.zone” ;

allow-update { none; };

};

zone “test.net” IN { //指定一个域名为test.net的正向区域

type master;

file “test.net”

allow-update { none;};

};

zone “0.0.127.in-addr.arpa” IN { //定义一个IP为127.0.0.*的反向域区

type master;

file “named.local”;

allow-update { none; };

};

zone “0.192.168.in-addr.arpa” IN { //定义一个IP为168.192.0.*反向域区

type master;

file “168.192.0”;

/var/named/test.net文件

@ IN SOA linux.test.net. Webmaster.test.net. ( SOA表示授权开始

/*上面的IN表示后面的数据使用的是INTERNET标准。而@则代表相应的域名,如在这里代表test.net,即表示一个域名记录定义的开始。而linux.test.net则是这个域的主域名服务器,而webmaster.test.net则是管理员的邮件地址。注意这是邮件地址中用.来代替常见的邮件地址中的@.而SOA表示授权的开始

*/

; serial (d. adams) /*本行前面的数字表示配置文件的修改版本,格式是年月日当日修改的修改的次数,每次修改这个配置文件时都应该修改这个数字,要不然你所作的修改不会更新到网上的其它DNS服务器的数据库上,即你所做的更新很可能对于不以你的所配置的DNS服务器为DNS服务器的客户端来说就不会反映出你的更新,也就对他们来说你更新是没有意义的。

*/

28800 ; refresh

/*定义的是以为单位的刷新频率 即规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据是最新的

*/

7200 ;retry

/*上面的这个值是规定了以秒为单位的重试的时间间隔,即当从服务试图在主服务器上查询更时,而连接失败了,则这个值规定了从服务多长时间后再试

*/

; expiry

/*上面这个用来规定从服务器在向主服务更新失败后多长时间后清除对应的记录,上述的数值是以分钟为单位的

*/

8400 )

/*上面这个数据用来规定缓冲服务器不能与主服务联系上后多长时间清除相应的记

*/

IN NS linux

IN MX 10 linux

linux IN A 168.192.0.14

it-test1 IN A 168.192.0.133

www IN CNAME linux

/*上面的之一列表示是主机的名字,省去了后面的域。

NS:表示是这个主机是一个域名服务器,

A:定义了一条A记录,即主机名到IP地址的对应记录

MX 定义了一邮件记录

CNAME:定义了对应主机的一个别名

/var/named/168.192.0

@ IN SOA linux.test.net. webmastert.linux.net. (

; Serial

28800 ; Refresh

14400 ; Retry

; Expire

86400 ) ; Minimum

IN NS linux.test.net.

/*以上的各关键字的含义跟test.net是相同的

14 IN PTR linux.test.net.

133 IN PTR it-test1.test.net.

/*

上面的之一列表示的是主机的IP地址。省略了网络地址部分。如14完整应该是:

168.192.0.14

PTR:表示反向记录

最后一列表示的是主机的域名。

linux配置dns的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux配置dns,轻松学会Linux DNS配置,如何在在Linux系统上配置DNS服务器的信息别忘了在本站进行查找喔。


数据运维技术 » 轻松学会Linux DNS配置 (linux配置dns)