背景
是这样的,公司办公室有小机房,研制测试开发环境在这,然而CTO吧,认为测试环境通过ip访问太复杂,难记,通过黄页打开认为太low,尽管办公室出口也有网段ip,直接可以解析进来个别网解析主机慢,并且又认为网段访问测试开发环境认为不可以,烦死了,之后就说弄个dns转发吧,提供外网解析,最后将这个dns服务器外网Ip配置在交换机的dhcppool上面,这样研制组同学也不用一个个去改这个dns,直接运维就搞完(我弄得单机)。概念性东西来源网路。
DNS概念性东西
FQDN:完全限定域名,即每位域在全球惟一,域不是域名,google.com是域,是域名。
域可以分为根域(.)和顶尖域(TLD)
顶尖域又可以分为三类:
通用顶尖域(.com商业机构,.org非营利性组织,.net网路服务机构等)
国家顶尖域(.cn中国,.uk日本,.us日本,.jp台湾)
反向域(基础建设顶尖域,.arpa)
DNS查询方法包含递归和迭代:
递归是顾客端发起一次恳求给DNS服务器,通过多次查找返回正确解析。迭代是发出多次恳求查询不同的DNS服务器。
解析方法包含正向解析和反向解析:正向解析指代将FQDN转换成IP,反向则相反。
通常DNS的服务器类型包含:主从DNS服务器,缓存服务器个别网解析主机慢,转发服务器。
主从好理解,就是从手动更新同步主的配置,作为backup存在。
缓存的服务器作用在于使用递归查询,将查询到的结果返回顾客端,并缓存查询的结果。
转发服务器作用在于当发觉查询不是本机的时侯则将恳求转发出去。
DNS窃听TCP和UDP都是53端口。
以下是一次完整的恳求大致过程:
从顾客机到服务器之前采用得是递归查询,而服务器之间则是采用迭代查询。
DNS记录类型:DNS域名数据库由资源记录和区文件指令组成。
SOA记录:起始授权机构记录,SOA备注说明了诸多NS(nameserver)记录中谁是主名称服务器,不参与功能,并且不能缺乏。
NS记录:域授权记录,当恳求抵达根域的时侯,通过NS记录找到对应的域。
A记录:当通过NS记录抵达域之后,例如访问,通过NS我们找到了baidu.com,此时就须要通过A记录找到www。
MX:将该域下的所有电邮服务器地址指向电邮服务器。
AAAA记录:A记录处理IPV4,AAAA处理IPV6。
PTR记录:反向解析,将IP解析成域名。
CNAME:别称记录,允许多个名子映射到另外一个域名。例如我们ping百度的时侯可以发觉返回虽然是这个域名返回。所有虽然是某些名。
布署单机DNS(我弄得这个)
我是直接将dns服务器的firewalld关掉了,总之外网局域网专用网路了。例外端口也Ok
打算了三台虚拟机:
IP系统说明
DNS服务器安装bind服务:
yum -y install bind-utils bind bind-devel bind-libs
配置主配置文件:/etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
forwarders { 202.96.128.166;8.8.8.8; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
最终内容如上。
追加域名解析入口配置:/etc/named.rfc1912.zones
zone "fengliuxiaosan.com" IN { # 测试用的域是 fengliuxiaosan.com
type master;
file "fengliuxiaosan.com.zone"; # 配置文件为 fengliuxiaosan.com.zone,该文件目录为 /var/named/ 下
};
配置单独的解析文件:
cd /var/named/
cp named.localhost fengliuxiaosan.com.zone
chown named.named fengliuxiaosan.com.zone
更改配置:fengliuxiaosan.com.zone
$TTL 1D ;TTL 修改配置生效时间,默认为一天
@ IN SOA @ rname.invalid. (
0 ; serial,配置编号,每次改完配置 +1,这样从服务器就知道更新配置
1D ; refresh,从服务器刷新时间,默认一天刷新一次
1H ; retry,如果刷新失败,默认1小时重试一次
1W ; expire,缓存过期时间,一周
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
www IN A 192.168.3.212
我们新加了个的A记录。
启动服务测试:
systemctl start named
systemctl enable named
查看端口:
netstat -tlunp | grep 53
结果如图:
可以看见不仅服务本身的53端口外,也窃听了953,这是dns服务的一个插件,如今我们先不理这个
本机测试解析:
dig @127.0.0.1 www.fengliuxiaosan.com
另外介绍两种检测配置的方式:
# 检查主配置
named-checkconf /etc/named.conf
# 检查 zone 配置
named-checkzone fengliuxiaosan.com /var/named/fengliuxiaosan.com.zone
结果如下:
我们在顾客端更改DNS配置测试,更改网卡DNS配置重启网卡:
主从DNS服务布署主从DNS的搭建开始的时侯似乎是和单机搭建一样的,我们更改主服务器192.168.3.253的配置文件:/etc/named.rfc1912.zones
将我们之前的配置进行更改:
zone "fengliuxiaosan.com" IN { # 测试用的域是 fengliuxiaosan.com
type master;
file "fengliuxiaosan.com.zone"; # 配置文件为 fengliuxiaosan.com.zone,该文件目录为 /var/named/ 下
allow-update { 192.168.3.80; };
allow-transfer { 192.168.3.80; }; # 允许同步DNS的辅助服务器IP
also-notify { 192.168.3.80; };
notify yes; # 启用变更通告,当主文件变更,通知从进行比较同步
};
指定了从的地址,重启服务
systemctlrestartnamed
2.从服务器192.168.3.80也安装bind并将/etc/named.conf配置拷贝过来。
接着也是配置:/etc/named.rfc1912.zones,此时能够彰显主从的不同:
zone "fengliuxiaosan.com" IN {
type slave;
file "slaves/fengliuxiaosan.com.zone";
masters { 192.168.3.253; }; # 指定主服务器的 IP
masterfile-format text; # 指定区域文件的格式为text,不指定有可能会为乱码
};
这时侯不须要再去配置fengliuxiaosan.com.zone文件,由于须要去主服务器192.168.3.253同步。所以直接启动从的dns服务。
systemctl start named
systemctl enable named
更改主配置测试同步情况:
我们更改主服务器的fengliuxiaosan.com.zone,新加解析的同时,更改配置编号,让从才能侦测到变化。
如今我们重启主服务器,会发觉从服务器就才能同步成功。
还有就是我这儿使用reloadnamed服务并没有使配置生效。总结
在域名解析过程中,都会碰到个别特殊情况:
@可以引用当区域名子,例如直接访问baidu.com就是这样的解析同一名子通过不同的名子定义多条记录,此时DNS会协程响应。同一值可以多个名子。星号*泛域名解析,例如配置*.baidu.com指向某个IP,这么假如你访问a.baidu.com这些没有配置的会默认走这个配置。
最后,在核心交换机DHCPpool地址池配置dns地址的时侯记得多加几个,外网这个dns服务器配置起来即可,为什么呢,由于通过这个dns外网服务器转发慢啊,打开网页都慢,dhcpclient多配置个网段dns解析快。