Coredns搭建DNS服务

CoreDNS 是一个灵活、可扩展的 DNS 服务器,常用于 Kubernetes 环境中,但也可以在其他场合单独部署。以下是在 Ubuntu 系统上部署 CoreDNS 的基本步骤:

步骤 1: 安装 CoreDNS

Ubuntu 官方仓库可能不包含最新版本的 CoreDNS,所以我们将手动下载并安装它。

  1. 首先,访问 CoreDNS 的 GitHub 发布页面来下载最新版本的 CoreDNS 二进制文件:
    CoreDNS GitHub Releases

  2. 使用 wget 命令下载适合您系统的版本(例如,如果是 Linux amd64 架构):

    wget https://github.com/coredns/coredns/releases/download/v1.8.3/coredns_1.8.3_linux_amd64.tgz  
    
  3. 解压下载的文件:

    tar -zxvf coredns_1.8.3_linux_amd64.tgz  
    
  4. 移动解压后的 coredns 可执行文件到 /usr/local/bin/:

    sudo mv coredns /usr/local/bin/  
    
  5. 确认 CoreDNS 已正确安装:

    coredns -version  
    

步骤 2: 配置 CoreDNS

CoreDNS 通过一个名为 Corefile 的配置文件进行配置。

  1. 创建一个存放 Corefile 的目录(如果尚未存在):

    sudo mkdir /etc/coredns  
    
  2. 创建并编辑 Corefile:

    sudo nano /etc/coredns/Corefile  
    

    以下是一个基础的配置示例,这配置了一个简单的 DNS 服务器,它处理 .example 域的请求:

.:53 {  errors  health  ready  log  cache 30  forward . 8.8.8.8 114.114.114.114  reload  
}  example.com {  hosts {  192.168.1.10 host1.example.com  192.168.1.20 host2.example.com  fallthrough  }  
}  test.com {  hosts {  10.10.100.100 test.com  }  
}  
配置文件详解

配置文件中的各个部分详细解释如下:

全局块 (.:53)
此部分设置了DNS服务器的基本行为和全局配置。

  • errors: 启用错误日志记录。如果DNS查询过程中发生错误,这些错误会被记录下来。
  • health: 启用健康检查。这通常用于监控DNS服务器的运行状态,确保它正常响应请求。 http://IP:8080/health
  • ready: 表示服务准备就绪,通常用于告知系统DNS服务已准备好接受查询。 http://IP:8181/ready
  • log: 开启日志记录,用于记录所有接收到的查询和响应的详细信息。
  • cache 30: 开启缓存,并设置缓存时间为30秒。这意味着DNS查询的结果会被缓存30秒,重复的查询在这段时间内可以直接从缓存中获得答案,从而加快响应速度和减轻服务器负担。
  • forward . 8.8.8.8 114.114.114.114: 设置默认的转发规则。如果DNS服务器无法本地解析某个域名,它会将查询转发到这些上游DNS服务器(Google的8.8.8.8和中国的114.114.114.114)。
  • reload: 允许在不重启服务的情况下重新加载配置文件,这对于更新配置而不中断服务非常有用。

example.com 块
这个块专门处理所有指向 example.com 域的DNS查询。

  • hosts: 在这个设置下,你可以直接指定域名到IP地址的映射。
    • 192.168.1.10 host1.example.com: 将 host1.example.com 解析到 192.168.1.10
    • 192.168.1.20 host2.example.com: 将 host2.example.com 解析到 192.168.1.20
  • fallthrough: 如果在此块中没有找到匹配的记录,DNS查询将继续传递到其他可能的解析器或转发规则中去。

test.com 块
此块专门处理所有指向 test.com 域的DNS查询。

  • hosts: 类似于 example.com 的设置,你可以直接指定域名到IP地址的映射。
    • 10.10.100.100 test.com: 将根域名 test.com 直接解析到 10.10.100.100

通过这种方式,你可以高效地管理和解析特定的域名请求,同时利用转发规则处理那些无法本地解析的查询。这样的配置既保证了响应速度,也增加了灵活性和可控性。

步骤 3: 创建 Systemd 服务文件

为了让 CoreDNS 成为一个系统服务并在启动时自动运行,您需要创建一个 systemd 服务文件。

  1. 创建并编辑 CoreDNS 服务文件:

    sudo nano /etc/systemd/system/coredns.service  
    
  2. 添加以下内容到服务文件:

    [Unit]  
    Description=CoreDNS DNS server  
    After=network.target  [Service]  
    PermissionsStartOnly=true  
    User=root  
    ExecStart=/usr/local/bin/coredns -conf /etc/coredns/Corefile  
    Restart=on-failure  [Install]  
    WantedBy=multi-user.target  
    
  3. 重新加载 systemd 管理器配置:

    sudo systemctl daemon-reload  
    
  4. 启动 CoreDNS 服务并设置为开机启动:

    sudo systemctl start coredns  
    sudo systemctl enable coredns  
    
  5. 检查 CoreDNS 服务的状态:

    sudo systemctl status coredns  
    

现在,您已经成功在 Ubuntu 上部署了 CoreDNS

步骤四

测试是否可用

nslookup host1.example.com [DNS的IP]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/9496.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c#---枚举与结构体

一、枚举 枚举是一组命名整型常量。 枚举类型是使用 enum 关键字声明的。 C# 枚举是值类型。 这里假如我们要做个切水果的游戏: //1.定义水果类型 public enum FruitType {Apple,Lemon,Watermelon,Banana,Cherry,COUNT//水果总数 }// 2.随机刷新水果 public stat…

Linux 系统启动时设置一个全局环境变量

在 Linux 系统中,如果你想要在启动时设置一个全局环境变量,你可以将其写入某些特定的启动文件中。这些文件在用户登录时被读取,从而设定环境变量。以下是一些方法: 方法 1: /etc/environment 在 /etc/environment 中设置的变量对…

【QT教程】QT6 Debug技巧 QT调试

QT6 Debug技巧 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免费Q…

python 前台页面和oracle数据库联动案例-用户注册

今天是python 入门day3,案例实现界面如图,比较简单, 一个简单的用户注册页面,并且可以与Oracle数据库进行交互。 界面如图: 实现这个简单demo的过程中,遇到很多错误, 1、提交过程中提示主键不…

照片文件夹惊变白板?揭秘背后的原因及恢复秘籍

我们生活在一个数字化时代,照片已经成为记录生活的重要方式。然而,当你兴冲冲地打开保存珍贵记忆的文件夹时,却发现里面的照片全都变成了白板,这种心情无异于晴天霹雳。那么,这究竟是怎么回事呢? 照片文件夹…

【记录】常见的前端设计系统(Design System)

解释一下设计系统的定义,以及在国内,都有那些优秀的设计系统可以学习,希望可以帮到大家。 什么是设计系统(Design System)? 设计系统(Design System)是一套综合性的指导原则、组件和规则&…

react router v6总结

一、使用createBrowserRouter()创建路由: 1、src/router/index.js: import { createBrowserRouter } from "react-router-dom"; import ErrorPage from "/pages/404/";const router createBrowserRouter([{path: "/",e…

Mysql8.0.30一次表锁问题的解决

起因 给material_config_field_data表的字段建立全文索引的时,发现该表卡死,然后无法对该表进行任何操作。 查找问题 执行sql #这个命令会显示InnoDB存储引擎的详细状态信息,包括锁等待和锁争用的信息 SHOW ENGINE INNODB STATUS结果 复制S…

stable diffusion教程

Stable Diffusion 是一种流行的图像生成模型,它可以根据文本提示生成高质量的图片。如果你想了解如何使用 Stable Diffusion,这里有一些基本的步骤和资源,可以帮助你开始使用: ### 1. 安装 Stable Diffusion 首先,你需…

语言基础 /CC++ 可变参函数设计与实践,变参函数的实现、使用、替代方法

文章目录 概述适用于做可变参数的数据类型格式化字符串输出用int做变长参数类型用结构体指针做变长参数类型用double做变长参数类型用结构体直接做变长参数类型 变参函数与宏定义符号 ... 不能透传符号 ... 不接受ap做参数_VA_ARGS_ 代表可变参数 回调可变参数函数取代变参函数…

Linux 第二十四章

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

Spring MVC(二)

1. 注解RequestMapping修饰类 在Spring MVC中一般都是使用注解RequestMapping来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置的映射地址作用一致。在上一节的内容中,我们通过注解RequestMapping改进…

计算机系统基础知识

计算机软件基础知识计算机软件基础知识 软件构件 构件又称为组件,是一个自包容、可复用的程序集,这个集合整体向外提供统一的访问接口, 构件外部只能通过接口来访问构件,而不能直接操作构件的内部。 构件的两个最重要的特性是自…

vue3.0(五) reactive全家桶

文章目录 1 reactive1.1 reactive的应用1.2 reactive的特点1.3 reactive的注意1.4 reactive的局限性 2 toRefs3 isReactive4 shallowReactive5 readonly5.1 readonly 详细信息5.2 readonly函数创建一个只读的响应式对象5.3 如何修改嵌套在只读响应式对象中的对象? 6 isReadonl…

小程序(三)

十三、自定义组件 (二)数据方法声明位置 在js文件中 A、数据声明位置:data中 B、方法声明位置methods中,这点和普通页面不同! Component({/*** 组件的属性列表*/properties: {},/*** 组件的初始数据*/data: {isCh…

在RK3588开发板使用FFMpeg 结合云服务器加SRS实现摄像头数据推流到云端拱其他设备查看

今天测试了一把在开发板把摄像头数据推流到云端服务器,然后给其他电脑通过val软件拉取显示摄像头画面,浅浅记录一下大概步骤 1.开发板端先下载ffmpeg apt install ffmpeg2.云服务器先安装SRS的库 云服务器我使用ubuntu系统,SRS是个什么东西&…

优雅处理Python 使用xlrd 读取 Excel 报错:xlrd.compdoc.CompDocError

在用python xlrd库读取excel时,有时候会遇到 xlrd.compdoc.CompDocError报错。 其实注释掉库种raise的那几行,可以是可以,但是要修改库文件,并不好。 最好的方式是: wb open_workbook(fpath, formatting_infoTrue…

Mujoco210 和 Mujoco-py 在 Ubuntu22.04 下的安装

mujoco和mujoco-py的关系:mujoco是一个物理引擎,主要应用于强化学习和最优化控制领域。mujoco-py是mujoco编程的 Python 接口,由OpenAI Gym开发,可以使用mujoco_py方便地调用mujoco的API。 mujoco官网: https://mujoco.org/ 1.安装 Mujoco210 1. 从 Github下载 Mujoco …

怎么开发付费视频系统_轻松拥有知识付费平台

在信息爆炸的时代,我们每天都在被海量的内容所包围。但你有没有想过,如何将这些内容变得更加有价值,更加个性化,甚至能够为你带来经济收益?今天,就让我带你走进一个全新的领域——付费视频系统,…

电解制氢电源-零排放氢源生成器

电解制氢电源:氢能源的制造者 氢能作为一种清洁、高效的能源,正逐渐成为我国能源战略的重要组成部分。电解制氢电源作为氢能产业链的核心环节,对于实现氢能产业的可持续发展具有重要意义。 电解制氢电源是一种利用电能将水分解为氢气和氧气的…