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  2013-11-12 21:55:28

  Kpt. - Użytkownik

Kpt.
Użytkownik
Skąd: Wielkopolska
Zarejestrowany: 2005-11-10

Przekierowanie

Witam. Mam problem z wykonaniem przekierowania na MikroTiku, albo jest to problem stricte zwiazany z serwerem www.
Wyglada to mniej wiecej tak. Na glownym routerze - brzegowym mam uruchomiony NAT. Router oczywiscie zna sciezki do sieci zdalnych (routing statyczny)
W tej samej klasie adresowej, co router stoi rowniez serwer www. Chcialem wykonac przekierowanie na routerze glownym bezposrednio na serwer www dla nieplacacych. Niestety cos nie do konca dziala jak nalezy... O ile normalnie serwer www jest osiagalny dla kazdego hosta z ze zdalnych sieci o tyle po nalozeniu nazwijmy to ograniczenia (dst-nat tcp 80 na adres serwera www) strona na serwerze sie nie laduje, lub laduje calkowicie losowo
Tak jakby to "przekierowanie" bylo niewlasciwie.
Tak wyglada przykladowa regulka
add action=dst-nat chain=dstnat comment="TEST BVLOKA DOM" dst-port=\
    !1-52,54-79,84-65355 protocol=tcp src-address=192.168.5.120 to-addresses=\
    192.168.252.10 to-ports=82

gdzie adres 5.120 to przykladowy host, a 252.10 to adres serwera www dzialajacego na porcie 82

Offline

 

#2  2013-11-13 01:18:36

  jurgensen - Użytkownik

jurgensen
Użytkownik
Skąd: Wrocław
Zarejestrowany: 2010-01-26

Re: Przekierowanie

Nie znam za bardzo Mikrotika, nie jestem też pewien, czy dobrze rozumiem Twoją topologię, ale wydaje mi się, że połączenie wygląda następująco:

1) Klient chce wejść na forum.dug.net.pl, więc jego przeglądarka (a właściwie system operacyjny) próbuje nawiązać połączenie TCP wysyłając segment z ustawioną flagą [b]SYN[/b] na na adres 217.96.37.17
2) Router modyfikuje nagłówek IP, zmieniając adres docelowy na 192.168.252.10
3) Do hosta 192.168.252.10 dociera segment [b]SYN[/b] od klienta, na co odpowiada [b]SYN/ACK[/b]
4) Do klienta dociera segment z flagami [b]SYN/ACK[/b] od 192.168.252.10, do którego nie wysyłał wcześniej segmentu [b]SYN[/b], więc odpowiada [b]RST[/b], czym kończy połączenie (oczywiście w międzyczasie wysyła retransmisje z flagą [b]SYN[/b]).

Czy dobrze zrozumiałem sytuację? Możesz to zweryfikować uruchamiając sniffer (najlepiej na komputerze klienckim).

Ostatnio edytowany przez jurgensen (2013-11-13 01:19:28)

Offline

 

#3  2013-11-13 07:44:14

  Kpt. - Użytkownik

Kpt.
Użytkownik
Skąd: Wielkopolska
Zarejestrowany: 2005-11-10

Re: Przekierowanie

Tak, myślę, ze dobrze zweryfikowałeś. Do konca chyba tak to nie wyglada, ale mogę się mylić. Na Mikrotikowym torchu (cos ala sniffer) widze.jakbym syn wychodzil zarowno do np wp.pl jak i na serwer, przy czym nie ma zadnej odpowiedzi ani od jednego ani od drugiego - przynajmniej ja tak to widze. Host kilkanascie razy ponawia wyslanie syn, do hostow, ale "bezskutecznie"
Sprawdze to jeszcze wieczorem. Dzieki za odpowiedz.

Offline

 

#4  2013-11-15 20:36:51

  Kpt. - Użytkownik

Kpt.
Użytkownik
Skąd: Wielkopolska
Zarejestrowany: 2005-11-10

Re: Przekierowanie

Niestety, nie wiem o co chodzi. Gdy nałożę blokadę, komputer wysyła jedynie pakiety syn, tak jakby nic nie wracało.
Nie wiem co robię źle. Routing wygląda ok. Nie rozumiem, dlaczego nie ma jakichkolwiek pakietow zwrotnych ... od serwera www. Faktycznie jest tak, ze na urzadzeniu robiacym NAT (tez Mikrotiku) dla kompa, na ktorym odpalam wiresharka, pojawiaja sie polaczenia miedzy serwerem www a komputerem... tyle, ze nie ma wymiany pakietow... Gdzie lezy przyczyna? Dziwniejsze jest to, ze czasami normalnie te odpowiedzi sie trafiaja, i wszystko ladnie dziala - znaczy, laduje sie strona z serwera www (przekierowanie dziala ok) a momentami ni cholery...

Ostatnio edytowany przez Kpt. (2013-11-15 20:48:00)

Offline

 

#5  2013-11-15 23:45:17

  jurgensen - Użytkownik

jurgensen
Użytkownik
Skąd: Wrocław
Zarejestrowany: 2010-01-26

Re: Przekierowanie

A jak wygląda topologia sieci i routing? Może pakiety wracają inną drogą i dlatego ich nie widzisz na routerze. Najlepiej, gdybyś zapuścił wiresharka/tcpdumpa na kliencie i serwerze w tym samym czasie i wrzucił tutaj pliki pcap z wynikiem.

Offline

 

#6  2013-11-16 22:51:23

  Kpt. - Użytkownik

Kpt.
Użytkownik
Skąd: Wielkopolska
Zarejestrowany: 2005-11-10

Re: Przekierowanie

252.10 to serwer www. W tablicy wskazanie na wszystkie sieci zdalne -  łącz przez router.  Pomniejsze routery (w tym przypadku 252.20) ma przykazane łączyć się z 252.10 poprzez 252.1. Tak jak powinno działać połączenie zaznaczyłem na niebiesko. zieloną kreską - jaki przepływ następuje "czasami" (wg moich obserwacji) Co zauważyłem. Robiąc traceroute z serwera www do jakiegoś hosta w sieci zdalnej np 5.x (nie wiem na ile to jest miarodajne), na przykład raz mamy trasę jakby prawidłową tzn 252.1-->252.20->5.x a raz mamy tylko 252.20->5.x Jeśli tak faktycznie jest to nie ma się co dziwić, że raz strona się ładuje, raz nie. Jak dla mnie wygląda to na zaburzony przepływ pakietów....I tak mam. Jak sprawdzę traceroutem np do testowego hosta i ścieżkę pokaże mi kompletną przez router - to przekierowanie działa pięknie, ale za moment ścieżka się "skraca" (już nie idzie przez 252.1) i strona się nie ładuje :( Może przyjąłem blednę założenia i nie da się wymusić takiego nieco sztucznego obiegu, jak opisany na schemacie?
[img]http://192.83.165.8/pic/schemat_www.jpg[/img]

Offline

 

#7  2013-11-16 23:15:39

  jurgensen - Użytkownik

jurgensen
Użytkownik
Skąd: Wrocław
Zarejestrowany: 2010-01-26

Re: Przekierowanie

Teraz wszystko jest jasne. Przy pierwszym połączeniu ze 192.168.252.10 do 192.168.5.0/24 pakiet jest kierowany przez 192.168.252.1. Ten sprawdza, że dalsza trasa wiedzie przez 192.168.252.20. Pakiet przesyła do tego routera, informując również nadawcę komunikatem ICMP redirect (typ 5), że istnieje krótsza trasa do tej sieci, po czym klient ustawia modyfikuję tymczasowo tablicę routingu i dalsze pakiety przesyła przez 192.168.252.20 (tymczasowa trasa powinna być widoczna przez route -C).

Istnieje kilka rozwiązań. Jednym (które zdecydowanie odradzam) jest blokada komunikatów ICMP typu 5. Inne, zdecydowanie lepsze, jest stworzenie odrębnej adresacji transportowej między routerami.

Offline

 

#8  2013-11-17 09:37:48

  Kpt. - Użytkownik

Kpt.
Użytkownik
Skąd: Wielkopolska
Zarejestrowany: 2005-11-10

Re: Przekierowanie

Hmm, ale wiesz co. Nie do końca rozumiem, co masz na myśli poprzez stworzenie odrębnej adresacji transportowej. Chcesz powiedzieć, że powinienem dodać jakaś osobną klasę na routerze brzegowym (252.1) i serwerze www, tak, aby serwer był osiągalny faktycznie tylko przez router główny?

Offline

 

#9  2013-11-17 13:50:53

  jurgensen - Użytkownik

jurgensen
Użytkownik
Skąd: Wrocław
Zarejestrowany: 2010-01-26

Re: Przekierowanie

Tak, routery do kontaktu pomiędzy sobą powinny mieć inną podsieć (w ostateczności nawet na tych samych interfejsach, jako dodatkowe adresy - aliasy).

Innym rozwiązaniem może być ustawienie NAT. Tzn., przy robieniu przekierowania na routerze 192.168.252.1 na serwer 192.168.252.10, jednocześnie robić NAT adresu źródłowego. Wówczas pakiet przychodzący do serwera 192.168.262.10 będzie miał adres źródłowy 192.168.252.1. W takiej sytuacji wyśle odpowiedź na ten właśnie adres. Wtedy router 192.168.262.1 sprawdzi swoje mapowania NAT i odeśle odpowiedź do klienta.

Ostatnio edytowany przez jurgensen (2013-11-17 13:51:20)

Offline

 

#10  2013-11-17 14:48:13

  Kpt. - Użytkownik

Kpt.
Użytkownik
Skąd: Wielkopolska
Zarejestrowany: 2005-11-10

Re: Przekierowanie

Niestety NAT odpada. Nie che natowac, bo muszę znać adres źródłowy hosta, ktory połączy się z serwerem WWW. Tak czy siak wielkie dzięki za pomoc i nakierowanie mnie na właściwy trop. Dorobię aliasy i zobaczę, jak to będzie działać.

Offline

 

#11  2013-11-17 16:44:33

  jurgensen - Użytkownik

jurgensen
Użytkownik
Skąd: Wrocław
Zarejestrowany: 2010-01-26

Re: Przekierowanie

Jeśli routery będą na innych adresach niż serwer, wszystko powinno iść trasą wyznaczoną przez Ciebie. W ostateczności, jeśli wszystko zawiedzie, możesz wyłączyć ICMP redirect, ale jak pisałem wcześniej, zdecydowanie to odradzam (w dokumentacji mikrotika też zalecają pozostawienie włączonego na routerach):

send-redirects (yes | no; Default: yes)     Whether to send ICMP redirects. Recommended to be enabled on routers.[/quote]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.012 seconds, 13 queries executed ]

Informacje debugowania

Time (s) Query
0.00009 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00100 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='18.118.149.55' WHERE u.id=1
0.00181 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.118.149.55', 1732796048)
0.00049 SELECT * FROM punbb_online WHERE logged<1732795748
0.00063 DELETE FROM punbb_online WHERE ident='185.191.171.14'
0.00053 DELETE FROM punbb_online WHERE ident='66.249.66.74'
0.00113 SELECT topic_id FROM punbb_posts WHERE id=245942
0.00131 SELECT id FROM punbb_posts WHERE topic_id=24595 ORDER BY posted
0.00076 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=24595 AND t.moved_to IS NULL
0.00008 SELECT search_for, replace_with FROM punbb_censoring
0.00095 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=24595 ORDER BY p.id LIMIT 0,25
0.00075 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=24595
Total query time: 0.00957 s