引言
平时练习域名解析,一般直接修改的/etc/hosts文件。对于服务器数量小的情况完全可以,但是如果服务器数量较多,每个都修改比较麻烦。
DNS是作为域名解析。在实际的生产过程中,尤其是对于内网搭建的情况,DNS不可能使用互联网的DNS,这时需要我们自行搭建。
环境准备
我这里准备了4台虚拟机。
提供服务 | IP地址 | 域名 |
---|---|---|
DNS | 192.168.189.254 | |
Harbor | 192.168.189.30 | harbor.kubernetes.com |
Nfs | 192.168.189.31 | nfs.kubernetes.com |
Nginx | 192.168.189.32 | nginx.kubernetes.com |
实际操作
1. 修改主机名称
hostnamectl set-hostname xxx
2. 修改固定ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33
# ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
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="d9e74a0c-c0ff-4708-802d-3aa8ed8c4981"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.189.254"
PREFIX="24"
GATEWAY="192.168.189.2"
DNS1="192.168.189.254"
DNS2="119.29.29.29"
每台服务器按照此方法修改,将自己的DNS服务器ip放在前面。然后重启即可。
3. 安装bind
yum install -y bind
4. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
firewall-cmd --state
5. 关闭selinux
setenforce 0 # 临时
sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config # 永久
6. 修改/etc/named.conf
vi /etc/named.conf
# 修改13行和21行,加any;
13 listen-on port 53 { 127.0.0.1;any; };
21 allow-query { localhost;any; };
7. 修改/etc/named.rfc1912.zones
vi /etc/named.rfc1912.zones
# 注册一段新的域名
zone "kubernetes.com" IN {
type master;
file "kubernetes.com.zone";
allow-update { none; };
};
8. 新建kubernetes.com.zone并修改
cd /var/named/
cp -p named.localhost kubernetes.com.zone
vi kubernetes.com.zone
$TTL 1D
@ IN SOA kubernetes.com admin.kubernetes.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS ns.kubernetes.com.
ns A 192.168.189.254
harbor A 192.168.189.30
www A 192.168.189.30
nfs A 192.168.189.31
nginx A 192.168.189.32
说明:使用Tab隔开,不能使用空格。
9. 启动服务
systemctl enable named
systemctl start named
10. 检查验证
yum -y install bind-utils
nslookup