暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

内网DNS域名解析

生有可恋 2022-05-25
5183

企业内部如果不启用域名DNS服务,服务器就只能通过IP进行访问了。除了传统的bind解决方案,推荐一个新的DNS解决方案:blocky



blocky除了可以做到DNS中继,内部域名映射,还可以做到去广告和黑白名单。


blocky 的Github项目地址:

  • https://github.com/0xERR0R/blocky


blocky 是 go 语言开发的,编译对象可以做到全平台支持。在 Release 页面可以下载编译好的二进制文件,一个文件即可运行。



我们先看下效果,首先测试一下 blocky 的 DNS 中继功能,在配置文件中指定上游DNS服务器IP:

    cat config.yum
    upstream:
    default:
    - 8.8.8.8
    - 8.8.4.4
    port: 53
    # ./blocky --config config.yum


    程序执行起来后,dns 服务器就搭好了,dns 解析会指向上游DNS服务器。我们在客户端测试一下:

      c:\> ipconfig flushdns
      c:\> nslookup www.baidu.com 192.168.10.23


      测试结果显示,内部DNS服务器已经搭好了,使用的端口是 tcp/udp 53 端口:

        # netstat -alnp| grep :53| grep blocky
        Proto Local Address Foreign Address PID/Program name
        tcp6 :::53 :::* LISTEN 21937/blocky
        udp6  :::53  :::* 21937/blocky


        除了DNS中继,我们实际上还需要为内网服务器分配域名,当内网域名与互联网冲突时,优先使用内网域名。


        为内网服务器分配域名的配置文件示例:

          # cat config.yum
          upstream:
          default:
          - 8.8.8.8
          - 8.8.4.4
          port: 53
          customDNS:
          customTTL: 1h
          mapping:
          www.google.com: 10.1.1.8
          www.oa.com: 10.1.1.8
          oa.com: 10.1.1.8
          oa.xyz.com: 10.1.1.8
              www.it.com: 192.168.10.200
          # ./blocky --config config.yum


          我们同样使用客户端测试内网域名是否能解析成功:

            c:\> ipconfig flushdns
            c:\> nslookup www.oa.com 192.168.10.23
            c:\> nslookup www.it.com 192.168.10.23



            除了可以正向解析,我们还可以通过IP查询服务器IP所对应的所有域名。在Linux下执行 nslookup,通过IP查域名:



            测试内网DNS域名已经解析成功,我们将DNS配置至网卡,然后到浏览器中试试:


            配置完后,打开浏览器,输入域名,看是否能正常访问:



            输入内网域名 www.oa.com,页面成功指向了内部服务。在内网域名配置中可以强行把外部域名映射至内部IP,比如:

              customDNS:
              customTTL: 1h
              mapping:
              www.google.com: 10.1.1.8

              当访问 www.google.com 时会自动跳转至内部分服务器,内网域名的优先级要比上游DNS的优先级要高。


              除了DNS的基本功能,blocky 还具有去广告,黑名单的功能。并且它可以根据网段启用不同的上游DNS策略:

                upstream:
                default:
                - 5.9.164.112
                - 1.1.1.1
                - tcp-tls:fdns1.dismail.de:853
                - https://dns.digitale-gesellschaft.ch/dns-query
                laptop*:
                - 123.123.123.123
                10.43.8.67/28:
                - 1.1.1.1
                - 9.9.9.9

                示例中,默认的上游DNS服务器使用default,hostname 为 laptop* 的,比如作者的笔记本使用 123.123.123.123,而10.43.8.67/28 网段使用 1.1.1.1 和 9.9.9.9 作为上游DNS服务器。


                去广告和黑名单的配置,可以参考官方文档,这里没有测试就不做介绍了:

                • https://0xerr0r.github.io/blocky/configuration/



                文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论