"Dva NATy" za jednim strojem
Richard Willmann
mk7ygre33apsq23c at foo.sk
Thu Apr 16 01:23:26 CEST 2009
> Mozna bych k tomu pridal jeste smtp_bind_address - to by melo zajistit
> prave pouziti spravne zdrojove adresy, zatim co inet_interfaces slouzi pro
> naslouchani a ne odchozi data iniciovana "smtp klientem" postfixu. (pouze
> v pripade, kdy inet_interfaces obsahuje pouze jednu adresu, se automaticky
> pouzije i pro smtp klienta)
> Pokud opet nosim drivi do lese, tak se omlouvam... snazil jsem se :)
skusim dve vety k tomu:
server (=rozumej tcp server) musi pocuvat na "nejakych" IP adresach a
"nejakych" portoch. Na urovni kniznicnych volani to vyzera obvykle takto:
socket()
bind()
listen()
accept()
...
close()
za accept moze v zavislosti na architekture serveru nasledovat napr. fork().
V pripade IO Multiplexing serveru to vyzera inak (cyklus a nejaka obdoba
select()).
Volanie socket() iba vrati "spravny" (v zavislosti na protokole) deskriptor.
Dolezity je bind(), ktorym sa soketu prideli "spravna" IP adresa a "spravny"
port. Po volani listen() potom server pocuva tam kde ma. Su styri kombinacie
IP addresa/port. IP adresa alebo port moze byt "nula" a vtedy prislusny
parameter zvoli kernel. Priklad: 0.0.0.0:22 -> pocuvaj vsade na porte 22.
Server obvykle zvoli port (bola by hlupost ak by nie, inak by klient nevedel
kam sa ma pripojit - aj ked su vynimky napr. pri NFS a spol.). IP adresu
moze ale nemusi zvolit. Zalezi na konkretnej situacii.
Toto robi asi ta prva direktiva.
Na druhej strane klient funguje obvykle takto (v tomto pripade - ked sa
posiela mail):
socket()
connect()
write()/read()
close()
Kernel obvykle zvoli "najlepsiu" IP adresu - toto funguje tak, ze sa pozrie
na cielovu IP adresu a vezme prvu IP adresu z iface, ktory je "najblizsie" k
cielu. Zaroven vyberie jeden z volnych "vysokych" portov (rozsah sa da
nastavit via sysctl).
Avsak aj klient si moze vybrat IP adresu a port, ktory chce pouzit. Obvykle
si vsak vybera - ak vobec - iba IP adresu.
Toto je dolezite napr. ak su dva mail servre (master a relay) na jednom
stroji. Je dobre pouzit dve IP adresy tak, aby kazdy z nich pouzival vlastnu
(minimalne koli black listom napr.).
Toto by mohla robit ta druha direktiva o ktorej pisal Miroslav a ktora by
mohla vyriesit problem s IP adresou z "ktorej data odchadzaju".
To co ktora direktiva robi co povie niekto kto vie robit s postfixom. Riesit
to na urovni PF sa mi nezda spravne.
d~
rwi
More information about the Users-l
mailing list