基于BIND软件实现互联网DNS解析

一、什么是DNS服务

DNS全称(Domain Name System)域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串;DNS通过软件来进行实现域名对IP的解析;这里是通过BIND开源软件实现;BIND是开放源码软件,它允许在Internet上发布域名系统(DNS)信息,并为用户解析DNS查询;该名称绑定代表是"Berkeley Internet Name Domain"BIND是迄今为止使用最广泛的DNS软件在互联网上,提供了一个强大的和稳定的平台之上的组织可以建立分布式计算系统与知识,这些系统完全符合发布的DNS标准;BIND实现DNS协议,而DNS协议是核心互联网标准的一部分。

二、用户的基本上网流程

如下图:

三、DNS工作机制

如下图:

四、实践互联网DNS解析

1、实践前的规划

(a)配置流程图:

(b)配置主机规划:


编号


主机名


角色


IP地址


1


linux-node1-root


root


192.168.10.10


2


linux-node2-com


com


192.168.10.11


3


linux-node3-icescn-com01


icescn.com


192.168.10.12


4


linux-node4-icescn-com02


192.168.10.13


5


dns-proxy


proxy


192.168.10.16


6


client


client


192.168.10.26

(c)操作系统信息:

系统版本:CentOS6.7  内核版本:2.6.32  系统架构:X86_64  安装状态:Minimal

2、预基础配置

(a)关闭防火墙及SELINUX安全;

/etc/init.d/iptables stop|status

grep ‘\<SELINUX\>‘ /etc/sysconfig/selinux

(b)配置HOSTS解析(每个主机都配置);

cat /etc/hosts

# DNS service for hosts

192.168.10.10 linux-node1-root linux-node1

192.168.10.11 linux-node2-com linux-node2

192.168.10.12 linux-node3-icescn-com01 linux-node3

192.168.10.13 linux-node4-icescn-com02 linux-node4

192.168.10.16 dns-proxy

192.168.10.85 client

(c)安装BIND服务软件(每个主机都配置);

yum install bind -y

(d)基础选项配置(每个主机都配置);

cat /etc/named.conf

options {

# 监听本地所有网卡IP;

listen-on port 53 { localhost; };

# 是否允许其他主机来查询;也可以允许特定的主机来查询;

allow-query     { any; };

# 是否允许其他主机来本机抓取记录;"none"为不允许;

allow-transfer {none;};

# 关闭相关安全选项;

dnssec-enable no;

dnssec-validation no;

};

注意:参数"allow-transfer"在主从同步的服务器上需要进行授权从服务器来抓取记录,其他的则禁止;

(e)配置解析的根文件(每个主机都配置):

cat /var/named/named.ca

.                  3600000      NS    A.ROOT-SERVERS.NET.

A.ROOT-SERVERS.NET.      3600000      A     192.168.10.10

注意:"根"服务器不需要配置,它需要单独进行配置区域;该文件在生产环境意味着服务器是否能上网解析;

(f)服务加入开机自启动(每个主机都配置);

cat /etc/rc.local

# Bind service start by icescn at 20170430

/etc/init.d/named start &>/dev/null

(g)配置流程:后续配置

(A)icescn.com --> (B)com --> (C)根 <---> (D)proxy授权代理 <--- (E)client解析

3、配置主从解析记录同步:二级域

MASTER上:

(a)允许指定主机来同步:

cat /etc/named.conf

options {

allow-transfer {192.168.10.13;};

};

named-checkconf # 检查主配置文件是否有语法错误;

(b)配置区域解析文件:

cat /etc/named.rfc1912.zones

zone "icescn.com" IN {

type master;  # 指定类型为主;

file "icescn.com.zone";  # 指定区域解析记录文件路径;

};

cat /var/named/icescn.com.zone

$TTL 1D

@ IN      SOA dns1 admins.icescn.com. ( 2017043000 1D 1w 2w 3w )

@        NS  dns1

@        NS  dns2

dns1      A      192.168.10.12

dns2      A      192.168.10.13

www       CNAME   webservers

webservers  A      192.168.10.27

bbs       A      192.168.10.28

blog      A      192.168.10.29

@        MX 10   mailservers

mail      CNAME   mailservers

mailservers A        192.168.10.30

named-checkzone "icescn.com.zone" /var/named/icescn.com.zone # 检查区域解析文件是否语法错误;

(c)重新启动服务:

/etc/init.d/named restart

ss -tanl | grep "53"

SLAVE上:

(a)禁止其他主机来本机抓取区域解析记录:

cat /etc/named.conf

options {

allow-transfer {none;};

};

named-checkconf

(b)建立同步区域文件配置:

cat /etc/named.rfc1912.zones

zone "icescn.com" IN {

type slave;  # 指定类型为从;

masters {192.168.10.12;};  # 指定主服务器地址;

file "slaves/icescn.com.zone.slave";  # 指定同步的区域记录文件路径;

};

(c)重新启动服务:

/etc/init.d/named restart

ss -tanl | grep "53"

ls -l /var/named/slaves/

注意:"slaves"必须要有写的权限,意味着"named"用户对此目录有写权限;

DNS-PROXY上:

测试主从同步的区域解析文件是否正常:

dig www.icescn.com @192.168.10.12

dig www.icescn.com @192.168.10.13

for n in {12,13};do echo "# DNS SERVER: $n";for i in "www" "bbs" "blog" "mail";do dig ${i}.icescn.com @192.168.10.${n} | egrep "^(w|b|m)";done;done;

到此DNS主从同步配置完成!

4、配置COM委派:一级域

COM上:

(a)建立com的委派区域文件:

cat /etc/named.rfc1912.zones

zone "com" IN {

type master;  # 指定类型为主;

file "com.zone";  # 指定区域解析记录文件路径;

};

cat /var/named/com.zone

$TTL 1D

@ IN      SOA com1 admins.com1.com. ( 2017043000 1D 1w 2w 3w )

@        NS com1

icescn.com.  NS icescndns1

com1      A     192.168.10.11

icescndns1  A     192.168.10.12

注意:这里委派是给"icescn.com"二级域;

(b)检查语法并且启动服务:

named-checkconf

named-checkzone "com" /var/named/com.zone

/etc/init.d/named restart

ss -tanl | grep "53"

DNS-PROXY上:

测试COM是否委派成功:

dig www.icescn.com @192.168.10.11

dig mail.icescn.com @192.168.10.11

5、配置ROOT委派:根

ROOT上:

(a)建立根的委派区域文件:

cat /etc/named.conf

zone "." IN {

type master;  # 指定根的类型为主(自己为主);

file "root.zone";  # 指定区域解析记录文件路径;

};

cat /var/named/root.zone

$TTL 1D

@ IN     SOA root1 admins.root1.com. ( 2017043000 1D 1w 2w 3w )

@       NS  root1

com.     NS  comdns1

root1    A      192.168.10.10

comdns1   A      192.168.10.11

注意:这里委派是给"com"一级域;

(b)检查语法并且启动服务:

named-checkconf

named-checkzone "." /var/named/root.zone

/etc/init.d/named restart

ss -tanl | grep "53"

DNS-PROXY上:

测试根是否委派成功:

dig www.icescn.com @192.168.10.11

dig mail.icescn.com @192.168.10.11

注意:最好清空下上次测试的缓存记录;rndc flush:清空本地解析缓存;

6、ProxyDNS代理配置:解析根文件(前面配置过了)

cat /var/named/named.ca

.                  3600000      NS    A.ROOT-SERVERS.NET.

A.ROOT-SERVERS.NET.      3600000      A     192.168.10.10

/etc/init.d/named restart

ss -tanl | grep "53"

7、客户端访问互联网域名解析

cat /etc/resolv.conf

nameserver 192.168.10.16

dig www.icescn.com

dig bbs.icescn.com

dig blog.icescn.com

dig mail.icescn.com

到此,互联网DNS解析就配置完成 !

时间: 2024-10-10 20:00:39

基于BIND软件实现互联网DNS解析的相关文章

[爬虫学习笔记]C#基于ARSoft.Tools.Net的DNS解析模块(半成品)

      最近在做爬虫的作业,今天学习的内容是关于DNS解析模块的制作的.使用的库为ARSoft.Tools.Net,它是一个非常强大的开源DNS控件库,包含.Net SPF validation, SenderID validation以及DNS Client.DNS Server接口.使用该接口可轻松实现DNS客户请求端及服务器解析端.项目地址:http://arsofttoolsnet.codeplex.com/,Nuget包地址:https://www.nuget.org/packag

基于BIND实现的DNS正反解析及主从DNS的配置

测试环境 准备2台虚拟机,一台为主DNS,IP地址为:192.168.103.161.另一台为从DNS,IP地址为:192.168.103.162两台都装好bind,所需包有:bind,bind-utils,bind-libs 主DNS的配置文件 配置主文件/etc/named.conf,如下所示 // // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // se

DNS服务及基于BIND的实现

1.DNS 概述 1.1.DNS的出现及演化 网络出现的早期是使用IP地址通讯的,那时就几台主机通讯.但是随着接入网络主机的增多,这种数字标识的地址非常不便于记忆,UNIX上就出现了建立一个叫做hosts的文件(Linux和Windows也继承保留了这个文件).这个文件中记录着主机名称和IP地址的对应表.这样只要输入主机名称,系统就会去加载hosts文件并查找对应关系,找到对应的IP,就可以访问这个IP的主机了. 但是后来主机太多了,无法保证所有人都能拿到统一的最新的hosts文件,就出现了在文

CentOS7-1810 系统DNS服务器BIND软件配置说明

DNS的出现的历史 网络出现的早期是使用IP地址通讯的,那时就几台主机通讯.但是随着接入网络主机的增多,这种数字标识的地址非常不便于记忆,UNIX上就出现了建立一个叫做hosts的文件(Linux和Windows也继承保留了这个文件).这个文件中记录着主机名称和IP地址的对应表.这样只要输入主机名称,系统就会去加载hosts文件并查找对应关系,找到对应的IP,就可以访问这个IP的主机了.但是后来主机太多了,无法保证所有人都能拿到统一的最新的hosts文件,就出现了在文件服务器上集中存放hosts

&nbsp; &nbsp; &nbsp; &nbsp; 基于bind的简单DNS搭建

我们都知道互联网通信是基于IP地址的,然而我们在访问一个网站的时候只需输入主机名(有时也指我们所说的域名)即可实现,那是因为我们在背后用到了将主机名解释为了对应的IP地址的机制--DNS.下面我们来介绍DNS的实现过程. 一:bind的安装配置(正反解析): 1.bind 介绍:bind:bekerleyinternet name domain,我们简单的理解它是用bind 工具实 现DNS服务器的配置. 2.bind 安装:bind 安装比较简单我们可以使用下面命令安装并查看安装bind都生成

搭建DNS主从服务器实现反向解析,子域,转发,智能DNS及排错和互联网DNS架构实验

1基本知识点 DNS服务 DNS:Domain Name System 应用层协议C/S,53/udp, 53/tcpBIND:Bekerley Internat Name DomainISC (www.isc.org)本地名称解析配置文件:hosts DNS域名 根域一级域名:Top Level Domain: tldcom, edu, mil, gov, net, org, int,arpa三类:组织域.国家域(.cn, .ca, .hk, .tw).反向域二级域名三级域名最多127级域名I

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。

今天带大家来看看如何手动编译源码bind,自己手动编译安装的很多文件都要自己去建立,配置文件也要从零写起,而且没有服务启动脚本,需要自己编写启动脚本. 实验规划: 1.在192.168.1.200这台主机上编译安装bind,完成后为named服务编写启动脚本,加入到service. 2.配置view实现智能DNS解析:当请求解析www.tuchao.com,来源为192.168.1.0/24时候,解析到192.168.1.100.其他的来源都解析到外网地址,1.1.1.1 3.使用querype

BIND与dns解析 一

1.常见的dns解析方式: 正向解析:由主机名解析出IP地址 反向解析:由IP地址解析出主机名 2.名称域:层级分布式数据库 (金字塔型) 第一层:    根域 " . "表示 第二层     顶级域(宏观上分为俩种) 1.用于正向解析的组织域和地理域 2.用于反向解析的反向域:in-addr.arpa 第三层     二级域 三级域 四级域 ..... 最后会解析到一个:完全合格域名(FQDN) ,也是主机名的完全名称. 注意:1.因为正向解析和反向解析用的是不同的顶级域,因此使用的

基于bind搭建DNS主从

使用bind的主从复制功能可以实现的功能:提供冗余,避免单点故障:均衡负载查询需求,从而提高系统可用性. 一.安装 #bind-chroot 负责DNS安全作用,将bind进程严格限制在特定的目录中 yum install bind bind-chroot bind-utils 二.配置文件 bind主服务器 #bind主配置文件 cat /etc/named.conf options { listen-on port 53 { any; }; listen-on-v6 port 53 {:1;