我不相信这与 pihole 有关。
TL/DR docker 中带有 macvlan 的 Pihole 无法与主机通信。 macvlan 内的其他容器能够与主机通信。这不是标准的 macvlan 无法与主机通信的问题。仅当路由器 DNS 服务器分配给 Pihole 容器时,Pihole 才能从主机访问,反之亦然。
用过的本指南 设置 macvlan。
情况:
1x Pihole 在 Raspberry Pi (xxx9) (Pi#1) 上运行
1x Pihole 在 Nuc (macvlan xxx243) 上运行 (Pi #2)
我正在尝试切换到 Pihole 2 并超越 Pi。
因此,当前路由器 DNS 指向 Pi 1。Pihole 2 已启动并在 Macvlan 中的 Nuc 上运行。在 Nuc 主机上,我可以运行nslookup example.com 192.168.2.243
并且它返回一个值,所以它可以工作。
所以您会认为切换并将路由器更改为指向 .243 是安全的,对吧?错误,将路由器 dns 更改为指向 .243 后nslookup example.com 192.168.2.243
不再起作用! .243 突然变得无法访问我不明白。
user@nuc:~$ nslookup example.com 192.168.2.243
;; communications error to 192.168.2.243#53: connection refused
;; communications error to 192.168.2.243#53: connection refused
;; communications error to 192.168.2.243#53: connection refused
;; no servers could be reached
此返回立即没有超时或任何东西。
这是 macvlan:
sudo docker network create -d macvlan -o parent=eno1 \
--subnet 192.168.2.0/24 \
--gateway 192.168.2.100 \
--ip-range 192.168.2.240/28 \
--aux-address="nuc=192.168.2.254" \
macvlan
启动时我使用 systemd 服务运行它:
ip link add macvlan-shim link eno1 type macvlan mode bridge
ip addr add 192.168.2.254/28 dev macvlan-shim
ip link set macvlan-shim up
ip route add 192.168.2.240/28 dev macvlan-shim
Pihole 能够下载重力列表并在启动时更新没有问题。
来自努克:
sudo docker exec -ti pihole ping -c 4 google.com
返回无丢包,pihole可以上网。
来自努克:
ping 192.168.2.243
user@nuc:~$ ping 192.168.2.243
PING 192.168.2.243 (192.168.2.243) 56(84) bytes of data.
From 192.168.2.21 icmp_seq=1 Destination Host Unreachable
From 192.168.2.21 icmp_seq=2 Destination Host Unreachable
无法访问 - .21 是主机/nuc - 这似乎是一个线索
来自也在 macvlan 上运行的 homeassistant 容器 (.242)
sudo docker exec -ti homeassistant ping -c 4 192.168.2.243
PING 192.168.2.243 (192.168.2.243): 56 data bytes
64 bytes from 192.168.2.243: seq=0 ttl=64 time=0.058 ms
64 bytes from 192.168.2.243: seq=1 ttl=64 time=0.050 ms
这样macvlan同一个网络的homeassistant就可以访问pihole了。
从 Nuc 到家庭助理:
user@nuc:~$ ping 192.168.2.242
PING 192.168.2.242 (192.168.2.242) 56(84) bytes of data.
64 bytes from 192.168.2.242: icmp_seq=1 ttl=64 time=0.124 ms
64 bytes from 192.168.2.242: icmp_seq=2 ttl=64 time=0.074 ms
Nuc 到 homeassistant 是可达的 - 所以这个问题与 macvlan 没有直接关系
当路由器 DNS 未指向 .243 时使用 nmap
user@nuc:~$ nmap 192.168.2.243
Starting Nmap 7.80 ( https://nmap.org ) at 2024-01-03 17:25 UTC
Nmap scan report for 192.168.2.243
Host is up (0.00013s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
当路由器 DNS 指向 0.243 处的 pihole 时,nmap
user@nuc:~$ nmap 192.168.2.243
Starting Nmap 7.80 ( https://nmap.org ) at 2024-01-03 17:29 UTC
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.03 seconds
user@nuc:~$ nmap -Pn 192.168.2.243
Starting Nmap 7.80 ( https://nmap.org ) at 2024-01-03 17:29 UTC
Nmap scan report for 192.168.2.243
Host is up (0.29s latency).
All 1000 scanned ports on 192.168.2.243 are filtered
Nmap done: 1 IP address (1 host up) scanned in 51.05 seconds
Sooo Tl/dr 它与 macvlan 无关,至少不直接相关。主机能够与 macvlan 内的其他容器进行通信。当路由器 dns 指向 pihole 时,只有 pihole 会出现问题。该问题仅适用于使用主机网络的主机和容器,包括桥接网络,因为它们无法解析 DNS。谁能给我一个建议,我可以尝试调试这个?
我还发布了我的整个设置这里。