Ajaako nämä rimpsut Asuksessa määritettyjen Primary ja Secondary DNS määrityksen yli? Ja kun rimpsuissa on Primary Pi-hole IP, niin Secondarylle ei mene sitten mitään?
Ajaa. iptables NAT jutut pyörii reitityksessä ja DHCP on local palvelu.
Jos teillä on kaksi pi-holea niin sitten secondary ei saa mitään.
Jos tekee kaksi iptables rimpsua joista yksi ohjaa .10 ja toinen ohjaa .11 niin kun se DNS paketti tulee niin se menee siihen ensimmäiseen .10 osoitteeseen kun se on ensimmäisenä siinä listassa.
En ole iptables velho ja en kyllä nyt yhtäkkiä keksi miten tämän saisi toimimaan kahdella pi-holella..
Mutta...--source (ja myös --destination) voi olla network name, host name, pelkkä IP osoite tai IP osoite alue.
Eli --source tai --destination ei ole ongelma.
Ongelma on se DNAT --to x.x.x.x. Se voi olla vain yksi IP.
Pi-Hole tarvitsee kyllä kipeästi sen "sisäänrakennetun" high-availability ratkaisun. Mutta mitä DNATtiin tulee niin eipä se HA ratkaisu siihen auta.
Tähän nyt tarvittaisiin jokin load balancing kikkare väliin? Eli DNAT ohjaa paketin load balancing IP:hen joka sitten ohjaa jollain logiikalla PH1:lle tai PH2:lle?
Edit: Tosin mainitaan -m statistic --mode nth --every x. Googleen vaikka iptables round robin. Pitäkää hauskaa. Minulla ei ole laitteistoa millä tätä testata mutta mitä nyt teoriassa tätä pyörittelen päässäni niin kaksi rimpsua eri --to osoitteella voisi toimia jos käyttää tuota statistic countteria laskemaan paketteja ja ohjamaan paketteja?
Eikä tarvitse edes määrittää IP osoite aluetta noihin source/destination kun voi käyttää luonnostaan useampaa rimpsua.
Paitsi että pitää jos haluaa että round robin toimii mahdollisimman hyvin? Jos nuo alla olevat rimpsut käytössä ja oikeasti toimivat niin jos laite lähettää dns kyselyn .11 niin se menee aina sinne.
Jos määrittää .10-.11 alueen niin ihan sama kumpaa osoitetta laite sattuu käyttämään? Se menee aina entten tentten joko .10 tai .11 riippuen menikö edellinen .10 vai .11.
statistic
This module matches packets based on some statistic condition. It supports two distinct modes settable with the --mode option.
Supported options:
--mode mode
Set the matching mode of the matching rule, supported modes are random and nth.
[!] --probability p
Set the probability for a packet to be randomly matched. It only works with the random mode. p must be within 0.0 and 1.0. The supported granularity is in 1/2147483648th increments.
[!] --every n
Match one packet every nth packet. It works only with the nth mode (see also the --packet option).
--packet p
Set the initial counter value (0 <= p <= n-1, default 0) for the nth mode.
Man page of iptables-extensions
Eli voisiko tämä esimerkiksi toimia?
Koodi:
iptables -t nat -A PREROUTING -i br0 -p udp ! --source 192.168.1.10 ! --destination 192.168.1.10 --dport 53 -m statistic --mode nth --every 2 --packet 0 -j DNAT --to 192.168.1.10
iptables -t nat -A PREROUTING -i br0 -p udp ! --source 192.168.1.11 ! --destination 192.168.1.11 --dport 53 -j DNAT --to 192.168.1.11
iptables -t nat -A PREROUTING -i br0 -p tcp ! --source 192.168.1.10 ! --destination 192.168.1.10 --dport 53 -m statistic --mode nth --every 2 --packet 0 -j DNAT --to 192.168.1.10
iptables -t nat -A PREROUTING -i br0 -p tcp ! --source 192.168.1.11 ! --destination 192.168.1.11 --dport 53 -j DNAT --to 192.168.1.11
Logiikka tässä että ensimmäiset kaksi on udp ja toiset kaksi on tcp.
Ensimmäinen rimpsu menee "entten tentten..", käsittelee siis joka toisen paketin ja toinen rimpsu käsittelee jokaisen paketin eli ne mitkä jää ensimmäiseltä yli (joka toinen).
Tämä on sitten ihan hakuammuntaa, vedin tuon rimpsun kasaan tämän perusteella
round robin to three ports on the same host with iptables
Tuossa esimerkissä -m statistic moduulia käytetään ohjaamaan paketit menossa tcp 9000 joko tcp 9001, 9002 tai 9003.
I