Dns介绍:
域名系统(英文:Domain Name System,缩写:DNS)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址
即解决的是IP地址和域名的映射问题。DNS是多层命名服务器构成的分布式数据库,属于应用层协议,DNS使用TCP和UDP端口53。
当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符,是Internet的核心功能。
Dns解析过程:
以客户端访问www.qq.com为例
- 首先查找本地hosts文件及本地dns解释器缓存
- 查找LDNS(local dns)服务器(缓存) 202.106.0.20
- 查找根域服务器
- 查找.com顶级域服务器
- LDNS请求.com服务器找到qq.com服务器
- LDNS请求qq.com服务
- qq.com服务器返回www.qq.com域名的ip解析记录给LDNS
- LDNS返回给客户机解析记录及缓存到本地
Dns域名空间结构:
域名系统作为一个层次结构和分布式数据库,包含各种类型的数据,包括主机名和域名。DNS数据库中的名称形成一个分层树状结构称为域命名空间。
根域:DNS域名使用中规定由尾部句点'.'来指定名称位于根或者更高层次的域层次结构。
顶级域:用来指示某个国家、地区或者组织。采用三个字符,如com -> 商业公司,edu -> 教育机构,net -> 网络公司,gov -> 非军事政府机构等等。
二级域:个人或者组织在Internet使用的注册名称。采用两个字符,如:cn -> 代表中国,jp -> 日本,uk -> 英国,hk -> 香港等等。
主机:主机名处于域名空间结构中的最底层,主机名和域名结合构成FQDN,主机名是FQDN最左端的部分。
Dns可以做的操作:
1.域名向IP地址的翻译
2. 主机别名
3. 邮件服务器别名
4. 负载均衡:Web服务器
据2006年12月统计,现在顶级域名TLD(Top Level Domain)已有265个,分为三大类:
(1)国家顶级域名nTLD:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为ccTLD(cc表示国家代码contry-code)。
(2)通用顶级域名gTLD:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。
(3)基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名。
DNS安装过程:
[root@localhost ~]# yum -y install bind*
已安装:
bind.x86_64 32:9.9.4-61.el7 bind-chroot.x86_64 32:9.9.4-61.el7
bind-dyndb-ldap.x86_64 0:11.1-4.el7 bind-libs.x86_64 32:9.9.4-61.el7
bind-pkcs11.x86_64 32:9.9.4-61.el7 bind-pkcs11-libs.x86_64 32:9.9.4-61.el7
bind-pkcs11-utils.x86_64 32:9.9.4-61.el7 bind-utils.x86_64 32:9.9.4-61.el7
(1)bind:提供了域名服务的主要程序及相关文件
(2)bind-utils:提供了对DNS服务器的测试工具程序,如nslookup等。
(3)bind-libs:提供了bind。bind-utils需要使用的库函数
(4)bind-chroot为bind服务提供了一个伪装的根目录,已提供安全性。
默认已经安装了bind-utils和bind-libs,所以只需要安装bind和bind-chroot即可。
修改主配置文件:
[root@localhost ~]# vim /etc/named.conf
13 listen-on port 53 { any; };
19 allow-query { any; };
51 zone "baidu.com" IN { #正向区域
52 type master; #类型为master(主服务器)
53 file "baidu.com.zone"; #区域数据文件名为baidu.com
54 allow-update { none; };
55 };
56 zone "200.168.192.in-addr.arpa" IN { #反向区域
57 type master; #类型为master(主服务器)
58 file "192.168.200.arpa"; #区域数据文件名为192.168.200.arpa
59 };
修改区域配置文件
[root@localhost ~]# cd /var/named/
[root@localhost named]# vim baidu.com.zone
$TTL 86400
@ SOA baidu.com. mail.baidu.com (
20160301 #更新序列号
4H #刷新时间:重新下载数据的间隔
30M #重试延时:下载失败后的重试间隔
12H #失效时间,超过该时间仍无法下载则放弃
1D #无效解析记录的生存周期
)
@ IN NS dns1.baidu.com.
@ IN NS dns2.baidu.com. #这里要写DNS服务器的IP地址,写DNS的主机名
@ IN NS mail.baidu.com. #配置邮箱服务器名称
dns1 IN A 192.168.200.103 #配置权威服务器的地址
dns2 IN A 192.168.200.105
www IN A 192.168.200.102 #配置域名的A记录
aaa IN A 192.168.200.103
bbb IN CNAME aaa.baidu.com. #配置域名的别名
mail IN NS 192.168.200.101 #配置邮箱服务器地址
第一行TTL配置用于设置默认生存周期。即缓存解析结果的有效时间
SOA记录部分用于设置区域名称,管理邮箱,以及为从域名服务器指定更新参数。
[root@localhost named]# vim 192.168.200.arpa
$TTL 86400
@ SOA baidu.com. mail.com (
20160301 #更新序列号
4H #刷新时间:重新下载数据的间隔
30M #重试延时:下载失败后的重试间隔
12H #失效时间,超过该时间仍无法下载则放弃
1D #无效解析记录的生存周期
)
@ IN NS dns1.baidu.com.
@ IN NS dns2.baidu.com.
dns1 IN A 192.168.200.103 #配置权威服务器的地址
dns2 IN A 192.168.200.105
103 IN PTR www.baidu.com.
开启dns服务
[root@localhost named]# systemctl start named
[root@localhost named]# netstat -anpt |grep named
tcp 0 0 192.168.200.105:53 0.0.0.0:* LISTEN 1532/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1532/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1532/named
tcp6 0 0 ::1:53 :::* LISTEN 1532/named
tcp6 0 0 ::1:953
测试解析结果: