Domande? Problemi?

Iscriviti al Google group:

Routing base

Scopo

Lo scopo di questa esperienza è di familiarizzare con il routing e l’importanza della netmask nella definizione di quali pc la rete sa di potere raggiungere. In particolare il comando fondamentale è:

  • route
  • ifconfig
  • ipl: un comando di Argo che da una visione molto sintetica del routing
  • i comandi ifup & ifdown
  • il comando ipcalc (sulla vostra macchina: apt-get install ipcalc)
  • tcpdump per vedere su quali interfacce passano le richieste icmp (ping)

Setup

Questa esperienza usa

  • un firewall che usa una connessione tap che via l’host principale (la vostra macchina) vi permette la connessione ad internet.
  • un server che deve essere connesso ad internet tramite il firewall ma che nelle condizioni iniziali non riesce neppure a contattare il firewall. In realtà non usiamo la macchina pdc che occuperebbe inutilmente memoria ed attiverebbe servizi inutili. Utilizzaremo ancora una immagine debian etch.

Il file principale su cui dovete concentrarvi è /etc/network/interfaces che contiene la configurazione delle interfacce di rete. Vedi la pagina sul sito reteisi. Questa volta però dovere porre attenzione a:

  • il fatto che le interfacce vengano fatte partire in automatico al boot (vedi parametro auto in)
  • la netmask ed il network. Firewall e server hanno la medesima netmask, ma non il medesimo network.

Esercizio

  • per potere poi raggiungere via ssh questa macchina, impostate una password con passwd

  • verificate che il firewall va in internet

  • verificate che l’interfaccia eth1 del firewall è down (usare ifconfig o ipl che mostra le interfacce down con le quadre ed il colore blu)

  • attivate l’interfaccia eth1: ifup eth1 del fw. Notate che ipl mostra /25 come maschera, cercate di capire nel file :file:interfaces dove questo viene definito.

  • verificate che il pdc non riesce a pingare il firewall:

    pdc:~# ipl
        lo:        127.0.0.1/8
    [eth0]:
    pdc:~# ping 192.168.10.254
    connect: Network is unreachable

    unreachable è riferito alla rete, non all’host!!!

  • verificate che effettivamente l’interfaccia sia configurata:

      pdc:~# ipl
          lo:        127.0.0.1/8
        eth0:     192.168.10.1/25
      pdc:~# ping 192.168.10.254
      connect: Network is unreachable
    la rete del firewall è ancora irraggiungibile
  • se dal firewall cercate di raggiungere il pdc ottenete una cosa lievemente differente:

    fw:~# ipl
         lo:        127.0.0.1/8
       eth1:   192.168.10.254/25
       eth0:       172.16.0.2/16  ==> GW 172.16.0.1 - main
    fw:~# ping 192.168.10.1
    PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.

    il firewall non raggiunge il pdc ma non dice che la rete è irraggiungibile

    Entrate dalla vostra macchina con ssh 172.16.0.2 (il firewalling è impostato in modo da permetterlo) e vi accorgerete che le richieste per il pdc finiscono nell’interfaccia errata:

    fw:~# tcpdump -ni eth0 icmp
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
    12:04:02.525286 IP 172.16.0.2 > 192.168.10.1: ICMP echo request, id 64524, seq 18, length 64
    12:04:03.527712 IP 172.16.0.2 > 192.168.10.1: ICMP echo request, id 64524, seq 19, length 64

    infatti esistendo una route di default ed essendo “sbagliata” la maschera dell’interfaccia interna, il firewall cerca il pdc nella interfaccia di default.

  • correggete la maschera sia sul pdc che sul fw e vedrete che tutto torna a funzionare. Potete sbizzarrirvi a vedere le varie combinazioni

  • abituatevi a guardare le rotte con il comando route -n (-n chiede che vengano mostrate con formato numerico, evitando la risoluzione in nomi che spesso manca)

Letture

Nel corso 2008 abbiamo trattato i principi del routing nella lezione 2.