나는 이것이 피홀과 아무 관련이 없다고 생각합니다.
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는 확인할 수 없기 때문입니다. 누구든지 내가 이것을 디버깅할 수 있는 방법에 대한 제안을 줄 수 있습니까?
전체 설정도 올렸어요여기.