では前回の記事、私たちは、通信事業者によるフィルタリング要求の分野のそれらを取り出した広告のみの多数を除外するだけでなく、HTTPSにおける当社のDNS要求をカプセル化されていないパイ穴を使用して、ホームDOHサーバを実装しました。
このソリューションはすべての人に最適ですが、注意点が1つあります。突然、通信事業者のアカウントのお金がなくなった場合、またはその他の理由で外界への通信チャネルがなくなった場合、DNSが機能しないため、アカウントを補充してサービスを復元することもできません。 。または、たとえば、何らかの理由でPi-Holeが機能しなくなった場合、ネットワーク全体が機能しているように見え、Googleが応答し、別のDNSサーバーを登録するまで幸せはありません。そして、この瞬間にあなたがまだ何か他のもので忙しくてすぐに回復を始めることができないならば-家族は憤慨し、彼らの不満で楽しい存在を台無しにします、そして猫でさえ一般的な緊張を感じてあなたのスリッパでたわごとをする傾向があります。
猫を怒らせるのは最後のことなので、この記事では、Pi-Holeで問題が発生した場合に、Pi-Holeの使用からオペレーター(実際には他のDNS)の使用への自動切り替えを実装する方法について説明します。
TL; DR
keepalivedデーモンの実装でVRRPプロトコルを使用して、Pi-HoleとMikrotik間のDNSサービスの自動切り替えを構成します。
魔法のノウハウは明らかにされていません。すべての複雑さを自分で理解したくない人のための簡単なステップバイステップの説明です。
これには何が必要ですか
前の記事のPi-Holeソリューションを実装しました。説明したソリューションは、原則として何でもフォールトトレランスに使用できることは明らかですが、この特定のケースでは、この特定の実装に焦点を当てます。基本的なLinuxソリューションは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. .
, , , , , . , , - .
, , .