Discussion:
iptables - input a forward
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
yoyo
2003-12-24 13:15:12 UTC
Permalink
Witam!

Chodzi mi o roznice pomiedzy INPUT a FORWARD
Przypuscmy, ze swiata do routera natujacego (Linux) przychodzi pakiet skierowany
do LAN.
Czy przechodzi on najpierw przez tabele INPUT czy od razu FORWARD ?
Skoro pakiet przychodzi ze swiata to jako adres docelowy ma IP serwera
natujacego, a pozniej dopiero wpada do tabeli FORWARD. Czy zatem przechodzi
przez obydwa ?
maran
2003-12-24 13:35:20 UTC
Permalink
Post by yoyo
Chodzi mi o roznice pomiedzy INPUT a FORWARD
Przypuscmy, ze swiata do routera natujacego (Linux) przychodzi pakiet
skierowany do LAN.
Czy przechodzi on najpierw przez tabele INPUT czy od razu FORWARD ?
Skoro pakiet przychodzi ze swiata to jako adres docelowy ma IP serwera
natujacego, a pozniej dopiero wpada do tabeli FORWARD. Czy zatem
przechodzi przez obydwa ?
nie, trafia od razu do łańcucha forward
--
*Paniczko_Sławomir* GG - *194772*
_____________________________________________________________________________
Pamir
2003-12-24 13:54:26 UTC
Permalink
Post by maran
trafia od razu do łańcucha forward
--
Tak jesli mowimy o jajku 2.4.x bo we wczesniejszych 2.2.x pakiet trafia
najpierw do INPUT, a dopiero pozniej do FORWARD. Najlepiej wyjasnia to ten
schemat: http://www.docum.org/stef.coene/qos/kptd/

Pozdrawiam i zycze wesolych swiat!!
Pamir
maran
2003-12-24 14:29:17 UTC
Permalink
Post by Pamir
Post by maran
trafia od razu do łańcucha forward
--
Tak jesli mowimy o jajku 2.4.x bo we wczesniejszych 2.2.x pakiet trafia
najpierw do INPUT, a dopiero pozniej do FORWARD. Najlepiej wyjasnia to ten
schemat: http://www.docum.org/stef.coene/qos/kptd/
W subject pisze wyrażnie że chodzi o iptables a wiec i jajko większe lub
równe 2.4

ps. ważniejsze jest czy to iptables/ipchains niż jajko sam miałem z pół roku
2.4.X i ipchains
--
*Paniczko_Sławomir* GG - *194772*
_____________________________________________________________________________
Xmms: Anathema / A Natural Disaster (2003) -- [2] balance
Pamir
2003-12-24 18:32:18 UTC
Permalink
Post by maran
W subject pisze wyrażnie że chodzi o iptables a wiec i jajko większe lub
równe 2.4
Fakt, ale szczerze mowiac nawet nie zauwazylem;) jak odpowiadalem na posta.
Post by maran
ps. ważniejsze jest czy to iptables/ipchains niż jajko sam miałem z pół roku
2.4.X i ipchains
Tu rowniez sie z Toba zgadzam, tylko jakos tak sie przyjelo (przynajmniej w
moim umysle:), ze jak ktos ma jajo 2.2.x to napewno uzywa ipchains, a jak
2.4.x to z regoly iptables. Ale w sumie uwaga sluszna.

Pozdrawiam
Pamir
yoyo
2003-12-24 15:18:45 UTC
Permalink
Post by Pamir
Tak jesli mowimy o jajku 2.4.x bo we wczesniejszych 2.2.x pakiet trafia
najpierw do INPUT, a dopiero pozniej do FORWARD. Najlepiej wyjasnia to ten
schemat: http://www.docum.org/stef.coene/qos/kptd/
dzieki za linka, ciekawy
Lech R. PEDZIWIATR
2003-12-25 17:07:05 UTC
Permalink
Post by Pamir
trafia od razu do ³añcucha forward
--
Tak jesli mowimy o jajku 2.4.x bo we wczesniejszych 2.2.x pakiet trafia
najpierw do INPUT, a dopiero pozniej do FORWARD. Najlepiej wyjasnia to ten
schemat: http://www.docum.org/stef.coene/qos/kptd/
Pozdrawiam i zycze wesolych swiat!!
Pamir
.............
Sluszna uwaga, a i link ciekawy.

Andrzej Pinczuk
2003-12-24 22:26:30 UTC
Permalink
Post by yoyo
Chodzi mi o roznice pomiedzy INPUT a FORWARD
Przypuscmy, ze swiata do routera natujacego (Linux) przychodzi pakiet skierowany
do LAN.
Czy przechodzi on najpierw przez tabele INPUT czy od razu FORWARD ?
Do forward.
Post by yoyo
Skoro pakiet przychodzi ze swiata to jako adres docelowy ma IP serwera
natujacego, a pozniej dopiero wpada do tabeli FORWARD. Czy zatem przechodzi
przez obydwa ?
Nie. W duzym skrocie to wyglada tak:

Uzytkownik w LAN'ie wysyla cos do internetu. Pakiet trafia na brame
(w naszym przypadku na jeden z interfejsow w linuksie). Nastepuje
PREROUTING (DNAT), potem pakiet wchodzi na lancuch FORWARD,
nastepnie na POSTROUTING (SNAT). W tym momencie
pakiet jest modyfikowany - adres zrodlowy (lokalny) zostaje
podmieniony na adres publiczny serwera, zmiana zostaje
"zapisana" w tablicy CONNTRACT i pakiet jest wypuszczany w internet
na jakims wysokim porcie (nr portu rowniez zostaje zapamietany w CONNTRACT).
Kiedy wraca odpowiedz w internetu, serwer sprawdza w tablicy, czy ma informacje
o tym polaczeniu - jesli tak, to "wie", ze pakiet nalezy przekazac do
lokalnego odbiorcy, i do jakiego. Laduje wiec pakiet do FORWARD.
Jesli w CONNTRACT nie ma takiej informacji o polaczeniu, pakiet zostaje potraktowany
jako pakiet o miejscu dostarczenia na uruchomioną uslugę na serwerze. I wtedy
wchodzi na lancuch INPUT.
Z tego tez powodu z internetu uzytkownik nie moze zainicjowac polaczenia
bezposrednio z uzytkownikiem w LAN'ie, bo serwer nie majac
wpisu w CONNTRACT potraktuje pakiet jako wlasny (oczywiscie mozna
to zmienic robiac forward pakietu na okreslonym porcie - tzn. jak przyjdzie
pakiet na jakis z gory ustalony port, to serwer zrobi jego "przekazanie"
na jakis wybrany komputer w LAN'ie).
Generalnie mozesz traktowac, ze lancuch FORWARD jest uzywany wtedy, kiedy
serwer przerzuca pakiety nie bedace jego "wlasnoscia". Lancuchy OUTPUT
i INPUT sa natomiast wykorzystywane, kiedy to sam serwer generuje pakiety w siec
oraz otrzymuje pakiety skierowane tylko do niego.

Staralem sie to opisac lopatologicznie i zwiezle, mam nadzieje, ze choc
troche pomoglem :-)
--
"Gdzie wszyscy myślą tak samo,
nikt nie myśli zbyt wiele".
Andrzej Pinczuk
2003-12-24 22:30:08 UTC
Permalink
Post by yoyo
Chodzi mi o roznice pomiedzy INPUT a FORWARD
Przypuscmy, ze swiata do routera natujacego (Linux) przychodzi pakiet skierowany
do LAN.
Czy przechodzi on najpierw przez tabele INPUT czy od razu FORWARD ?
Do forward.
Post by yoyo
Skoro pakiet przychodzi ze swiata to jako adres docelowy ma IP serwera
natujacego, a pozniej dopiero wpada do tabeli FORWARD. Czy zatem przechodzi
przez obydwa ?
Nie. W duzym skrocie to wyglada tak:

Uzytkownik w LAN'ie wysyla cos do internetu. Pakiet trafia na brame
(w naszym przypadku na jeden z interfejsow w linuksie). Nastepuje
PREROUTING (DNAT), potem pakiet wchodzi na lancuch FORWARD,
nastepnie na POSTROUTING (SNAT). W tym momencie
pakiet jest modyfikowany - adres zrodlowy (lokalny) zostaje
podmieniony na adres publiczny serwera, zmiana zostaje
"zapisana" w tablicy CONNTRACK i pakiet jest wypuszczany w internet
na jakims wysokim porcie (nr portu rowniez zostaje zapamietany w CONNTRACK).
Kiedy wraca odpowiedz w internetu, serwer sprawdza w tablicy, czy ma informacje
o tym polaczeniu - jesli tak, to "wie", ze pakiet nalezy przekazac do
lokalnego odbiorcy, i do jakiego. Laduje wiec pakiet do FORWARD.
Jesli w CONNTRACK nie ma takiej informacji o polaczeniu, pakiet zostaje potraktowany
jako pakiet o miejscu dostarczenia na uruchomioną uslugę na serwerze. I wtedy
wchodzi na lancuch INPUT.
Z tego tez powodu z internetu uzytkownik nie moze zainicjowac polaczenia
bezposrednio z uzytkownikiem w LAN'ie, bo serwer nie majac
wpisu w CONNTRACK potraktuje pakiet jako wlasny (oczywiscie mozna
to zmienic robiac forward pakietu na okreslonym porcie - tzn. jak przyjdzie
pakiet na jakis z gory ustalony port, to serwer zrobi jego "przekazanie"
na jakis wybrany komputer w LAN'ie).
Generalnie mozesz traktowac, ze lancuch FORWARD jest uzywany wtedy, kiedy
serwer przerzuca pakiety nie bedace jego "wlasnoscia". Lancuchy OUTPUT
i INPUT sa natomiast wykorzystywane, kiedy to sam serwer generuje pakiety w siec
oraz otrzymuje pakiety skierowane tylko do niego.

Staralem sie to opisac lopatologicznie i zwiezle, mam nadzieje, ze choc
troche pomoglem :-)
--
"Więcej wysiłku wymaga udawanie, że się wie,
niż dowiedzenie się".
Anna Christie
Lech R. PEDZIWIATR
2003-12-25 17:04:37 UTC
Permalink
Post by Andrzej Pinczuk
Post by yoyo
Chodzi mi o roznice pomiedzy INPUT a FORWARD
Przypuscmy, ze swiata do routera natujacego (Linux) przychodzi pakiet
skierowany do LAN.
Czy przechodzi on najpierw przez tabele INPUT czy od razu FORWARD ?
Do forward.
Post by yoyo
Skoro pakiet przychodzi ze swiata to jako adres docelowy ma IP serwera
natujacego, a pozniej dopiero wpada do tabeli FORWARD. Czy zatem
przechodzi przez obydwa ?
Uzytkownik w LAN'ie wysyla cos do internetu. Pakiet trafia na brame
(w naszym przypadku na jeden z interfejsow w linuksie). Nastepuje
PREROUTING (DNAT), potem pakiet wchodzi na lancuch FORWARD,
nastepnie na POSTROUTING (SNAT). W tym momencie
pakiet jest modyfikowany - adres zrodlowy (lokalny) zostaje
podmieniony na adres publiczny serwera, zmiana zostaje
"zapisana" w tablicy CONNTRACK i pakiet jest wypuszczany w internet
na jakims wysokim porcie (nr portu rowniez zostaje zapamietany w
CONNTRACK). Kiedy wraca odpowiedz w internetu, serwer sprawdza w tablicy,
czy ma informacje o tym polaczeniu - jesli tak, to "wie", ze pakiet nalezy
przekazac do lokalnego odbiorcy, i do jakiego. Laduje wiec pakiet do
FORWARD. Jesli w CONNTRACK nie ma takiej informacji o polaczeniu, pakiet
zostaje potraktowany jako pakiet o miejscu dostarczenia na uruchomioną
uslugę na serwerze. I wtedy wchodzi na lancuch INPUT.
Z tego tez powodu z internetu uzytkownik nie moze zainicjowac polaczenia
bezposrednio z uzytkownikiem w LAN'ie, bo serwer nie majac
wpisu w CONNTRACK potraktuje pakiet jako wlasny (oczywiscie mozna
to zmienic robiac forward pakietu na okreslonym porcie - tzn. jak
przyjdzie pakiet na jakis z gory ustalony port, to serwer zrobi jego
"przekazanie" na jakis wybrany komputer w LAN'ie).
Generalnie mozesz traktowac, ze lancuch FORWARD jest uzywany wtedy, kiedy
serwer przerzuca pakiety nie bedace jego "wlasnoscia". Lancuchy OUTPUT
i INPUT sa natomiast wykorzystywane, kiedy to sam serwer generuje pakiety
w siec oraz otrzymuje pakiety skierowane tylko do niego.
Staralem sie to opisac lopatologicznie i zwiezle, mam nadzieje, ze choc
troche pomoglem :-)
..............
Ladny opis - gratulacje - rzadko spotykana klarownosc wypowiedzi.
Loading...