标签: dns

  • power dns配置hint-file

    curl https://www.internic.net/domain/named.root -o /etc/powerdns/named.root
    然后recursor.conf中配置
    hint-file=/etc/powerdns/named.root

    如果不配置hint-file的话recursor会频繁的通过dns来查询根域名,这样浪费流量(我是按量付费的),早期版本可以通过hint-file=no(使用源码自带的root hint)来禁用周期性的解析根域名,后来新版本设置为no会彻底禁用迭代解析,那就没法玩儿了。

    Views: 1

  • 网络优化之DNS

    • DNS加密
    • 公共DNS
    • EDNS扩展
    • DNS透明代理
    • DNS服务器
    • DNS转发
    • MDNS
    • HTTPS记录
    • SRV记录

    Views: 1

  • MDNS/DNS-SD相关RFC

    Multicast DNS
    https://datatracker.ietf.org/doc/rfc6762/
    DNS Service Discovery
    https://datatracker.ietf.org/doc/rfc6763/
    DNS-SD代理,有点类似华为的MDNS网关
    https://datatracker.ietf.org/doc/rfc8766/
    一个DNS-SD代理的Python实现
    https://github.com/mkuron/mdns-discovery-proxy
    DNS-SD SRP(服务注册协议),其实就是一个轻量级的专用于DNS-SD的动态DNS协议,DDNS对于DNS-SD来说过于复杂了
    https://datatracker.ietf.org/doc/draft-sctl-service-registration/
    多DNS-SD SRP服务器间同步
    https://datatracker.ietf.org/doc/draft-ietf-dnssd-srp-replication/
    DNS推送,用于主动推送DNS解析结果(事先订阅),只支持TCP协议
    https://datatracker.ietf.org/doc/rfc8765/
    苹果提出的基于UDP的长连接DNS
    https://datatracker.ietf.org/doc/rfc8764/
    基于TCP的长连接DNS
    https://datatracker.ietf.org/doc/rfc8490/
    DNS租约,DHCP有租约,现在DNS也有租约的,主要解决动态DNS过期和删除问题
    https://datatracker.ietf.org/doc/draft-ietf-dnssd-update-lease/
    DNS UPDATE,就是动态DNS
    https://datatracker.ietf.org/doc/rfc2136/
    DNS Over Quic
    https://datatracker.ietf.org/doc/rfc9250/
    DNS SRV服务类型
    http://www.dns-sd.org/ServiceTypes.html

    Views: 3

  • 局域网名字解析和服务发现协议对比

    • mdns(Multicast DNS)/dns-sd(DNS Service Discovery)
      支持名字解析和服务发现,由苹果公司最早提出,苹果所有设备和Windows10以上版本默认支持mdns协议,Ubuntu/debian通过libnss的插件nss-mdns提供支持,但没有默认启用。
      mdns使用组播协议进行名字解析,解析到的名字统一放到.local域下。dns-sd是mdns的扩展,与mdns兼容,不但支持组播还支持使用单播进行解析,可以配置自定义域名后缀并与DNS服务器配置完成域名解析,更适合企业环境中使用。
      mdns/dns-sd使用UDP协议,5353端口。
    • SSDP(upnp)
      仅服务发现,没有名字解析功能,ssdp是upnp的组成部分,支持IPv4和IPv6。使用HTTPU/HTTPMU(基于UDP) 1900端口。UPNP提供了设备和服务发现,设备信息获取,设备控制功能,甚至提供了NAT穿透功能,可以作为智能家居设备的底层协义,DLNA投屏协义也是基于UPNP。
    • NBNS(NetBIOS Name Service)/WINS
      不支持IPv6,已经废弃。NetBIOS是一项古老的协议,由IBM开发。WINS是由微软开发的基于NBNS的协议,WINS支持单播,而且支持域名后缀并与DNS服务器集成,更适合企业环境中使用,类似dns-sd与mdns的关系。Windows10以上版本已经废弃NetBIOS的服务发现功能,取而代之的是WSSD和LLMNR(MDNS的支持似乎还不完整,只有名字解析,没有服务发现)。
      nbns/wins使用UDP/TCP协议,137端口。
    • LLMNR(Link-Local Multicast Name Resolution)
      也是提供基于多播协议的DNS解析功能,但仅提供名字解析,没有服务发现功能,与mdns非常类似,由微软件开发因未竞争过mdns所以未成为正式IETF正式标准。LLMNR使用UDP 5355端口。自 2022 年 4 月起,微软已开始逐步淘汰 LLMNR 和NetBIOS名称解析,转而使用mDNS。LLMNR落败的主要原因是没有与普通DNS解析的名称进行区分,导致LLMNR的名字会污染普通的DNS名字造成安全隐患,mdns则是用.local后缀作区分。
    • DDNS(Dynamic Updates in the Domain Name System)
      即动态DNS,与DHCP配合使用,由DHCP服务器把主机名注册到DNS服务器。缺点是静态IP地址就没法用了。

    参考:
    LLMNR
    https://datatracker.ietf.org/doc/rfc4795/
    这篇文章讲解了LLMNR与MDNS的竞争
    https://www.eiman.tv/blog/posts/lannames/
    Multicast DNS
    https://datatracker.ietf.org/doc/rfc6762/
    DNS Service Discovery
    https://datatracker.ietf.org/doc/rfc6763/
    http://www.dns-sd.org/
    DDNS
    https://datatracker.ietf.org/doc/rfc2136/
    libnss的d-bus接口
    https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.resolve1.html
    cups支持systemd-dnssd的issue
    https://github.com/OpenPrinting/libcups/issues/81
    wikipedia的介绍
    https://en.wikipedia.org/wiki/Zero-configuration_networking

    Views: 9

  • dnsdist记录查询和应答日志

    dnsdist中做如下配置

    addAction(AllRule(), LogAction(“/var/log/dnsdist.log”, false, true, false, true, true))
    addResponseAction(AllRule(), LogResponseAction(“/var/log/dnsdist.log”, true, false))

    Views: 95

  • dnsdist远程控制台

    • dnsdist中做如下配置

    controlSocket(‘0.0.0.0:5199’)
    setKey(‘mykey’)
    setConsoleACL({‘0.0.0.0/0’, ‘::1/128’})

    • 然后运行console客户端
      dnsdist -c dns.hetao.me -k mykey

    Views: 90

  • dnsmasq解析本地域名的若干方法

    写这个主要是因为如果在公网上配置了IPv6地址的话本地IPV4解析就失效了
    – 方法1,用–address
    2.86版本以后改变了–address=/example.com/1.2.3.4配置的行为,A记录以外的其它记录类型仍然 会向上游转发,这在以前版本是不会的,要保持与以前相同的行为要使用如下写法:
    --address=/example.com/1.2.3.4 --local=/example.com/
    – 方法2,用hosts
    --server=/example.com/
    然后在hosts文件中添加
    1.2.3.4 example.com
    在华硕路由器上的hosts文件是/jffs/configs/hosts.add
    – 方法3,用–dynamic-host添加动态IPV6地址
    –dynamic-host example.com,0::1.2.3.4,br0
    dnsmasq会从br0上获取接口地址添加到ip地址前缀中

    Views: 86