Problem s modulem pf.ko
Dan Lukes
dan at obluda.cz
Tue Jun 28 20:39:43 CEST 2005
Petr Rehor wrote:
>>No, ono to tady za celou dobu nepadlo, ale v teto chvili je vadne pouze
>>"pf" (nebo je jedine o kterem vim). A pokud zrovna tehle filter
>>nepouzivate a pouzivate neco jineho (coz je muj pripad) nebo zadny
>>filtr, tak na zmineny problem proste nenarazite.
> (abych pravdu rekl tak netusim jestli se vubec
> informace v konfiguraci kernelu pouzivaji pri prekladu modulu, ale
> rekl bych ze spis ne)
V zasade ano. Globalne se pouzivaji ty, ktere maji kategorii "global"
(tedy skonci v opt_global.h). To jsou napriklad I?86_CPU, SMP, PAE a
takove podobne.
Jine se mohou pouzivat, pokud je to explicitne uvedeno (#include) v
jejich kodu.
Napriklad takove ipfw includuje kernelove optiony tridy
ipfw,ipdn,ipdivert,inet a ipsec
Problem s modulem 'pf' je, ze nejde o nativni modul pro FreeBSD. Je to
'third-party' modul pochazejici nativne z OpenBSD (coz je ostatne
vyjadreno jeho pozici v 'contrib' vetvi.
Tam je, bohuzel, nutne ocekavat, ze spoluprace s FreeBSD muze byt
nikoli tak hladka jak jsme zvykli od nativnich modulu.
Na druhou stranu, letmym nahlednutim do kodu modulu (nestudoval jsem to
peclive) se zda, ze modul je v tom tentokrat nevinne. On sam by, podle
vseho, kernelove optiony prevzal spravne. Je to zvlastni, ale Makefile
(ktery je nativne z FreBSD) je ten, kdo pri nepritomnosti NO_INET6 mezi
kernelove optiony ten INET6 dopise. No pak je pochopitelne, proc
INET6-ready modul nelze pouzit s non-INET6 jadrem.
Proc to ale onen Makefile takhle dela, to ja nevim.
Je mozne, ze userland aplikace, ktere se pro komunikaci s pf pouzivaji
nejsou schopny zdetekovat zda kernel (a pf) INET6 podporuji ci nikoliv
(a userland aplikace na nastaveni kernelovych optionu kaslou - na druhou
stranu - naprota vetsina z nich je schopna si (ne)pritomnost zajimavych
feature v kernelu detekovat) a format predavanych dat na teto informaci
zalezi. Pak by nebylo lze vyloucit, ze prave neschopnost autodetekce ze
stranu userland aplikace (a z toho duvodu vynucena pritomnost INET6 kodu
v pripade, ze je pritomen v userlandu) je cena za 'third-party' kod ...
> ale musi se jeste definovat symbol NOINET6. To
BTW, v pristi release se podle vseho ten symbol bude jmenovat NO_INET6
> protoze se s jeho pomoci odstrani IPv6 i z
> user space cimz se odstrani zbytek problemu zbusobenych neexistenci
> IPv6 v kernelu.
Smel bych se, skutecne jen ze zvedavosti, zeptat na nejaky problem, se
ktery jste se v teto souvislosti setkal ? Ja mam kernel typicky bez IPv6
(krome tech par serveru v sitich, kde IPv6 skutecne je) a zatim jsem
nemel tu cest (ne, ze bych si stezoval). Tak abych mel predstavu, co by
me tak mohlo potkat ...
Dan
More information about the Users-l
mailing list