dns

DNS使用的是TCP协议还是UDP协议简析?

dns同时占用tcp和udp的53端口!
区域传复送时使用TCP,主要有一下两点考虑:

  • 1.辅域名服务器会定时(一般时3小时)向主域名服务器进行查询以便了制解数据是否有变动。如有变动,则会执行一次区域传送,进行数据同步。区域传送将使用TCP而不是UDP,因为数据同步传送的数据量比一个请求和应答的百数据量要多得多。
  • 2.TCP是一种可靠的连接,保证了数据的准确性。
    域名解析时使用UDP协议:
    客户端向DNS服务器查询域名,一般返回的度内容都不超过512字节,用UDP传输即可。不用经过TCP三次握手,这样DNS服务器负载更低,响应更快。虽然从理论上说,问客户端也可以指定向DNS服务器查询的时候使用TCP,但事答实上,很多DNS服务器进行配置的时候,仅支持UDP查询包。

DNS

先认识一下这三个配置文件:

1
2
3
/etc/hosts #:这个是最早的 hostname 对应 IP 的存档;
/etc/resolv.conf #:当需要解析域名时,读取该文件获得DNS 服务器 IP;
/etc/nsswitch.conf#:这个档案『决定』先使用 /etc/hosts 还是 /etc/resolv.conf 的设定!

当电脑要访问一个域名时,要将域名翻译成IP地址。
这个过程通常会先访问/etc/hosts,看本地是否有对应的hostname – IP记录。
如果没有就去查询DNS服务器,通过/etc/resolv.conf 得到dns服务器地址。

当在eth接口启用DHCP后,本地resolv.conf文件将被修改,resolv.conf文件中的DNS地址将被改为从DHCP获取到的地址。这种从DHCP获得的DNS即是Peer DNS。

启用DHCP后即便修改/etc/resolv.conf,不久又恢复成原样。如何解决这个问题?此时,你得要在 /etc/sysconfig/network-scripts/ifcfg-eth0 等相关档案内,增加一行:『PEERDNS=no』,然后重新启动网络即可。