Dnsmasq a round-robin balancing

Dnsmasq a round-robin balancing
« kdy: 29. 07. 2022, 09:49:19 »
Dobrý den,

netušíte někdo, jestli lze pomocí dnsmasqu nastavit pro jedno hostname vícero IP adres tak, aby když jedna z IP nebude dostupná, začne vracet další IP? Něco jako:
Kód: [Vybrat]
fileserv.example.com.  IN  A  172.16.10.10
fileserv.example.com.  IN  A  172.16.10.11
fileserv.example.com.  IN  A  172.16.10.12

Díky.
« Poslední změna: 29. 07. 2022, 10:23:36 od Petr Krčmář »


Re:dnsmasq a round-robin balancing
« Odpověď #1 kdy: 29. 07. 2022, 10:03:36 »
pro resolver nebo myslíš, aby ti vrátil jen dostupný A záznam? Dnsmasq neumí zjišťovat, jestli vrácené záznamy jsou funkční, hlavně nemá to jak zjišťovat (stačí route? Nebo ping? Co když je icmp zakázané? Nebo má dotazovat nějakou službu na L7?).

Pokud to chceš jen pro sebe, udělej si na localhostu reverzní proxy (nginx, haproxy) a tam nastav  více backendů, pak se ti vrátí jen ten, který je dostupný na http (či podle nastaveného checku).

Případně můžeš využít nástroje jako consul, mít agenta na jednotlivých hostech a přes jeho DNS službu vrací poté pouze aktivní IP podle dostupnosti agenta (a případně jeho checků).

Pokud to chceš mít veřejně, tak je asi nejlepší (vzhledem k ceně a složitosti) mít nějakou jednoduchou službu, která bude kontrolovat dostupnost serverů a podle toho přes api upravit DNS záznam. Tak to dělám pro menší klienty, výpadek je vesměs vždy pár minut (při TTL 60) a pro hodně situací to je přijatelné.

Re:Dnsmasq a round-robin balancing
« Odpověď #2 kdy: 30. 07. 2022, 09:21:57 »
Dobrý den,

díky moc za odpověď.
Mam rozjetou funkční konfiguraci 3 serverů + 3 ngnix + ucarp. Dostala se ke mně ale informace, že to lze udělat přímo na DNS serveru (např. MS, apod.) nebo že to umí Cisco F5 (já mam k dispozici pouze virtuální prostředí), ale nic jsem o tom nevygooglil.
Rozumim tomu, že DNS server nemá asi jak zjišťovat dostupnost svých záznamů. Nejspíš špatná informace.

Vilith

  • *****
  • 656
    • Zobrazit profil
Re:Dnsmasq a round-robin balancing
« Odpověď #3 kdy: 30. 07. 2022, 09:32:59 »
Tento problém elegatně řeší HAproxy nejen pro WWW

https://blog.stackpath.com/load-balancing-haproxy/

https://medium.com/@masoudghorbani/build-a-redis-round-robin-balancing-cluster-using-haproxy-fbdf5ea16cd0


Dobrý den,

díky moc za odpověď.
Mam rozjetou funkční konfiguraci 3 serverů + 3 ngnix + ucarp. Dostala se ke mně ale informace, že to lze udělat přímo na DNS serveru (např. MS, apod.) nebo že to umí Cisco F5 (já mam k dispozici pouze virtuální prostředí), ale nic jsem o tom nevygooglil.
Rozumim tomu, že DNS server nemá asi jak zjišťovat dostupnost svých záznamů. Nejspíš špatná informace.

Re:Dnsmasq a round-robin balancing
« Odpověď #4 kdy: 30. 07. 2022, 09:49:43 »
haproxy vypadá super, protože ucarp potřebuje agenty na cílových strojích. Děkuju.


Re:Dnsmasq a round-robin balancing
« Odpověď #5 kdy: 31. 07. 2022, 09:48:53 »
Tak kecám. On umožňuje vydávat vícero serverů s jednou IP. Agenti nejsou potřeba.

haproxy vypadá super, protože ucarp potřebuje agenty na cílových strojích. Děkuju.

Re:Dnsmasq a round-robin balancing
« Odpověď #6 kdy: 01. 08. 2022, 08:51:35 »
Na urovni dns by to mohl umet dnsdist, ale nikdy jsem takovy use-case nepouzil, takze to nezarucim.