问题

问题

问题

我正在尝试使用静态 IPv6 在家庭网络中的 debian 11 服务器上的 docker 容器内设置本地 DNS 服务器(pihole),以便我可以将路由器的所有查找指向它。

到目前为止我所拥有的

  • 由于这是家庭网络,我的路由器会在一定的时间间隔内重新连接,这不允许我使用全局 IPv6 前缀。

  • docker服务正在我的服务器上运行

  • 我正在使用 docker-compose,目前的 compose 文件如下所示:

     version: "3"
    
     # More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
     services:
       pihole:
         container_name: pihole
         image: pihole/pihole:latest
         ports:
           - "53:53/tcp"
           - "53:53/udp"
           - "67:67/udp"
           - "80:80/tcp"
         environment:
           TZ: 'Europe/Berlin'
           # WEBPASSWORD: 'set a secure password here or it will be random'
           WEBPASSWORD: 'XXXXXXXXX'
         # Volumes store your data between container upgrades
         volumes:
           - type: bind
             source: ./etc-pihole/
             target: /etc/pihole/
           - type: bind
             source: ./etc-dnsmasq.d
             target: /etc/dnsmasq.d/
         # Recommended but not required (DHCP needs NET_ADMIN)
         #   https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
         cap_add:
           - NET_ADMIN
       #option not needed wen used in combinationwith systemd
       #restart: unless-stopped
         networks:
           macvlan:
             ipv4_address: 10.10.1.51
             ipv6_address: fd00:0:0:1:50::51
    
    
     networks:
       macvlan:
         driver: macvlan
         enable_ipv6: true
         driver_opts:
           parent: enp7s0
         ipam:
           config:
             - subnet: 10.10.1.50/24
               gateway: 10.10.1.1
             - subnet: fd00:0:0:1:50::/80
               gateway: fd00:0:0:1:2e91:abff:fe91:baa0
    
  • 整个 IPv4 设置正在工作,但是我不完全了解如何设置 macvlan,以便 dockered pihole 可以作为我的家庭网络中的 DNS 服务器。

  • fd00:0:0:1:2e91:abff:fe91:baa0是我的路由器的本地地址。

  • docker-compose up产量:

    failed to create network dc_pihole_macvlan: Error response from daemon: Invalid subnet fd00:0:0:1:50:/80 : invalid CIDR address: fd00:0:0:1:50:/80
    

问题

  • 我想做的事情到底可行吗?
  • 这是我想要做的正确设置吗?
  • 如何让容器启动?

编辑1

  • 修复建议的语法后,docker 容器将启动。从容器内的 bash,我可以 ping 我的路由器,地址为fd00:0:0:1:2e91:abff:fe91:baa0。我还可以 pingipv6.google.com并解析为正确的 IPv6,但奇怪的是,只有四个数据包之一被传输。为什么?请参阅附加的输出,其中PROVIDER-PREFIX-RM是我的(当前)范围全局前缀:

     root@c4ca40297eaa:/# ping ipv6.google.com -c 4
     PING ipv6.google.com(fra24s11-in-x0e.1e100.net (2a00:1450:4001:830::200e)) 56 data bytes
     From PROVIDER-PREFIX-RM:42:aff:fe0a:133 (PROVIDER-PREFIX-RM:42:aff:fe0a:133): icmp_seq=1 Destination unreachable: Address unreachable
     From PROVIDER-PREFIX-RM:42:aff:fe0a:133 (PROVIDER-PREFIX-RM:42:aff:fe0a:133): icmp_seq=2 Destination unreachable: Address unreachable
     From PROVIDER-PREFIX-RM:42:aff:fe0a:133 (PROVIDER-PREFIX-RM:42:aff:fe0a:133): icmp_seq=3 Destination unreachable: Address unreachable
     64 bytes from fra24s11-in-x0e.1e100.net (2a00:1450:4001:830::200e): icmp_seq=4 ttl=115 time=18.7 ms
    
     --- ipv6.google.com ping statistics ---
     4 packets transmitted, 1 received, +3 errors, 75% packet loss, time 95ms
     rtt min/avg/max/mdev = 18.738/18.738/18.738/0.000 ms, pipe 3
    
  • 附录:显然我对此很陌生,所以如果您想建议一个更好的编号方案,请务必这样做。

相关内容