搭建公司内部DNS服务器
平常有很多时候可能会通过改hosts文件的方式来访问自定义的某个域名,但仅限于单机而已。如果能用dns解析的方式来统一管理那将会很方便。
搭建 DNS 服务器
实验基于centos7实践。切换到root用户(以下所有操作都在root下执行):
- 安装软件:
我们使用dns软件 bind9 系列安装包。
yum -y install bind*
安装后的部分日志:
1 | Installed: |
- 备份主配置文件:
cp /etc/named.conf /etc/name.conf.bak.$(date '+%Y-%m-%d')
- 修改主配置文件:
vi /etc/named.conf
修改两处为any:
1 | options { |
自定义域名配置
现在安装后基本的dns服务器之后,我们就开始自定义个域名来进行解析:
vi named.rfc1912.zones
增加一个需要解析的主域名比如:cococzj.com;(公网肯定没有这个域名)
增加下面的文件到文件named.rfc1912.zones的最后
1 | zone "cococzj.com" IN { |
增加域名配置
上面定义了cococzj.com.zone的文件,现在增加配置:vi /var/named/cococzj.com.zone
增加下面的内容:
1 |
|
ns 对应的ip地址必须为dns服务器搭建的IP地址,也就是dns安装的机器的ip地址。
ns IN A 10.62.12.24 ==> ns IN A your_dns_server_ip
www IN A 10.62.14.80 代表将www.cococzj.com解析到10.62.14.80服务器上。
修改zone文件权限
chown .named /var/named/cococzj.com.zone
检查配置文件
named-checkconf 检查主配置文件是否配置正确,没有输出表明是正确的:
named-checkzone 检查zone文件配置:
1 | named-checkzone "cococzj.com" /var/named/cococzj.com.zone |
重启服务
可以先ping一下服务域名再重启:systemctl restart named.service
测试:
- 先ping试一下:
1 | [root@k8s-dev-yw-1 etc]# ping www.cococzj.com |
- 增加dns服务地址;
vi /etc/resolv.conf,在文件中新建:
nameserver 10.62.12.2
再一次ping:
1 | [root@k8s-dev-yw-1 etc]# vi /etc/resolv.conf |
新增一个域名
vi named.rfc1912.zones在文件中新增:
1 | zone "your_website.com" IN { |
复制一份之前配置好的配置
cp /var/named/cococzj.com.zone /var/named/your_website.com.zone编辑配置文件
vi /var/named/your_website.com.zone将cococzj改为your_website,然后修改相应的ip和检查配置文件:
1 | [root@k8s-dev-yw-1 etc]# named-checkzone "cmrrancher.com" /var/named/chenzhijunrancher.com.zone |
重载服务
systemctl reload named.service测试:
ping www.chenzhijunrancher.com
附录
1 | [root@qianyi-monitor-3 etc]# yum install -y bind* |
两个重要的配置文件:
/etc/named.rfc1912.zones : 定义域
/var/named :域的详细配置
之后记得要将文件的权限复制给named这个用户和组。
上面的配置可以连接到本地的定义的域名,但是无法ping通百度等。所以一般需要再配置文件中增加forwarders,当本地没有找到定义的域之后会在forwarders中定义的继续查找。打开forwarders之后记得修改dnssec-validation no;这样之后再ping 外网的域名就可以了。