IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

1ra pregunta

Indiqueu i expliqueu amb les vostres paraules quins són els nivells o capes de les piles de protocols TCP/IP i OSI. Poseu exemples de protocols per a cada capa.

Pila de TCP/IP

  • Capa 5 - Nivell d'aplicació: Els usuaris utilitzen aplicacions de xarxa i serveis d'Internet. Ex: SMTP, FTP
  • Capa 4 - Nivell de transport: Garanteix que els paquets arribin sense errors. Utilitza la transmissió punt a punt. Ex: TCP, UDP
  • Capa 3 - Nivell IP: Ajuda la comunicació d'una màquina a una altra. Decideix quins camins han de seguir els paquets per arribar al destí, acceptant i transferint paquets per a la xarxa. Ex: IP, ICMP, ARP
  • Capa 2 - Nivell d'enllaç: Aconsegueix la comunicació entre els dispositius de xarxa. Proporciona un control d'errors. EX: PPP
  • Capa 1 - Nivell física: Defineix el medi, es a dir, especifica el tipus de hardware que s'utilitzara per a la xarxa. Ex: Cable Ethernet

Pila de nivell OSI

  • Capa 7 - Nivell d'aplicació: Interactua amb el SO o aplicació, quan l'usuari vol utilitzar un servei de xarxa. Ex: SMTP, FTP, HTTP.
  • Capa 6 - Nivell de presentació: Agafa les dades que s'han entregat per la capa d'aplicació i els converteix en un format que es pugui entendre. Ex: ANS.1
  • Capa 5 - Nivell de sessió: Acaba amb les connexions que es fan entre dispositius. Ex: NetBios, SQL
  • Capa 4 - Nivell de transport: Manté el control de flux, verifica que no hi hagin errors i recupera les dades entre dispositius. Ex: TCP, UDP
  • Capa 3 - Nivell de xarxa: Determina la manera de com seran enviats els paquets a un dispositius de xarxa. Ex: ARP, IP, ICMP
  • Capa 2 - Nivell d'enllaç: S'assigna el tipus de xarxa i la seqüència de paquets utilitzats. Ex: Ethernet
  • Capa 1 - Nivell físic: Representa al tipus de connexions, cablejat, es a dir, la part física de la xarxa. Ex: Cables ethernet, fibra òptica, cable coaxial.

Nivell IP

Desenvolupeu més a fons els nivells per sota del nivell IP (nivell IP inclòs). Indiqueu:

Funcions principals de la capa

  • Capa 3 - Nivell IP
  • Encaminar els paquets de la màquina d'origen a la destí.
  • Realitza la transferència de dades.
  • Fa direccionament dels paquets.
  • S'encarrega de la fragmentació.
  • Capa 2 - Nivell d'enllaç
  • Proveeix la transparència de dades.
  • S'encarrega de la detecció d'erros.
  • Retransmissió de paquets per recuperar-se d'erros.
  • Permet el control de flux.
  • Supervisa les funcions d'enllaç.
  • Capa 1 - Nivell físic
  • Transmet els bits per un canal de comunicació, per a que els paquets arribin sense alteracions.
  • Especifica el medi, el tipus de material que s'utilitzara o el hardware.

Identificadors principals de cada capa

Diferències entre OSI i TCP/IP

Model OSI
  • OSI defineix de manera molt clara els serveis, interfícies.
  • OSI va ser proposat com a una aproximació tècnica.
  • OSI es un model genèric de xarxa.
Model TCP/IP
  • TCP/IP es més simple ja que té menys capes.
  • TCP/IP va ser dissenyat per solucionar un problema.
  • TCP/IP es pot veure com a una arquitectura real.

Subnivells de cada capa (si s'escau)

Quins són els subnivells i explicar-los amb detall. Posar exemples d'ús o no ús de subcapcapes de xarxa

  • Capa 2 - Nivell d'enllaç
  • Subcapa LLC
Subcapa responsable de la identificació lògica dels diferents tipus de protocols i l'encapsulament dels protocols per ser transmets a través de la xarxa.
Funcions
  • Agrupa els bits a transmetre en forma de trama
  • S'ocupa dels errors de transmissió
  • S'encarrega del control de flux
  • Gestiona la capa d'enllaç
  • Subcapa MAC
Subcapa de Control d'Accés al Medi responsable de terminar com s'ha de transportar les dades a través del cable físic.
Funcions
  • S'encarrega del direccionament físic.
  • Topologia de xarxa
  • Notificacions d'errors
  • Control òptim de flux
  • Control d'accés al medi de transmissió LAN.
  • Encapsulament de les dades en trames amb camps de direccionament i detecció d'erros.
  • Des capsulament de les termes, reconeixement de direccions i deteccions d'errors.
  • Afegir la direcció MAC origen i destí de cada trama que es transmet.

2a Pregunta

Comandes de xarxa

Indiqueu quina comanda utilitzem per configurar interfícies de xarxa ja siguin físiques o virtuals. Poseu exemples de com:

Interfície de xarxa

Mostrar des dades de configuració d'una interfície de xarxa concreta. Expliqueu totes les dades que es mostren d'una interfície de xarxa.

  • Podem mirar la configuració d'una interfície de xarxa utilitzant la sintaxis:
$ ifconfig [-a] [-v] [-s] [interface] [[familia_direccions] direcció] [opcions]

Per exemple amb aquests paràmetres podem mirar detalladament informació d'una sola interfície de xarxa.

$ ifconfig eth0
eth0      Link encap:Ethernet  direcciónHW 70:54:d2:17:ac:e0  
          Direc. inet:192.168.204.214  Difus.:192.168.204.255  Másc:255.255.255.0
          Dirección inet6: fe80::7254:d2ff:fe17:ace0/64 Alcance:Enlace
          ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:32892 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:19908 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:1000 
          Bytes RX:24710598 (24.7 MB)  TX bytes:3802792 (3.8 MB)
          Interrupción:20 Memoria:fe600000-fe620000 

Aquesta informació es composa per aquests resultats:

  • DireccióHW: Serie de números hexadecimals que es refereixen a una direcció MAC Els tres primers octets identifica el fabricant. Ex: 70:54:d2:17:ac:e0
  • Direc. inet: Direcció IP de la màquina. Ex: 192.168.204.214
  • Difus.: Direcció de broadcast. Ex: 192.168.204.255
  • Màsc: Màscara de xarxa. Ex: 255.255.255.0
  • Direcció inet6: Direcció IPv6. Ex: fe80::7254:d2ff:fe17:ace0/64
  • MTU: mostra informació del valor actual de la MTU (Unitat Màxima de Transferència). Ex: 1500
  • Paquets RX: Paquets rebuts sense errors, el numero d'errors, paquets perduts, numero de paquets descartats. Ex: RX:32892
  • Paquets TX: Paquets transmitents sense erros, el numero d'errors, paquets perduts, numero de paquets descartats. Ex: TX:19908
  • Colisions: Ens indica si han hagut col·lisions o no.
  • Interrupció: Podem mirar quantes interrupcions hem tingut.

Totes les interfícies

Mostrar des dades de configuració de TOTES les interfícies de xarxa.

  • Utilitzarem el paràmetre -a per mostrar totes les interfícies de xarxa existents a la nostra màquina.
$ ifconfig -a
eth0      Link encap:Ethernet  direcciónHW 70:54:d2:17:ac:e0  
          Direc. inet:192.168.204.214  Difus.:192.168.204.255  Másc:255.255.255.0
          Dirección inet6: fe80::7254:d2ff:fe17:ace0/64 Alcance:Enlace
          ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:41289 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:24604 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:1000 
          Bytes RX:31259674 (31.2 MB)  TX bytes:4621287 (4.6 MB)
          Interrupción:20 Memoria:fe600000-fe620000 

lo        Link encap:Bucle local  
          Direc. inet:127.0.0.1  Másc:255.0.0.0
          Dirección inet6: ::1/128 Alcance:Anfitrión
          ACTIVO BUCLE FUNCIONANDO  MTU:65536  Métrica:1
          Paquetes RX:8948 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:8948 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:0 
          Bytes RX:1150670 (1.1 MB)  TX bytes:1150670 (1.1 MB)

vmnet1    Link encap:Ethernet  direcciónHW 00:50:56:c0:00:01  
          Direc. inet:172.16.167.1  Difus.:172.16.167.255  Másc:255.255.255.0
          Dirección inet6: fe80::250:56ff:fec0:1/64 Alcance:Enlace
          ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:313 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:1000 
          Bytes RX:0 (0.0 B)  TX bytes:0 (0.0 B)

vmnet8    Link encap:Ethernet  direcciónHW 00:50:56:c0:00:08  
          Direc. inet:172.16.213.1  Difus.:172.16.213.255  Másc:255.255.255.0
          Dirección inet6: fe80::250:56ff:fec0:8/64 Alcance:Enlace
          ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:314 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:1000 
          Bytes RX:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  direcciónHW 50:46:5d:ae:4e:c5  
          DIFUSIÓN MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:0 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:1000 
          Bytes RX:0 (0.0 B)  TX bytes:0 (0.0 B)

Configuració IP

  • Configurar només la IP
Per configurar només la direcció IP a la nostra màquina executarem la següent comanda encara que també es pot fer al fitxer /etc/network/interfices
$ sudo ifconfig eth0 192.168.204.213

Màscara de xarxa

  • Quina és la màscara per defecte?
La màscara per defecte sempre serà 255.255.255.0 fins que no diguen quina volen utilitzar, també se li pot anomenar /24

Configurar IP i màscara

  • Configurar IP i màscara
Per configurar aquest dos paràmetres hem d'executar la següent comanda. També podem fer-ho des del fitxer de configuració /etc/network/interfaces
$ sudo ifconfig eth0 192.168.204.213 netmask 255.255.255.0
Fitxer de configuració /etc/network/interfaces
$ sudo joe /etc/network/interfaces
Contingut del fitxer:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

# interface eth0
auto eth0
iface eth0 inet static | dhcp
 address 192.168.204.213
 netmask 255.255.255.0

Canviar direcció MAC

  • Canviar la MAC
Per canviar la direcció del nostres ordinador hem d'executar la comanda ifconfig indicant la interfície de xarxa, i la direcció MAC que volen canviar.
$ sudo ifconfig eth0 hw ether 00:00:00:00:00:01
  • hw: Hardware
  • ether: Ethernet

IP Aliasing

  • Configurar una interfície de xarxa de tipus IP Aliasing
Per afegir una direcció IP virtual podem executar la comanda ifconfig seguit d'una sèrie de paràmetres indicant també un aliàs a la interfície de xarxa i la direcció IP que volem tenir.
$ sudo ifconfig eth0:pepito 90.90.90.100

Taula de rutes

Indiqueu quina comanda utilitzem per configurar la taula de rutes.Poseu exemples de com:

  • Consultar la taula de rutes
Existeixen moltes maneres de consultar la taula ARP, en aquest apartat podem provar dos comandes:
ip neigh

La manera més senzilla de veure la tabla ARP es utilitzant la comanda ip neigh, podem utilitzar dos paràmetres (ls - show).

  • Amb el paràmetre show
$ sudo ip neigh show
192.168.204.250 dev eth0 lladdr 70:54:d2:17:7e:d7 STALE
192.168.204.1 dev eth0 lladdr d4:ca:6d:20:8f:7f REACHABLE
  • Amb el paràmetre ls
$ sudo ip neigh ls
192.168.204.250 dev eth0 lladdr 70:54:d2:17:7e:d7 STALE
192.168.204.1 dev eth0 lladdr d4:ca:6d:20:8f:7f REACHABLE
arp

Un altra comanda per mostrar la taula ARP es utilitzant la comanda arp seguit del paràmetre -n

$ sudo arp -n
Dirección                TipoHW  DirecciónHW         Indic Máscara         Interfaz
192.168.204.1            ether   d4:ca:6d:20:8f:7f   C                     eth0

Agregar gateway

  • Com afegir un gateway
Per agregar un gateway a la nostra interfície utilitzarem la següent comanda seguit amb el paràmetre add que es afegir.
$ sudo route add default gw 192.168.204.1

Eliminar gateway

  • Com eliminar un gateway
Per eliminar un gateway a la nostra interfície utilitzarem la següent comanda seguit amb el paràmetre del que es esborrar.
 $ sudo route del default gw 192.168.204.1

Ruta estàtica

  • Com afegir una ruta estàtica

Sintaxi:

$ sudo ip route add {xarxa} via {ip} dev {dispositiu}

Exemple:

$ sudo ip route add 192.168.204.0/24 via 192.168.204.254 dev eth1

També podem fer servir la comanda route

$ sudo ip route add -net 192.168.204.0 netmask 255.255.255.0 gw 192.168.204.254 dev eth1

Configuració DNS

  • Indiqueu com configurar les DNS

Editant el fitxer /etc/resolv.conf

$ sudo joe /etc/resolv.conf
 # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
 #     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

 # OpenDNS Fallback (configured by Linux Mint in /etc/resolvconf/resolv.conf.d/tail).
 nameserver 8.8.8.8
 nameserver 8.8.4.4

Informació Ethernet

  • Indiqueu com veure, amb quian comanda, la informació Ethernet d'una interfície de xarxa. Expliqueu la informació que mostra la sortida de la comanda.
mii-tool
$ sudo mii-tool eth0
eth0: negotiated 1000baseT-FD flow-control, link ok
  • 1000baseT: Tipus de cable trençat no apantallat a una velocitat de Gigabite Ethernet
  • flow-control: Control de flux
  • link ok: Es comprova que hi ha link. (llums al port ethernet)
ethtool
$ sudo ethtool eth0
Settings for eth0:
	Supported ports: [ TP MII ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Half 1000baseT/Full 
	Supported pause frame use: Symmetric Receive-only
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Half 1000baseT/Full 
	Advertised pause frame use: Symmetric Receive-only
	Advertised auto-negotiation: Yes
	Speed: 1000Mb/s
	Duplex: Full
	Port: MII
	PHYAD: 1
	Transceiver: external
	Auto-negotiation: on
	Supports Wake-on: g
	Wake-on: g
	Current message level: 0x000000ff (255)
			       drv probe link timer ifdown ifup rx_err tx_err
	Link detected: yes
  • Supported link modes: Això especifica el tipus de cablejat que es compatible.
  • Supports auto-negotiation: La negociació es automàtica i esta activada.
  • Speed: Velocitat a la que es treballa.
  • Duplex: Treballa a Full duplex, es a dir, multidireccional.

Configurar DHCP

Indiqueu com configurar per línia de comandes una interfície amb DHCP. Indiqueu també com alliberar un préstec.

Alliberar un préstec
$ sudo dhclient -r eth0
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service smbd reload

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the reload(8) utility, e.g. reload smbd
Demanar IP

Per demanar una configuració de xarxa al servidor DHCP podem fer-ho executant la comanda dhclient amb -v per mirar el que passa.

$ sudo dhclient -v eth0
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/88:ae:1d:a3:64:6e
Sending on   LPF/eth0/88:ae:1d:a3:64:6e
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x1db87926)
DHCPREQUEST of 192.168.204.232 on eth0 to 255.255.255.255 port 67 (xid=0x1db87926)
DHCPOFFER of 192.168.204.232 from 192.168.50.10
DHCPACK of 192.168.204.232 from 192.168.50.10
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service smbd reload

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the reload(8) utility, e.g. reload smbd
bound to 192.168.204.232 -- renewal in 8820 seconds.

Els resultats donats més importants:

  • DHCPDISCOVER: Missatge que envia un client mitjançant una trama broadcast per a detectar els servidors DHCP.
  • DHCPREQUEST: Missatge que envia un client dins d’una trama broadcast a un servidor per a:
  • Acceptar una oferta de configuració d’un servidor concret, rebutjant la resta.
  • Confirmar la correctesa de la informació assignada abans de reiniciar la targeta de xarxa configurada.
  • Estendre el contracte d’una @IP determinada.
  • DHCPOFFER: Missatge d’un servidor a un client com a resposta a un DHCPDISCOVER, aquesta inclou una oferta de configuració (paràmetres) per al client.
  • DHCPACK Missatge d’un servidor a un client enviant-li els paràmetres de la configuració assignada amb la @IP (és la confirmació).

Exercici pràctic

Utilitzeu Wireshark per capturar i explicar a partir de les captures en detall els següents protocols:

ARP

Per poder captura el protocol ARP hem de fer un ping a una màquina de la xarxa local LAN. En aquest utilitzo la comanda ping a la direcció IP de company de classe Marc Domenech

 $ ping 192.168.204.234
PING 192.168.204.234 (192.168.204.234) 56(84) bytes of data.
64 bytes from 192.168.204.234: icmp_req=1 ttl=64 time=0.767 ms
64 bytes from 192.168.204.234: icmp_req=2 ttl=64 time=0.627 ms
64 bytes from 192.168.204.234: icmp_req=3 ttl=64 time=0.711 ms
^C
--- 192.168.204.234 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.627/0.701/0.767/0.065 ms

En la següent imatge podem observar que hem capturat el protocol ARP (Protocol de Resolucions de Direccions). Aquest protocol és un protocol de nivell d'enllaç que s'encarrega de trobar la direcció MAC la qual correspon a una determinada direcció IP del nostre company. Per fer allò s'envia un paquet ARP request a la direcció de BroadCast de la xarxa. Aquesta direcció conté l'adreça IP Per la qual es pregunta, i s'espera fins que la màquina respongui amb un ARP reply.

Captura del protocol ARP amb l'aplicació WireShark.

ICMP

Expliqueu només els paquets Echo Request i Echo reply

El Protocol de Missatges de Control d'Internet s'utilitza per enviar missatges d'errors.

Utilitzant la comanda ping a una direcció IP enviarem un missatge ICMP echo Request amb el destí especificat.

$ ping 192.168.204.234
PING 192.168.204.234 (192.168.204.234) 56(84) bytes of data.
64 bytes from 192.168.204.234: icmp_req=1 ttl=64 time=0.779 ms
64 bytes from 192.168.204.234: icmp_req=2 ttl=64 time=0.742 ms
64 bytes from 192.168.204.234: icmp_req=3 ttl=64 time=0.720 ms
^C
--- 192.168.204.234 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.720/0.747/0.779/0.024 ms

El receptor (Màquina de Marc) ha respondre amb una resposta echo reply, així el ping rebrà la informació per indicar per pantalla que la màquina de Marc esta activa.

Captura de protocol ICMP.
  • Echo Request: és un missatge de control que s'envia a una màquina per rebre un echo reply
  • Echo Reply: és un missatge generat com a resposta d'una missatge echo request

DHCP

NOTA: Els paquets de DHCP són en broadcast. Per capturar paquets cal tenir configurada la interfície de xarxa i precisament és el que fa DHCP! PEr tants'ha de fer en parelles (un demana la renovació i també un prèstec des de zero de DHCP) i l'altre captura els paquets.

Només cal identificar els paquets i explicar les capes Ethernet i IP no cal explicar la capa superior

Demanar la configuració

Per demanar una configuració de xarxa al servidor DHCP hem d'executar la següent comanda:

$ sudo dhclient -v eth0
$ sudo dhclient -v eth0
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/70:54:d2:17:ac:e0
Sending on   LPF/eth0/70:54:d2:17:ac:e0
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x523c70f7)
DHCPREQUEST of 192.168.204.220 on eth0 to 255.255.255.255 port 67 (xid=0x523c70f7)
DHCPOFFER of 192.168.204.220 from 192.168.204.2
DHCPACK of 192.168.204.220 from 192.168.204.2
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service smbd reload

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the reload(8) utility, e.g. reload smbd
bound to 192.168.204.220 -- renewal in 9970 seconds.

En aquesta captura podem veure com el client (la meva màquina = 70:54:d2:17:ac:e0):

  • Envia a tota la xarxa un BroadCast mitjançant un DHCPDISCOVER per detectar els servidors DHCP actius en la xarxa.
  • El servidor respon un missatge DHCPOFFER per oferir una configuració de xarxa al client.
  • El client li respon amb un missatge DHCPREQUEST per acceptar la configuració oferida pel servidor.
  • El servidor envia un missatge DHCPPACK al client enviant els paràmetres de configuració que tindrà el client.
Captura: Demanar una configuració de xarxa al servidor DHCP.

Alliberament de la configuració

Per alliberar la configuració de xarxa oferit pel servidor DHCP hem d'executar la següent comanda:

$ sudo dhclient -r eth0
$ sudo dhclient -r eth0 
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service smbd reload

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the reload(8) utility, e.g. reload smbd

Alhora d'alliberar la configuració, el client envia un missatge DHCPRELEASE al servidor per notificar-li que vol alliberar la configuració de xarxa que tenia i així donat per finalitzat el contracte.

Captura: Deixar la configuració de xarxa del servidor DHCP.