centos7 vim查找_【零基础学云计算】CentOS7中搭建DNS域名解析服务

f91ded64e78f973182fe8ba0f646efdf.png

DNS系统的作用

DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户机提供正向或反向的地址查询服务。

  • 正向解析:根据主机名称(域名)查找对应的IP地址
  • 反向解析:根据IP地址查找对应的主机域名

DNS系统类型

缓存域名服务器

  • 也称为高速缓存服务器
  • 通过向其他域名服务器查询获得域名->IP地址记录
  • 将域名查询结果缓存到本地,提高重复查询时的速度

主域名服务器

  • 特定DNS区域的官方服务器,具有唯一性
  • 负责维护该区域内多有域名->IP地址的映射记录

从域名服务器

  • 也称为辅助域名服务器
  • 其维护的域名->IP地址记录来源于主域名服务器

BIND域名服务

BIND不是唯一能够提供域名服务的DNS程序,但它却是应用最为广泛的,BIND可以运行在大多数Linux主机中。

安装BIND软件

[root@localhost ~]# yum install bind -y //CentOS 7连接网络,可以直接使用yum安装

BIND服务端程序

  • 主要执行程序:/usr/sbin/named
  • 默认监听端口 53
  • 主要配置文件

/etc/named.conf

  • 保存DNS解析记录的数据文件

/var/named/

主要配置文件

  • 全局配置

设置DNS服务器的全局参数

包括监听地址/端口、数据文件的默认位置

使用options{.....};的配置端

options{

listen-on port 53 {本地IP地址} ; //监听地址和端口

directory ”/var/named“; //区域数据文件的默认存放位置

allow-query {192.168.1.0/24;173.16.16.0/24;}; //允许使用本DNS服务的网段

  • 区域配置部分

设置本服务器提供域名解析的特定DNS区域

包括域名、服务器角色、数据文件名等

使用zone “区域名”IN{。。。};的配置段

正向解析

zone "yun.com" IN { //正向“yun.com”区域

type master; //区域类型为主区域

file "yun.com.zone"; //区域数据文件为“Domain Name Marketplace”

allow-transfer {173.16.16.2}; //允许下载的从服务器地址

};

反向解析

zone "16.16.173.in-addr.arpa" IN { //反向“173.16.16.0/24”区域

type master;

file "173.16.16.arpa"; //区域数据文件为"173.16.16.arpa"

allow-update { none; };

};

  • 区域数据配置文件

全局TTL配置项及SOA记录 SOA:资源起始记录

$TTL 1D //有效解析记录的生存周期

@ IN SOA @ rname.invalid. ( //SOA标记、域名、管理邮箱

0 ; serial //更新序列号,可以是10位以内的整数

1D ; refresh //刷新时间,重新下载地址数据的间隔

1H ; retry //重试延时,下载失败后的重试间隔

1W ; expire //失效时间,超过该时间仍无法下载则放弃

3H ) ; minimum //无效解析记录的生存周期

​ 域名解析记录

NS:域名服务器记录 (Name Service)

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

A:地址记录,只用在正向解析区域中 (Address)

CNAME:别名记录(Canonical Name)

“*” IN IP:泛域名解析

PTR:指针记录,只用反向解析区域中

记录的第一列指定IP地址中的主机地址部分即可

DNS配置文件

  • /etc/named.conf 主要配置文件 控制系统全局 (include 包含)
  • /etc/named.rfc1912.zones 区域配置文件 控制具体单个区域
  • /var/named/named.localhost 区域数据配置文件 区域信息

搭建DNS服务

正向解析配置

1、安装BIND软件

[root@localhost ~]# yum install bind -y

已加载插件:fastestmirror, langpacks

base | 3.6 kB 00:00:00

extras | 3.4 kB 00:00:00

updates | 3.4 kB 00:00:00

(1/4): base/7/x86_64/group_gz | 166 kB 00:00:00

(2/4): extras/7/x86_64/primary_db | 215 kB 00:00:00

...//省略部分内容...

已安装:

bind.x86_64 32:9.9.4-74.el7_6.2

作为依赖被升级:

bind-libs.x86_64 32:9.9.4-74.el7_6.2 bind-libs-lite.x86_64 32:9.9.4-74.el7_6.2 bind-license.noarch 32:9.9.4-74.el7_6.2

bind-utils.x86_64 32:9.9.4-74.el7_6.2

完毕!

2、查看配置文件的存放位置,方便我们编辑配置文件

[root@localhost named]# rpm -qc bind

/etc/logrotate.d/named

/etc/named.conf //主配置文件位置

/etc/named.iscdlv.key

/etc/named.rfc1912.zones //区域配置文件位置

/etc/named.root.key

/etc/rndc.conf

/etc/rndc.key

/etc/sysconfig/named

/var/named/http://named.ca

/var/named/named.empty

/var/named/named.localhost //区域数据配置文件

/var/named/named.loopback

3、更改主配置文件(此处主要修改缉监听地址和权限开发两处)

[root@localhost named]# vim /etc/named.conf

...//省略部分内容...

// See the BIND Administrator's Reference Manual (ARM) for details about the

// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html

options {

listen-on port 53 { 192.168.144.133; }; //修改地址为监听自己的本地地址

listen-on-v6 port 53 { ::1; };

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

recursing-file "/var/named/data/named.recursing";

secroots-file "/var/named/data/named.secroots";

allow-query { any; }; //权限放开,允许任何的主机都可以使用DNS服务

/*

- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.

...//省略部分内容...

pid-file "/run/named/named.pid"; //进程文件的存放位置,不要改动

session-keyfile "/run/named/session.key";

};

logging {

channel default_debug {

file "data/named.run";

severity dynamic;

};

};

zone "." IN { //根域服务器的解析,不要改动

type hint;

file "named.ca - 最佳的named 来源和相关信息。";

};

include "/etc/named.rfc1912.zones"; //著配置文件包含的数据文件信息,不要更改

include "/etc/named.root.key";

4、修改主配置文件包含的区域配置文件信息

[root@localhost named]# vim /etc/named.rfc1912.zones

// named.rfc1912.zones:

//

// Provided by Red Hat caching-nameserver package

//

// ISC BIND named zone configuration for zones recommended by

// RFC 1912 section 4.1 : localhost TLDs and address zones

// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt

// (c)2007 R W Franks

//

// See /usr/share/doc/bind*/sample/ for example named configuration files.

//

zone "localhost.localdomain" IN {

type master; //正向解析文件的配置模板

file "named.localhost";

allow-update { none; };

};

//正向解析区域配置文件位置

zone "localhost" IN {

type master;

file "named.localhost";

allow-update { none; };

};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

type master; //ipv6解析文件的配置模板

file "named.loopback";

allow-update { none; };

};

//反向解析区域配置文件位置

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

type master;

file "named.loopback"; //反向解析文件的配置模板

allow-update { none; };

...//省略部分内容...

// See /usr/share/doc/bind*/sample/ for example named configuration files.

//

zone "localhost.localdomain" IN {

type master;

file "named.localhost";

allow-update { none; };

};

zone "localhost" IN {

type master;

file "named.localhost";

allow-update { none; };

};

zone "kgc.com" IN { //复制模板,更改区域名

type master;

file "Domain Name Marketplace"; //更改区域数据文件名

allow-update { none; };

};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

type master;

file "named.loopback";

allow-update { none; };

};

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

type master;

...//省略部分内容...

5、创建区域数据文件,使区域文件可以读取数据文件

[root@localhost named]# cd /var/named/ //进入区域数据文件存放目录

[root@localhost named]# ls //查看目录信息

data dynamic named.ca - 最佳的named 来源和相关信息。 named.empty named.localhost named.loopback slaves

[root@localhost named]# cp -p named.localhost Domain Name Marketplace //递归复制,创建kgc.com.zone文件

[root@localhost named]# ls //查看是否创建kgc.com.zone文件

data dynamic Domain Name Marketplace named.ca - 最佳的named 来源和相关信息。 named.empty named.localhost named.loopback slaves

[root@localhost named]# vim Domain Name Marketplace //编辑区域数据文件

$TTL 1D

@ IN SOA kgc.com. admin.kgc.com. ( //更改域名、管理邮箱,主要后面的“.”不能少

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS kgc.com. //更改域名服务器记录地址

A 192.168.144.133 //更改正向解析条目地址

IN MX 10 mail.kgc.com. //添加邮件交换记录地址

www IN A 192.168.100.99 //添加www域名的解析地址

ftp IN A 192.168.100.88 //添加ftp域名解析地址

smtp IN CNAME www //添加别名解析记录

* IN A 8.8.8.8 //添加泛域名解析地址

~

~

:wq //保存退出

6、关闭防火墙与增强安全功能,方便客户端访问,然后启动DNS服务。

[root@localhost named]# systemctl stop firewalld.service //关闭防火墙

[root@localhost named]# setenforce 0 //关闭增强型安全更能

[root@localhost named]# systemctl start named //启动DNS服务

[root@localhost named]# systemctl status named //查看服务

● named.service - Berkeley Internet Name Domain (DNS) //DNS正常启动

Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)

Active: active (running) since 四 2019-09-05 17:36:31 CST; 11s ago

Process: 7425 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)

Process: 7422 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)

Main PID: 7427 (named)

CGroup: /system.slice/named.service

└─7427 /usr/sbin/named -u named -c /etc/named.conf

9月 05 17:36:31 localhost.localdomain named[7427]: managed-keys-zone: loaded serial 0

9月 05 17:36:31 localhost.localdomain named[7427]: zone 0.in-addr.arpa/IN: loaded serial 0

9月 05 17:36:31 localhost.localdomain named[7427]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0

9月 05 17:36:31 localhost.localdomain named[7427]: zone kgc.com/IN: loaded serial 0

9月 05 17:36:31 localhost.localdomain named[7427]: zone localhost.localdomain/IN: loaded serial 0

9月 05 17:36:31 localhost.localdomain named[7427]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0...ial 0

9月 05 17:36:31 localhost.localdomain named[7427]: zone localhost/IN: loaded serial 0

9月 05 17:36:31 localhost.localdomain named[7427]: all zones loaded

9月 05 17:36:31 localhost.localdomain named[7427]: running

9月 05 17:36:31 localhost.localdomain systemd[1]: Started Berkeley Internet Name Domain (DNS).

Hint: Some lines were ellipsized, use -l to show in full.

[root@localhost named]# echo "nameserver 192.168.144.133" > /etc/resolv.conf

//覆盖域名解析地址文件信息,因为我们自己搭建的DNS服务器就要解析我们自己的地址,所以这边直接覆盖掉域名解析地址文件

[root@localhost named]# cat /etc/resolv.conf

nameserver 192.168.144.133 //以覆盖原信息

7、使用host命令常看DNS解析服务是否搭建成功

[root@localhost named]# host www.kgc.com //解析域名www.kgc.com

www.kgc.com has address 192.168.100.99 //成功解析IP地址

[root@localhost named]# host ftp.kgc.com //解析域名ftp.kgc.com

ftp.kgc.com has address 192.168.100.88 //成功解析IP地址

[root@localhost named]# host aaa.kgc.com //泛域名解析

aaa.kgc.com has address 8.8.8.8 //成功解析IP地址

[root@localhost named]# host smtp.kgc.com //别名解析

smtp.kgc.com is an alias for www.kgc.com.

www.kgc.com has address 192.168.100.99 //成功解析IP地址

反向解析配置

1、继续上面的配置,进入区域配置文件中更改区域配置反向解析区域模板

[root@localhost named]# vim /etc/named.rfc1912.zones

...//省略部分内容...

zone "kgc.com" IN {

type master;

file "Domain Name Marketplace";

allow-update { none; };

};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

type master;

file "named.loopback";

allow-update { none; };

};

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

type master;

file "named.loopback"; //复制此处模板

allow-update { none; };

};

zone "100.168.192.in-addr.arpa" IN { //更改区域地址,反向填写

type master;

file "yun.com.local"; //更改区域数据文件名

allow-update { none; };

};

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

type master;

file "named.empty";

...//省略部分内容...

2、进入区域数据文件存放目录建立区域数据文件,与区域文件中更给的区域数据文件名保持一致,并进入更改区域数据文件

[root@localhost named]# cd /var/named/ //进入目录

[root@localhost named]# ls //查看

data dynamic Domain Name Marketplace named.ca named.empty named.localhost named.loopback slaves

[root@localhost named]# cp -p Domain Name Marketplace yun.com.local //递归复制

[root@localhost named]# vim yun.com.local //进入编辑数据信息

$TTL 1D

@ IN SOA yun.com. admin.yun.com. ( //此处kgc改为yun

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS yun.com. //此处kgc改为yun

A 192.168.144.133

99 IN PTR www.yun.com. //更改为方向解析地址

88 IN PTR ftp.yun.com. //更改为方向解析地址

...//省略部分内容...

3、重启DNS服务,并检测反向解析是否创建成功

[root@localhost named]# systemctl restart named //重启服务

[root@localhost named]# host 192.168.100.99 //解析IP地址

99.100.168.192.in-addr.arpa domain name pointer www.yun.com. //成功解析出域名

[root@localhost named]# host 192.168.100.88 //解析IP地址

88.100.168.192.in-addr.arpa domain name pointer ftp.yun.com. //成功解析出域名

配置从域名服务器

1、上面我们成功创建了主服务器,这个时候我们重新开启一台CentOS 7系统,作为DNS的从服务器,查看从服务器的IP地址,并关闭防火墙功能与增强性安全功能,使此服务器方便客户机与主服务器连接

[root@localhost ~]# ifconfig //查看网卡信息

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 192.168.144.135 netmask 255.255.255.0 broadcast 192.168.144.255

inet6 fe80::a85a:c203:e2e:3f3c prefixlen 64 scopeid 0x20<link>

inet6 fe80::ad78:663f:1f02:22e4 prefixlen 64 scopeid 0x20<link>

ether 00:0c:29:75:9f:c8 txqueuelen 1000 (Ethernet)

RX packets 1049 bytes 1282518 (1.2 MiB)

RX errors 0 dropped 0 overruns 0 frame 0

...//省略部分内容...

[root@localhost ~]# systemctl stop firewalld.service //关闭防火墙

[root@localhost ~]# setenforce 0 //关闭增强性安全功能

2、在从服务器中安装BIND软件,并更改DNS配置文件信息

[root@localhost ~]# yum install bind -y //安装DNS服务软件BIND

已加载插件:fastestmirror, langpacks

base | 3.6 kB 00:00:00

extras | 3.4 kB 00:00:00

updates | 3.4 kB 00:00:00

(1/4): base/7/x86_64/group_gz | 166 kB 00:00:00

(2/4): extras/7/x86_64/primary_db | 215 kB 00:00:00

...//省略部分内容...

[root@localhost ~]# vim /etc/named.conf //进入编辑主配置文件

//

// named.conf

//

// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS

// server as a caching only nameserver (as a localhost DNS resolver only).

//

// See /usr/share/doc/bind*/sample/ for example named configuration files.

//

// See the BIND Administrator's Reference Manual (ARM) for details about the

// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html

options {

listen-on port 53 { 192.168.144.135; }; //更改监听地址为本机地址

listen-on-v6 port 53 { ::1; };

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

recursing-file "/var/named/data/named.recursing";

secroots-file "/var/named/data/named.secroots";

allow-query { any; }; //权限放开,允许任何的主机都可以使用DNS服务

/*

- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.

- If you are building a RECURSIVE (caching) DNS server, you need to enable

recursion.

...//省略部分内容...

[root@localhost ~]# vim /etc/named.rfc1912.zones //修改区域配置文件

// RFC 1912 section 4.1 : localhost TLDs and address zones

// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt

// (c)2007 R W Franks

//

// See /usr/share/doc/bind*/sample/ for example named configuration files.

//

zone "localhost.localdomain" IN {

type master;

file "named.localhost";

allow-update { none; };

};

zone "localhost" IN {

type master;

file "named.localhost"; //复制此模板

allow-update { none; };

};

zone "kgc.com" IN { //粘贴并更新域名与主服务器相同

type slave; //设置类型为slave

file "slaves/kgc.com.zone"; //区域数据文件地址我们将从主服务器同步到slaves目录中

masters { 192.168.144.133; }; //删除原条目更改为指向主服务器的地址

};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

type master;

file "named.loopback";

allow-update { none; };

};

...//省略部分内容...

[root@localhost ~]# cd /var/named //进入区域数据文件存放目录

[root@localhost named]# ls //查看确定目录内是否有slaves命令

data dynamic named.ca - 最佳的named 来源和相关信息。 named.empty named.localhost named.loopback slaves

[root@localhost named]# ls slaves/ //进入目录,查看是否有内容

[root@localhost named]# //目前还没有内容

3、回到主服务器,更改配置文件,使主服务器与从服务器同步,完成后重启DNS服务

[root@localhost named]# vim /etc/named.rfc1912.zones //编辑主服务区域配置文件

//

zone "localhost.localdomain" IN {

type master;

file "named.localhost";

allow-update { none; };

};

zone "localhost" IN {

type master;

file "named.localhost";

allow-update { none; };

};

zone "kgc.com" IN {

type master;

file "Domain Name Marketplace";

allow-transfer { 192.168.144.135; }; //此处更改为指向从服务器的地址

};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

type master;

file "named.loopback";

allow-update { none; };

};

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

type master;

...//省略部分内容...

[root@localhost named]# systemctl restart named //重启DNS服务

4、回到从服务器,启动DNS服务,查看slaves目录内是否有同步的区域数据文件,然后与主服务一样编辑内容覆盖域名解析地址文件信息。

[root@localhost named]# systemctl restart named //启动DNS服务

[root@localhost named]# ls slaves/

Domain Name Marketplace

[root@localhost named]# echo "nameserver 192.168.144.135" > /etc/resolv.conf

[root@localhost named]# cat /etc/resolv.conf

nameserver 192.168.144.135

5、使用从服务解析域名,看是否可以解析、解析结果是否相同,如果相同表示我们建立的主从服务器成功。

[root@localhost named]# host www.kgc.com //解析域名www.kgc.com

www.kgc.com has address 192.168.100.99 //解析地址与主服务器相同

[root@localhost named]# host ftp.kgc.com //解析域名ftp.kgc.com

ftp.kgc.com has address 192.168.100.88 //解析地址与主服务器相同

[root@localhost named]# host aaa.kgc.com //反域名解析

aaa.kgc.com has address 8.8.8.8 //解析地址与主服务器相同

[root@localhost named]# host smtp.kgc.com //别名解析

smtp.kgc.com is an alias for www.kgc.com.

www.kgc.com has address 192.168.100.99 //解析地址与主服务器相同

写在最后:

本专栏所有文章均为南京课工场学员投稿,如有问题欢迎指出讨论,未经允许,禁止转载!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值