java 发表于 2017-12-15 18:15:38

Docker下搭建DNS服务器

本帖最后由 java 于 2017-12-29 19:40 编辑

https://store.docker.com/community/images/sameersbn/bind
docker pull sameersbn/bind


docker run --name bind -d --restart=always \
--publish 53:53/tcp --publish 53:53/udp --publish 10000:10000/tcp \
--volume /srv/docker/bind:/data \
sameersbn/bind:latest


进行docker后进入命令行
docker exec -it bind bash
配置步骤:
https://192.168.134.106:10000/ 访问管理页面
用户名:root
密码:password

改成中文界面
Webmin->Change Language and Theme

配置DNS
服务器->BIND DNS服务器
-->创建新的主区域




web上的配置与配置文件作对比,以正确配置/var/lib/bind/hcjserver.com.hosts
$ttl 38400
hcjserver.com.      IN      SOA      www.hcjserver.com. 555.qq.com. (
                        1513563422
                        10800
                        3600
                        604800
                        38400 )
hcjserver.com.      IN      NS      www.hcjserver.com.
www.hcjserver.com.      IN      A      192.168.134.15
hcjserver.com.      IN      A      192.168.134.15
mail.hcjserver.com.      1      IN      MX      1 192.168.134.15

配置完成后可以 查看是否配置正确 按钮: Check Records


域名测试工具:

nslookup -qt=A hcjserver.com 192.168.134.106                  //-qt   querytype 或 type


查看 相关配置文件find / -name named.conf

cat /data/bind/etc/named.conf

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

/var/lib/bind/hcjserver.com.hosts

出现如下问题的修改方法 :
Got recursion not available from 192.168.134.106, trying next server

只是在named.conf.options"
里把 allow-query-cache { localhost; };改成了allow-query-cache { any; };如果没有则加上如下:

options {
      directory "/var/cache/bind";

      // If there is a firewall between you and nameservers you want
      // to talk to, you may need to fix the firewall to allow multiple
      // ports to talk.See http://www.kb.cert.org/vuls/id/800113

      // If your ISP provided one or more IP addresses for stable
      // nameservers, you probably want to use them as forwarders.
      // Uncomment the following block, and insert the addresses replacing
      // the all-0's placeholder.

      allow-query-cache { any; };

      // forwarders {
      //         0.0.0.0;
      // };

      //========================================================================
      // If BIND logs error messages about the root key being expired,
      // you will need to update your keys.See https://www.isc.org/bind-keys
      //========================================================================
      dnssec-validation auto;

      auth-nxdomain no;    # conform to RFC1035
      listen-on-v6 { any; };
};
另外如要转再改到下一个DNS可以修改 forwarders 试下,
改后,本地不用原来的默认DNS只用自己配置的DNS,失败了。




java 发表于 2017-12-18 10:35:54

MX记录解析是做邮箱解析使用的。记录类型选择MX,线路类型选择通用或者同时添加三条线路类型为电信、网通、教育网的记录;记录值填写邮局商提供的服务器IP地址或别名地址;TTL设置默认的3600即可,MX优先级填写邮局提供商要求的数据,或是默认10,有多条MX记录的时候,优先级要设置不一样的数据。


MX(Mail Exchanger)记录,是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据 收信人的地址后缀来定位邮件服务器。例如,当Internet上的某用户要发一封信给 user@mydomain.com 时,该用户的邮件系统通过DNS查找mydomain.com这个域名的MX记录,如果MX记录存在, 用户计算机就将邮件发送到MX记录所指定的邮件服务器上。MX记录优先级的值越小,优先级越高。同一个域名的有两条不同优先级的mx的纪录,通常是用优先级高的。当优先级高的机器不能使用时,优先级低的就可以起到临时备份作用,代收邮件和转发。当优先级高的机器正常时,低级别的会尝试把信件转发给优先级高的服务器。


万网的解析有优先级10和优先级1,小的优先

java 发表于 2017-12-27 15:21:39

本帖最后由 java 于 2017-12-28 18:24 编辑

在 Ubuntu 系统安装 Redi 可以使用以下命令:$sudo apt-get update
$sudo apt-get install redis-server

启动 Redis

$ redis-server

查看 redis 是否启动?

$ redis-cli

以上命令将打开以下终端:redis 127.0.0.1:6379>127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。redis 127.0.0.1:6379> pingPONG以上说明我们已经成功安装了redis。

java 发表于 2018-1-3 11:19:02

本帖最后由 java 于 2018-1-12 18:20 编辑

webmin 配置dns

http://www.webmin.com

配置步骤:
https://192.168.134.106:10000/ 访问管理页面
用户名:root
密码:password

改成中文界面
Webmin->Change Language and Theme

配置DNS
服务器->BIND DNS服务器
-->创建新的主区域


在主分区hcjserver.com中添加地址解析(A记录) 选择"地址"选项




注:这里名称可以是如下选项:
www
ftp
mail
* 所有地址列表中没有的名称全部匹配
@ 表示 hcjserver.com,没有二级域名
测试效果nslookup www.hcjserver.com
Server:                192.168.134.106
Address:      192.168.134.106#53

Name:      www.hcjserver.com
Address: 192.168.134.15
创建逆向解析
服务器->BIND DNS服务器
-->创建新的主区域



这里的网络也可以写成 192.168.134.0

接着创建 逆向地址



测试效果nslookup -qt=ptr 192.168.134.15
*** Invalid option: qt=ptr
Server:                192.168.134.106
Address:      192.168.134.106#53

15.134.168.192.in-addr.arpa      name = hcjserver.com.

java 发表于 2018-1-12 10:37:43

A记录:将域名指向一个IPv4地址(例如:10.10.10.10),需要增加A记录
CNAME记录:如果将域名指向另一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录
DNS正向解析:通过域名查找ip,命令:nslookup domain
DNS逆[反]向解析:通过ip查找域名, 命令:nslookup -qt=ptr yourIP
IP反向解析的作用就是通过查询IP地址的PTR记录来得到该IP地址指向的域名,当然,要成功得到域名就必需要有该IP地址的PTR记录。
PTR记录是邮件交换记录的一种,邮件交换记录中有A记录和PTR记录,A记录解析名字到地址,而PTR记录解析地址到名字。
地址是指一个客户端的IP地址,名字是指一个客户的完全合格域名。通过对PTR记录的查询,达到反查的目的。
反向域名解析系统(Reverse DNS)的功能确保适当的邮件交换记录是生效的。反向域名解析与通常的正向域名解析相反,提供IP地址到域名的对应。
IP反向解析主要应用到邮件服务器中来阻拦垃圾邮件,特别是在国外。
多数垃圾邮件发送者使用动态分配或者没有注册域名的IP地址来发送垃圾邮件,以逃避追踪,使用了域名反向解析后,就可以大大降低垃圾邮件的数量。
比如你用 xxx@name.com 这个邮箱给我的邮箱 123@163.com 发了一封信。163邮件服务器接到这封信会查看这封信的信头文件,这封信的信头文件会显示这封信是由哪个IP地址发出来的。
然后根据这个IP地址进行反向解析,如果反向解析到这个IP所对应的域名是name.com 那么就接受这封邮件,如果反向解析发现这个IP没有对应到name.com,那么就拒绝这封邮件。
由于在域名系统中,一个IP地址可以对应多个域名,因此从IP出发去找域名,理论上应该遍历整个域名树,但这在Internet上是不现实的。
为了完成逆向域名解析,系统提供一个特别域,该特别域称为逆向解析域in-addr.arpa。
这样欲解析的IP地址就会被表达成一种像域名一样的可显示串形式,后缀以逆向解析域域名"in-addr.arpa"结尾。
    例如一个IP地址:222.211.233.244,其逆向域名表达方式为:244.233.221.222.in-addr.arpa
两种表达方式中IP地址部分顺序恰好相反,因为域名结构是自底向上(从子域到域),而IP地址结构是自顶向下(从网络到主机)的。
实质上逆向域名解析是将IP地址表达成一个域名,以地址做为索引的域名空间,这样逆向解析的很大部分可以纳入正向解析中。

java 发表于 2018-1-12 17:41:09

本帖最后由 java 于 2018-1-12 17:44 编辑

域名注册商
如果你是草根,或者说微小企业,去godaddy;      http://godaddy.com
如果你是企业,或不是世界前×的国内企业,去万网吧;
如果你是世界上数得上的企业,可考虑去markmonitor


dnspod

namesilo


http://name.com

告诉你一个取巧的方法,先在Godaddy下单,一次注册9年,等2个月后,提交转移到万网。这样你能省70%

万网、新网、西部数码
虽然 godaddy现在支持简体中文了不过还是推荐http://name.com namesilonamecheap godaddy现在续费太贵
US Domain Center

页: [1]
查看完整版本: Docker下搭建DNS服务器