标签: alpine

  • alpine/openwrt开启mdns

    alpine和openwrt这两个系统用的都是uclibc,但是uclibc没有提供对mdns的任何支持,所以在基于uclibc的系统上使用mdns是一件很困难的事。alpine提供的方案是用avahi2dns把mdns请求转换为普通的dns请求。

    alpine开启mdns

    • mdns服务端支持
      编辑/etc/apk/repositories,添加
      https://mirrors.hetao.me/alpine/edge/testing

      然后执行命令

      apk add avahi
      rc-update add avahi-daemon
      rc-service avahi-daemon start
      
    • mdns客户端支持
      apk add avahi2dns
      rc-update add avahi2dns
      rc-service avahi2dns start
      apk add unbound
      创建/etc/unbound/unbound.conf.d/avahi-local.conf:

       forward-zone:
             name: "local"
             forward-addr: 127.0.0.1@5354
       server:
             do-not-query-localhost: no
             domain-insecure: "local"
      

      编辑/etc/unbound/unbound.conf,添加下面一行
      include: "/etc/unbound/unbound.conf.d/*.conf"
      编辑/etc/unbound/unbound.conf.d/resolvconf.conf

      forward-zone:
              name: "."
              forward-addr: 223.5.5.5
      

      unbound默认是开启dnssec的,如果用自己的dns server需要关闭dnssec.

      编辑/etc/resolv.conf

      nameserver 127.0.0.1
      

      启动unbound服务

      rc-update add unbound
      rc-service unbound start
      

      解析结果:

    openwrt

    • 服务端支持
      参考:https://openwrt.org/docs/guide-developer/mdns
    • 客户端支持
      参考:https://blog.csdn.net/qq_38026359/article/details/121320404
      关于客户端支持也可以采用avahi2dns的方案,不过目前openwrt还没有集成这个包。

    参考:
    https://wiki.alpinelinux.org/wiki/MDNS

    Views: 3