LX-SVS-PRAK-netwerk-kleine-protocollen
updated sep/27/10 12:41

praktijkoefening:

ping, traceroute, dns, tftp, wireshark

Benodigdheden: een PC met LINUX (werk met CentOS of Debian)
Wireshark network sniffer (yum/synaptic repositories)
TFTP server software (repositories)


Begin deze oefening met de installatie/configuratie en test van Wireshark


Transport Protocol UDP

UDP staat voor User Datagram Protocol.

Dit protocol heeft niet veel om het lijf. Het zit net als TCP tussen IP en de applicatieprotocollen in, maar het houdt zich niet bezig met session management, flow control, error correction, segmentation noch sequencing.

Het zorgt alleen voor een correcte multiplexing aan de hand van poortnummers, en voor error detection aan de hand van een checksum.

We gaan even verder in deze praktijkoefening de protocollen DNS en TFTP bekijken, die beide gebruik maken van UDP.

Protocol ICMP

ICMP staat voor Internet Control Message Protocol.
Dit is vrij vertaald: Het internet protocol voor Controle Berichten.

Zo een controle bericht dat je zeker al gezien hebt is "destination unreachable"

ping en traceroute zijn twee shell toepassingen die gebruik maken van ICMP.

  1. ping

    Doe een ping van uw buurman. Hoeveel keer wordt er gepingd?
    Hoe onderbreek je? <ESC> of <ENTER> of <CTRL>+<C> ?

    Snif de ping met wireshark. Vergeet niet een capture filter host <ip-adres> in te vullen.

    Je configureert eerst wireshark, dan start je de capture, dan start je de ping, stop je de ping en stop je dan wireshark capture.

    Hoeveel frames zie je?
    Zie je ook ARP frames?
    Als je ARP frames ziet, analyseer en schrijf de inhoud ervan op.

  2. ping -a

    Doe eens een ping met de optie -a
    Deze hoef je niet te sniffen met wireshark.

    $ ping -a

    Hoe ver kun je hem horen?
    Soms is je buzzer of speaker in je PC niet verbonden en hoor je helemaal niets!
    Zijn je oren aangepast genoeg om in een server ruimte het verschil op te vangen tussen go en no-go terwijl je aan kabels zit te prutsen?

    -a : audible ping

  3. ping -c

    Doe nu een ping met optie -c :


    $ ping -c 5 172.16.0.2


    Wat gebeurt er? Hoeveel keer wordt er nu gepingd?

    -c : count

  4. ping -s

    De optie -s


    $ ping -s 2000 172.16.0.2


    Gebruik de sniffer om te zien wat er gebeurt. Schrijf dit op. Wat je ziet noemt men fragmentatie. Stel zelf een verklaring voor, of zoek op het internet wat fragmentatie nu precies is en hoe het werkt.

    -s : size of packet

  5. ping -f

    Deze optie kan je alleen gebruiken als je root bent:

    # ping -f 172.16.0.2
    PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data.
    .^C
    --- 172.16.0.4 ping statistics ---
    10563 packets transmitted, 10562 received, 0% packet loss, time 7676ms
    rtt min/avg/max/mdev = 0.543/0.717/1.238/0.032 ms, ipg/ewma 0.726/0.714 ms


    Ogenschijnlijk gebeurt er niets gedurende seconden, en dan onderbreek je met <CTRL><C>. Ondertussen heeft ping meer dan tienduizend pakketten verstuurd. Voor elk niet ontvangen antwoord komt er een puntje op scherm.

    -f : flood ping

  6. ping -t

    De optie -t


    $ ping -t 1 www.bbc.co.uk


    Noteer de volledige "melding"
    Waarom krijg je deze melding?
    Is dit een foutmelding?
    Van wie krijg je deze melding? Noteer.


    Probeer dan het getal achter -t met telkens eentje op te hogen.


    $ ping -t 2 www.bbc.co.uk


    Noteer de volledige "foutmelding"
    Waarom krijg je deze melding?
    Van wie krijg je deze melding? Noteer.
    Herhaal voor -t 3, -t 4, ... , -t 15 ...  tot je geen foutmelding meer krijgt

    -t : time to live field

  7. man ping

    Bekijk de man pagina van ping en onderzoek zelf de voor jou interessante opties. Schrijf ze op, en wat ze doen, in je verslag.


  8. traceroute

    Met traceroute kun je de weg tot een bestemming op scherm brengen.
    traceroute werkt met ICMP. In de sniffer zie waarom en hoe.

    Kijk of traceroute geïnstalleerd is.

    Test daarna het volgende:


    # traceroute -I www.bbc.co.uk


    (de optie is een hoofdletter i in debian - in centos kan deze optie verschillen, kijk zo nodig in de man pagina's)


    Doe het nu nog eens en snif het netwerk met wireshark.
    Vergeet je capture filter niet!


    NOOT: Er zijn heel veel versies van traceroute. Je kan ook een andere versie van traceroute installeren en kijken wat er veranderd. Als je werkt met een debian-family linux kun je eens rondneuzen met synaptic, in redhat-family kun je dat doen met yum.

  9. DNS


    DNS staat voor Domain Name Server (of service)
    Deze service vertaalt URL's in IP-addressen (of omgekeerd)

    Kijk na of je www.bbc.co.uk kan pingen.
    Zie je ook het ip-adres van deze server?

    Start nu de sniffer met capture filter host <your ip>

    ping nu www.vrt.be

    Bekijk je capture.
    Hoeveel frames zijn er?
    Zie je DNS pakketten?
    Bovenop welk protocol zit DNS?
    Noteer het poort number.

    Tik nu het volgende:


    $ dig www.bbc.co.uk


    Wat zie je op je terminal?
    Schrijf op.
    Kun je dit ook capturen met Wireshark?
    Wat zie je?
    Hoeveel pakketten,
    welke?

    Onderzoek nu een ip-adres in je eigen netwerk:


    $ dig 172.16.0.15


    Wat zie je?
    Schrijf op.

    en dan nog:


    $ dig  @ns1.clearmedia.be  www.linux800.be


    is er een verschil met


    $ dig  www.linux800.be

  10. TFTP

    Voor deze oefening werk je samen met een groepslid.

    TFTP staat voor Trivial File Transfer Protocol en is een minimalistische versie van File Transfert.


    Installeer de TFTP server op jouw machine of die van je buur.


    centos:

    # yum install tftpd


    debian:

    # apt-get install tftpd

    Moet je configureren en activeren?
    Bekijk dit in de man pages.

    Installer nu de tftp client software op de andere machine:

    # yum of apt-get install tftp

    en om te zien hoe alles werkt tik je:

    # man tftp

    Probeer nu het tftp protocol uit als client aan de command prompt. Zodra je er in slaagt een file over te zetten kun je sniffen om te zien wat er nu precies gebeurt.

    Welk transport protocol gebruikt tftp? Wat is het poortnummer van de server?
    Heb jij ook een client poort nummer? Hoe gaat tftp om met sequencenumbers?