DNS原理及其配置

简介:

DNS----Domain Name System域名系统 


工作原理:

                   171327624.jpg

作用: 

1)将域名, 主机名解析成对应的IP地址 正向解析

2)将IP地址解析成对应的主机名,域名        反向解析 


DNS解析方式:

递归

客户端只需要向DNS服务器发送一次请求

迭代

客户端需要发送多次DNS请求



区域zone


正向区域xxx.com

反向区域X.X.X.in-addr.arpa  

记录Record


A记录主机记录

www.uplooking.comA192.168.1.1 


NS记录标识DNS服务器自身的名称 

                NSdns1.uplooking.com.

dns1.uplooking.comA192.168.1.2


MX记录标识邮件服务器的名称 


MX 10mail.uplooking.com. 

mail.uplooking.com.A192.168.1.3



CNAME记录别名记录 


m.mail.com.CNAMEmail.uplooking.com. 



PTR记录反向指针记录 


192.168.1.1PTRwww.uplooking.com.

部署DNS服务器


软件: bind, bind-chroot


伪根/var/named/chroot 


/etc/named.conf ------>  /var/named/chroot/etc/named.conf


配置文件:


主配置文件/var/named/chroot/etc/named.conf建立区域

记录文件/var/named/chroot/var/named/*



服务: named, named-chroot 

端口: 

53/udp负责接收客户端DNS请求

53/tcp负责主从服务器数据同步




示例:搭建DNS服务器 


web.uplooking.com192.168.1.1网站服务器

ftp.uplooking.com192.168.1.2FTP服务器

mail.uplooking.com192.168.1.3 邮件服务器 


准备工作:

关闭SELinux, 防火墙 

配置YUM源 

1安装软件 


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



2编辑DNS的主配置文件,创建区域uplooking.com 


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

options {

   directory "/var/named";

};


zone "uplooking.com" {

   type master; 

   file "uplooking.com.zone";

};


区域类型:

hint根域

master  主区域

slave从区域




3复制记录文件的模板,并编辑 


[root@localhost ~]# cp /usr/share/doc/bind-9.8.2/sample/var/named/named.localhost /var/named/chroot/var/named/uplooking.com.zone

[root@localhost ~]# vim /var/named/chroot/var/named/uplooking.com.zone

$TTL 1D

@       IN SOA  uplooking.com. 454452000.qq.com. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        NS      dns1.uplooking.com.

dns1    A       192.168.122.105

web     A       192.168.1.1

ftp     A       192.168.1.2

        MX  5   mail.uplooking.com.

mail    A       192.168.1.3                                             



4启动named服务 


[root@dns ~]# systemctl start named-chroot

[root@dns ~]# systemctl start named

[root@dns ~]# systemctl enable named

Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

[root@dns ~]# systemctl enable named-chroot

Created symlink from /etc/systemd/system/multi-user.target.wants/named-chroot.service to /usr/lib/systemd/system/named-chroot.service.

[root@dns ~]# 


[root@dns ~]# ss -antp | grep named

LISTEN     0      10     192.168.122.105:53                       *:*                   users:(("named",pid=2249,fd=21))


[root@dns ~]# ss -anup | grep named

UNCONN     0      0      192.168.122.105:53                       *:*                   users:(("named",pid=2249,fd=513))




5测试 



注意:


配置方法如下: 


[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 

# Generated by dracut initrd

NAME="eth0"

ONBOOT=yes

BOOTPROTO=none

TYPE=Ethernet

IPADDR=192.168.122.121

NETMASK=255.255.255.0

GATEWAY=192.168.122.1

DNS1=192.168.122.105



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

# Generated by NetworkManager

nameserver 192.168.122.105

[root@localhost ~]# 



测试工具:


1) nslookup  


[root@localhost ~]# nslookup 

> server

Default server: 192.168.122.105

Address: 192.168.122.105#53

> web.uplooking.com

Server:192.168.122.105

Address:192.168.122.105#53


Name:web.uplooking.com

Address: 192.168.1.1

> ftp.uplooking.com

Server:192.168.122.105

Address:192.168.122.105#53


Name:ftp.uplooking.com

Address: 192.168.1.2

> mail.uplooking.com

Server:192.168.122.105

Address:192.168.122.105#53


Name:mail.uplooking.com

Address: 192.168.1.3

> exit



2) dig  


# dig -t <TYPE> <host> 


[root@localhost ~]# dig -t A web.uplooking.com


; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A web.uplooking.com

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39100

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2


;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;web.uplooking.com.INA


;; ANSWER SECTION:

web.uplooking.com.86400INA192.168.1.1


;; AUTHORITY SECTION:

uplooking.com.86400INNSdns1.uplooking.com.


;; ADDITIONAL SECTION:

dns1.uplooking.com.86400INA192.168.122.105


;; Query time: 1 msec

;; SERVER: 192.168.122.105#53(192.168.122.105)

;; WHEN: 三 2月 22 11:45:42 CST 2017

;; MSG SIZE  rcvd: 97


利用DNS记录实现负载均衡效果:


webA192.168.1.1

webA192.168.1.4


泛域名记录 


uplooking.com.  A       192.168.1.1


*.uplooking.com.A192.168.1.1










本文转自 北冥有大鱼  51CTO博客,原文链接:http://blog.51cto.com/lyw168/1957483,如需转载请自行联系原作者
目录
相关文章
|
12天前
|
数据采集 消息中间件 监控
Flume数据采集系统设计与配置实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入探讨Apache Flume的数据采集系统设计,涵盖Flume Agent、Source、Channel、Sink的核心概念及其配置实战。通过实例展示了文件日志收集、网络数据接收、命令行实时数据捕获等场景。此外,还讨论了Flume与同类工具的对比、实际项目挑战及解决方案,以及未来发展趋势。提供配置示例帮助理解Flume在数据集成、日志收集中的应用,为面试准备提供扎实的理论与实践支持。
25 1
|
30天前
|
存储 安全 编译器
【C++ 17 新功能 std::visit 】深入解析 C++17 中的 std::visit:从原理到实践
【C++ 17 新功能 std::visit 】深入解析 C++17 中的 std::visit:从原理到实践
70 0
|
26天前
|
安全 Java 数据安全/隐私保护
【深入浅出Spring原理及实战】「EL表达式开发系列」深入解析SpringEL表达式理论详解与实际应用
【深入浅出Spring原理及实战】「EL表达式开发系列」深入解析SpringEL表达式理论详解与实际应用
57 1
|
1天前
|
缓存 JavaScript 前端开发
|
1天前
|
JavaScript IDE 编译器
TypeScript中模块路径解析与配置:深入剖析与最佳实践
【4月更文挑战第23天】本文深入探讨了TypeScript中模块路径解析的原理与配置优化,包括相对路径、Node.js模块解析和路径别名。通过配置`baseUrl`、`paths`、`rootDirs`以及避免裸模块名,可以提升开发效率和代码质量。建议使用路径别名增强代码可读性,保持路径结构一致性,并利用IDE插件辅助开发。正确配置能有效降低维护成本,构建高效可维护的代码库。
|
2天前
|
SQL 分布式计算 资源调度
一文解析 ODPS SQL 任务优化方法原理
本文重点尝试从ODPS SQL的逻辑执行计划和Logview中的执行计划出发,分析日常数据研发过程中各种优化方法背后的原理,覆盖了部分调优方法的分析,从知道怎么优化,到为什么这样优化,以及还能怎样优化。
|
2天前
|
Java
并发编程之线程池的底层原理的详细解析
并发编程之线程池的底层原理的详细解析
11 0
|
2天前
|
JSON Java Maven
Javaweb之SpringBootWeb案例之自动配置以及常见方案的详细解析
Javaweb之SpringBootWeb案例之自动配置以及常见方案的详细解析
6 0
Javaweb之SpringBootWeb案例之自动配置以及常见方案的详细解析
|
2天前
|
JSON Java Maven
Javaweb之SpringBootWeb案例之 SpringBoot原理的详细解析
Javaweb之SpringBootWeb案例之 SpringBoot原理的详细解析
7 0
Javaweb之SpringBootWeb案例之 SpringBoot原理的详细解析
|
2天前
|
前端开发 JavaScript 编译器
深入解析JavaScript中的异步编程:Promises与async/await的使用与原理
【4月更文挑战第22天】本文深入解析JavaScript异步编程,重点讨论Promises和async/await。Promises用于管理异步操作,有pending、fulfilled和rejected三种状态。通过.then()和.catch()处理结果,但可能导致回调地狱。async/await是ES2017的语法糖,使异步编程更直观,类似同步代码,通过事件循环和微任务队列实现。两者各有优势,适用于不同场景,能有效提升代码可读性和维护性。

相关产品

  • 云解析DNS
  • 推荐镜像

    更多