wurst mit 25% gemueseanteil
fuer die leute, die weniger fleisch essen wollen oder wie?
da kann man dann ruhigen gewissens ne scheibe mehr aufs brot legen… denn gemuese ist gesund 😉
nachbar mull tone, hausnummer alte papier
ich dachte immer, das waeren fakes, wenn man sowas mal auf facebook oder twitter gesehen hat… bis man es dann selbst erlebt.
kein urinal! part 2
den hier hatte ich letztes jahr schon gepostet:
nun habe ich ein aehnliches modell eines anderen herstellers gesehen…
und das koennte echt zu verwechslungen fuehren! 😉
pi-hole “high availability” bzw. failover
gegen geschwaetzige geraete in meinem boesen multimedia vlan und nervige werbung im allgemeinen nutze ich pi-hole. das ist zwar kein allheilmittel, aber sorgt schonmal fuer eine solide basis im kampf gegen nerver und datensammler. fuer das finetuning kann man in pi-hole seine eigenen black- und whitelists pflegen. obendrein bietet die schicke weboberflaeche einiges an moeglichkeiten zur auswertung und administration.
im eigenen heimnetz bin ich gerne um ausfallsicherheit bemueht. an einigen stellen habe ich dafuer sorge getragen, an anderen muss ich noch etwas schrauben. unter anderem an der dns aufloesung ueber den pi-hole. wenn der mal aus irgendwelchen gruenden nicht will, hat man gleich kein funktionierendes netz mehr (also netz schon, aber ohne namensaufloesung wirds doof.)
abhilfe schafft man natuerlich mit einem zweiten pi-hole. dazu muesste man seinen geraeten zwei dns server bekannt machen. entweder per konfiguration im dhcp server oder bei geraeten mit fest eingetellter IP einen zweiten dns server eintragen. nun gibt es dhcp server implementierungen in irgendwelchen plaste routern, die nur das setzen eines dns servers erlauben. genauso habe ich geraete im hardware zoo, denen man nur einen dns server in der statischen netzwerk konfiguration eintragen kann.
selbst wenn diese beiden probleme nicht hat und zwei pi-hole’s gleichzeitig betreibt, bleiben unzulaenglichkeiten bei der administration. zum einen muss man die konfiguration auf beiden gleich halten, was man mit einem cronjob und rsync oder scp hin bekommt. zum anderen verteilen sich natuerlich auch die dns anfragen der clients auf zwei pi-holes, was dann die schicken statistik bildchen und auswertungen unbrauchbar macht.
auf der suche nach einer loesung bin ich auf einen artikel auf adminforge.de gestossen. da ist beschrieben, wie man unter linux mit “keepalived” eine art hochverfuegbarkeit mit einer virtuellen failover-ip macht. diese failover-ip ist die, die man dann in der dhcp config und in den statisch konfigurierten geraeten als dns server eintraegt. eine der beiden pi-hole instanzen laeuft immer als “master” und beantwortet alle anfragen. sobald dieser nicht verfuegbar ist, schnappt sich der “slave” diese virtuelle failover-ip und beantwortet die dns anfragen.
damit hat man zwar immernoch das problem mit dem synchronisieren der config dateien und auch den verfaelschten statistiken und auswertungen, was aber wenigstens nur im ernstfall eintritt, solange der master nicht erreichbar ist. sobald er wieder erreichbar ist, wird die ip auf diesen zurueck geschwenkt.
ich war mal so frei und hab die konfiguration auf o.g. webseite fast genauso uebernommen:
1 . um zu erlauben, dass ip-adressen auch auf nicht lokale schnittstellen zugewiesen werden duerfen, ist eine kleine anpassung auf maste und slave node notwendig:
echo "net.ipv4.ip_nonlocal_bind = 1" >> /etc/sysctl.conf sysctl -p |
2. auf beiden nodes das paket “keepalived” installieren und sicherstellen, dass der auch nach einen boot startet:
apt-get install keepalived systemctl enable keepalived.service |
3. keepalived konfiguration master (datei /etc/keepalived/keepalived.conf)
global_defs { notification_email { alerts@domain.de # Benachrichtigungs Zieladresse(n) } notification_email_from keepalived@pihole1.domain.de # Benachrichtigungs Quelladresse smtp_server localhost # SMTP Serveradresse smtp_connect_timeout 30 # Timeout zum SMTP Server router_id pihole1 # Eindeutige ID wie z.B. HOSTNAME script_user root # Benutzer der Notify Scripte enable_script_security # Script Sicherheit einschalten } vrrp_instance PIHOLE { state MASTER interface wlan0 # Genutztes Interface virtual_router_id 51 # ID der Route priority 150 # Master Prio 150, Backup Prio 50 advert_int 5 # Intervall der VRRP Pakete smtp_alert # E-Mail Benachrichtigung aktiviren unicast_src_ip 192.168.1.x # Unicast Quelladresse unicast_peer { 192.168.1.x # Unicast Zieladresse(n) } authentication { auth_type PASS # Authentifizierungs Typ auth_pass xxxxxxxxxxxx # Authentifizierungs Passwort } virtual_ipaddress { 192.168.1.10/24 # Virtuelle Failover IP-Adresse } # notify_master "" # Notify Script für den Master Status (einkommentieren, wenn genutzt wird) # notify_backup "" # Notify Script für den Backup Status (einkommentieren, wenn genutzt wird) # notify_fault "" # Notify Script für den Fehler Status (einkommentieren, wenn genutzt wird) } |
4. keepalived konfiguration slave (datei /etc/keepalived/keepalived.conf)
global_defs { notification_email { alerts@domain.de # Benachrichtigungs Zieladresse(n) } notification_email_from keepalived@pihole2.domain.de # Benachrichtigungs Quelladresse smtp_server localhost # SMTP Serveradresse smtp_connect_timeout 30 # Timeout zum SMTP Server router_id pihole2 # Eindeutige ID wie z.B. HOSTNAME script_user root # Benutzer der Notify Scripte enable_script_security # Script Sicherheit einschalten } vrrp_instance PIHOLE { state BACKUP interface wlan0 # Genutztes Interface virtual_router_id 51 # ID der Route priority 50 # Master Prio 150, Backup Prio 50 advert_int 5 # Intervall der VRRP Pakete smtp_alert # E-Mail Benachrichtigung aktiviren unicast_src_ip 192.168.1.x # Unicast Quelladresse unicast_peer { 192.168.1.x # Unicast Zieladresse(n) } authentication { auth_type PASS # Authentifizierungs Typ auth_pass xxxxxxxxxxxx # Authentifizierungs Passwort } virtual_ipaddress { 192.168.1.10/24 # Virtuelle Failover IP-Adresse } # notify_master "" # Notify Script für den Master Status (einkommentieren, wenn genutzt wird) # notify_backup "" # Notify Script für den Backup Status (einkommentieren, wenn genutzt wird) # notify_fault "" # Notify Script für den Fehler Status (einkommentieren, wenn genutzt wird) } |
5. testen der installation
dazu erstmal auf beiden nodes den dienst neu starten:
systemctl restart keepalived.service |
ip a ls ... inet 192.168.1.10/24 scope global secondary wlan0 valid_lft forever preferred_lft forever ... |
dann auf dem master den keepalived stoppen:
systemctl stop keepalived.service |
die ip-adresse sollten dann sofort auf dem slave verfuegbar sein. in meinem netz habe ich beim pingen der failover-ip ca 4 bis 5 verlorene pakete. das sollte verschmerzbar sein.
bind pi-hole-FTL to certain ip addresses
to bind pihole-FTL to certain ip adresses, you need to add parameters to dnsmasq. if not exist, create a file /etc/dnsmasq.d/99-my-settings.conf with the following settings:
listen-address=127.0.0.1,10.10.60.9,10.10.61.9,10.10.66.9 bind-interfaces |
restart pihole-FTL and verify the result
root@ph:~# netstat -nltup Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name [...] tcp 0 0 10.10.61.9:80 0.0.0.0:* LISTEN 762/lighttpd tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1752/pihole-FTL tcp 0 0 10.10.61.9:53 0.0.0.0:* LISTEN 1752/pihole-FTL tcp 0 0 10.10.60.9:53 0.0.0.0:* LISTEN 1752/pihole-FTL tcp 0 0 10.10.66.9:53 0.0.0.0:* LISTEN 1752/pihole-FTL [...] |
windows: close open file handles
@echo off SET WORKSPACE=C:\Domino\bin\jvm for /f "tokens=3,6,8 delims=: " %%i in ('"%~dp0handle.exe" /accepteula %WORKSPACE% ^| findstr /I %WORKSPACE%') do "%~dp0handle.exe" -c %%j -y -p %%i" |
linux : jnlp dateien ausfuehren
in zusammenhang mit >diesem< artikel sei hier noch beschrieben, was man machen muss, falls "das eine etwas" fehlt auf dem system, auf dem man die datei ausfuehren moechte.
sudo apt-get install icedtea-netx |
und dann einfach den befehl “javaws” mit der entsprechenden file ausfuehren:
javaws filename.jnlp |