Merge pull request 'Ajout du docker-compose.yml pour installer pihole en mavclan' (#68) from Miles-piholemacvlan into master
Reviewed-on: #68
This commit is contained in:
commit
681fdb0bd1
@ -6,7 +6,15 @@
|
||||
## Script de création d'interface virtuelle pour le conteneur AdGuardHome_macvlan ##
|
||||
## Voir tuto : https://www.nas-forum.com/forum/topic/69319-tuto-docker-macvlan-pi-hole/ ##
|
||||
## ##
|
||||
##========================================================================================##
|
||||
## Rappels des différentes IP : ##
|
||||
## - Plage d'IP macvlan : 192.168.xxx.MMM/28 ##
|
||||
## - IP virtuelle unique : 192.168.xxx.zzz/32 ##
|
||||
## - IP conteneur n°1 : 192.168.xxx.yyy ##
|
||||
## - IP conteneur n°2 : 192.168.xxx.ooo ##
|
||||
## - Plage d'IP du LAN : 192.168.xxx.0/24 ##
|
||||
## - Passerelle/routeur : 192.168.xxx.1 ##
|
||||
## ##
|
||||
##==========================================================================================
|
||||
|
||||
# Set timeout to wait host network is up and running
|
||||
sleep 60
|
||||
@ -16,7 +24,7 @@ echo "$(date "+%R:%S - ") Exécution des commandes..."
|
||||
|
||||
ip link add macv0 link ovs_eth0 type macvlan mode bridge # macv0 : est le nom données à l'interface virtuelle
|
||||
# ovs_eth0 : est l'interface réseau utilisée sur le NAS (lorsque VMM est utilisé)
|
||||
ip addr add 192.168.xxx.zzz/32 dev macv0 # Adresse IP virtuelle 192.168.x.zzz/32 -- Il faut que cette adresse soit libre dans le réseau
|
||||
ip addr add 192.168.xxx.zzz/32 dev macv0 # Adresse IP virtuelle 192.168.x.zzz/32 -- Il faut que cette adresse soit libre dans le réseau
|
||||
# et qu'elle ne fasse pas partie du DHCP du routeur/box
|
||||
|
||||
ip link set dev macv0 address 5E:00:01:02:03:04 # MAC adresse pour l'adaptateur ayant l'IP virtuelle
|
||||
|
@ -4,21 +4,30 @@
|
||||
## ##
|
||||
##==============================================================================================
|
||||
|
||||
##=======================================================================================================##
|
||||
## ##
|
||||
## Attention, il faut créer le réseau macvlan à l'aide du script : docker_network_create_macvlan.sh , ##
|
||||
## ou avec Portainer. ##
|
||||
## Ce dernier va créer un réseau macvlan ayant comme IP unique 192.168.xxx.yyy ##
|
||||
## Le conteneur sera donc vu comme une machine sur le réseau LAN, mais ne pourra pas être ##
|
||||
## joint par le NAS lui-même. ##
|
||||
## Pour celà, il faut utiliser le second script : bridgemacvlan-interface.sh ##
|
||||
## Ce dernier va créer une IP-interface virtuelle 192.168.xxx.zzz qui pourra être accessible par le NAS. ##
|
||||
## Cette interface ne persiste pas au démarrage, il faudra mettre le script en tâche planifiée avec le ##
|
||||
## planificateur de tâches dans DSM. ##
|
||||
## ##
|
||||
## Voir tuto : https://www.nas-forum.com/forum/topic/69319-tuto-docker-macvlan-pi-hole/ ##
|
||||
## ##
|
||||
##=======================================================================================================##
|
||||
##============================================================================================##
|
||||
## ##
|
||||
## Attention, il faut créer le réseau macvlan à l'aide du script : macvlan-network.sh ##
|
||||
## Ce dernier va créer un réseau macvlan ayant comme IP unique 192.168.2.210 ##
|
||||
## Cette IP doit être dans la plage d'IP mavclan définie dans le script de création du réseau.##
|
||||
## Le conteneur sera donc vu comme une machine sur le réseau LAN, mais ne pourra pas être ##
|
||||
## joint par le NAS lui-même. ##
|
||||
## Pour celà, il faut utiliser le second script : boot-bridgemacvlan-interface.sh ##
|
||||
## Ce dernier va créer une IP-interface virtuelle qui pourra être accessible par le NAS. ##
|
||||
## Cette interface ne persiste pas au démarrage, il faudra mettre le script en tâche ##
|
||||
## planifiée avec le planificateur de tâches dans DSM. ##
|
||||
## ##
|
||||
## Voir tuto : https://www.nas-forum.com/forum/topic/69319-tuto-docker-macvlan-pi-hole/ ##
|
||||
## ##
|
||||
## Attention ! ##
|
||||
## ##
|
||||
## Ces deux scripts ne sont à utiliser qu'une seule fois, quelque soit le nombre de ##
|
||||
## conteneurs qui en bénéficieront. ##
|
||||
## Par exemple, si vous utilisez 2 conteneurs en macvlan, une fois le réseau macvlan créé ##
|
||||
## pour le 1er, il est inutile (et impossible) de le recréer. ##
|
||||
## Le script boot-bridgemacvlan-interface.sh ne doit être lancé qu'une seule fois, et à ##
|
||||
## chaque reboot. L'IP virtuelle est unique, il ne faut pas en recréer une seconde. ##
|
||||
## ##
|
||||
##==============================================================================================
|
||||
|
||||
---
|
||||
version: "2.4"
|
||||
@ -57,7 +66,7 @@ services:
|
||||
|
||||
networks:
|
||||
macvlan-network:
|
||||
ipv4_address: 192.168.xxx.yyy # Mettre ici l'IP macvlan définie dans les scripts
|
||||
ipv4_address: 192.168.xxx.yyy # Mettre ici l'IP macvlan dans la plage définie dans les scripts
|
||||
|
||||
restart: unless-stopped
|
||||
|
||||
|
@ -9,7 +9,18 @@
|
||||
## ##
|
||||
## Les IPs prévues pour les conteneurs sont : ##
|
||||
## - AdGuard-Home : 192.168.xxx.yyy ##
|
||||
## - Pi-Hole : 192.168.xxx.ooo ##
|
||||
## ##
|
||||
## Rappels des différentes IP : ##
|
||||
## - Plage d'IP macvlan : 192.168.xxx.MMM/28 ##
|
||||
## - IP virtuelle unique : 192.168.xxx.zzz/32 ##
|
||||
## - IP conteneur n°1 : 192.168.xxx.yyy ##
|
||||
## - IP conteneur n°2 : 192.168.xxx.ooo ##
|
||||
## - Plage d'IP du LAN : 192.168.xxx.0/24 ##
|
||||
## - Passerelle/routeur : 192.168.xxx.1 ##
|
||||
## ##
|
||||
##==============================================================================================
|
||||
|
||||
##==============================================================================================
|
||||
## ##
|
||||
## --ip-range=192.168.xxx.MMM/28 : cela correspond à la plage d'IP pour le réseau macvlan ##
|
||||
@ -28,5 +39,5 @@ docker network create -d macvlan \
|
||||
--subnet=192.168.xxx.0/24 \
|
||||
--ip-range=192.168.xxx.MMM/28 \
|
||||
--gateway=192.168.xxx.1 \
|
||||
-o parent=ovs_eth0 \
|
||||
-o parent=ovs_eth0 \ # Ici, ovs_eth0 est à remplacer par votre interface réseau : eth0 ou autre...
|
||||
macvlan-network
|
46
docker-compose/pi-hole_macvlan/bridgemacvlan-interface.sh
Normal file
46
docker-compose/pi-hole_macvlan/bridgemacvlan-interface.sh
Normal file
@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
|
||||
##========================================================================================##
|
||||
## Script bridgemacvlan-interface.sh ##
|
||||
## ##
|
||||
## Script de création d'interface virtuelle pour le conteneur AdGuardHome_macvlan ##
|
||||
## Voir tuto : https://www.nas-forum.com/forum/topic/69319-tuto-docker-macvlan-pi-hole/ ##
|
||||
## ##
|
||||
## Rappels des différentes IP : ##
|
||||
## - Plage d'IP macvlan : 192.168.xxx.MMM/28 ##
|
||||
## - IP virtuelle unique : 192.168.xxx.zzz/32 ##
|
||||
## - IP conteneur n°1 : 192.168.xxx.yyy ##
|
||||
## - IP conteneur n°2 : 192.168.xxx.ooo ##
|
||||
## - Plage d'IP du LAN : 192.168.xxx.0/24 ##
|
||||
## - Passerelle/routeur : 192.168.xxx.1 ##
|
||||
## ##
|
||||
##==========================================================================================
|
||||
|
||||
# Set timeout to wait host network is up and running
|
||||
sleep 60
|
||||
|
||||
echo "$(date "+%R:%S - ") Script de création d'une interface virtuelle pour le NAS"
|
||||
echo "$(date "+%R:%S - ") Exécution des commandes..."
|
||||
|
||||
ip link add macv0 link ovs_eth0 type macvlan mode bridge # macv0 : est le nom données à l'interface virtuelle
|
||||
# ovs_eth0 : est l'interface réseau utilisée sur le NAS (lorsque VMM est utilisé)
|
||||
ip addr add 192.168.xxx.zzz/32 dev macv0 # Adresse IP virtuelle 192.168.x.zzz/32 -- Il faut que cette adresse soit libre dans le réseau
|
||||
# et qu'elle ne fasse pas partie du DHCP du routeur/box
|
||||
|
||||
ip link set dev macv0 address 5E:00:01:02:03:04 # MAC adresse pour l'adaptateur ayant l'IP virtuelle
|
||||
# Il faut que l'adresse MAC respecte ces conditions :
|
||||
# - Elle n'existe pas déjà sur mon hôte et sur mon réseau.
|
||||
# - Elle respecte la base hexadécimale, les notations allant de 0 à F.
|
||||
# - Le premier nombre doit être pair, ici 5E = 94 en base 10, c'est donc OK (vous pouvez
|
||||
# utiliser un convertisseur en ligne, ou faire vos divisions euclidiennes).
|
||||
# S'il est impair, vous aurez un message :
|
||||
# RTNETLINK answers: Cannot assign requested address
|
||||
ip link set macv0 up
|
||||
|
||||
ip route add 192.168.xxx.MMM/28 dev macv0 # 192.168.xxx.MMM/28 : Plage d'adresse macvlan
|
||||
# IP réellement disponible : voir les calculateurs internet
|
||||
# Utiliser Portainer ou l'interface Docker ou encore le script : create-macvlan-network.sh
|
||||
|
||||
|
||||
echo "$(date "+%R:%S - ") Script terminé"
|
||||
exit
|
85
docker-compose/pi-hole_macvlan/docker-compose.yml
Normal file
85
docker-compose/pi-hole_macvlan/docker-compose.yml
Normal file
@ -0,0 +1,85 @@
|
||||
##==============================================================================================
|
||||
## ##
|
||||
## Fichier docker-compose.yml pour Pi-Hole en macvlan ##
|
||||
## ##
|
||||
##==============================================================================================
|
||||
|
||||
##============================================================================================##
|
||||
## ##
|
||||
## Attention, il faut créer le réseau macvlan à l'aide du script : macvlan-network.sh ##
|
||||
## Ce dernier va créer un réseau macvlan ayant comme IP unique 192.168.2.211 ##
|
||||
## Cette IP doit être dans la plage d'IP mavclan définie dans le script de création du réseau.##
|
||||
## Le conteneur sera donc vu comme une machine sur le réseau LAN, mais ne pourra pas être ##
|
||||
## joint par le NAS lui-même. ##
|
||||
## Pour celà, il faut utiliser le second script : boot-bridgemacvlan-interface.sh ##
|
||||
## Ce dernier va créer une IP-interface virtuelle qui pourra être accessible par le NAS. ##
|
||||
## Cette interface ne persiste pas au démarrage, il faudra mettre le script en tâche ##
|
||||
## planifiée avec le planificateur de tâches dans DSM. ##
|
||||
## ##
|
||||
## Voir tuto : https://www.nas-forum.com/forum/topic/69319-tuto-docker-macvlan-pi-hole/ ##
|
||||
## ##
|
||||
## Attention ! ##
|
||||
## ##
|
||||
## Ces deux scripts ne sont à utiliser qu'une seule fois, quelque soit le nombre de ##
|
||||
## conteneurs qui en bénéficieront. ##
|
||||
## Par exemple, si vous utilisez 2 conteneurs en macvlan, une fois le réseau macvlan créé ##
|
||||
## pour le 1er, il est inutile (et impossible) de le recréer. ##
|
||||
## Le script boot-bridgemacvlan-interface.sh ne doit être lancé qu'une seule fois, et à ##
|
||||
## chaque reboot. L'IP virtuelle est unique, il ne faut pas en recréer une seconde. ##
|
||||
## ##
|
||||
##==============================================================================================
|
||||
|
||||
|
||||
---
|
||||
version: "2.4"
|
||||
services:
|
||||
pihole_macvlan:
|
||||
image: pihole/pihole # https://hub.docker.com/r/pihole/pihole
|
||||
# https://github.com/pi-hole/docker-pi-hole
|
||||
# https://github.com/pi-hole/docker-pi-hole/#environment-variables
|
||||
container_name: pihole_macvlan
|
||||
|
||||
hostname: pi-hole-BLABLA # C'est le nom que vous verrez en haut à droite dans l'UI.
|
||||
|
||||
environment:
|
||||
- ADMIN_EMAIL=email@ndd.tld
|
||||
- TZ=Europe/Paris
|
||||
# Les deux lignes suivantes sont dépréciées, et ne doivent plus être utilisées. Voir ici : https://github.com/pi-hole/docker-pi-hole/#deprecated-environment-variables
|
||||
#- DNS1=80.67.169.12 # IP des serveurs DNS FdN
|
||||
#- DNS2=9.9.9.9 # IP Quad9
|
||||
# Les deux lignes précédentes sont remplacées par la suivante
|
||||
- PIHOLE_DNS_=80.67.169.12;9.9.9.9
|
||||
- DNSSEC=false # Passer à true si les serveurs DNS gèrent le DNSSEC.
|
||||
- DNS_BOGUS_PRIV=true
|
||||
- DNS_FQDN_REQUIRED=true
|
||||
- DNSMASQ_LISTENING=local
|
||||
- INTERFACE=ovs_eth0 # Remplacer par votre interface réseau
|
||||
- REV_SERVER=true # Permet de recuperer les noms d hote des peripheriques du reseau
|
||||
- REV_SERVER_TARGET=192.168.2.1 # Voir paragraphe CONDITIONAL FORWARDING
|
||||
- REV_SERVER_CIDR=192.168.2.0/24 # Votre sous-reseau local
|
||||
#- REV_SERVER_DOMAIN=ndd.tld # Domaine local (Je n'utilise pas, donc je commente)
|
||||
- TEMPERATUREUNIT=C
|
||||
- WEBUIBOXEDLAYOUT=boxed
|
||||
- ServerIP=192.168.2.211 # IP du conteneur Pi-hole
|
||||
- VIRTUAL_HOST=pi.hole # Si on souhaite acceder a Pi-hole par un nom de domaine (proxy inverse par exemple)
|
||||
- WEBPASSWORD=xxxxxxxxxxxxxxxx
|
||||
|
||||
volumes:
|
||||
- /volume1/docker/pihole_macvlan/etc-pihole:/etc/pihole/
|
||||
- /volume1/docker/pihole_macvlan/etc-dnsmasq.d:/etc/dnsmasq.d/
|
||||
|
||||
# La section suivante ne me semble pas utile, compte tenu du fonctionnement du conteneur
|
||||
# Je la laisse mais en commentée.
|
||||
#dns:
|
||||
# - 127.0.0.1
|
||||
# - 80.67.169.12
|
||||
|
||||
networks:
|
||||
macvlan-network:
|
||||
ipv4_address: 192.168.2.211 # Mettre ici l'IP macvlan dans la plage définie dans les scripts
|
||||
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
macvlan-network: # Ce réseau devra bien entendu être créé avant avec le script
|
||||
external: true
|
@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
|
||||
##============================================================================================##
|
||||
## Script macvlan-network.sh ##
|
||||
## ##
|
||||
## Script de création d'interface virtuelle pour les conteneurs Swag at AdGuard Home ##
|
||||
## Voir tutos : ##
|
||||
## https://www.nas-forum.com/forum/topic/69319-tuto-docker-macvlan-pi-hole/ ##
|
||||
## ##
|
||||
## Les IPs prévues pour les conteneurs sont : ##
|
||||
## - AdGuard-Home : 192.168.xxx.yyy ##
|
||||
## - Pi-Hole : 192.168.xxx.ooo ##
|
||||
## ##
|
||||
## Rappels des différentes IP : ##
|
||||
## - Plage d'IP macvlan : 192.168.xxx.MMM/28 ##
|
||||
## - IP virtuelle unique : 192.168.xxx.zzz/32 ##
|
||||
## - IP conteneur n°1 : 192.168.xxx.yyy ##
|
||||
## - IP conteneur n°2 : 192.168.xxx.ooo ##
|
||||
## - Plage d'IP du LAN : 192.168.xxx.0/24 ##
|
||||
## - Passerelle/routeur : 192.168.xxx.1 ##
|
||||
## ##
|
||||
##==============================================================================================
|
||||
|
||||
##==============================================================================================
|
||||
## ##
|
||||
## --ip-range=192.168.xxx.MMM/28 : cela correspond à la plage d'IP pour le réseau macvlan ##
|
||||
## sachant que 192.168.xxx.MMM doit être la 1ère IP donnée par les calculateurs internet. ##
|
||||
## Il se peut que ce ne soit pas la même que l'IP macvlan que l'on veut donner au conteneur ##
|
||||
## AdGuardHome. ##
|
||||
## ##
|
||||
## Quelques calculateurs internet : ##
|
||||
## https://cric.grenoble.cnrs.fr/Administrateurs/Outils/CalculMasque/ ##
|
||||
## https://www.cidr.eu/en/calculator/+/192.168.2.208/28 ##
|
||||
## ##
|
||||
##==============================================================================================
|
||||
|
||||
|
||||
docker network create -d macvlan \
|
||||
--subnet=192.168.xxx.0/24 \
|
||||
--ip-range=192.168.xxx.MMM/28 \
|
||||
--gateway=192.168.xxx.1 \
|
||||
-o parent=ovs_eth0 \ # Ici, ovs_eth0 est à remplacer par votre interface réseau : eth0 ou autre...
|
||||
macvlan-network
|
Loading…
Reference in New Issue
Block a user