前言:
最近整理一些之前的学习笔记。
过去都是存储在本地,这次传到网络留待备用。web
DNS
- 域名系统(Domain Name System)
- 做为将域名和IP地址相互映射的一个分布式数据库,可以令人更方便地访问互联网
- 目前,每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符
- 协议: TCP/UDP
- 默认端口: 53
- DNS服务器的功能:
- 正向解析:根据注册的域名查找对应的ip地址
- 反向解析:根据ip地址查找对应的注册域名,不经常使用
FQDN(Full Qualified Domain Name),完整合格域名shell
全部完整的域名都会以 .(点) 结尾:数据库
根域 . ┌─────┬─────┼─────┬─────┬─────┬──────┬─ .com .cn .us .tw .kr .hk ....... #一级DNS服务器 ┌─────┴────┬─────────┬─────────┬─ .com.cn .net.cn .org.cn .edu.cn #二级DNS服务器 ├─────────────────┬───────────────┬─ .lala.com.cn .haha.com.cn .xixi.com.cn #三级DNS服务器 ├─────────────────────┬─ web1.lala.com.cn tts.lala.com.cn #完整主机名
常见的顶级域名/一级域名:vim
国家/地区域 | .cn | .us | .kr | .hk | .tw | ... |
---|---|---|---|---|---|---|
组织域 | .com | .net | .edu | .org | .gov | ... |
资源记录 | 名称 | 意义 |
---|---|---|
A | Address地址 IPv4 | 此记录列出特定主机名的 IP 地址 |
AAAA | Address地址 IPv6 | |
NS | Name Server域名服务器 | 此记录指定负责给定区域的名称服务器 |
SOA | Start of Authority受权状态 | |
MX | Mail Exchanger邮件交换 | 此记录列出了负责接收发到域中的电子邮件的主机 |
CNAME | Canonical Name规范名 | 此记录指定标准主机名的别名 |
PTR | Pointer指针 |
一、本地hosts文件 二、本地DNS缓存 三、本地DNS服务器 四、发起迭代查询
BIND域名服务
- Berkeley Internet Name Domain , 伯克利因特网域名服务
- 是目前世界上使用最为普遍的DNS服务器软件,支持各类unix平台和windows平台
- 官网: https://www.isc.org/
- 软件:
- bind , 域名服务包
- bind-chroot , 提供虚拟根支持,依赖bind
- 系统服务: named
- 协议端口: TCP/UDP 53
- 运行时的虚拟根路径: /var/named/chroot
- 主配置文件: /etc/named.conf //设置负责本机解析的域名
- 地址库文件: /var/named //主机名与ip地址的对应关系
svr7.test.cn ---> 192.168.4.7 pc207.test.cn ---> 192.168.4.207 www.test.cn ---> 192.168.4.100
]# yum -y install bind bind-chroot
]# vim /etc/named.conf options { listen-on port 53 { 192.168.4.7; }; #监听服务器的地址和端口 directory "/var/named"; #默认,指定地址库文件存放路径 allow-query { any; }; #容许任何客户机查询 }; zone "test.cn" IN { #指定本机负责解析的域名 type master; #指定本机为权威的主DNS服务器 file "test.cn.zone"; #指定地址库文件为test.cn.zone }; ]# named-checkconf /etc/named.conf #检查配置文件语法
]# cd /var/named/ #准备模板文件 ]# cp -p named.localhost test.cn.zone #权限属性不变拷贝模板 ]# ls -l test.cn.zone -rw-r----- 1 root named 152 6月 21 2007 test.cn.zone ]# vim test.cn.zone #编辑区域文件 $TTL 1D ;TTL=Time To Live=生存时间 @ IN SOA @ rname.invalid. ( ;SOA=Start Of Authority=受权信息开始,@区域名 0 ; serial,序列号 ;分号; 开始的部分表示注释 1D ; refresh,刷新时间 1H ; retry,重试时间间隔 1W ; expire,过时时间 3H ) ; minimum,没法解析时否认答案的TTL值 test.cn. NS svr7 ;NS=NameServer,声明test.cn.域名的DNS服务器为svr7.test.cn. svr7 A 192.168.4.7 ;指定svr7.test.cn.的ip地址为192.168.4.7 www A 1.1.1.1 ftp A 2.2.2.2 ]# named-checkzone test.cn test.cn.zone #检查配置文件,命令 区域名 配置文件 zone test.cn/IN: loaded serial 0 OK #检查结果ok
]# systemctl restart named ]# systemctl enable named
]# echo 'nameserver 192.168.4.7 > /etc/resolv.conf'
]# host svr7.test.cn svr7.test.cn has address 192.168.4.7
]# nslookup www.test.cn Server: 192.168.4.7 Address: 192.168.4.7#53 Name: www.test.cn Address: 1.1.1.1
]# vim /etc/named.conf #追加新的区域 zone "qq.com" IN { type master; file "qq.com.zone"; };
]# cp -p /var/named/test.cn.zone /var/named/qq.com.zone ]# vim qq.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum qq.com. NS svr7 svr7 A 192.168.4.7 www A 3.3.3.3 ftp A 4.4.4.4
]# systemctl restart named
]# nslookup www.qq.com Server: 192.168.4.7 Address: 192.168.4.7#53 Name: www.qq.com Address: 3.3.3.3
接上例windows
#服务端 ]# vim qq.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum qq.com. NS svr7 svr7 A 192.168.4.7 www A 192.168.4.11 ;配置www的负载均衡 www A 192.168.4.12 www A 192.168.4.13 ftp A 4.4.4.4 ]# systemctl restart named #客户端测试 ]# nslookup www.qq.com Server: 192.168.4.7 Address: 192.168.4.7#53 Name: www.qq.com Address: 192.168.4.12 Name: www.qq.com Address: 192.168.4.13 Name: www.qq.com Address: 192.168.4.11
服务器: ]# cd /var/named ]# vim qq.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum qq.com. NS svr7 svr7 A 192.168.4.7 www A 192.168.4.11 www A 192.168.4.12 www A 192.168.4.13 ftp A 4.4.4.4 * A 1.2.3.4 ;泛域名解析 ]# systemctl restart named 客户端: ]# host ftp.qq.com ftp.qq.com has address 4.4.4.4 ]# host fan.qq.com fan.qq.com has address 1.2.3.4
web1.qq.com------》192.168.10.1 web2.qq.com------》192.168.10.2 web3.qq.com------》192.168.10.3 web4.qq.com------》192.168.10.4 ...... web50.qq.com------》192.168.10.50
函数: $GENERATE 生成连续范围的数字缓存
服务器: ]# cd /var/named/ ]# vim qq.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum qq.com. NS svr7 svr7 A 192.168.4.7 www A 192.168.4.11 www A 192.168.4.12 www A 192.168.4.13 ftp A 4.4.4.4 * A 1.2.3.4 ;泛域名解析 $GENERATE 1-50 web$ A 192.168.10.$ ;使用$GENERATE函数生成有规律的泛域名解析 ]# systemctl restart named #客户端 ]# host web.qq.com web.qq.com has address 1.2.3.4 ]# host web1.qq.com web1.qq.com has address 192.168.10.1 ]# host web11.qq.com web11.qq.com has address 192.168.10.11 ]# host web50.qq.com web50.qq.com has address 192.168.10.50
接上例服务器
父域 www.test.cn 总公司 svr7 服务器 192.168.4.7 子域 www.bj.test.cn 北京分公司 pc207 服务器 192.168.4.207
]# cd /var/named ]# vim test.cn.zone test.cn. NS svr7 bj.test.cn. NS pc207.bj ;指定子域的DNS服务器 svr7 A 192.168.4.7 pc207.bj A 192.168.4.207 www A 1.1.1.1 ftp A 2.2.2.2 ]# systemctl restart named
]# yum -y install bind bind-chroot #安装软件 ]# vim /etc/named.conf #修改配置文件 options { directory "/var/named"; }; zone "bj.test.cn" IN { ;解析子域域名 type master; file "bj.test.cn.zone"; }; ]# cd /var/named ]# cp -p named.localhost bj.test.cn.zone ]# vim bj.test.cn.zone #编辑区域文件 $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum bj.test.cn. NS pc207 ;设置域服务器 pc207 A 192.168.4.207 www A 11.12.13.14 ]# systemctl restart named #重启服务 ]# systemctl enable named
]# nslookup www.bj.test.cn 192.168.4.207 Server: 192.168.4.207 Address: 192.168.4.207#53 Name: www.bj.test.cn Address: 11.12.13.14
]# yum -y install bind bind-chroot
]# cat /etc/resolv.comf nameserver 172.40.1.10 ]# vim /etc/named.conf options { directory "/var/named"; forwarders { 172.40.1.10; }; #当本地缓存中没有对应的解析时指定去172.40.1.10解析 }; ]# systemctl restart named
]# nslookup www.360.com 192.168.4.254
根据源地址集合将客户机分类,不一样客户机得到不一样结果(待遇有差异)。网络
格式:负载均衡
view "视图名" { match-clients { IP; } //匹配客户端地址 zone "解析的域名" { ... 地址库1; } };
view "nsd" { match-clients { 192.168.4.207; } #匹配客户端的地址 zone "test.cn" { ...... 地址库1; }; }; view "abc" { match-clients { any; } zone "test.cn" { ...... 地址库2; }; };
实例,环境及需求:分布式
操做步骤 虚拟机A 1.修改配置文件/etc/named.conf view "nsa" { match-client { 192.168.4.207; }; zone "test.cn" { type master; file "test.cn.nsd"; }; }; view "abc" { match-client { any; }; zone "test.cn" { type master; file "test.cn.abc"; }; }; 2.创建地址库文件 ]# vim /var/named/test.cn.nsd test.cn. NS svr7 svr7 A 192.168.4.7 www A 192.168.4.100 ]# vim /var/named/test.cn.abc test.cn. NS svr7 svr7 A 192.168.4.7 www A 1.2.3.4 3.重启named服务 ]# systemctl restart named 4.在虚拟机A、B分别测试解析
]# vim /etc/named.conf options { directory "/var/named"; }; acl 变量名 { 地址1; 地址2; 地址3; 地址4;...}; view "nsd" { match-clients { 变量名; }; zone "test.cn" { type master; file "test.cn.nsd"; }; }; view "abc" { match-clients { any; }; zone "test.cn" { type master; file "test.cn.abc"; }; };