dns配置和各种文件中注意的点

1 简写

看简写的形式: 最简单的是

概念: zone语句的第二个字段用来指定域名,该域名是该区域数据文件中所有数据的来源(origin)

www.cui.   IN A 192.168.7.234

简写方式是 www IN  A 192.168.7.234

其实:www就是表示cui.这个域下的主机

其简写的来源依据是:

zone "cui" in {

typemaster;

file"db.cui";

};

在RR中,所有不以 “.” 结尾的名的,如www  会自动附加上配置文件中中zone后面那个 字段的来源 “cui”  所以结合起来也就是  www.cui.

同理

234.7.168.192.in-addr.arpa.  IN PTR www.cui.

简写:

234    IN  PTR www.cui.

2 @符号的表示法

如果一个域名和来源相同的话,那么改名称就可以被表示为”@“  最常见在区域数据文件中的SOA记录中

可以写成为

@ IN SOA bind1.cui. bind1.cui. ( 1h 3h 1h 1w 2h)

【安全性的 控制 查询 传输】

1 allow-query 允许查询的地址

默认 是只允许localhost

allow-query     { localhost; };

结果: 非本地来的查询 将不会应答

一般改成: 允许来自所有的query,或者有acl控制特定的网络

allow-query     { any };

2 allow-transter {any ;};

作用: 控制区域传送的(master 和slave

允许那些主机接收服务的区域传送

3  recursion yes;  允许递归查询

4 allow-recursion { any;}  默认的,指定允许哪些主机通过本服务器进行递归查询

5 allow-query-cache { any ;};

查找缓存

6 网络监听接口 一般设置为

作用: 服务器回应查询的端口号和接口(即IP地址)

listen-on port 53 { youIP; };

如果: 设为 listen-on port 53 { any ;};  则所有端口都将监听起来

应用: 如不想在IPv6 的接口上监听

listen-on-v6 port 53 { none; };

【rndc 维护dns命令】

1 管理dns 可以通过发送一些linux上的信号进行

如:

 kill -HUP `cat /var/run/named.pid`

rndc提供更多的手段通过信道(channel)用信号去管理

== 重载:

如:

rndc reload

重新加载server配置文件和zone区域文件

等于

/etc/init.d/named reload  = kill  kill -HUP `cat /var/run/named.pid`

注意: 还一个重载指定的区域  rndc reload zone

如: rndc reload zone

==  重启服务

rndc restart  == /etc/init.d/named restart

== 状态

rndc status == /etc/init.d/named status

== stop/start

rndc stop == /etc/init.d/named stop == kill TERM `cat /var/run/named.pid`

== 清空缓存

rndc flush

注意: 区别重载和重启的区别:

最直观的是,重启进程pid会改变,重载不会改变

重载只是重新读取配置文件而已,没有把程序杀死在重启开启

2 rndc  可以控制的前提:

/etc/rndc.key

可以手动生成

rndc-confgen -r /dev/urandom -a

注: named.conf 中可以通过options 中的 controls 选项指定控制,默认不需要

3 rndc 监听端口是 953

4 修改了primary中的区域文件信息之后一定要记得  把序列号加+1

5 报错:

9 15:32:50 cui2 named[10634]: none:0: open: /etc/rndc.key: permission denied

解决办法:

chmod +r /etc/rndc.key

【解析器的那些文件和作用】

1 解析器就是  dns的客户端程序

如:

telnet shop-web01.beta  会去调用dns解析器 解析这个shop-web01.beta域名

ftp

ping

ssh

scp

等等程序都调用了dns解析器程序

2 涉及的文件

nsswitch.conf

/etc/resolve.conf

/etc/hosts

hostname

3 现象

为什么 ping dpindex-web01  解析器会将这个会自动解析dpindex-web01.beta

4 解释nsswitch.conf文件说明

一般用途: 其中一个行默认

hosts: files dns

其意思是  解析器解析域名的时候先查找/etc/hosts 下,在查找dns名称服务器

5 解释hostname和本地域的作用

hostname  如果是一个 主机名.域的形式如: shop-web01.beta

那么 点号后面的(beta) 就代表本地域

有了本地域在输入的时候,解析器就会自动补充如:

ping dpindex-web01

解析器会读成  dpindex-web01.beta  自动加上了本地域

作用,如tab一样可以减少输入

注:

如果 hostname主机名种没有 “.”  那么会将域变成root

关于要不要加上本地域 和 主机名中存在多个 ”.“ 的情况,解析器都是很智能能都都会处理好!

6 解释 /etc/resolve.conf 文件中的各个指令

domain

search

nameserver

options

domain 也是指定本地域,如果resolve.conf 中存在,这个指令

如 domain beta   那么会覆盖hostname计算出来的本地域

search指令 和domain 类似

只是 支持多个域

nameserver  指定使用的名称服务器

如:

nameserver 1.1.1.1

nameserver 2.2.2.2

nameserver 3.3.3.3

可以使用多个,当第一个故障时使用第二个

只有当  第一个查询超时时或者网络错误的时候,才会使用第二个!

注意,不是说第一个查询不到结果(正常的返回),这样是不会使用第二个名称服务器的

options 指令设置 一些debug 或者超时 重试等的

如:

options attempts:4 timeout:2 ndots:2

注:

一些特点和不同的版本是有区别的,以上在8版本之后都是支持的

其他一些关于太详细的用的不多的,请自行参考bind and dns 这本权威的书

【解析命令】

1 nslookup 在主要在windows下使用,linux下简单可以使用

nslookup 域名

nslookup IP  反向解析

解析出来的信息刨析:

参考

http://doc.okbase.net/1382972/archive/110141.html

重点关注:

flags 标志,如果出现就表示有标志,如果不出现就未设置标志:

qr query,查询标志,代表是查询操作

rd recursion desired, 代表希望进行递归(recursive)查询操作

ra recursive available 在返回中设置,代表查询的服务器支持递归(recursive)查询操作。

aa Authoritative Answer 权威回复,如果查询结果由管理域名的域名服务器而不是缓存服务器提供的,则称为权威回复。

AUTHORITY 权威域名服务器记录数,5代表该域名有5个权威域名服务器,可供域名解析用。对应下面AUTHORITY SECTION

ADDITIONAL 格外记录数,6代表有6项格外记录。对应下面 ADDITIONAL SECTION。

2 dig 命令

dig  域名

默认使用 本地dns(/etc/resolve.conf) 下配置的,去解析

默认解析A记录

选项或者参数

dig @dnsserver  域名

指定以你指定的名称服务器去解析这个域名

如:

dig @localhost .beta

dig -t type类型  域名

作用:指定记录类型

如:

dig -t MX dianping.com

dig -x IP

作用: 进行反解析,一般在内网工作起作用

如:

dig -x 192.168.213.86

dig +trace 域名

作用: 强制从root开始迭代查找结果

如:

dig +trace

www.sina.com.cn

【forward 】

自己转发不了的,转发给指定的名称服务器去解析

常用配置是,对某个区域自己解析不了的进行forward配置!

如:

对于 beta和nh这个区域,本地localhost 名称服务器是无法解析的,所以需要进行针对这个区域进行转发

type forward;

forward { 192.168.211.116; };

注: 当然也可以进行 全局进行都转发,这台名称服务器完完全全只作为转发服务器进行的!

其工作过程: 默认是 转发优先(相对 迭代 root而言)

其过程是: 本地解析域名,如果本地没有或者缓存没有,那么就像转发服务器发起查询,如果经过短暂周期没有收到应答响应,那么久会进行正常的操作,开始进行迭代查询!

是否加上forward-only; 只是有那么一点区别和 转发优先 ,只是速度上的一点区别而已!

鉴于版本不一样,我的bind版本 9.8

tail -f /var/log/messages

默认配置文件下,只配置   forward 一个区域的话,可能解析不了,会报错

validating @0x7f4f680616c0: beta SOA: got insecure response; parent indicates it should be secure

解决方案:

dnssec-enable no;

dnssec-validation no;

将yes都统统变成no

时间: 2024-10-15 07:56:27

dns配置和各种文件中注意的点的相关文章

shiro配置参考(二)可以和mybatis的配置放在一个文件中(不建议这样,可以拆分开来,注意相关配置即可)

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/

php.ini在php脚本文件中的配置

1.在脚本中可以用以下语法进行配置php.ini中的要配置项: 语法:ini_set("设置项名称",值)  例如:ini_set("display_errors",false);不显示所有错误信息 2.在php.ini文件中配置: 在文件中找到er ror_reporting选项,如: error_reporting=E_ALL | E_STRICT  打开所有错误信息提示 (用逻辑或就是打开的意思),如果想再关闭部分提示 用 error_reporting=E_

.net中读取xml文件中节点的所有属性信息

功能描述: 将数据以xml的格式记录成配置文件,需要获取配置文件中的数据时,则获取对应的配置文件,读取配置文件里对应节点的所有属性. 逻辑实现: 1.将数据配置好在xml文件中. 2.获取xml文件中所有对应的节点. 3.遍历每个节点,获取该节点所有的属性值. 4.将属性值赋到设计的节点类中. 具体实现: 实现效果

Java propertis文件中组装配置

目的: 实现在配置文件中,进行组装 1.Properties文件配置如下: dns=http://211.103.227.133:8080 qrcode=${dns}/wx/views/invite/register.html 类似域名和公共的东西,希望在properties文件中直接进行组装,而不是在代码中进行组装 2.使用spring注解 @Value注解 注意:图中使用@Service或 @Component,并且@Value必须写在set属性上,否则取不到值 输出结果为: http://

web.xml文件中的7个错误的安全配置

关于Java的web.xml文件中配置认证和授权有大 量 的 文章.本文不再去重新讲解如何配置角色.保护web资源和设置不同类型的认证,让我们来看看web.xml文件中的一些常见的安全错误配置. (1) 自定义的错误页面没有配置 默认情况下,Java Web应用在发生错误时会将详细的错误信息展示出来,这将暴露服务器版本和详细的堆栈信息,在有些情况下,甚至会显示Java代码的代码片段.这些信息对为他们的病毒需找更多信息的黑客来说是一种恩惠.幸运的是,通过配置web.xml文件来展示自定义的错误页面

不在JPA 的 persistence.xml 文件中配置Entity class的解决办法

在Spring 集成 Hibernate 的JPA方式中,需要在persistence配置文件中定义每一个实体类,这样非常地不方便,2种方法可以解决此问题: 这2种方式都可以实现不用在persistence.xml文件中配置每一个实体类,从而免去每个Entity都要在persistence.xml文件中配置的烦恼,但是这种方式Entity实体类的主键字段注解@ID要放到 getXXX()方法上,否则不认. 方式1: 修改“LocalContainerEntityManagerFactoryBea

在TNSNAMES.ORA文件中配置本机装的oracle

首先,感谢这两位网友:http://zhidao.baidu.com/link?url=eGYeoEa-EhQdVitSGqjE36uNfVmEsryXH1WUjPue6YvArDSx-Y1N9_rd9Hx6vh-NklyevkcCtAMh1X28fI1Hoq 引子: 我在Oracle SQL Developer工具中创建了一个名为"oa"的连接,然后登陆PLSQL Developer,从本地导入一张表"T_DEPT",打开Oracle SQL Developer,

spring在xml文件中配置bean的三种方法

一.最常见,也是缺省,是调用spring的缺省工厂类 spring缺省工厂类:org.springframework.beans.factory.support.DefaultListableBeanFactory使用其静态方法preInstantiateSingletons() 配置文件中最普通最基本的定义一个普通bean<bean id="DvdTypeDAOBean" class="com.machome.dvd.impl.DvdTypeDAO" >

struts.xml文件中action配置、OGNL的投影映射、OGNL表达式的符号

在struts.xml文件中不同的action配置,请求的路径是不一样的 1.请求 path = user!query.action; 配置如下: <action name="user" class="com.bwf.code.action.UserAction"> <result name="queryUser">/query.jsp</result> </action> 2.请求path = u