[zorp-hu] virtualis ip cimak hasznalata ?

Balazs Scheidler bazsi@balabit.hu
Wed, 21 Aug 2002 13:19:25 +0200


On Wed, Aug 14, 2002 at 07:56:08AM +0200, nagy_l@vaxst2.tii.matav.hu wrote:
> Ok, felteszem a kerdest mashogy :
> 
> eddig erre jutottam :
> (valami ilyesmit kell berakni...nem tudom a sortorest kell-e kulon jelezni ?)
> 
>         Service("zonac_1223_zonas", PlugProxy ,
>         router=DirectedRouter(SockAddrInet('192.168.253.11', )) , 
>         snat=StaticNAT(SockAddrInet('192.168.254.111', 0)))
> 
>         Listener(SockAddrInet("192.168.254.1", 10501), "zonac_1223_zonas")
> 
> ha a forras cimet akarom allitani, akkor az vagy :
> - semmi, mert a tuzfal lesz a forras
> vagy a kliens eredeti cime lesz a forras :
> - snat=FakeClientSourceNAT())
> vagy (ha egy cimrol van szo) virtualis cim hasznalatanal :
> - snat=StaticNAT(SockAddrInet('192.168.254.111', 0)))
> vagy (ha tobb cimrol van szo) virtualis cim hasznalatanal :
> - snat=mysnat()
> 
> (a 192.168.254.111 a virtualis cim)
> 
> Erdekelne , hogy konkretan attol fuggoen, hogy a gepnek mi az eredeti cime,
> hogy tudnam lekepezni a forras cimeket. a fuggvenyben legyen if, vagy valami
> hasonlo, ahol vizsgalom az egyes cimeket es a szerint helyettesitem be. (erre
> nagyon jo lenne valami pelda, mert a leirasok alapjan nem tudtam gyorsan
> kitalalni, hogy mi lenne a helyes szintaktika...)

SNAT osztalyt valahogy igy kell letrehoznod:

class MySNAT(AbstractNAT):
	def performTranslation(self, session, addr, nat_type = NAT_SNAT):
		return SockAddrInet('xxx.xxx.xxx.xxx', 12345)

a fuggveny testeben lehet barmi, ami pythonban engedelyezett. Tovabbi
peldakent a standard NAT osztalyokat megtalalod a NAT.py allomanyban.


> 
> ha a cel cimet hamisitom, akkor :
> - router=TransparentRouter()  (itt nem csinalok semmit, kerdes, hogy ha be
>   kell irni a celportot, akkor azt hogy kell megcsinalni ?)
> vagy, ha virtualis cimra jott (egy gepeseten) :
> - router=DirectedRouter(SockAddrInet('192.168.253.11', ? ))
>   (ide mit kell irni a celporthoz, ha ugyanaz mint amire jott ? ha nem ugyanaz,
>   akkor termeszetesen beirom, hogy hova kell kuldeni...)

A portot jelenleg kotelezo kiirni, bar egy kb ket soros patch segitsegevel
megvalosithato, hogy 0-s port eseten az eredeti port a default.

Miert van erre szukseg?

> vagy, ha virtualis cimre jott (tobb gen eseten)
> - router=myDirectedRouter()
> 
> (A 192.168.253.111 a virtualis cim)
> Itt is erdekelne, hogy ez a myDirectedRouter hogy nezzen ki. Attol fuggoean,
> hogy milyen cimre jott a csomag hova kell tovabbitani. Ezt valahogy le kellene
> vizsgalni es e szerint cselekedni. Az is kerdes, hogy a portot (ha ugyanaz, ill
> ha valtozik) hogy tudom betenni ?

A forras- ill. celnat-ot ugyanaz az osztaly vegzi, a nat_type argumentumban
megkapja, hogy konkretan mirol is van szo.

-- 
Bazsi
PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1