Macvlan 网络中的 Pihole 问题:当路由器 DNS 指向 Pihole 时主机和容器无法通信

Macvlan 网络中的 Pihole 问题:当路由器 DNS 指向 Pihole 时主机和容器无法通信

我不相信这与 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。谁能给我一个建议,我可以尝试调试这个?

我还发布了我的整个设置这里

相关内容