Aller au contenu

[TUTO] [Docker - macvlan] Pi-Hole


.Shad.

Messages recommandés

Une broutille au §IV Hypothèses :

Le 06/02/2021 à 19:04, .Shad. a dit :

Les sous-réseaux :

  • de votre réseau local : 192.168.100.0/24 (correspond à 192.168.100.0/255.255.255.0).
  • du réseau macvlan : 192.168.100.160/28 (correspond à une plage de 14 IP allant de 192.168.100.1601 à 192.168.100.174).

Et une autre au §V Installation :

Le 06/02/2021 à 19:04, .Shad. a dit :

Pour fermer l'éditeur de texte, on fait CTRL+O, Entrée puis CTRL+X pour sortir. On va maintenant régler les permissions :

Tel qu'on le lit, [Ctrl]+[O] servirait à fermer l'éditeur de texte. Ça risque de perturber les novices.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...

Bonjour,
 

J'ai suivi et mis en place pi-hole grâce à ce tuto depuis environ 2 mois avec succès.

Je rencontre cependant un léger problème avec le planificateur de taches. J'ai créé une tache planifiée au démarrage du NAS pour lancer le script de création de l'interface virtuelle (mac0-interface.sh), comme indiqué dans le tuto, mais cette tache ne s'exécute pas au démarrage. Je suis obligé de faire un clic droit > exécuter pour lancer le script manuellement et l'interface se crée alors parfaitement.

J'ai également remarqué que l'interface virtuelle disparaissait de temps en temps et je suis également obligé de relancer le script manuellement. Aujourd'hui c'est la maj du paquet docker de synology qui l'a fait disparaitre.

Je ne comprends pas vraiment ce comportement et ne sais pas quoi faire pour résoudre ce problème.

1533951608_Capturedcran2021-06-29184339.png.31f75df94dd0c8f09ef6fc959bb4fdf4.png165443498_Capturedcran2021-06-29184352.png.563c4a39ef53db0667243abd108feb57.png

 

1556573224_Capturedcran2021-06-29184306.thumb.png.ad0e18138ae02d0e83f42486be45d435.png

Lien vers le commentaire
Partager sur d’autres sites

Salut @guitouuu

Alors pour ton problème tu peux déjà essayer d'ajouter la ligne suivante en début de script dans ce dernier (pas la tâche).

#!/bin/sh

Et redémarrer ton NAS, voir ça si l'interface se crée cette fois.
Si pas, sur le mien j'ai une temporisation de 60s, tu peux ajouter juste après le shebang (la ligne que je t'ai proposée d'ajouter ci-avant) :

sleep 60

Et redémarrer de nouveau.

Lien vers le commentaire
Partager sur d’autres sites

@guitouuuj’ai comme @.Shad.le sleep 60 dans mon script de bridge macvlan. C’est d’ailleurs à quelques détails près le même script que celui que @.Shad.a fourni .

pas de soucis de mon côté malgré le passage à DSM7.


Sinon pour répondre à ta question sur pourquoi il faut relancer le script manuellement :

Il y a 4 heures, guitouuu a dit :

J’ai également remarqué que l'interface virtuelle disparaissait de temps en temps et je suis également obligé de relancer le script manuellement. Aujourd'hui c'est la maj du paquet docker de synology qui l'a fait disparaitre.

La mise à jour du paquet docker a du modifier les fichiers systèmes du réseau donc toutes les modifications faites avec le script sont à refaire.

il y a le même soucis avec le reverse proxy et le fichier dans lequel sont stocké les entrées (je le modifie pour faire fonctionner VaultWarden et les maj auto des clients desktop et extensions navigateur (c’est ce qu’on appelle les websocket notifications)).

Lien vers le commentaire
Partager sur d’autres sites

@.Shad. @MilesTEG1

Désolé de ne pas avoir répondu plus tôt mais je n'avais pas eu le temps de tester.

Je vous remercie pour vos réponses, c'était bien ça le problème.

En ajoutant #!/bin/sh et sleep 60 au début du script cela fonctionne parfaitement ! Plus besoin d'exécuter le script à la main c'est vraiment top 🙂

J'en ai profité pour désactiver la maj automatique de docker, je préfère les faire manuellement pour éviter d'avoir de nouveaux désagréments

Modifié par guitouuu
Lien vers le commentaire
Partager sur d’autres sites

Il y a 4 heures, guitouuu a dit :

J'en ai profité pour désactiver la maj automatique de docker, je préfère les faire manuellement pour éviter d'avoir de nouveaux désagréments

Faudra bien penser à vérifier régulièrement 😉

 je me demande s’il n’y a pas moyen de faire vérifier la présence de mise à jour et de recevoir une notification quand c’est le cas vu😊

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Bonjour,

Je ne parviens pas à faire fonctionner correctement sur un site distant la chaine pihole serveur DNS local.
Les tests par nslookup donnent les résultats suivants:
  - interrogations du serveur DNS renvoient les IP LAN
  - interrogations de piHole (serveur DNS en upstream) renvoient les IP WAN

L'installation et le paramétrage sur ce site distant (sur 218+ en DSM6) sont identiques à ce qui existe sur mon site local (sur 1815+ en DSM6 lors de l'installation, en DSM7 depuis) qui lui fonctionne correctement depuis de nombreux mois.
Les mêmes docker-compose et scripts de création réseaux ont été utilisés ( après adaptation des noms de domaines et IP LAN internes).

Une piste de recherche pour situer l'anomalie serait la bienvenue!
Merci

Lien vers le commentaire
Partager sur d’autres sites

Sur mon site local: Oui

Sur le site distant le routeur est une box où il est impossible de changer l'adresse de serveurs Dns.
Ces adresses sont fixées dans les paramètres des cartes réseaux des clients.
Actuellement, dans l'attente de la résolution de l'anomalie, pihole n'est plus utilisé et c'est l'IP du serveur DNS du 218+ renseignée.
Comme indiqué je teste les réponses directement avec nslookup.

 Edit:
Plus précisément:
nslookup xxx.ndd.tld Ip serveur dns du nas retourne IP LAN correcte
nslookup xxx.ndd.tld Ip pihole retourne IP WAN
PiHole avec Ip serveur dns du nas en upstream

Modifié par PPJP
Ajout précisions
Lien vers le commentaire
Partager sur d’autres sites

Peux-tu tester ces deux commandes ci, et me dire ce qu'elles renvoient ?

docker exec -it pihole cat /etc/resolv.conf
docker exec -it pihole nslookup local.ndd.tld

local.ndd.tld étant un domaine pour lequel tu as un enregistrement local dans ta zone DNS et pihole étant le nom du conteneur.

Modifié par .Shad.
Lien vers le commentaire
Partager sur d’autres sites

docker exec -it pihole cat /etc/resolv.conf:

nameserver 127.0.0.11
options ndots:0

docker exec -it pihole nslookup local.ndd.tld:

Server:         127.0.0.11
Address:        127.0.0.11#53

Non-authoritative answer:
xxx.nom_domaine.tld        canonical name = nom_domaine.tld.
Name:   nom_domaine.tld
Address: IPWAN

 

Modifié par PPJP
correction
Lien vers le commentaire
Partager sur d’autres sites

Le docker-compose:

version: '2.1'

services:

  pihole:
    image: pihole/pihole
    container_name: pihole
    hostname: pihole
    labels:
      - "com.centurylinklabs.watchtower.enable=true"
    networks:
      macvlan0:
        ipv4_address: 192.168.1.225
    environment:
      - ADMIN_EMAIL=xxxxxxx@ndd2.tld
      - TZ=Europe/Paris
      - DNS1=192.168.1.192
      - DNS2=192.168.1.4
      - DNSSEC=false
      - DNS_BOGUS_PRIV=true
      - DNS_FQDN_REQUIRED=true
      - DNSMASQ_LISTENING=local
      - INTERFACE=eth0
      - REV_SERVER=true
      - REV_SERVER_TARGET=192.168.1.1
      - REV_SERVER_CIDR=192.168.1.0/24
      - REV_SERVER_DOMAIN=ndd.tld
      - TEMPERATUREUNIT=C
      - WEBUIBOXEDLAYOUT=boxed
      - ServerIP=192.168.1.225
      - VIRTUAL_HOST=ph.ndd.tld
      - WEBPASSWORD=prgkqùrùekgg
    volumes:
      - /volume1/docker/pihole/etc-pihole:/etc/pihole/
      - /volume1/docker/pihole/etc-dnsmasq.d:/etc/dnsmasq.d/
    dns:
      - 127.0.0.1
    restart: unless-stopped

networks:
  macvlan0:
    external: true

 

Pour être complet, je joins les infos pour les réseaux

docker network create -d macvlan \
--subnet=192.168.1.0/24 \
--ip-range=192.168.1.224/28 \
--gateway=192.168.1.1 \
-o parent=eth0 \
macvlan0

ip link add mac0 link eth0 type macvlan mode bridge
ip addr add 192.168.1.192/32 dev mac0
ip link set dev mac0 address 02:00:00:00:00:10
ip link set mac0 up
ip route add 192.168.1.224/28 dev mac0

 

 

 

Modifié par PPJP
Ajout infos réseaux
Lien vers le commentaire
Partager sur d’autres sites

Ok merci du retour complet.
Tout me semble bon, donc les remarques qui me viennent :

- As-tu vérifié que l'interface virtuelle était toujours up ? Si tu redémarres le paquet Docker (mise à jour par exemple), elle est automatiquement supprimée. Ca pourrait expliquer que Pi-hole n'arrive pas à contacter le premier serveur upstream (l'IP virtuelle du NAS), donc il se rabat sur 192.168.1.4, qui est quoi, un autre serveur DNS local ?

On peut aussi le vérifier avec un nslookup depuis le conteneur Pi-hole en utilisant ton DNS local :

docker exec -it pihole nslookup www.google.fr 192.168.1.192

- Je te conseille d'ajouter un 2ème serveur DNS pour Pi-hole lui même :

dns:
   - 127.0.0.1
   - 80.67.169.12

Comme ça, 127.0.0.1 fonctionne mal (donc au final ce qui sera dans DNS1) , tu peux quand même bénéficier d'une résolution des domaines publics.

- Les variables DNS1 et DNS2 sont dépréciées, il faut les remplacer par PIHOLE_DNS_ (voir OP).

Lien vers le commentaire
Partager sur d’autres sites

192.168.1.4 est l'ip du second Nas (212j) sur lequel est installé un second serveur dns

il y a une heure, .Shad. a dit :

docker exec -it pihole nslookup www.google.fr 192.168.1.192

renvoie bien les infos pour Google.fr

il y a une heure, .Shad. a dit :

e te conseille d'ajouter un 2ème serveur DNS pour Pi-hole lui même

Est-ce vraiment utile? (Il n'y a aucun problème avec les ip externes)

La seule anomalie est la réponse de IPWAN pour les adresses internes

il y a une heure, .Shad. a dit :

il faut les remplacer par PIHOLE_DNS_

Bien noté. je frais les corrections.

Ce que je ne comprends vraiment pas, c'est par quel chemin l'IPWAN remonte à la place des IPLAN

Exemple:

user@DS218:~$ sudo docker exec -it pihole nslookup 212j.ndd.tld 192.168.1.192
Server:         192.168.1.192
Address:        192.168.1.192#53

Name:   xxx.ndd.tld
Address: 192.168.1.4

user@DS218:~$ nslookup 212j.ndd.tld 192.168.1.225
Server:         192.168.1.225
Address:        192.168.1.225#53

Non-authoritative answer:
212j.ndd.tld        canonical name = ndd.tld.
Name:   ndd.tld
Address: IPWAN

Modifié par PPJP
Complément
Lien vers le commentaire
Partager sur d’autres sites

Je t'avoue que là à première vue comme ça je ne vois pas.

Tu peux toujours créer un 2ème conteneur Pi-hole, tu peux copier le fichier compose tel quel dans un autre dossier pihole sur ton NAS. Tu penses à changer l'emplacement des volumes et utiliser une autre IP du réseau macvlan. Tout le reste devrait être ok.

Ça permettra de voir si c'est un problème de configuration "invisible" ou si c'est vraiment lié à la résolution DNS dans le réseau local.

Lien vers le commentaire
Partager sur d’autres sites

J'ai tenté de suivre vos conseils.

J'ai du supprimer le premier conteneur suite à un conflit.

Avec le nouveau pihole j'ai systématiquement la réponse suivante à nslookup sur pihole:

;; connection timed out; no servers could be reached

La manip ayant été faite rapidement, j'ai pu commettre des erreurs.

Dès que j'aurais un peu de temps, je referais la manip plus sérieusement.

Je vous ferais un retour à ce moment.

Modifié par PPJP
Lien vers le commentaire
Partager sur d’autres sites

Lorsqu'on duplique un fichier compose, il faut juste penser à changer le nom du conteneur.
Créer un nouveau volume pour avoir des volumes séparés.
Adapter éventuellement les variables d'environnement.
Et dans notre cas changer l'adresse IP sur le réseau macvlan.

Modifié par .Shad.
Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Bonjour,
Tout d'abord merci pour ce merveilleux tuto.

J'ai tout de même quelques questions au sujet de l'interface virtuelle... à quoi sert-elle ?
J'ai de mon côté créé un macvlan dans lequel j'ai mis quelque docker, je peux les ping et y accéder via leur propre adresse IP.
J'ai fais exactement la même chose que vous A PART la création de l'interface virtuelle, est-elle importante et si oui, pourquoi ?

Merci pour votre futur réponse, bonne journée.

Lien vers le commentaire
Partager sur d’autres sites

Il y a 21 heures, .Shad. a dit :

Depuis quel périphérique le ping ? le NAS ?

Depuis un PC présent dans le réseau local.
Je viens d'essayer depuis mon NAS en SSH et effectivement c'est le seul endroit depuis lequel je ne peux pas atteindre mes Dockers (ping)... c'est peut-être donc à ça que sert l'interface virtuelle 😅.

J'ai même essayé de rediriger avec un conteneur Nginx (qui est dans le macvlan) vers le DSM, et là aussi le conteneur n'atteint pas mon NAS.

Mille excuses.

Lien vers le commentaire
Partager sur d’autres sites

T'as tout compris.

Mais du coup si ton NAS utilise comme DNS l'IP du conteneur Pi-Hole, il ne pourra pas faire de résolution DNS car le serveur sera injoignable. Une solution est de créer l'interface virtuelle, afin d'établir un chemin entre le conteneur et le NAS. Une autre est de faire en sorte que la passerelle passe par un autre port RJ45, si tu en as plusieurs sur ton NAS.

La dernière est de configurer manuellement le DNS du NAS pour une IP qu'il peut atteindre (un serveur DNS local autre, le routeur/la box, des DNS publiques, etc...).

Lien vers le commentaire
Partager sur d’autres sites

il y a 7 minutes, .Shad. a dit :

Une solution est de créer l'interface virtuelle, afin d'établir un chemin entre le conteneur et le NAS. Une autre est de faire en sorte que la passerelle passe par un autre port RJ45, si tu en as plusieurs sur ton NAS

Merci pour ces propositions, je vais donc opter pour l'interface virtuelle.
Juste pour être sûr, j'aime bien pouvoir rapidement faire machine arrière en cas de problème :

ip link add mac0 link ovs_eth0 type macvlan mode bridge
ip addr add 192.168.100.200/32 dev mac0
ip link set dev mac0 address 5E:11:4F:AF:D6:D2
ip link set mac0 up
ip route add 192.168.100.160/28 dev mac0

il suffit de redémarrer son NAS pour tout annuler ?

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.