Macvlan 네트워크의 Pihole 문제: 라우터 DNS가 Pihole을 가리킬 때 호스트와 컨테이너가 통신할 수 없습니다.

Macvlan 네트워크의 Pihole 문제: 라우터 DNS가 Pihole을 가리킬 때 호스트와 컨테이너가 통신할 수 없습니다.

나는 이것이 피홀과 아무 관련이 없다고 생각합니다.

TL/DR docker의 macvlan이 있는 Pihole은 호스트와 통신할 수 없습니다. macvlan 내의 다른 컨테이너는 호스트와 통신할 수 있습니다. 이는 호스트와 통신할 수 없는 표준 macvlan 문제가 아닙니다. Pihole은 라우터 DNS 서버가 Pihole 컨테이너에 할당된 경우에만 호스트에서 액세스할 수 있으며 그 반대의 경우도 마찬가지입니다.

사용된이 가이드 맥블런을 설정하세요.

상태:

Raspberry Pi에서 실행되는 Pihole 1개(xxx9)(Pi#1)

Nuc에서 실행되는 Pihole 1개(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

패킷 손실은 반환되지 않으며, 파이홀은 인터넷에 접속할 수 있습니다.

누크에서:

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의 파이홀을 가리키면 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가 파이홀을 가리키면 파이홀에만 문제가 발생합니다. 이 문제는 브리지된 네트워크를 포함하여 호스트 네트워크를 사용하는 호스트 및 컨테이너에만 적용됩니다. DNS는 확인할 수 없기 때문입니다. 누구든지 내가 이것을 디버깅할 수 있는 방법에 대한 제안을 줄 수 있습니까?

전체 설정도 올렸어요여기.

관련 정보