LINUX查询dns代码,linux-dns(示例代码)

Linux-DNS

引述:日志在马哥视频公开课基础上编写,感谢马哥

一、概念

DNS:Domain Name Service

名称解析:将一种格式的信息转化为另外一种格式,以某关键字为标准查找某一数据库的过程

DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,

从功能上可以实现正向解析和反向解析。

FQDN:Full Qualified Domain Name 完全域名解析

FQDN --> IP正向解析

IP --> FQDN反向解析

查询:

递归查询:用于客户机向DNS服务器查询,只发出一次请求,最终能得到最终答案

迭代查询:用于DNS服务器向其他DNS服务器查询,发出多次请求。

DNS服务器的类型(从工作形式上分为)

主DNS服务器:在特定区域内具有唯一性、负责维护该区域内的域名与IP地址对应情况。

从(辅助)DNS服务器:从主服务器中获得域名与IP对应关系并维护,以防主服务器宕机等情况。

缓存名称服务器:通过向其他域名解析服务器查询获得域名与IP地址对应关系,以提高重复查询时的效率。

DNS服务协议分布式的数据库系统:

根域

.org.net.com.edu.gov.others

googlemeeyufacebook

wwwweb1web2

注:上级仅知道其直接下级,下级只知道根(.)位置。

二、安装bind程序

Bind(Berkeley InternetName Daemon)伯克利互联网域名服务。

#yuminstall -y bind bind-chroot

/usr/sbin/named                   //主程序

/etc/named.conf                   //主配置文件

/etc/named.rfc1912.zones           //区域配置文件.

DNS的数据库文件(区域数据文件,区域自身有名字):文本文件,只能包含资源记录或宏定义,每行一个,数据库中的,每一个条目称为一个资源记录(Resource Record RR)

资源记录的格式:

name [ttl(缓存时间)] IN 资源记录类型(RRtype) Value

例子:

www 600(单位s) IN A 1.2.3.4

www.meeyu.com. 600 IN A 1.2.3.4

name:只能是区域名称,通常可以简写为@

value:有n个数值,最主要的是主DNS服务器的FQDN,点不可省略

注意:SOA必须是区域数据库文件第一条记录

例子:

@600 IN NS ns

SOA(Start of authority)起始资源记录

ZONENAME    TTL  IN  SOA   FQDN admin_mailbox (

serialnumber        //版本号,注释内容,十进制数据,不能超过10位,通常使用日期

refresh          //刷新时间,多久检查一次主服务器;

retry           //刷新失败后,重试时间,应小于refresh

expire          //过期时间

nattl     )      //否定答案缓存时间

资源记录类型:

NS:可以有多条

lA:只能定义在正向区域数据文件中,name:FQDN(可以使用相对名称) value:IP

www  600(单位s) IN A 192.168.100.120

lPTR:IP --> FQDN,只能定义在反向区域数据文件中

120 600 IN PTR www.meeyu.com.

lMX:可以有多个,name:区域名称,用于标识smtp服务器; value:包含优先级和FQDN,优先级:0-99,数字越小,级别越高,

@ 600 IN MX 10 mailCNAME:别名,name :FQDN ;value :FQDN

ftpIN CHANE www

三、实例

1.备份文件:

# cp/etc/named.conf{,.bak}

# cp /etc/named.rfc1912.zones{,.bak}

2.编写配置文件:

修改主配置文件

# vim /etc/named.conf

options {

listen-on port 53 { 192.168.100.106; };  //监控本机端口

directory      "/var/named";     //文件目录

allow-query     { any ; };       //访问 控制

recursion yes;                    //是否递归

};

修改区域配置文件:

# vim /etc/named.rfc1912.zones    //添加域

zone"meeyu.com" IN {

type master;

file "named.meeyu";

};

#zone"100.168.192.in-addr.arpa" IN {

type master;

file "named.106";

};

3.编写区域对应文件

正向区域文件:

#vim /var/named/named.meeyu

$TTL900

meeyu.com.   IN SOA  ns.meeyu.com.admin.meeyu.com. (

2016010101

12H

15M

2D

6H  )

IN NS   ns

ns           IN A    192.168.100.106

web1         IN A    192.168.100.107

web2         IN A    192.168.100.108

www          IN CNAME web1

反向区域文件

# vim /var/named/named.106

$TTL900

@            IN SOA  ns.meeyu.com.admin.meeyu.com. (

2016010101

12H

15M

2D

6H  )

IN NS   ns.meeyu.com.

107         IN  PTR web1.meeyu.com.

108          IN PTR  web2.meeyu.com.

4.语法检查

name-checkconf检查主配置文件

named -u named

name-checkzone"区域文件" 配置文件

客户端指向的DNS服务器,一定是允许给本地主机做递归的

域:Domain,逻辑概念

区域:zone,物理概念

5.测试命令:

dig命令

dig [-t type][-x addr] name @DNS服务器

+[no]trace [不]适用迭代,路由追踪

+[no]tcp是否使用tcp

+[no]recurse:是否使用递归

host

host[-t type]{name} [server]

nslookup

nslookup>

serverDNS_SERVER_IP

set q=TYPE

{name}

反向解析测试:dig -x IP @Server

6.区域传输

axfr:完全区域传送

ixfr:增量区域传送

注:在主服务器上只允许从服务器传送数据

allow-transfer {192.168.100.110; };

主服务增加允许传送配置:

在正向区域和反向区域同时增加:

区域传送:

用dig模拟完全区域传送

dig -t axfr区域名称 @server

主从同步:

/etc/resolv.conf

主从:

主:bind版本可以低于从的

主从可以不再同一网段

向区域中添加从服务器的关键两步

在上级获得授权

在区域数据文件中为从服务器添加一条NS记录和对应的A或PTR记录

masters{ip;};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值