Aller au contenu

[TUTO] [Docker - macvlan] Pi-Hole


.Shad.

Messages recommandés

Finalement comme cela à l'air de fonctionner en renseignant les dns IPV6 dans la Freebox j'ai changé l'ordre des serveurs pour être conforme au tuto.

J'avais Freebox==>DNSServeur==>pi-hole.... j'ai maintenant Freebox==>Pi-hole==>DNSServeur.

A savoir :

Freebox :

IPV4 des piholes dans les DNS du DHCP de la Freebox, IPV6 des piholes dans les DNS de la config IPV6 de la Freebox.

Pi-hole: IPV4 et IPV6 (virtuels) des 2 nas comme upstream DNS serveur

Les Nas : IPV4 et IPV6 de FDN comme résolveur de DNS Serveur

Je verrai bien si je retrouve les pubs à l'usage. pour l'instant ça tient.

 

 

Lien vers le commentaire
Partager sur d’autres sites

il y a 35 minutes, PiwiLAbruti a dit :

Je sens que ce n'est pas encore très clair.

ça c'est bien vrai 

Mais par contre le paramétrage des DNS IPV6 de la Freebox intervient bien quelque part:

Sans, je retombe sur les pub au bout d'un moment. Avec les IPV6 des piholes je reste nickel !

Lien vers le commentaire
Partager sur d’autres sites

Bonjour . Super tuto. 

Ca fonctionne MAIS impossible de mettre mon nas en upstream . C'est la seul interface que dans le docker je ne peux pas pinger. J'ai bien lu pour le "mettre interface virtuel" . Mais je n'ai que l'adresse du nas. Aucune communication entre ce docker et le hots. Je me casse la tete la dessus . 

Lien vers le commentaire
Partager sur d’autres sites

Salut @sunmetis

Donc l'idée c'est de renvoyer les requêtes DNS vers le NAS c'est ça ? Pourquoi ? un serveur DNS local configuré dans DSM ?

Le 17/05/2023 à 00:04, sunmetis a dit :

J'ai bien lu pour le "mettre interface virtuel" . Mais je n'ai que l'adresse du nas. Aucune communication entre ce docker et le hots. Je me casse la tete la dessus . 

Pas très clair. Est-ce que l'interface virtuelle est bien montée ?

Que donne :

ifconfig | grep -A 9 mac0

(si tu as appelé ton interface mac0)

Lien vers le commentaire
Partager sur d’autres sites

  • 4 mois après...

@.Shad. bonjour,

Sais-tu (je pense que oui :wink: mais j'espère l'apprendre) à quoi se rapporte la température affichée en haut à gauche du dashboard ?

Sinon ça fonctionne super mes deux pi-holes sous docker même avec mes adaptateurs USB 2.5Gbts mis en place.

Par contre il m'arrive, suite à un redémarrage du serveur, que le pi-hole reste en plan. Une tentative de relance (docker-compose down puis docker-compose up -d) donne une notification signifiant que l'adresse IP existe déjà.

La seule solution trouvée est de refaire docker-compose down, de supprimer l'interface ifconfig mac0 down, de supprimer le réseau Macvlan et de redémarrer le serveur. Après cette manip je peux tout remettre en place.

Comment faire plus simple ?

Faudrait que je regarde de plus près le script de @MilesTEG1 si ça n'évite pas ce problème.

Sinon, dernière remarque en relisant les derniers posts :

Le 10/05/2023 à 7:39 PM, PiwiLAbruti a dit :

Il n'y a pas de Freebox en fait, juste Pi-Hole -> DNS Server (-> redirecteur DNS).

La Freebox intervient bien puisque c'est elle et elle seule qui indique les pi_holes en DNS.

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

Il y a 2 heures, Jeff777 a dit :

La Freebox intervient bien puisque c'est elle et elle seule qui indique les pi_holes en DNS.

Dans la résolution DNS elle n'intervient pas, elle communique au moment de l'octroi du bail DHCP quel(s) serveur(s) DNS utiliser, ça c'est vrai.

Pour ton problème, je n'ai jamais eu le moindre souci, mais j'utilise les connexions RJ45 natives du NAS.
Quand tu dis que le Pi-hole reste en plan, tu veux dire que le conteneur n'est pas créé ? ou que la résolution DNS ne fonctionne pas ? ou que l'interface virtuelle n'est pas encore montée ?

Pour la température elle correspond à celle du capteur CPU.

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

Merci pour tes réponses @.Shad.

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

tu veux dire que le conteneur n'est pas créé

C'est cela, et les logs disent que l'adresse IP est déjà occupée. Même chose si j'essaie de relancer le containeur.

Mais curieusement cela n'arrive que sur le nas2 pas sur le 1.

Sinon, la résolution DNS fonctionne et l'interface virtuel est créé.

Les logs de portainer :

 

i] Installing /etc/dnsmasq.d/01-pihole.conf...

  [] Installed /etc/dnsmasq.d/01-pihole.conf

  [i] Installing /etc/.pihole/advanced/06-rfc6761.conf...

  [] Installed /etc/dnsmasq.d/06-rfc6761.conf

  [i] Installing latest logrotate script...

         [i] Existing logrotate file found. No changes made.

  [i] Pre existing WEBPASSWORD found

  [i] Setting Web Theme based on WEBTHEME variable, using value default-darker

  [i] Added ENV to php:

                    "TZ" => "Europe/Paris",

                    "PIHOLE_DOCKER_TAG" => "",

                    "PHP_ERROR_LOG" => "/var/log/lighttpd/error-pihole.log",

                    "CORS_HOSTS" => "",

                    "VIRTUAL_HOST" => "pi-hole",

  [i] Using IPv4 and IPv6

  [i] Installing latest Cron script...

  [] Installing latest Cron script

  [i] Preexisting ad list /etc/pihole/adlists.list detected (exiting setup_blocklists early)

  [i] Setting DNS servers based on PIHOLE_DNS_ variable

  [i] Applying pihole-FTL.conf setting LOCAL_IPV4=192.168.1.167

  [i] Applying pihole-FTL.conf setting LOCAL_IPV6=fe80::42:XXXXXXXXXX

  [i] FTL binding to custom interface: eth1

  [i] Enabling Query Logging

  [i] Testing lighttpd config: Syntax OK

  [i] All config checks passed, cleared for startup ...

  [i] Docker start setup complete

  [i] pihole-FTL (no-daemon) will be started as pihole

s6-rc: info: service _startup successfully started

s6-rc: info: service pihole-FTL: starting

s6-rc: info: service pihole-FTL successfully started

s6-rc: info: service lighttpd: starting

s6-rc: info: service lighttpd successfully started

s6-rc: info: service _postFTL: starting

s6-rc: info: service _postFTL successfully started

s6-rc: info: service legacy-services: starting

  Checking if custom gravity.db is set in /etc/pihole/pihole-FTL.conf

s6-rc: info: service legacy-services successfully started

  [i] Neutrino emissions detected...

 

  [] Pulling blocklist source list into range

  [i] Preparing new gravity database...

  [] Preparing new gravity database

  [i] Creating new gravity databases...

  [] Creating new gravity databases

  [i] Using libz compression

  [i] Target: https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts

  [i] Status: Pending...

  [] Status: Retrieval successful

 

  [] Parsed 137890 exact domains and 0 ABP-style domains (ignored 1 non-domain entries)

      Sample of non-domain entries:

        - "0.0.0.0"

  [i] List stayed unchanged

  [i] Building tree...

  [] Building tree

  [i] Swapping databases...

  [] Swapping databases

  [] The old database remains available

Error: in prepare, database is locked (5)

  [i] Number of gravity domains: 137890 (137890 unique domains)

  [i] Number of exact blacklisted domains: 0

  [i] Number of regex blacklist filters: 1

  [i] Number of exact whitelisted domains: 0

  [i] Number of regex whitelist filters: 10

  [i] Cleaning up stray matter...

  [] Cleaning up stray matter

  [] FTL is listening on port 53

     [] UDP (IPv4)

     [] TCP (IPv4)

     [] UDP (IPv6)

     [] TCP (IPv6)

  [] Pi-hole blocking is enabled

  Pi-hole version is v5.17.1 (Latest: v5.17.1)

  AdminLTE version is v5.20.1 (Latest: v5.20.1)

  FTL version is v5.23 (Latest: v5.23)

  Container tag is: 2023.05.2

s6-rc: info: service legacy-services: stopping

s6-rc: info: service legacy-services successfully stopped

s6-rc: info: service _postFTL: stopping

s6-rc: info: service _postFTL successfully stopped

s6-rc: info: service lighttpd: stopping

Stopping lighttpd

s6-rc: info: service lighttpd successfully stopped

s6-rc: info: service pihole-FTL: stopping

Stopping pihole-FTL

s6-rc: info: service pihole-FTL successfully stopped

s6-rc: info: service _startup: stopping

Stopping cron

s6-rc: info: service _startup successfully stopped

s6-rc: info: service _uid-gid-changer: stopping

s6-rc: info: service _uid-gid-changer successfully stopped

s6-rc: info: service cron: stopping

s6-rc: info: service cron successfully stopped

s6-rc: info: service legacy-cont-init: stopping

s6-rc: info: service legacy-cont-init successfully stopped

s6-rc: info: service fix-attrs: stopping

s6-rc: info: service fix-attrs successfully stopped

s6-rc: info: service s6rc-oneshot-runner: stopping

s6-rc: info: service s6rc-oneshot-runner successfully stopped

 

Et dans le journal de "Container manager :

 

Capture.png

 

Si tu as une idée sur la direction à chercher ou au moins une commande SSH pour supprimer l'adresse utilisée dont il est question ce qui m'évitera la manip assez longue que j'utilise. Rien d'urgent, c'est juste pour t'occuper à tes moments perdus :wink:.

Lien vers le commentaire
Partager sur d’autres sites

Hello @Jeff777
Je ne sais si avec mon script pour l'interface USB 2,5G tu aurais encore ou plus du tout ces erreurs...

C'est à tenter.

Précision : mon script n'agit que sur l'interface de l'adaptateur USB, et les autres interfaces réseau en les coupant si celle de l'USB est fonctionnelle.

Tu peux essayer le script, sans paramétrer de tâche déclenchée/planifiée au boot pour le lancer. Ainsi si ça te coupe tout accès, un reboot et hop, c'est re-là.

Dernière chose, ton interface macvlan, est-ce que tu l'as liée à ton interface réseau de l'adaptateur USB ?
Même chose pour ton interface virtuelle ?

Si oui aux deux, il faut que tu lances ton script d'interface virtuelle bien après mon script sinon elle risque de se créer sur une interface non encore UP.

 

Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, MilesTEG1 a dit :

Dernière chose, ton interface macvlan, est-ce que tu l'as liée à ton interface réseau de l'adaptateur USB ?
Même chose pour ton interface virtuelle ?

Ben oui, sinon ça ne marche pas puisque mes interfaces réseau des ports éthernet ne sont pas connectées !

Par contre je viens de découvrir que pour me sortir du plantage pi-hole lors d'un redémarrage nas il suffit dans container manager de déconnecter pi-hole du macvlan (ContainerManager/réseaux cocher macvlan puis décocher pi-hole).

Pourquoi je reste avec cette liaison lorsque je redémarre alors que pi-hole a planté ?

et pourquoi je n'ai le problème que sur le nas2 ?

Il y a 1 heure, MilesTEG1 a dit :

Précision : mon script n'agit que sur l'interface de l'adaptateur USB, et les autres interfaces réseau en les coupant si celle de l'USB est fonctionnelle.

Question pour bien comprendre : mes ports réseaux ne sont pas connectés mais je peux les utiliser en cas de plantage de l'USB. dans ce cas il suffit de connecter un des ports réseau, se connecter à DSM grâce à Synology assistant (où bien faire un scan du réseau pour trouver l'adresse IP) puis refaire l'installation adaptateur, macvlan etc..... Est-ce que ton script fait cela ?

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

Il y a 2 heures, Jeff777 a dit :

Question pour bien comprendre : mes ports réseaux ne sont pas connectés mais je peux les utiliser en cas de plantage de l'USB. dans ce cas il suffit de connecter un des ports réseau, se connecter à DSM grâce à Synology assistant (où bien faire un scan du réseau pour trouver l'adresse IP) puis refaire l'installation adaptateur, macvlan etc..... Est-ce que ton script fait cela ?

Qu'entends-tu par "pas connectés" ?

  • Pas de câble raccordé ?
  • Câble raccordé, mais interface "down" (via un ifconfig ethX down) ?

Si pas de câble connecté, mon script ne pourra pas connecter le câble 🤣

Mais dans tous les cas, si l'interface USB est KO, mon script réactive toutes les interfaces de la liste données dans les premières variables.
Si l'interface USB est online et que le ping vers la passerelle par défaut passe sans soucis, alors le script désactive toutes ces interfaces inutiles (eth0...)

Regarde ce que j'ai :
3eOC5Rf.png

Mais si le script détecte lors d'un de ses lancements automatiques que mon adaptateur USB est KO (pilote ou autre), il va me réactiver LAN1 et LAN2 (donc eth0 et eth1).

 

Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, MilesTEG1 a dit :

Qu'entends-tu par "pas connectés" ?

non raccordé au réseau.

Il y a 1 heure, MilesTEG1 a dit :

Si pas de câble connecté, mon script ne pourra pas connecter le câble 

Ah bon ...c'est dommage.

Bon si je comprends bien, ton script me serait utile que si je ne suis pas chez moi. C'est juste ce qui me manquait pour comprendre l'intérêt. Dans mon cas, à condition de raccorder un port ethernet sur chaque nas au réseau (avec l'interface down), dans l'hypothèse où l'interface USB plante je peux toujours,après déclenchement auto du script,  me connecter de l'extérieur au nas et éventuellement rétablir l'interface USB. C'est bien cela ?

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

Il y a 2 heures, Jeff777 a dit :

Dans mon cas, à condition de raccorder un port ethernet sur chaque nas au réseau (avec l'interface down), dans l'hypothèse où l'interface USB plante je peux toujours,après déclenchement auto du script,  me connecter de l'extérieur au nas et éventuellement rétablir l'interface USB. C'est bien cela ?

Oui c’est exactement pour ça que j’ai fait le script : le faire une porte d’entrée de secours si l’interface usb plante .

perso j’en ai que le porte lan1 (donc eth0) connecté à un switch gigabit en plus de l’interface usb qui elle est connectée à un switch 2,5G.

Le deuxième port réseau du nas (eth1 donc lan2) lui reste non branché à un switch. Mais il se fait désactiver quand même par le script.

 

 

Lien vers le commentaire
Partager sur d’autres sites

il y a 1 minute, MilesTEG1 a dit :

Oui c’est exactement pour ça que j’ai fait le script : le faire une porte d’entrée de secours si l’interface usb plante

Super je vais pouvoir occuper deux ports supplémentaires de mon switch avec mes deux nas :wink:

Lien vers le commentaire
Partager sur d’autres sites

Il y a 18 heures, Jeff777 a dit :

Si tu as une idée sur la direction à chercher ou au moins une commande SSH pour supprimer l'adresse utilisée dont il est question ce qui m'évitera la manip assez longue que j'utilise. Rien d'urgent, c'est juste pour t'occuper à tes moments perdus :wink:.

Visiblement c'est la partie IPv6 qui pose problème.
Est-ce que la gateway a bien toujours la même IP link-local que celle renseignée dans le réseau macvlan ?

Sans être une solution, un contournement : https://github.com/moby/libnetwork/issues/2455

Citation

Don't we have to set accept_ra=0 in macvlan driver??

La team Docker n'a pas l'air pressée de traiter ce problème.

Mais ici https://github.com/moby/moby/issues/43466

Citation

The problem exists on any Linux machine where IPv6 routes are auto-configured via router advertisements, not statically configured, not configured with DHCP6.

Apparemment c'est l'utilisation de SLAAC sur le NAS qui engendre ce problème.
Est-ce que tu obtiens tes IP via SLAAC ou DHCPv6 ?

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

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

Est-ce que la gateway a bien toujours la même IP link-local que celle renseignée dans le réseau macvlan ?

oui la freebox à la même adresse IPV6 locale que celle indiquée aux deux réseaux macvlan (un dans chaque nas)

 

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

Sans être une solution, un contournement : https://github.com/moby/libnetwork/issues/2455

Oui c'est bien le même problème. Je viens d'arrêter 6 containeurs pour ne laisser que pi-hole....dans ce cas un redémarrage du nas ne crée pas d'erreur. Je peux alors redémarrer tous les 6 autres containeurs sans problème. 

Bravo d'avoir trouvé cela.....je me sens moins seul :lol:

Par contre  je ne comprends pas  que ce problème arrive lorsque l'on démarre deux containeurs sur le même réseau macvlan. Or sur ce nas, pi-hole est le seul ! J'ai bien l'autre nas avec un pi_hole sur macvlan mais celui-ci est déjà en fonction.

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

Est-ce que tu obtiens tes IP via SLAAC ou DHCPv6 ?

SLAAC oui !

 

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

Don't we have to set accept_ra=0 in macvlan driver??

ça je ne comprends pas bien. Lorsque j'avais la box en bridge sur un routeur, le "routeur advertissement" était configuré avec le préfix de la box dans le routeur. Maintenant la box est configurée en routeur et je suppose que par défaut le préfixe est automatiquement transmis. Si je configure le macvlan avec "accept_ra=0" ça va mettre la pagaille non ?

Il y a 8 heures, MilesTEG1 a dit :

merci synology de faire les pingres à ne pas vouloir inclure du 2,5G de base sur les nas !

la concurrence eux l’ont bien saisi 😅

Bien d'accord !

Lien vers le commentaire
Partager sur d’autres sites

As-tu réellement besoin d'attribuer une IPv6 à ton Pi-hole ? Personnellement mon trafic est grande partie en IPv6 (dual stack natif chez mon fournisseur), et les requêtes sont traitées par mon Pi-hole qui ne dispose que d'une IPv4.

pihole_request_types.png

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

  • 4 semaines après...
Le 06/02/2021 à 12:04 PM, .Shad. a dit :

bash mac0-interface.sh

Bonjour.

Je raconte une mauvaise expérience, heureusement vite résolue : cela peut en aider d'autres.

Quand j'executais le script j'avais l'erreur suivante :

root@monnas:/volume1/docker/networks# bash mac0-interface.sh
Error: argument of "mode" must be "private", "vepa", "bridge" or "passthru", not""bridge
"annot find device "mac0
Cannot find device "mac0"
" is a garbage.dev" is duplicate, or "up
Cannot find device "mac0"

Pourtant, c'était bien bridge qui était indiqué dans la commande mode, alors je ne comprenais pas...

Sauf que, en l'absence de nano sur mon NAS, j'avais utilisé Notepad++ pour écrire le script !

Si d'autres s'y essaient, penser à convertir les sauts de ligne au format UNIX !!! (dans le menu "édition" de Notepad++)

Modifié par Patrix
soltion trouvée donc rédaction sous forme de tip au lieu de question sur un problème
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.