Di artikel terakhir, kami menerapkan server DoH rumah menggunakan Pi-Hole, yang tidak hanya menyaring sejumlah besar iklan, tetapi juga merangkum permintaan DNS kami dalam HTTPS, yang membawanya keluar dari bidang permintaan pemfilteran oleh operator telekomunikasi .
Solusi ini bagus untuk semua orang, tetapi ada satu peringatan. Jika tiba-tiba kami kehabisan uang di akun pada operator telekomunikasi atau karena alasan lain saluran komunikasi ke dunia luar telah hilang, kami bahkan tidak dapat mengisi ulang akun untuk memulihkan layanan, karena DNS tidak akan berfungsi . Atau, misalnya, jika Pi-Hole kami berhenti berfungsi karena suatu alasan, tampaknya seluruh jaringan berfungsi, dan Google merespons, dan sampai Anda mendaftarkan server DNS lain, tidak akan ada kebahagiaan. Dan jika saat ini Anda masih sibuk dengan hal lain dan tidak dapat segera memulai pemulihan - anggota keluarga marah, merusak kehidupan yang menyenangkan dengan keluhan mereka, dan bahkan kucing, yang merasakan kegugupan umum, cenderung buang air di sandal Anda.
Membuat kucing kesal adalah hal terakhir, jadi dalam artikel ini saya akan menjelaskan bagaimana Anda dapat menerapkan peralihan otomatis dari menggunakan Pi-Hole ke menggunakan operator (seperti, memang, lainnya) DNS jika terjadi masalah pada Pi-Hole.
TL; DR
Kami mengkonfigurasi peralihan otomatis layanan DNS antara Pi-Hole dan Mikrotik menggunakan protokol VRRP dalam implementasi daemon keepalived.
Tidak ada pengetahuan sihir yang diungkapkan, instruksi langkah demi langkah sederhana bagi mereka yang tidak ingin memahami semua seluk-beluk itu sendiri.
Apa yang Anda butuhkan untuk ini
Menerapkan solusi Pi-Hole dari artikel sebelumnya. Jelas bahwa solusi yang dijelaskan dapat digunakan untuk toleransi kesalahan, pada prinsipnya, apa pun, tetapi dalam kasus khusus ini, kami akan fokus pada implementasi khusus ini. Solusi Linux dasar adalah Ubuntu.
Mikrotik . , OpenWRT, EdgeRouter, - PC, . VRRP - , , , . , VRRP - Pi-Hole Pi-Hole DNS-.
IPv4- Pi-Hole : 192.168.1.10 .
IPv4- : 192.168.1.1 bridge .
IPv4- DNS: 192.168.1.9
Linux root (.. sudo -i).
" W", , .
, VRRP Virtual Router Redundancy Protocol NHRP (Next-Hop Resolution Protocol). - , , , , . , , ISO/OSI IP-, , VRRP-, . , , , , VRRP ( ). , , , , Cisco GLBP, , ARP-. GLBP CARP.
VRRP , , - 224.0.0.18, . - . - , , , , IP . , ( ), . - IP-, .
. Cisco , , Enhanced Object Tracking. , .
:
DNS
Pi-Hole VRRP 100 90 Pi-Hole
Pi-Hole , DNS Pi-Hole 110
DHCP IP- DNS.
1. DNS Mikrotik
, , DNS . DNS- - , . DNS DHCP, Winbox IP - DNS Servers DNS- .
2. VRRP Mikrotik
VRRP Bridge . Winbox, :
/interface vrrp add interface=bridge name=vrrp-dns version=2 vrid=10
/ip address add address=192.168.1.9/24 interface=vrrp-dns network=192.168.1.0
vrrp-dns - ( , ), vrid - ID , 1-255, . bridge IPv4- .
192.168.1.9 - , .
3. VRRP Pi-Hole
keepalived:
apt install keepalived
/etc/keepalived/keepalived.conf:
! Configuration File for keepalived
vrrp_script check_dns {
script "/etc/keepalived/check_dns.sh"
interval 5 # every 5 seconds
weight 20 # add 20 points if OK
timeout 5 #
rise 2 # avoid flapping
fall 2 # avoid flapping
}
vrrp_instance VI_1 {
state MASTER
interface ens160
virtual_router_id 10
priority 90
advert_int 1
virtual_ipaddress {
192.168.1.9/24
}
track_script {
check_dns
}
}
, Pi-Hole - ens160, ( , , ifconfig).
DNS /etc/keepalived/check_dns.sh:
#!/bin/bash
host -s -4 amazon.com 127.0.0.1 > /dev/null 2>&1
:
chmod +x /etc/keepalived/check_dns.sh
DNS . amazon.com. , TTL - 1 , Pi-Hole , , . , - 0 error code, keepalived , , . error code - Mikrotik.
:
systemctl restart keepalived
. Mikrotik , :
vrrp-dns now BACKUP, got higher priority 110 from 192.168.1.10
, 192.168.1.9 Pi-Hole, - pi.hole:
nslookup pi.hole 192.168.1.9
Server: 192.168.1.9
Address: 192.168.1.9#53
Name: pi.hole
Address: 192.168.1.10
, Pi-Hole, IP - .
4. DHCP Mikrotik
DHCP- Mikrotik DNS. WinBox - . IP - Networks, , Pi-Hole DNS Servers Pi-Hole 192.168.1.10 192.168.1.9.
, , DNS, , (, nslookup pi.hole - ). .
- DNS- , Mikrotik. .
, , , , , . , , - .
, , .