DNS相关的东东
试过也一般,但官方是这样写的,备忘一下:
When URLs are just not resolving the way you want it, to time to clear or flush the dns nameserver local cache -flush-the-loacl-cache
How to clear the local DNS cache….
OSX 10.10
OSX 10.9
OSX 10.7 – 10.8
OSX 10.5 – 10.6
Windows
Linux (depending on what you’re running)
When URLs are just not resolving the way you want it, to time to clear or flush the dns nameserver local cache -flush-the-loacl-cache
How to clear the local DNS cache….
OSX 10.10
sudo discoveryutil udnsflushcaches
OSX 10.9
dscacheutil -flushcache; sudo killall -HUP mDNSResponder
OSX 10.7 – 10.8
sudo killall -HUP mDNSResponder
OSX 10.5 – 10.6
sudo dscacheutil -flushcache
Windows
ipconfig /flushdns
Linux (depending on what you’re running)
/etc/init.d/named restart
/etc/init.d/nscd restart
/etc/init.d/nscd restart
今天朋友要我帮忙注册个域名,我就打开我的godaddy账号给帮忙注册了。后来说要转到他名下,麻烦事情,还不如刚刚开始的时候他自己注册了,或者新建一个账号。。。
当然了,域名本来就是个私有的物品,这个所有权可以控制网站的访问,对于网站而言,至关重要,要体谅所有权这个问题。
在godaddy里转换域名所有权也不难,就是感觉多折腾了,参考如下说明:
1 Push Domain From One Account to Another on GoDaddy
2 Moving a Domain Name out of Your Account
3 domain transfer @ godaddy
当然了,域名本来就是个私有的物品,这个所有权可以控制网站的访问,对于网站而言,至关重要,要体谅所有权这个问题。
在godaddy里转换域名所有权也不难,就是感觉多折腾了,参考如下说明:
1 Push Domain From One Account to Another on GoDaddy
2 Moving a Domain Name out of Your Account
3 domain transfer @ godaddy
故意出错,你可以知道一些错误发生的原因,检查方法:
下面是碰到的部分错误:
1 logging channel 'query_log' file '/logs/query.log': file not found
开了logging,但没有创建日志文件会提示出错
2 logging channel 'query_log' file '/logs/query.log': permission denied
可能伴有这样的错误:
有权限的问题,可能你得查一下用户权限,如果是使用SELINUX,输入getenforce 看看现在的安全级别
可以关闭SELinux如果你不需要,编辑 /etc/sysconfig/selinux 文件
3 couldn't open pid file '/var/named.pid': Permission denied
还是目录权限的问题,如果没有该目录,创建并且给named权限
4 /etc/named.conf:14: when using 'view' statements, all zones must be in views
如果使用了view,那就不能在主文件单独定义了啦,可怜的,必须在每个view里面都定义每个zone
但是,如果你不需要根据每个view处理不一样的,你可以在每个view都引用同一个解析文件
5 transfer of 'aslibra.com/IN' from 192.168.1.41#53: failed while receiving responses: permission denied
检查一下是否master加了此主机为允许的ip了
Master在reload和restart时会发生notify
也就是加载后会发送当前的serial标识的给notify列表的机器
slave机器要注意对配置文件的可写权限
正常的情况:
两个机器的配置文件会不一样的,传输并非文件传输,而是数据传输:
Master的配置文件:
Slave的配置文件:
6 如何检查配置文件
如果有错误,会提示你信息,没有错则没有提示了
7 如何检查zone文件
8 重载配置文件
tail -n 20 /var/log/messages | grep named
下面是碰到的部分错误:
1 logging channel 'query_log' file '/logs/query.log': file not found
开了logging,但没有创建日志文件会提示出错
2 logging channel 'query_log' file '/logs/query.log': permission denied
可能伴有这样的错误:
kernel: audit(1240046511.743:4): avc: denied { write } for pid=5649 comm="named" name="logs" dev=dm-0 ino=778352 scontext=root:system_r:named_t:s0 tcontext=root:object_r:named_conf_t:s0 tclass=dir
有权限的问题,可能你得查一下用户权限,如果是使用SELINUX,输入getenforce 看看现在的安全级别
可以关闭SELinux如果你不需要,编辑 /etc/sysconfig/selinux 文件
3 couldn't open pid file '/var/named.pid': Permission denied
还是目录权限的问题,如果没有该目录,创建并且给named权限
4 /etc/named.conf:14: when using 'view' statements, all zones must be in views
如果使用了view,那就不能在主文件单独定义了啦,可怜的,必须在每个view里面都定义每个zone
但是,如果你不需要根据每个view处理不一样的,你可以在每个view都引用同一个解析文件
5 transfer of 'aslibra.com/IN' from 192.168.1.41#53: failed while receiving responses: permission denied
检查一下是否master加了此主机为允许的ip了
Master在reload和restart时会发生notify
... zone myzcom.com/IN/any: loaded serial 2008061100
... running
... zone aslibra.com/IN/any: sending notifies (serial 2008061100)
... running
... zone aslibra.com/IN/any: sending notifies (serial 2008061100)
也就是加载后会发送当前的serial标识的给notify列表的机器
slave机器要注意对配置文件的可写权限
引用
.. received notify for zone 'aslibra.com'
.. dumping master file: config/tmp-XXXXeybkW9: open: permission denied
.. transfer of 'aslibra.com/IN' from 192.168.1.41#53: failed while receiving responses: permission denied
.. transfer of 'aslibra.com/IN' from 192.168.1.41#53: end of transfer
.. dumping master file: config/tmp-XXXXeybkW9: open: permission denied
.. transfer of 'aslibra.com/IN' from 192.168.1.41#53: failed while receiving responses: permission denied
.. transfer of 'aslibra.com/IN' from 192.168.1.41#53: end of transfer
正常的情况:
引用
.. received notify for zone 'aslibra.com'
.. zone aslibra.com/IN: transferred serial 2008061100
.. transfer of 'aslibra.com/IN' from 192.168.1.41#53: end of transfer
.. zone aslibra.com/IN: transferred serial 2008061100
.. transfer of 'aslibra.com/IN' from 192.168.1.41#53: end of transfer
两个机器的配置文件会不一样的,传输并非文件传输,而是数据传输:
Master的配置文件:
[root@aslibra etc]# cat config/domain-aslibra.com.any
$TTL 300
@ IN SOA ns.aslibra.com. hqlulu.gmail.com. (
2008061100 ; serial
3600 ; refresh
60 ; retry
604800 ; expire
3600 ; minimum
)
NS ns2.aslibra.com.
NS ns.aslibra.com.
www A 222.76.215.25
ns A 192.168.1.41
ns2 A 192.168.1.42
$TTL 300
@ IN SOA ns.aslibra.com. hqlulu.gmail.com. (
2008061100 ; serial
3600 ; refresh
60 ; retry
604800 ; expire
3600 ; minimum
)
NS ns2.aslibra.com.
NS ns.aslibra.com.
www A 222.76.215.25
ns A 192.168.1.41
ns2 A 192.168.1.42
Slave的配置文件:
[root@localhost etc]# cat config/domain-aslibra.com.any
$ORIGIN .
$TTL 300 ; 5 minutes
aslibra.com IN SOA ns.aslibra.com. hqlulu.gmail.com. (
2008061100 ; serial
3600 ; refresh (1 hour)
60 ; retry (1 minute)
604800 ; expire (1 week)
3600 ; minimum (1 hour)
)
NS ns.aslibra.com.
NS ns2.aslibra.com.
$ORIGIN aslibra.com.
ns A 192.168.1.41
ns2 A 192.168.1.42
www A 222.76.215.25
$ORIGIN .
$TTL 300 ; 5 minutes
aslibra.com IN SOA ns.aslibra.com. hqlulu.gmail.com. (
2008061100 ; serial
3600 ; refresh (1 hour)
60 ; retry (1 minute)
604800 ; expire (1 week)
3600 ; minimum (1 hour)
)
NS ns.aslibra.com.
NS ns2.aslibra.com.
$ORIGIN aslibra.com.
ns A 192.168.1.41
ns2 A 192.168.1.42
www A 222.76.215.25
6 如何检查配置文件
[root@aslibra etc]# named-checkconf -t /var/named/chroot/
/etc/config/view-any.conf:13: option 'masters' is not allowed in 'master' zone 'aslibra.com'
[root@aslibra etc]# named-checkconf -t /var/named/chroot/
[root@aslibra etc]#
/etc/config/view-any.conf:13: option 'masters' is not allowed in 'master' zone 'aslibra.com'
[root@aslibra etc]# named-checkconf -t /var/named/chroot/
[root@aslibra etc]#
如果有错误,会提示你信息,没有错则没有提示了
7 如何检查zone文件
[root@fetion etc]# named-checkzone -t /var/named/chroot/ aslibra.com /etc/config/domain-aslibra.com.any
zone aslibra.com/IN: loaded serial 2008061100
OK
[root@fetion etc]# named-checkzone aslibra.com /var/named/chroot/etc/config/domain-aslibra.com.any
zone aslibra.com/IN: loaded serial 2008061100
OK
zone aslibra.com/IN: loaded serial 2008061100
OK
[root@fetion etc]# named-checkzone aslibra.com /var/named/chroot/etc/config/domain-aslibra.com.any
zone aslibra.com/IN: loaded serial 2008061100
OK
8 重载配置文件
service named reload
一般而言,随便找个合适的dns服务器作为自己的dns解析服务器即可,但如果选择不当,可能就会导致网络选择并不是最优的。
这个情况一般发生在电信网通优化的域名上。
检查方法(域名有所替换):
第一个是目前自己的网络,dig +trace是用自己本身取获取解析
我们看到,第一次和第二次是不一样的,原因比较简单,这个是网通和电信的不同路线
第一个是从202.106.0.20(自己设定的dns服务器)返回的,以它访问目标域名服务器所取得的数据为准,也就是如果它是网通IP,则返回的就是网通的解析方案,而trace则直接咨询目标域名服务器,目标服务器根据你的IP来返回解析方案。
如果你是电信线路,而设定的是网通线路的dns服务器,这个时候就容易取得网通解析方案了。
也给我们引发一些注意的地方:
1 自己架设本地dns缓存服务器是最合适的解析方案
2 找到自己线路的dns服务器才有最优的访问效果
这个情况一般发生在电信网通优化的域名上。
检查方法(域名有所替换):
[root@aslibra ~]# dig cdl.cdn.aslibra.com
...(省略)
;; ANSWER SECTION:
cdl.cdn.aslibra.com. 683 IN A 218.25.68.145
cdl.cdn.aslibra.com. 683 IN A 218.25.68.192
cdl.cdn.aslibra.com. 683 IN A 218.25.11.105
;; Query time: 6 msec
;; SERVER: 202.106.0.20#53(202.106.0.20)
;; WHEN: Wed Jun 10 16:40:07 2009
;; MSG SIZE rcvd: 84
[root@aslibra ~]# dig cdl.cdn.aslibra.com +trace
...(省略)
cdl.cdn.aslibra.com. 900 IN A 60.191.185.162
cdl.cdn.aslibra.com. 900 IN A 60.191.187.8
...(省略)
;; Received 282 bytes from 61.160.207.67#53(ns1.dnspod.net) in 0 ms
...(省略)
;; ANSWER SECTION:
cdl.cdn.aslibra.com. 683 IN A 218.25.68.145
cdl.cdn.aslibra.com. 683 IN A 218.25.68.192
cdl.cdn.aslibra.com. 683 IN A 218.25.11.105
;; Query time: 6 msec
;; SERVER: 202.106.0.20#53(202.106.0.20)
;; WHEN: Wed Jun 10 16:40:07 2009
;; MSG SIZE rcvd: 84
[root@aslibra ~]# dig cdl.cdn.aslibra.com +trace
...(省略)
cdl.cdn.aslibra.com. 900 IN A 60.191.185.162
cdl.cdn.aslibra.com. 900 IN A 60.191.187.8
...(省略)
;; Received 282 bytes from 61.160.207.67#53(ns1.dnspod.net) in 0 ms
第一个是目前自己的网络,dig +trace是用自己本身取获取解析
我们看到,第一次和第二次是不一样的,原因比较简单,这个是网通和电信的不同路线
第一个是从202.106.0.20(自己设定的dns服务器)返回的,以它访问目标域名服务器所取得的数据为准,也就是如果它是网通IP,则返回的就是网通的解析方案,而trace则直接咨询目标域名服务器,目标服务器根据你的IP来返回解析方案。
如果你是电信线路,而设定的是网通线路的dns服务器,这个时候就容易取得网通解析方案了。
也给我们引发一些注意的地方:
1 自己架设本地dns缓存服务器是最合适的解析方案
2 找到自己线路的dns服务器才有最优的访问效果
bind有一项功能是forward,也就是只是做dns缓存。
适用以下情况:
1 做临时测试,不想向上级申请修改ns记录
2 不想向上级申请修改ns记录但希望交给另外的服务器处理
3 只有有限的公网IP,可以在把dns请求交给局域网
设置很简单:
也就是我把域名解析权交给了某个IP,这个服务器只是做cache。
forward only是可选,不设置则该 DNS Server 无法联系到转发器,那么 BIND 会自己尝试解析。
如果你要禁止 BIND 在无法联系到转发器时不做任何操作,那么你还可以使用 forward only 命令,这样 BIND 只能使用区的权威数据和缓存来响应查询了( 在连接不到转发器的情况下 )。
forwarders可以添加多个dns服务器。
我们先做一个测试环境:
三台ns解析服务器,有ns、ns2和ns3
ns和ns2是权威的解析服务器,ns改为bind的forward,后端是ns3。
我们用dig检查一下:
看出来区别了吧,300和295是有效性,300是默认的有效时间,也就是说,刚开始就新缓存了这个记录,5秒后查询已经是从缓存取的记录,这个过了300秒后会重新从后端服务器取值。
而我们看看ns2:
这个是一直都是一样的,这个说明是直接提供的服务,不是forward。
就这么简单,have fun!!
适用以下情况:
1 做临时测试,不想向上级申请修改ns记录
2 不想向上级申请修改ns记录但希望交给另外的服务器处理
3 只有有限的公网IP,可以在把dns请求交给局域网
设置很简单:
zone "aslibra.com" {
type forward;
forward only;
forwarders {218.241.231.189;};
};
type forward;
forward only;
forwarders {218.241.231.189;};
};
也就是我把域名解析权交给了某个IP,这个服务器只是做cache。
forward only是可选,不设置则该 DNS Server 无法联系到转发器,那么 BIND 会自己尝试解析。
如果你要禁止 BIND 在无法联系到转发器时不做任何操作,那么你还可以使用 forward only 命令,这样 BIND 只能使用区的权威数据和缓存来响应查询了( 在连接不到转发器的情况下 )。
forwarders可以添加多个dns服务器。
我们先做一个测试环境:
三台ns解析服务器,有ns、ns2和ns3
ns和ns2是权威的解析服务器,ns改为bind的forward,后端是ns3。
我们用dig检查一下:
[root@localhost view]# dig www.aslibra.com @ns.aslibra.com
...(省略)
;; ANSWER SECTION:
www.aslibra.com. 300 IN A 222.76.215.25
;; Query time: 9 msec
;; SERVER: 219.232.241.83#53(219.232.241.83)
;; WHEN: Sun May 31 00:14:15 2009
;; MSG SIZE rcvd: 49
[root@localhost view]# dig www.aslibra.com @ns.aslibra.com
...(省略)
;; ANSWER SECTION:
www.aslibra.com. 295 IN A 222.76.215.25
;; Query time: 0 msec
;; SERVER: 219.232.241.83#53(219.232.241.83)
;; WHEN: Sun May 31 00:14:20 2009
;; MSG SIZE rcvd: 49
...(省略)
;; ANSWER SECTION:
www.aslibra.com. 300 IN A 222.76.215.25
;; Query time: 9 msec
;; SERVER: 219.232.241.83#53(219.232.241.83)
;; WHEN: Sun May 31 00:14:15 2009
;; MSG SIZE rcvd: 49
[root@localhost view]# dig www.aslibra.com @ns.aslibra.com
...(省略)
;; ANSWER SECTION:
www.aslibra.com. 295 IN A 222.76.215.25
;; Query time: 0 msec
;; SERVER: 219.232.241.83#53(219.232.241.83)
;; WHEN: Sun May 31 00:14:20 2009
;; MSG SIZE rcvd: 49
看出来区别了吧,300和295是有效性,300是默认的有效时间,也就是说,刚开始就新缓存了这个记录,5秒后查询已经是从缓存取的记录,这个过了300秒后会重新从后端服务器取值。
而我们看看ns2:
[root@localhost view]# dig www.aslibra.com @ns2.aslibra.com
...(省略)
;; ANSWER SECTION:
www.aslibra.com. 300 IN A 222.76.215.25
;; AUTHORITY SECTION:
aslibra.com. 300 IN NS ns.aslibra.com.
aslibra.com. 300 IN NS ns2.aslibra.com.
aslibra.com. 300 IN NS ns3.aslibra.com.
;; ADDITIONAL SECTION:
ns.aslibra.com. 300 IN A 219.232.241.83
ns2.aslibra.com. 300 IN A 219.232.241.84
ns3.aslibra.com. 300 IN A 218.241.231.189
;; Query time: 0 msec
;; SERVER: 219.232.241.84#53(219.232.241.84)
;; WHEN: Sun May 31 00:15:25 2009
;; MSG SIZE rcvd: 150
...(省略)
;; ANSWER SECTION:
www.aslibra.com. 300 IN A 222.76.215.25
;; AUTHORITY SECTION:
aslibra.com. 300 IN NS ns.aslibra.com.
aslibra.com. 300 IN NS ns2.aslibra.com.
aslibra.com. 300 IN NS ns3.aslibra.com.
;; ADDITIONAL SECTION:
ns.aslibra.com. 300 IN A 219.232.241.83
ns2.aslibra.com. 300 IN A 219.232.241.84
ns3.aslibra.com. 300 IN A 218.241.231.189
;; Query time: 0 msec
;; SERVER: 219.232.241.84#53(219.232.241.84)
;; WHEN: Sun May 31 00:15:25 2009
;; MSG SIZE rcvd: 150
这个是一直都是一样的,这个说明是直接提供的服务,不是forward。
就这么简单,have fun!!