Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki 1 do 10 z 16

Temat: pytanie odnosnie ICMP

  1. #1

    Domyślnie pytanie odnosnie ICMP

    witam. mam pytanie odnosnie protokolu ICMP. najlepiej bedzie to opisac poslugujac sie przykladem.

    przyklad.
    mamy dwa komputery A i B. komputer A jest bezposrednio podlaczony do globalnej sieci (publiczny adres), natomiast komputer B znajduje sie za NATem (prywatny adres).
    komputer B wysyla echo request o danym identyfikatorze, numerze sekwencyjnym i dodatkowymi danymi (zalozmy 10 bajtow) do komputera A. komputer A odbiera pakiet, zmienia tylko dane (zalozmy na 100 bajtow) i odpowiada echo reply do komputera B (oczywiscie suma kontrolna rowniez jest prawidlowa). i teraz pytania:

    (1) czy maszyna NATujaca przyjmie taki pakiet (ze zmienionymi danymi) i przekaze go do komputera B?
    (2) jezeli tak, to czy zmieniajac rowniez identyfikator i numer sekwencyjny bedzie to samo?
    (3) czy jest mozliwosc programowego nieodpowiadania na pakiety echo request (poza firewallem), czy jest to tylko i wylacznie sprawa jadra systemu?

    z gory dziekuje.

  2. #2
    Zarejestrowany
    Dec 2007
    Postów
    271

    Domyślnie

    1. a to nie jest tak, ze router zapamietuje adresy ethernet? Czyli jesli wyslalem cos z wew adresem mac, to router przekaze wszystko z zewnatrz do mnie?
    Choc nie znam sie na tym, ale to by bylo logiczne. inaczej router musialby sprawdzac kazdy pakiet i analizowac protokoly co nie jest zbyt szybkie. Ale jesli pakiet bedzie poprawny to przekaze (inaczej nie moznabylo by sprawdzic czy server nie odpowiedzial czy zrobil to zle)

    2. imho liczy sie ethernet

    3. tak, i czy to aby napewno jadro sie zajmuje netem? Czy jakas usluga kozysta z recvfrom(). Ogolnie recvfrom odbiera kazdy pakiet protokolu na ktorym zostal utworzony deskryptor, tcp i udp blokuja pomowny bind. To juz program musi sprawdzac czy sekwencyjny ip sie zgadza, potem icmp, i ew odpowiada.

  3. #3
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    #1 - maszyna robiac NAT przyjmie dane i przekaze do LAN bo na takiej zasadzie dziala NAT - pamieta numery portow i adresy po obu stronach lacza i pozwala na powrot danych w drugim kierunku, w ICMP bedzie podobnie choc nie bedzie numerow portow raczej. Zmiana zawartosci pakietu jest ok ale normalny ping wtedy go odrzuci jako blednie przeslany (zawartosc sie nie zgadza) - choc to bardzo zalezy od implementacji, wiem ze nie kazdy ping to sprawdza

    #2 - nie wiem - dobre pytanie, moze przejsc ale nie musi - sprawdz...

    #3 - mozna ustawic firewall w systemie na danej maszynie aby nie wpuszczal echo-request a wpuszczal echo-reply, wtedy Ty mozesz pingowac ale Ciebie nie mozna

    P.S.
    Re #1 sa praktyczne zastosowania ktore zostaly zaimplementowane juz dawno a bazuja dokladnie na tym co analizujesz
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  4. #4
    Zarejestrowany
    Dec 2007
    Postów
    271

    Domyślnie

    pamieta numery portow i adresy po obu stronach lacza i pozwala na powrot danych w drugim kierunku
    czyli co, wysle milion pakietow dns na server ktory nie istnieje, i zDoSuje rouner? Bo zabraknie mu pamieci? Fajnie

    A icmp nie zawsze jest zwracane przez host docelowy... ba, nawet ip nie musi, juz nie wnikam w implementacje sieci skanowanej - patrz ttl w ip. I co, router wtedy zablokuje taki pakiet? Jakos nie chce mi sie w to wierzyc, a co jesli siec nie dziala po ip? A no tak, moze zapamietac mac. Ale traceroute nie mial by wtedy racji bytu, a jednak dziala. Tgm wyjasnij mi prosze ten fakt.


    //aha, a jesli wysle routerowi z zewnatrz pakiet z wewnetrznym adresem? A potem normalny? Moglbym nawet serwer postawic za natem
    Ostatnio edytowane przez h3x : 03-21-2008 - 10:19

  5. #5
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Nie... jesli wysylasz do nieistniejacego hosta to najczesciej dostajesz ICMP Unreachable od routera ktory teoretycznie powinien byc tuz przed nim. ping oczekuje powrotu pakietu przez jakis czas pozniej olewa temat i twierdzi ze pakiet nie wrocil (packet loss idzie w gore), w przypadku DNS jesli brak odpowiedzi to pakiet jest wysylany do innego serwera - routery robiace NAT sobie z tym doskonale radza...

    Co do NAT - pomyliles pojecia - NAT nie dziala na warstwie 2 czyli adresach MAC a na warstwie 3 czyli adresach IP. Poza tym NAT jako NAT dziala tylko na IP, inne protokoly nie znaja takiego pojecia. NAT jest tworem zwiazanym z adresami IP i zasada dzialania sieci opartych TCP/IP.
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  6. #6

    Domyślnie

    dzieki za odpisanie. jednak kilka uwag.

    Cytat Napisał h3x Zobacz post
    3. tak, i czy to aby napewno jadro sie zajmuje netem? Czy jakas usluga kozysta z recvfrom(). Ogolnie recvfrom odbiera kazdy pakiet protokolu na ktorym zostal utworzony deskryptor, tcp i udp blokuja pomowny bind. To juz program musi sprawdzac czy sekwencyjny ip sie zgadza, potem icmp, i ew odpowiada.
    jezeli tak, to w jaki sposob? napisales miedzy innymi o funkcji recvfrom(), ale ona dziala juz na warstwie transportowej. takze pakiet ICMP nie zostanie odebrany przez nia. czyli nie ma jakiegos innego sposobu (nie korzystajac z firewalla) aby tego dokonac?

    Cytat Napisał tqm Zobacz post
    #2 - nie wiem - dobre pytanie, moze przejsc ale nie musi - sprawdz...
    niestety nie mam takiej mozliwosci zeby to sprawdzic.

    Cytat Napisał h3x Zobacz post
    A icmp nie zawsze jest zwracane przez host docelowy... ba, nawet ip nie musi, juz nie wnikam w implementacje sieci skanowanej - patrz ttl w ip. I co, router wtedy zablokuje taki pakiet? Jakos nie chce mi sie w to wierzyc, a co jesli siec nie dziala po ip? A no tak, moze zapamietac mac. Ale traceroute nie mial by wtedy racji bytu, a jednak dziala. Tgm wyjasnij mi prosze ten fakt.
    w przypadku gdy zostaje przekroczony znacznik TTL, to tak jak napisales otrzymamy pakiet od innego hosta. jednak w tej odpowiedzi ICMP znajduja sie odpowiedni typ i kod oraz dodatkowo jest warstwa IP (mozna powiedziec, ze druga) z adresem docelowym hosta, ktory rzekomo mial odpowiedziec na niego. wiec wnioskuje, ze maszyna NATujaca sprawdza wlasnie to pole i jesli sie zgadza z zapamietanym wczesniej pakietem, to jest przekazywany dalej. tak to mniej wiecej wyglada?

    Cytat Napisał tqm Zobacz post
    Nie... jesli wysylasz do nieistniejacego hosta to najczesciej dostajesz ICMP Unreachable od routera ktory teoretycznie powinien byc tuz przed nim. ping oczekuje powrotu pakietu przez jakis czas pozniej olewa temat i twierdzi ze pakiet nie wrocil (packet loss idzie w gore), w przypadku DNS jesli brak odpowiedzi to pakiet jest wysylany do innego serwera - routery robiace NAT sobie z tym doskonale radza...
    analizujac pakiety na snifferze, mozna zauwazyc, ze jezeli probujemy wyslac pakiet (echo request) do hosta w sieci lokalnej, a ten host jest nieosiagalny, to pakiet ten nawet nie jest wysylany, poniewaz nie mamy adresu MAC tego hosta (brak odpowiedzi ARP). jednak zastanawiam sie jak wyglada taki pakiet w sieciach rozleglych. tak jak w przypadku przekroczenia znacznika TTL, tylko z odpowiednim typem i kodem?
    Ostatnio edytowane przez ma~ : 03-21-2008 - 23:23

  7. #7
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Cytat Napisał ma~ Zobacz post
    w przypadku gdy zostaje przekroczony znacznik TTL, to tak jak napisales otrzymamy pakiet od innego hosta. jednak w tej odpowiedzi ICMP znajduja sie odpowiedni typ i kod oraz dodatkowo jest warstwa IP (mozna powiedziec, ze druga) z adresem docelowym hosta, ktory rzekomo mial odpowiedziec na niego. wiec wnioskuje, ze maszyna NATujaca sprawdza wlasnie to pole i jesli sie zgadza z zapamietanym wczesniej pakietem, to jest przekazywany dalej. tak to mniej wiecej wyglada?
    Nie rozumiem tego fragmentu... poza tym co nastepuje dalej '(mozna powiedziec, ze druga)' jest zle - nie mozna powiedziec ze druga bo IP jest protokolem warstwy 3 a nie 2 i koniec kropka... cokolwiek IP nie ma pojecia o warstwie 2, o adresach MAC itd... dlatego ich jedynym polaczeniem (miedzy warstwami 2 i 3) jest ARP.

    Cytat Napisał ma~ Zobacz post
    analizujac pakiety na snifferze, mozna zauwazyc, ze jezeli probujemy wyslac pakiet (echo request) do hosta w sieci lokalnej, a ten host jest nieosiagalny, to pakiet ten nawet nie jest wysylany, poniewaz nie mamy adresu MAC tego hosta (brak odpowiedzi ARP). jednak zastanawiam sie jak wyglada taki pakiet w sieciach rozleglych. tak jak w przypadku przekroczenia znacznika TTL, tylko z odpowiednim typem i kodem?
    W przypadku sieci LAN tak, bo komputer widzi ze adres docelowy jest w tej samej sieci wiec oczekuje ze moze komunikowac sie z nim bezposrednio bez uzywania bramy (zobacz routing) ale aby wyslac cos w sieci LAN musi uzyskac lacze na warstwie 2 czyli adres MAC.

    Jesli adres IP (warstwa 3) jest spoza sieci lokalnej (okreslonej jako poczatek sieci i maska) do ktorej nalezy nasz serwer, pakiet zostanie wyslany przez brame lokalna wiec komputer bierze MAC bramy i wysyla na pakiet IP z oryginalnym adresem docelowym itd fizycznie do karty (adresu MAC - warstwa 2) bramy. Dalej brama patrzy czy ma siec docelowa podlaczona do jednego ze swoich interfejsow - jesli tak to bierze MAC stacji i puszcza po kablu pakiet, jesli nie to przekazuje ten pakiet do swojej bramy domyslnej - tak samo jak to zrobil Twoj komputer.

    Ogolnie sprawdzamy czy docelowa siec/maszyna jest dostepna dla mnie bezposrednio przez moj interfejs (sprawdzamy tablice routingu) - jesli tak to doreczamy, jesli nie przekazujemy do naszej bramy domyslnej ktora ma dalej wyjscie na swiat i niech ona sie martwi.
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  8. #8

    Domyślnie

    Cytat Napisał tqm Zobacz post
    Nie rozumiem tego fragmentu... poza tym co nastepuje dalej '(mozna powiedziec, ze druga)' jest zle - nie mozna powiedziec ze druga bo IP jest protokolem warstwy 3 a nie 2 i koniec kropka... cokolwiek IP nie ma pojecia o warstwie 2, o adresach MAC itd... dlatego ich jedynym polaczeniem (miedzy warstwami 2 i 3) jest ARP.
    chyba doszlo do nieporozumienia. nie mam na mysli warstwy drugiej tylko druga warstwa IP w sensie, ze sa one dwie. to znaczy taki pakiet (z przekroczonym znacznikiem TTL), ktory sklada sie z warstwy ethernetowej, na niej jest warstwa IP, a potem jest ICMP. jednak w przypadku, o ktorym mowa, w protokole ICMP oprocz typu, kodu oraz sumy kontrolnej jest informacja (ktora ma forme dokladnie taka jaka ma protokol IP) o hoscie, do ktorego mial dojsc pakiet. co wiecej, po tym znajduje sie kolejny pakiet icmp. zeby dalej nie mieszac proponuje obejrzec jak wyglada pakiet z przekroczonym znacznikiem TTL (w wiresharku ladnie to widac). mam nadzieje, ze po tym cos sie wyjasni.

  9. #9
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Czy mowisz o tunelowaniu IP w polu danych pakietu ICMP?
    Ja z tego opisu rozumiem ze pakiet zwracany jako komunikat bledu (host unreachable, ttl exceeded, itd) zawiera w sobie jakies inne pakiety IP - o to chodzi? O to co wraca wtedy w polu danych?

    EDIT:
    Moze pokaz o co chodzi
    Ostatnio edytowane przez TQM : 03-22-2008 - 20:52
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  10. #10

    Domyślnie

    tak. dokladnie o to mi chodzi. czyli mamy pakiet ICMP, w ktorym jest IP oraz kolejny ICMP. teraz wracajac do przykladu, mam rozumiec, ze maszyna NATujaca sprawdza adres tego wewnetrznego IP i wtedy decyduje czy przekazac pakiet do sieci LAN (jezeli wczesniej zostalo wyslane echo request)?

Strona 1 z 2 12 OstatniOstatni

Podobne wątki

  1. ICMP w TOR'ze
    By tanaka in forum TCP/IP/Analiza/Badanie
    Odpowiedzi: 6
    Autor: 01-29-2008, 21:50
  2. icmp i rutery
    By ironwall in forum TCP/IP/Analiza/Badanie
    Odpowiedzi: 12
    Autor: 09-04-2007, 08:16
  3. Pytanie
    By slawek14 in forum Pomysły/Sugestie
    Odpowiedzi: 2
    Autor: 04-14-2007, 10:51
  4. Pytanie
    By Wash&Go in forum Pomysły/Sugestie
    Odpowiedzi: 10
    Autor: 04-12-2007, 12:59
  5. icmp
    By ble34 in forum Newbie - dla początkujących!
    Odpowiedzi: 1
    Autor: 01-31-2007, 21:10

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj