• 【网络篇】如何搭建自己的DNS服务器


    引言

    平时练习域名解析,一般直接修改的/etc/hosts文件。对于服务器数量小的情况完全可以,但是如果服务器数量较多,每个都修改比较麻烦。

    DNS是作为域名解析。在实际的生产过程中,尤其是对于内网搭建的情况,DNS不可能使用互联网的DNS,这时需要我们自行搭建。

    环境准备

    我这里准备了4台虚拟机。

    提供服务IP地址域名
    DNS192.168.189.254
    Harbor192.168.189.30harbor.kubernetes.com
    Nfs192.168.189.31nfs.kubernetes.com
    Nginx192.168.189.32nginx.kubernetes.com

    实际操作

    1. 修改主机名称
    hostnamectl set-hostname xxx
    
    • 1
    2. 修改固定ip
    vi /etc/sysconfig/network-scripts/ifcfg-ens33
    
    • 1
    # 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"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    每台服务器按照此方法修改,将自己的DNS服务器ip放在前面。然后重启即可。

    3. 安装bind
    yum install -y bind
    
    • 1
    4. 关闭防火墙
    systemctl stop firewalld
    systemctl disable firewalld
    firewall-cmd --state
    
    • 1
    • 2
    • 3
    5. 关闭selinux
    setenforce 0   # 临时
    sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config   # 永久
    
    • 1
    • 2
    6. 修改/etc/named.conf
    vi /etc/named.conf
    
    • 1
    # 修改13行和21行,加any;
    13         listen-on port 53 { 127.0.0.1;any; };
    
    21         allow-query     { localhost;any; };
    
    • 1
    • 2
    • 3
    • 4
    7. 修改/etc/named.rfc1912.zones
    vi /etc/named.rfc1912.zones
    
    • 1
    # 注册一段新的域名
    zone "kubernetes.com" IN {
            type master;
            file "kubernetes.com.zone";
            allow-update { none; };
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    8. 新建kubernetes.com.zone并修改
    cd /var/named/
    
    cp -p named.localhost kubernetes.com.zone
    
    • 1
    • 2
    • 3

    vi kubernetes.com.zone
    
    • 1
    $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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    说明:使用Tab隔开,不能使用空格。

    9. 启动服务
    systemctl enable named
    
    systemctl start named
    
    • 1
    • 2
    • 3
    10. 检查验证
    yum -y  install bind-utils
    
    • 1
    nslookup
    
    • 1

  • 相关阅读:
    JAVA基础(JAVA SE)学习笔记(一)JAVA学习路线、行业了解、开发环境JDK17安装配置
    2022哪个牌子的台灯质量好?双十一值得入手的好用护眼台灯推荐
    文件管理工具“三剑客” #Everything #SpaceSniffer #Clover
    Sentinel整合OpenFeign
    【华为OD机试】选修课【2023 B卷|100分】
    eyb后端项目搭建(一)
    Docker 部署 PostgreSQL 服务
    算法设计与分析之算法绪论
    HTTP协议和Tomcat服务器
    Blazor前后端框架Known-V1.2.5
  • 原文地址:https://blog.csdn.net/weixin_45842494/article/details/127780511