squid fejtörés

Fórumok

Mivel sehogy sem sikerült rájönni, hogy miért is nem müködik, hát irom ide a problémát. Több fej hátha többet tud.

Tehát: adott 1 squid, ami inverzbe működik, avagy kifelé gyorsit.
Ehhez még hozzá 2db apache. Az egyiken sok (nagyon) sok domain, a másikon csak 3.
Amin sok domain van IP-je: 192.168.4.1, amin csak 3, annak: 192.168.4.3

A domain neveket mindenhol helyettesítettem nemlétezőkkel, senkinek ne legyen ingerenciája csúnyán nézni rám emiatt.

A squid dnsserver scriptje, picit patch-elve:

#!/bin/bash

DOMAINLIST="egyikdomain.hu masikdomain.hu harmadikdomain.hu"
export PATH
while (true); do
read a
if [ $? != 0 ]; then exit; fi
addr="\$addr 0 192.168.4.1" #<-- Ha ezt atirom, minden a masikra megy
for i in $DOMAINLIST; do
if ( echo $a | grep -i "$i" &>/dev/null ); then
addr="\$addr 0 192.168.4.3"
if [ $? != 0 ]; then exit; fi
fi
done
# echo $a $addr >>/tmp/debug
echo $addr
done

Tehát mindenre, kivéve erre a háromra azt dobja, hogy 4.1, a maradékra meg, hogy 4.3.

Látható benne egy debug sor, idézek a debugfile-ból egypár sort:

valami.org $addr 0 192.168.4.1
masikvalami.hu $addr 0 192.168.4.1
masikvalami.hu $addr 0 192.168.4.1
masodikdomain.hu $addr 0 192.168.4.3
masodikdomain.hu $addr 0 192.168.4.3
megintvalami.hu $addr 0 192.168.4.1
megintvalami.hu $addr 0 192.168.4.1
harmadikvalami.hu $addr 0 192.168.4.1
harmadikvalami.hu $addr 0 192.168.4.1
ezisegydomain.hu $addr 0 192.168.4.1
ezisegydomain.hu $addr 0 192.168.4.1
esezis.hu $addr 0 192.168.4.1
esezis.hu $addr 0 192.168.4.1

Tehát a dnsserver elvileg jól működik. De valamiért mégse akarja az igazságot a squid, avagy minduntalan a 4.1-ről kér le mindent. Ha átirom a script-be az első addr= sort, akkor mindent a 4.3-ról kér. Tehát a for-os if-es résznél lesz valami elrontva. De micsoda? Hiszen a dump-olt adatba jót mutat.
Van valami ötletetek rá, hogy mi is lehet a probléma, ill. találkozott már valaki hasonlóval?

fake bind vagy powerdns felhuzása most nemigen jöhet szóba, se ugy a /etc/hosts-ba hardba beleirni a domaineket, mert nagyona-nagyon sok van, és ezek naponta változnak is, szóval nem birnánk lekövetni. Kivéve ezt a hármat, amik jobb, ha egy másik apache-on futnak.
Szóval ötletek?

Hozzászólások

Az a baj igazából, hogy ezek naponta változnak, és nemigen van kedvem ezeknek útánajárni, sőőt, néha nem is lehet. Szóval valami olyan automatika kéne, hogy ezen a 3mon kivül mindent a 4.1-en keressen. Elvileg a script ezt csinálja, de valamiért mégse. Valami banális kis egyszerü dolgon csúszhatok el, ugy, mint amikor a crontab nem kapta meg a path-t, de nem birok rájönni, mi lehet az... :'(

"A herceg én vagyok."