Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-02-12 19:08:16

  koralgolek - Użytkownik

koralgolek
Użytkownik
Zarejestrowany: 2010-02-12

Połączenia w tablicach: netstat i conntrack

Zainstalowałem Privoxy i napisałem regułkę dla firewalla aby działał jako transparentny proxy:

Kod:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8118

Wszystko działa.

Zastanawiają mnie tablice: netstat (serwer) conntrack (serwer) netstat (klient)

Zauważyłem że przy próbie połączenia się z jakąś stroną www na komputerze klienckim tablica netstat dosłownie na ta krótką chwile wczytywania strony pokazuje wpis z aktualnie połączonym serwerem (np google.pl) w stanie ESTABLISHED. Po chwili wczytywania wpis znika. (należy pamiętać że komunikacja odbywa się przez proxy). Idziemy dalej.

W tablicy conntrack (aktualnie routowanych adresów) na sewerze z proxy pojawia się w tym momencie wpis ze stanem połącznia między klientem a serwerem (z proxy) - ESTABLISHED. Po wczytniu strony przechodzi na TIME_WAIT. Idziemy dalej

Kod:

debian:~# netstat-nat 
Proto NATed Address                  Destination Address            State 
tcp   192.168.1.101:1333             gateway:www                    TIME_WAIT  
tcp   192.168.1.101:1338             gateway:www                    TIME_WAIT  
tcp   192.168.1.101:1337             gateway:www                    ESTABLISHED
tcp   192.168.1.101:1336             gateway:www                    TIME_WAIT  
tcp   192.168.1.101:1334             gateway:www                    TIME_WAIT

W tablicy netstat na serwerze pojawia się połączenie między serwerem (proxy) z danym serwerem (np google.pl) które otrzymuje status ESTABLISHED i po jakimś czasie zostaje "ładnie" zamknięte tzn. nie zostaje po nim TIME_WAIT

Dlaczego na tablicy conntrack (po krótkim surfowaniu) pojawia się pełno stanów TIME_WAIT miedzy klientem a serwerem(z proxy)?

Wg mnie wygląda to tak jakby serwere (privoxy) pośredniczący nie zamykał połączeń miedzy przekierowanymi klientami.

Czy ktoś ma podobne doświadczenia np ze squidem?

Dobre narzędzie do sprawdzenia aktualnie routowanych adresów to netstat-nat dostępny w repozytorium Debiana.

Ostatnio edytowany przez koralgolek (2010-02-13 16:16:50)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.010 seconds, 13 queries executed ]

Informacje debugowania

Time (s) Query
0.00014 SET CHARSET latin2
0.00006 SET NAMES latin2
0.00090 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.133.146.94' WHERE u.id=1
0.00062 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.133.146.94', 1732965492)
0.00058 SELECT * FROM punbb_online WHERE logged<1732965192
0.00094 DELETE FROM punbb_online WHERE ident='3.145.95.233'
0.00085 DELETE FROM punbb_online WHERE ident='85.208.96.201'
0.00048 SELECT topic_id FROM punbb_posts WHERE id=140316
0.00086 SELECT id FROM punbb_posts WHERE topic_id=16103 ORDER BY posted
0.00095 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=16103 AND t.moved_to IS NULL
0.00006 SELECT search_for, replace_with FROM punbb_censoring
0.00075 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=16103 ORDER BY p.id LIMIT 0,25
0.00077 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=16103
Total query time: 0.00796 s