参考文章:
前置知识
centos8是linux系统,所以想要使用需要对linux基本命令有所了解。 本例子中要求使用者掌握 文本的编辑和保存操作
- 进入文件:
vim 文件路径 - 编辑文件:进入文件后按
i进入编辑模式。然后可以对文件进行修改。 - 保存文件:如果在其他模式下(如编辑模式等),需要先按esc回到初始状态,然后按下
:键进入命令模式,然后输入wq即可保存退出。w为保存,q为退出。
设置本机ip
- 输入命令
cd /etc/sysconfig/network-scripts/回车,进入网络配置目录里面 - 输入
ls列出本目录下的文件 - 编辑对应的网卡文件
vim ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.75.2
NETMASK=255.255.255.0
NETWORK=192.168.75.0
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=add141ba-3850-4197-9c10-e6d356b3ff68
DEVICE=ens33
ONBOOT=yes
- 保存退出
:wq,重启网络服务,centos8下为nmcli c reload。 - 可以使用
ifconfig查看网络信息。
搭建DNS
1. 安装 BIND 服务器软件并启动
yum -y install bind bind-utils
systemctl start named.service // 启动服务
systemctl enable named // 设为开机启动
查看named进程是否正常启动
ps -eaf|grep named // 检查进程
ss -nult|grep :53 // 检查监听端口
yum安装失败?
很有可能是虚拟机没有连上网络,我们打开虚拟机配置,将网卡设置为NAT模式,然后在主机中打开服务,将VMWARE NAT Service和VMWARE DHCP Service服务打开。
2.修改/etc/named.conf配置文件
vi /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.
//
options {
listen-on port 53 { any; }; //开启监听端口53,接受任意IP连接
listen-on-v6 port 53 { ::1; }; //支持IP V6
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";
allow-query { 0.0.0.0/0; }; //允许任意IP查询
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones"; //主要配置文件
include "/etc/named.root.key";
保存文件:wq
3. 修改/etc/named.rfc1912.zones文件,添加study.com的正向和反向区域
注意,此文件中可以配置一级域名,并为其规定正向和反向解析域所对应的文件
vi /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;
file "named.loopback";
allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};
zone "study.com" IN {
type master;
file "study.com.zone";//正向解析域所对应的文件
allow-update { none; };
};
zone "75.168.192.in-addr.arpa" IN {
type master;
file "study.com.local";//反向解析域所对应的文件
allow-update { none; };
};
这里需要注意的是,添加反向区域时,网络号要反过来写(网络号是IP地址与子网掩码进行与操作后的结果)。例如,我现在配置的网络号192.168.75这个网段,那么它的反向区域是75.168.192.in-addr.arpa。 区域里面的file字段表明解析时的数据来源文件,接下来我们去创建study.com.zone和study.com.local文件。
4. 添加正向解析域
基于 name.localhost 模板,创建配置文件:cp -p /var/named/named.localhost /var/named/study.com.zone
配置正向域名解析文件 study.com.zone : vi /var/named/study.com.zone ,配置内容如下:
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
www IN A 192.168.75.10
mail IN A 192.168.75.11
ftp IN A 192.168.75.12
library IN A 192.168.75.13
5. 添加反向解析域
基于 name.localhost 模板,创建配置文件: cp -p /var/named/named.localhost /var/named/study.com.local
配置反向域名解析文件 study.com.local : vi /var/named/study.com.local
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
10 IN PTR www.hello.com.
11 IN PTR mail.hello.com.
12 IN PTR ftp.hello.com.
13 IN PTR library.hello.com.
~
保存退出
检查配置
检查主配置文件语法;在linux中输入named-checkconf,若无报错即为配置正确。
重启 named 服务,让配置生效
重启 named 服务,让配置生效 systemctl restart named
注册域名解析服务器到linux
首先,输入ifconfig(和windows下不同),查看网络状态。
其中 ens33即为网卡名。
配置 ifcfg-xxxx vi /etc/sysconfig/network-scripts/ifcfg-ens33
如果正确找到了网卡配置文件的话不会是空文件
在文件末尾加上DNS1=192.168.75.2 // 新增,本机就是域名解析服务器
然后保存退出, 重启网络服务 nmcli c reload.
本机检验
做好了以上配置以后,在本机使用bind-utils提供的nslookup工具检验是否搭建成功。
防火墙配置
需要将53端口的udp和tcp都打开。
firewall-cmd --zone=public --add-port=53/tcp --permanent
firewall-cmd --zone=public --add-port=53/udp --permanent