DNAT: Neforwardovani tcp spojeni [trosku delsi] (vyreseno)
Slávek Banko
slavek.banko na axis.cz
Neděle Prosinec 31 15:04:53 CET 2006
Pro vysvětlení naznačím rozdíl cesty paketu a odpovědi bez a s
SNAT/MASQUERADE:
__bez_SNAT__
Notebook1:
notebook1 => server (na odchodu)
Server:
notebook1 => server (příjem)
notebook1 => notebook2 (proveden dnat)
notebook1 => notebook2 (na odchodu)
Notebook2:
notebook1 => notebook2 (příjem)
notebook2 => notebook1 (odpověď)
Notebook1:
notebook2 => notebook1 (příjem)
- neočekávaný paket bude ignorován/zahozen
__s_snat__
Notebook1:
notebook1 => server (na odchodu)
Server:
notebook1 => server (příjem)
notebook1 => notebook2 (proveden dnat)
server => notebook2 (proveden snat/masquerade)
server => notebook2 (na odchodu)
Notebook2:
server => notebook2 (příjem)
notebook2 => server (odpověď)
Server:
notebook2 => server (příjem)
notebook2 => notebook1 (obnovení z snat/masquerade)
server => notebook1 (obnovení z dnat)
server => notebook1 (na odchodu)
Notebook1:
server => notebook1 (příjem)
Z toho by mělo být patrné, že DNAT proběhl vždy. Bez přepisu zdrojové
adresy ale putovaly odpověďi přímo na notebook1, a tak se vracely
neočekávané pakety. Po doplnění SNAT či MASQUERADE je zajištěna i
zpáteční cesta paketu přes server.
V případě paketů, které na server přichází z vnějšího rozhraní je zpáteční
cesta zajištěna "automaticky", protože notebook2 posílá odpovědi na svou
výchozí bránu, což pravděpodobně je právě server.
Slávek
--
Dne neděle 31 prosinec 2006 14:35 Dal Horinek napsal(a):
> Diky moc za nakopnuti,
>
> problem byl v tom, ze MASQUERADE byla jen na eth0 a ve vnitrni siti to
> slo pres eth1, kde se preklad nekonal, takze se to do DNATu vubec
> nedostalo, aspon tak jsem to pochopil.
>
> Jeste jednou diky moc,
>
> s pozdravem
> Dalibor Horinek
>
> Slávek Banko wrote:
> > Problém může být v tom, že všechny stroje jsou v jedné síti. Z
> > notebook1 odejde paket na server, ten proveden DNAT a předá paket na
> > notebook2. Odpověď z notebook1 již ale jde přímo na notebook1. Jenže
> > ten takový paket neočekává - očekává paket od serveru, ne od
> > notebook2.
> >
> > Doplňte na serveru ještě pravidlo, které na POSTROUTINGu provede SNAT
> > (či MASQUERADE), aby zajistil i zpáteční cestu paketů přes server.
> >
> > Slávek
Další informace o konferenci Linux