lunes, 8 de marzo de 2010

O nivel de rede

Dende a páxina do ies san clemente de santiago recollo esta unidade correspondete co nivel de rede que por outra banda adáptase á perfección ó visto na unidade:

Contenido


  • 1 Introdución

  • 2 Servizos típicos do nivel de rede

    • 2.1 Encamiñamento

    • 2.2 Control de conxestión

    • 2.3 Direccionamento

  • 3 O Internet Protocol

    • 3.1 Direccionamento en IP

      • 3.1.1 Máscaras de rede

      • 3.1.2 Direccións especiais

      • 3.1.3 Subnetting

      • 3.1.4 Supernetting

    • 3.2 O formato do paquete IP

    • 3.3 Fragmentación

    • 3.4 Encamiñamento ou routing

      • 3.4.1 Táboas de encamiñamento

      • 3.4.2 Algoritmos de encamiñamento

      • 3.4.3 O comando route

  • 4 O Address Resolution Protocol (ARP)

    • 4.1 Paquetes ARP

      • 4.1.1 A petición ARP

      • 4.1.2 A resposta ARP

    • 4.2 Funcionamento

    • 4.3 O comando arp

  • 5 O ICMP

    • 5.1 Funcionamento

    • 5.2 A ferramenta ping

    • 5.3 A ferramenta traceroute

  • 6 O DHCP

    • 6.1 Funcionamento

    • 6.2 Clientes DHCP

    • 6.3 Inconvenientes de DHCP

  • 7 Anexo: Configuración da rede en Linux

    • 7.1 Configuración mediante DHCP

    • 7.2 Configuración manual

      • 7.2.1 Direccións IP: o ficheiro interfaces

      • 7.2.2 Servidor de nomes: o ficheiro resolv.conf

      • 7.2.3 O ficheiro hosts

    • 7.3 Reinicio manual do servizo de rede

Introdución

No capítulo anterior vimos que o nivel de enlace xoga un papel fundamental nas redes locais. Nesta unidade estudaremos o nivel de rede que é necesario para a comunicación nas redes de área extensa (Wide Area Networks ou WAN).
As redes locais utilizan un medio compartido a través do cal as estacións están conectadas directamente (mediante un switch, ou un hub), polo que existe unha única ruta posible para comunicar dúas estacións. O nivel de enlace dunha estación realiza, entre outras, a tarefa de comprobar se as tramas que circulan pola rede local van destinadas a ela e, se procede, capturalas. Para elo, comproba a dirección MAC do destinatario na trama de datos.

Con todo, se queremos enviar datos a unha estación fóra da LAN a situación cambia, xa que pode haber múltiples camiños para levar a información dende a orixe ao destino. É dicir, podemos querer enviar datos dende unha estación conectada a unha LAN a outra estación conectada a outra LAN distinta, posiblemente, noutro lugar. O nivel de enlace non está preparado para facer este traballo. É o nivel de rede o encargado de facelo.
O nivel de rede divide a información en paquetes que se envían por distintos camiños. A esta técnica chámaselle conmutación de paquetes e é a que usa o IP e, polo tanto, Internet. Para que a información chegue dende o emisor ao receptor pasará por distintas estacións intermedias, característica que diferencia a esta capa do nivel de enlace, que só se preocupa da comunicación entre estacións conectadas á mesma LAN.
Pola contra, na conmutación de circuítos, primeiro se establece unha conexión, é dicir, resérvase unha ruta determinada entre a orixe e o destino para uso exclusivo desa transmisión. Unha vez establecida a ruta, a información circula toda xunta por ese camiño e, cando xa non hai nada que transmitir, é necesario liberar esa conexión. O gran inconveniente da conmutación de circuítos é que consume os mesmos recursos da rede con independencia de se están usando ou non, ou da cantidade de información enviada. Isto non acontece na conmutación de paquetes.

Servizos típicos do nivel de rede

As funcións principais que levan a cabo os protocolos do nivel de rede son as seguintes:

  • Encamiñamento da información

  • Control da conxestión

  • Direccionamento
Igual que acontecía no nivel de enlace, non todos os protocolos do nivel de rede implementan todas as funcións. De feito, o Internet Protocolo (IP) non soporta control de conxestión.
Encamiñamento
Nunha rede WAN as estacións que se queren comunicar non van estar conectadas directamente. Existen equipos intermedios, chamados nodos, que poden ser destinatarios dos datos pero que tamén se encargan de "guiar” correctamente a información cando non son os destinatarios finais. A esta tarefa denomínaselle encamiñamento.
A elección dunha determinada ruta faise seguindo criterios de rendemento e usando táboas de encamiñamento, como se verá máis adiante.
Control de conxestión
Cada nodo necesita un intervalo de tempo para procesar os paquetes que lle chegan. Pode chegar un novo paquete ao nodo mentres este está procesando algún outro. Existe un buffer (memoria temporal) que impide a perda de datos neses casos. Se o nodo procesa os paquetes con máis lentitude da que son recibidos pode haber perda de paquetes.
Nesta tesitura as estratexias poden ser:

  1. Rexeitar os novos paquetes que van chegando, que é o que fai o IP, seguindo un principio de mínimo esforzo.

  2. Impedir que os nodos veciños envíen novos paquetes, que pode empeorar a situación, xa que se incrementa o tráfico de control entre os nodos xa conxestionados en detrimento dos datos.

Direccionamento
Cada estación debe ter unha dirección que a identifique de xeito único do resto para que se poida especificar a orixe e destino da información. Este mecanismo é o direccionamento no nivel de rede que coexiste na pila de protocolos co direccionamento no nivel de enlace. Este último utilízase para distinguir entre estacións conectadas á mesma LAN pero non serve para equipos conectados en LAN distintas. Ambos mecanismos de direccionamento son necesarios. Facendo unha analoxía co mundo real podemos pensar na dirección MAC dunha estación como o DNI dunha persoa e na dirección IP coma na súa dirección postal.

O Internet Protocol

O IP ou Internet Protocol é un protocolo de interconexión de redes que utiliza a conmutación de paquetes. Por iso dise que é un protocolo orientado a datagrama (paquete) e non orientado á conexión.
O IP non ten control de conxestión nin de erros polo que non é capaz de recuperar datos perdidos, nin de garantir que as tramas se entregarán na orde correcta (recordemos que os paquetes poden seguir camiños diferentes e sufrir atrasos diferentes); tampouco garante que o ritmo de recepción sexa o adecuado para que o receptor procese convenientemente os datos. Por todo isto, dise que IP é un protocolo de tipo best effort que poderiamos traducir como “quen fai o que pode non está obrigado a máis”. O traballo que non fai IP delégase nas capas superiores, xa que esta política de mínimo esforzo non sempre vale se hai erros, polo que é o TCP (Transmission Control Protocol) o responsable de conseguir que a información chegue nas condicións de fiabilidade desexadas.

Direccionamento en IP

As direccións IP permiten identificar un equipo en Internet (Internet é unha gran rede formada por redes máis pequenas), así como a subrede á que pertence. Cada interface de rede (NIC ou Network Interface Card) dun equipo ten unha dirección IP (pode ter varias), aínda que esta pode cambiar, non como no caso das direccións MAC en Ethernet. Se unha máquina ten dúas interfaces de rede terá, polo menos, dúas direccións IP.
Unha dirección IP represéntase con 4 bytes en decimal separados por puntos. Por exemplo:
194.83.153.100



O Internet Network Information Center ou InterNIC (actual ICANN) adícase á tarefa de asignar rangos de direccións IP. Na actualidade, esta entidade delega a responsabilidade da asignación de direccións a entidades rexionais (en España, a red.es)


Un enderezo IP divídese en dúas partes:




  • Unha parte identifica o número de rede (identificador de rede)



  • Outra parte identifica o número de equipo dentro desa rede (identificador de equipo)



Existen tres clases de direccións IP (A, B e C) en función do número de equipos e redes que poden direccionar:




  • Clase A. Reservan o primeiro byte (8 bits) para o identificador da rede e os tres restantes (24 bits) para identificadores de equipos. O primeiro bit do primeiro byte vale 0. Polo tanto, só pode haber 2^7 direccións de clase A con 2^24 equipos cada unha (xa non se asignan direccións deste tipo). Por exemplo:




Dirección IP: 30.1.2.3
Identificador de rede (o primeiro byte): 30
Identificador de equipo (os tres bytes seguintes): 1.2.3





  • Clase B. Teñen 2 bytes para redes e 2 bytes para equipos. Os dous primeiros bits do identificador de rede sempre valen 10 (en binario), xa que logo, pode haber 16.384 redes (2^14) con 65.536 estacións cada unha. De clase B tampouco queda ningunha dirección libre para asignar. Por exemplo:




Dirección IP: 140.1.2.3
Identificador de rede: 140.1
Identificador de equipo dentro desa rede: 2.3





  • Clase C. Reservan 3 bytes (24 bits) para o identificador de rede e 1 byte (8 bits) para o identificador de estación. Os tres primeiros bits do identificador de rede teñen o valor 110 (en binario). Por exemplo:




Dirección IP: 194.144.35.5
Identificador de rede: 194.144.35
Identificador de equipo dentro desa rede: 5



Hai menos direccións IP útiles das posibles, xa que algunhas están reservadas. Unha vez que se coñece unha dirección é fácil saber se corresponde a unha rede de clase A, B ou C:




Na imaxe anterior non hai ningunha dirección que empece con tres bits 111. Estas direccións (chamadas clase D e clase E) son de propósito especial e non se asignan a máquinas concretas.




Máscaras de rede


O concepto de máscara é fundamental para entender o funcionamento das redes IP. A máscara permite a unha estación decidir se o destino ao que debe transmitir se atopa dentro da mesma LAN ou nunha LAN remota. Neste último caso debe delegar a súa transmisión a algún equipo da súa mesma LAN (o encamiñador) para que se encargue de facer chegar o paquete ao seu destino.


O que determina se dous equipos están na mesma LAN é o identificador de rede. O identificador de rede dunha dirección IP non está determinado polo primeiro byte da dirección IP (ou primeiros), senón pola máscara. A máscara son 4 bytes que oscilan entre 0 e 255 cada un separados por puntos, como nunha dirección IP. Por medio da máscara definimos os bits que identifican a rede (bits a 1 da máscara) e os que identifican a estación (bits a 0). Así, o identificador de rede é a parte da dirección IP que encaixa cos bits a 1 da máscara (AND lóxico). Analogamente, o identificador de equipo é a parte da dirección IP que encaixa cos bits a 0 da máscara (OR lóxico). Vexámolo cuns exemplos:



Obter o identificador de rede e identificador de equipo dun enderezo IP
Exemplo I: 
– Enderezo IP: 69.51.117.3 (01000101.51.117.3)
– Máscara: 255.0.0.0 (11111111.0.0.0)
– Rede: 69.0.0.0
– Equipo: 51.117.3   Exemplo II:
– Enderezo IP: 69.51.117.3
– Máscara: 255.255.0.0
– Rede: 69.51.0.0
– Equipo: 117.3   Exemplo III:
– Enderezo IP: 69.51.117.3
– Máscara: 255.255.255.0
– Rede: 69.51.117.0
– Equipo: 3



Para que dous equipos se poidan comunicar entre si no nivel de rede deben pertencer á mesma rede IP, senón terán que comunicarse a través dun encamiñador. Para comprobar se dous equipos pertencen ou non á mesma LAN basta con aplicarlles a máscara de rede ás súas direccións IP mediante un AND lóxico e así obteremos o identificador da rede. Vexámolo cun exemplo:



Exemplo: 
Se temos dúas estacións coas direccións:
- Equipo I: 147.83.153.100
- Equipo II: 147.83.153.200, 
- Máscara de rede 255.255.255.0
Podemos ver que están na mesma LAN, aplicándolle a máscara:
- Equipo I: 10010011.01010011.10011001.01100100
- Máscara:  11111111.11111111.11111111.00000000
------------------------------------------------
AND:        10010011.01010011.10011001.00000000



O identificador de rede é, en ambos casos, 147.83.153.0. Se facemos un OR lóxico entre a parte que está a 0 da máscara e a dirección IP obteriamos o identificador do equipo.


No exemplo anterior, con todo, deduciriamos que non están conectadas á mesma LAN se a máscara fose, por exemplo, 255.255.255.128. Vexámolo. Para o equipo I:



- Equipo I: 10010011.01010011.10011001.01100100
- Máscara:  11111111.11111111.11111111.10000000
------------------------------------------------
AND:        10010011.01010011.10011001.00000000



O identificador de rede é:



147.83.153.0



Para o equipo II:



- Equipo II: 10010011.01010011.10011001.11001000
- Máscara:   11111111.11111111.11111111.10000000
------------------------------------------------
AND:         10010011.01010011.10011001.10000000



O identificador de rede é:



147.83.153.128



Unha notación alternativa para a máscara é proporcionar o número de bits a 1 da mesma. Así pois, a máscara 255.255.255.0 é unha máscara de 24 bits e a 255.255.255.128 é unha máscara de 25 bits. É habitual ver unha dirección co engadido da máscara e coa seguinte notación:



147.83.153.100/24





Direccións especiais


Existen algunhas direccións IP de propósito especial. Todas as direccións dos seguintes rangos son privadas:



10.0.0.0/8
Da 172.16.0.0/16 á 172.31.0.0/16
Da 192.168.0.0/24 á 192.168.255.0/24



Asemade, as clases D e E están reservadas.




Subnetting


Cando un administrador dunha rede recibe o encargo de xestionar un conxunto de direccións, é posible que necesite configurar internamente diferentes LAN con este conxunto. Xa vimos que isto se fai coa máscara de rede. Por exemplo, podemos usar máis bits dos que corresponderían para a máscara nunha rede de clase C (25 bits en lugar de 24 que sería o "normal" ou máscara natural). Isto permite crear máis redes “roubando” bits aos bits correspondentes aos equipos. Poderemos direccionar menos equipos pero cunha única dirección IP teremos máis redes. A isto chámaselle subnetting e ás redes que se crean utilizando esta técnica chámaselles subredes.


Por exemplo, a dirección 212.45.10.0/27 permite crear 6 subredes distintas dentro da rede de clase C 212.45.10.0 porque rouba 3 bits do identificador de estación, xa que a máscara natural sería de 24 bits, é dicir, 212.45.10.0/24, e 2^3 – 2 = 6 redes. Vemos que se restan dúas subredes das posibles. Isto é así porque a dirección con todos os bits a 0 coincide co identificador de rede e a dirección con todos os bits a 1 coincide coa dirección de broadcast. Xa que logo, as subredes posibles serían:



000 (non se usa)
001
010
011
100
101
110
111 (non se usa)





Supernetting


Se en lugar de roubar bits da parte da dirección IP que identifica aos equipos, collemos bits da parte da dirección IP que identifica ás redes estaremos facendo supernetting. O mecanismo é idéntico ao anterior pero o que se fai é obter unha super-rede que permite direccionar varias subredes IP utilizando unha única ruta e aforrando espazo nas táboas de routing. Á rede (ou ruta) resultante chámaselle super-rede.


Ambas técnicas, subnetting e supernetting, xunto co uso de máscaras variables dan lugar ao que se chama Classless Inter-Domain Routing (CIDR) que ven sendo o que facemos nos exercicios.




O formato do paquete IP



Á PDU (Unidade de Datos do Protocolo) do nivel de rede chámaselle paquete ou datagrama. Para entender moitas das funcionalidades do IP hai que estudar o formato do paquete. Este, igual que a trama Ethernet, ten unha cabeceira e uns datos (payload). O formato da cabeceira é o seguinte:




E o significado dos campos é o que segue:




  • Version: Versión do protocolo IP do datagrama. Normalmente será IPv4.



  • HLEN: Lonxitude da cabeceira medida en palabras de 32 bits (1 palabra de 32 bits é igual a unha fila do debuxo).



  • Lonxitude total: Medido en bytes. Inclúe os bytes de cabeceira e dos datos. O campo ten 16 bits, polo tanto, o paquete IP poderá ter, como máximo, 2^16 = 65536 bytes ou 64KBytes



  • Tipo de servizo: Para especificar a prioridade do datagrama, fiabilidade, retardo, etc. Os routers non fan moito caso deste campo.



  • Tempo de vida (Time To Live): Especifica o tempo que o datagrama pode estar na rede. Ao pasar polos routers, estes van decrementando este valor. Se chega a 0 e o datagrama non chegou ao destino descartarase.



  • Protocolo: O protocolo do nivel de transporte que encapsula (TPC, UDP, ICMP)



  • Checksum: Úsase para comprobar que a cabeceira chegou correctamente.



  • Direccións IP: De orixe e destino do paquete.



  • Opcións: Úsase para probar de rede, depuración, etc.



  • Datos: Contén a PDU do nivel superior, por exemplo, un segmento TCP.




Fragmentación



Un paquete IP normalmente vai inserido (encapsulado) nunha trama Ethernet. Polo tanto, un host emisor debe pasar un datagrama do nivel 3 ao nivel 2 para poder transmitilo. Isto é, debe meter o datagrama IP no campo de datos dunha trama Ethernet. En Ethernet o paquete máximo que pode transmitir unha estación é de 1.500 bytes, é dicir, a MTU (Maximun Transfer Unit) é de 1500, incluída a cabeceira IP. Co cal, se se ten un datagrama de tamaño maior que a MTU, terase que dividir noutros máis pequenos. A isto chámaselle fragmentación. Cando o paquete chegue ao receptor, este terá que reensamblalo.




Os campos da cabeceira dun paquete IP que se ven afectados pola fragmentación son:




  • Identificación: determina o número do paquete. Se este se fragmenta, cada fragmento levará a mesma identificación, así o receptor saberá que fragmentos se corresponden a cada paquete orixinal.



  • Flags: son un conxunto de bits da cabeceira que indican se o paquete se pode fragmentar ou non (bit "Don't Fragment). Se se pode fragmentar, indican se é un fragmento intermedio ou o último (bit More Fragments).



  • Desprazamento ou offset: cando se fragmenta un paquete cada fragmento leva un anaco do datagrama orixinal. O campo desprazamento indica a posición dos bytes que leva un fragmento no datagrama orixinal. É dicir, é como se fose a numeración de cada fragmento.



O resto dos campos da cabeceira cópianse integramente do paquete orixinal aos fragmentos que resultan da fragmentación, excepto a lonxitude e o checksum. Vexámolo cun exemplo: se se queren enviar 4000 bytes (incluída a cabeceira IP) nunha rede cunha MTU de 1500 bytes, como no exemplo da anterior figura, sería como segue:




Pero onde e cando se fragmenta? Un datagrama pódese fragmentar no emisor ou en calquera dos routers intermedios, sempre e cando o esixa a MTU da rede a atravesar.


E onde se reensambla? Só no receptor final, nunca nos encamiñadores, pois cada fragmento puido ir por camiños distintos ata chegar ao receptor final, e el será o único que reciba todos os anacos nos que se dividiron os fragmentos.




Encamiñamento ou routing



Para entender o concepto de encamiñamento en IP imos facer unha analoxía coas rotondas de tráfico onde, en función dos sinais de dirección, os coches encamíñanse por distintas estradas. As rotondas de tráfico serven, polo tanto, para:




  1. Encamiñar o tráfico, grazas aos sinais que indican cara a onde están os destinos



  2. Unir estradas de distintos tipos e velocidades. Por exemplo, unha vía rápida cunha estrada normal



De xeito similar, no ámbito das redes o encamiñamento permite dirixir o tráfico cara a outras estacións remotas ou destinos. A un router (tamén chamado encamiñador, porta de enlace ou gateway) chegan paquetes que serán encamiñados por unha ou outra liña en función da súa táboa de encamiñamento (os sinais da rotonda). Así como un condutor, para acadar o seu destino, pode atravesar moitas rotondas, un paquete, para acadar o seu destino, pode atravesar moitos routers, tal e como se ve na primeira figura deste tema.


Así, se un computador ten que enviar un datagrama a outro que non está na mesma rede IP ca el, debe enviar ese paquete ao router da súa rede. Esta é a razón pola que se configura unha porta de enlace no propio equipo. A porta de enlace estará na mesma rede que o equipo, é dicir, as direccións IP do equipo e a porta de enlace pertencen á mesma rede. Vexámolo cun exemplo:




No gráfico anterior temos catro redes (nunha delas faise subnetting) e dous routers. Cada computador ten que ter configurada unha porta de enlace á que enviar os paquetes que non vaian para a súa rede.




Táboas de encamiñamento


O routing lévase a cabo a partir de táboas de encamiñamento con información que permite a interconexión das distintas redes. Cada router ten unha táboa de encamiñamento. Asemade, cada equipo conectado a unha rede IP necesita unha táboa de encamiñamento para saber se unha determinada dirección está ou non na súa rede e enviar o paquete ao router en caso de que non sexa así. Unha táboa de encamiñamento ten o seguinte aspecto:




Esta táboa é dun router que conecta a rede 147.83.153.0/24 co exterior por medio da rede 147.83.30.0/24.


A primeira, segunda e terceira entrada permiten transmitir paquetes IP ás direccións 147.83.153.5, 147.83.30.2 e a todas as direccións que empecen por 127 (fixádevos na máscara das entradas). En ambos os tres casos os paquetes envíanse á interface virtual loopback. Ningún dos paquetes que se direccione con algunha destas tres regras sairá á rede.


A cuarta e quinta entrada serán adoptadas por todos os paquetes destinados ás rede 147.83.153.0 e 147.83.30.0, respectivamente.


A sexta entrada ten unha importancia relativa. Indícanos que os broadcasts IP restrinxiranse á rede local.


Na táboa anterior hai unha fila especial que permite que non se teñen que contemplar nunha táboa de encamiñamento todos os posibles destinos (tanto da intranet como de Internet, que sería imposible). É a dirección 0.0.0.0 ou dirección por defecto (default). Xa que calquera IP AND 0.0.0.0 vai dar 0.0.0.0, esa entrada sempre se debe poñer ó final da táboa.




Algoritmos de encamiñamento


Indican a forma en que se constrúe a táboa de encamiñamento dun router. Hai dous tipos:




  • Non adaptativos ou estáticos: non se adaptan ás situacións cambiantes da rede (unha liña saturada, unha liña que cae, etc). Cando cheguen varios paquetes para o mesmo destino sempre os vai encamiñar polo mesmo sitio. Hai que configuralos manualmente. Equivalen a unha rotonda na que só hai sinais indicativas e onde non se sabe en que situación se atopan cada unha das saídas.



  • Adaptativos ou dinámicos: adáptanse aos cambios e situacións da rede. Poden ser de tres tipos:





    • Centralizados, que equivalen á sala de control de tráfico dunha cidade onde teñen a información do que está a pasar en cada unha das rotondas, que rúas están saturadas, cales cortadas, etc. Con toda esa información elaboran as accións que deben levar a cabo cada un dos gardas de tráfico que están nas rotondas. Existe un nó central ao que cada router lle envía información (cal é a liña máis solicitada, de onde lle veñen paquetes devoltos, se ten enlace cos demais routers, etc). Con esa información o nó elabora a táboa de cada router e logo envíalla.



    • Illados, que equivalen a poñer un garda en cada rotonda e que este dirixa o tráfico como lle pete sen ter en conta nada de nada, nin se está saturada unha saída, se hai un incidente, etc.



    • Distribuídos. É onde se encadran os principais protocolos de enrutamento en TCP/IP (RIP v01 e v02, e OSPF). equivalen a ter gardas nas rotondas pero cada un comunícase cos gardas das rotondas próximas a el, deste xeito trata de tomar as decisións adaptándose ao que pasa ao seu arredor.





O comando route


O comando route permite establecer as regras de encamiñamento que serán consultadas polo noso equipo para decidir por que interface de rede enviar os paquetes coa finalidade de que cheguen ao seu destino. Para coñecer ditas regras execútase o seguinte comando:



route -n



Algunhas regras da táboa de encamiñamento configúranse automaticamente cando traballamos co comando ifconfig. A sintaxe do comando é a seguinte:



route add/del -net/host dirección_IP netmask máscara gw gateway dev interface_de_rede



Por exemplo, para que o noso equipo se poida comunicar cos equipos da rede 172.22.0.0/16 (net 172.22.0.0, netmask 255.255.0.0) supoñendo que o noso gateway sexa o 192.168.100.2 na interface eth3, teclearemos o seguinte comando:



route add -net 172.22.0.0 netmask 255.255.0.0 gw 192.168.100.2 dev eth3




O Address Resolution Protocol (ARP)



O ARP é un protocolo do nivel de rede encargado de traducir direccións IP a direccións MAC. Para entender por que é necesaria esta tradución hai que recordar que cada nivel da pila de protocolos engade información (cabeceiras) aos datos para poder desenvolver as súas funcións. Cando se transmite un paquete IP dende o nivel de rede ao nivel de enlace a trama do nivel de enlace que se constrúe contén, entre outros campos, a dirección MAC de orixe e a dirección MAC de destino. Para saber a MAC de orixe non hai problema, xa que está na propia tarxeta de rede do equipo, pero como sabe a estación que quere transmitir cal é a MAC de destino dunha IP determinada? Grazas ao ARP que mantén unha táboa que mapea as direccións IP do nivel de rede coas do nivel de enlace (direccións MAC). Devandita táboa denomínase cache ARP.




Paquetes ARP



O ARP baséase en dous únicos paquetes que van encapsulados sobre tramas Ethernet: a petición ARP e a resposta ARP.




A petición ARP


Este paquete (ARP-Request) equivale a preguntar: “Pódeme dicir o computador con IP X.Z.Y.Z cal é a súa MAC?


Xa que logo, o paquete transporta a dirección IP da que se quere coñecer a dirección MAC. Levará como dirección de destino a dirección broadcast (FF:FF:FF:FF:FF:FF), deste xeito, todas as estacións locais da LAN procesarán esta trama. Con todo, só contestará a posuidora da dirección IP de destino.


Cando se coñece esta correspondencia IP<->MAC, o receptor da petición ARP tamén actualiza a súa caché ARP.




A resposta ARP


O outro paquete existente, ARP-Reply, é a resposta ARP que comunica a dirección MAC a quen a pediu (é o paquete resposta do anterior). É interesante observar como o formato deste paquete é case irrelevante, posto que o único interesante é a trama MAC e, en particular, a súa dirección de orixe.




Funcionamento



Cando efectuamos a transmisión dun paquete entre dúas estacións dunha mesma LAN, facémolo indicando as direccións IP dos equipos. A táboa ou caché ARP permite coñecer a correspondencia entre direccións IP e direccións MAC. Aínda que esta táboa pode modificarse manualmente (co comando arp), o máis normal é que ditas entradas se actualicen dinamicamente polo funcionamento do protocolo.


O ARP entra en funcionamento no momento en que o nivel de rede necesita transmitir un paquete IP destinado a unha dirección IP da que se descoñece a dirección MAC. Temos dúas situacións:




  1. Se a dirección IP de destino está na mesma rede o computador correspondente enviará un ARP-Reply como resposta ao ARP-Request.



  2. Se a dirección IP non está na mesma rede envíaselle o paquete ao router quen se encargará de transmitilo. Este paquete terá como dirección IP de destino a do equipo correspondente pero a dirección MAC de destino será a do router.





Os routers cortan o tráfico broadcast. Son como firewalls para este tipo de tráfico por iso crean un dominio de broadcast por cada interface que teñan, fronte as switches que crean un dominio de colisión, por cada porto que teñan. Na imaxe anterior, hai dous dominios de broadcast diferentes, un por cada interface do router.




O comando arp



O comando ARP permite manipular a cache ARP do computador. Para ver a táboa ARP hai que teclear:



arp -n



A opción -n amosa as direccións IP e non os nomes de dominio.


Para engadir unha entrada de forma estática hai que teclear o seguinte:



sudo arp -s <dir_ip> <dir_mac>



Para eliminala:



sudo arp -d <dir_ip>




O ICMP



O Protocolo de Mensaxes de Control de Internet (Internet Control Message Protocol ou ICMP) está especificado no RFC 792 e proporciona un mecanismo para xestionar incidencias básicas nunha rede IP. Por exemplo: Se un datagrama co bit DF (Don’t Fragment) a 1 (é dicir, un paquete IP que non se pode fragmentar) non pode pasar por unha determinada rede, o router onde se produce o problema debe devolver unha mensaxe ao emisor indicándolle o acontecido.




Funcionamento



O ICMP pode verse como un protocolo específico da pila TCP/IP ou coma unha ferramenta que usa IP para notificar erros. De feito, o seu funcionamento está baseado no intercambio de mensaxes ICMP que viaxan dentro de paquetes IP, encapsulados como se fosen datos (ao contrario do que acontecía con ARP que ten paquetes ARP específicos).


O campo Protocolo da cabeceira do paquete IP vale 1 se encapsula un paquete ICMP (consulta o formato do paquete IP). Recorda que IP pode encapsular outras PDU de niveis superiores, como TCP ou UDP. Neses casos o campo Protocolo vale 6, se encapsula TCP, e 17 se encapsula UDP.




As mensaxes ICMP xéraas o equipo que detecta o problema pero a quen llas envía? Pois ben, o paquete IP recibido ten na súa cabeceira a dirección IP de orixe, polo tanto, é a este equipo a quen se lle envían as mensaxes ICMP. As mensaxes ICMP inclúen un código de erro que facilita a identificación do problema. Existen trece tipos de mensaxes ICMP, cada unha cos seus propios códigos de erro, pero os máis importantes son os seguintes:




  • ECHO REQUEST e ECHO REPLY. Úsanse para detectar se un equipo determinado está operativo. Ao recibir a mensaxe ICMP ECHO REQUEST o equipo responde coa mensaxe ICMP ECHO REPLY.



  • DESTINATION UNREACHABLE. Xérase cando non se pode entregar o datagrama no seu destino, por exemplo: Datagramas co bit DF a 1 que non "collen" na MTU da rede pola que se enviaron; cando un router non atopa nas súas táboas ningunha ruta pola que poida chegar á dirección para a que vai dirixido un datagrama.



  • TIME EXCEEDED. Envíase ao emisor unha mensaxe deste tipo cando se descarta un paquete porque o seu TTL (Time to Live) chegou a cero. Isto pode se síntoma de que se produciu algún bucle na rede, ou que o valor do TTL utilizado é demasiado baixo.



  • REDIRECT. Utilízase para avisar ao emisor cando se sospeita de que un paquete se está a encamiñar incorrectamente. Por exemplo: Cando un router recibe dun equipo datagramas que van dirixidos a outro equipo que se atopa na mesma LAN.




A ferramenta ping



O programa ping proporciona información do tempo de ida e volta (Round Trip Time ou RTT) dun paquete, así como da porcentaxe de datagramas perdidos. Polo tanto permite coñecer con bastante facilidade o estado da rede nun intre determinado. O comando ping utiliza o protocolo ICMP enviando unha mensaxe ICMP do tipo 8 (petición de eco ou ECHO REQUEST) co destino indicado. O receptor da petición debe responder cunha resposta de eco, ECHO REPLY, que unha mensaxe ICMP de tipo 0. Cando ping a recibe, indica en pantalla que a estación está activa. Para executar o comando ping basta con escribir o seguinte:



ping nome_equipo



Para obter axuda sobre as opcións do comando pódese teclear man ping en Linux ou ping /help en Windows.




A ferramenta traceroute



Este programa permite atopar a ruta entre un equipo orixe e un destino. Utiliza un ocorrente mecanismo que se basea no uso de dúas mensaxes ICMP:




  • TIME EXCEEDED (TTL superado). Cando un router recibe un paquete reduce nunha unidade o valor do campo TTL da cabeceira IP. O paquete elimínase se o valor é 0. Esta eliminación non é silenciosa, senón que o router responsable envía unha notificación da mesma ao orixinador do paquete por medio dunha mensaxe ICMP TIME EXCEEDED (tempo de vida esgotado). Este paquete ICMP contén a cabeceira do paquete IP que se eliminou e, polo tanto, a dirección do equipo que o envía.



  • UNREACHEABLE PORT (porto inalcanzable). Para saber que se chegou ao destino, traceroute inclúe coa mensaxe ICMP (na versión de Linux vai nun paquete UDP) un intento de conexión a un porto da máquina que non contén ningún servizo, polo que a máquina de destino enviará unha mensaxe ICMP de porto inalcanzable.




O DHCP



O Dynamic Host Configuration Protocolo (DHCP) está especificado no RFC 2131 . Este protocolo permite que un equipo nunha rede obteña unha dirección IP automaticamente, así como outra información importante como a súa máscara de rede, a dirección IP do seu encamiñador (gateway) e as direccións do seus DNS. Polo tanto, é o máis semellante a autoconfiguración en IPv4 (plug-and-play), polo que é moi interesante para simplificar as tarefas de administración da rede, que terían que facerse de xeito manual. Por iso, úsase amplamente en LAN domésticas, empresas, ISP, redes wifi, universidades, etc.


Foi deseñado no ano 1993 e complementa e mellora outros protocolos similares como RARP (Reverse ARP) e BOOTP.






Funcionamento



DHCP está baseado na arquitectura cliente / servidor (como case todos os servizos de Internet), polo que debe existir un servidor DHCP (dhcpd) e un cliente DHCP para o seu funcionamento. No caso máis simple existirá un servidor DHCP na subrede ao cal o cliente solicitará a asignación da dirección IP. Se non existe tal servidor na subrede necesitarase un axente DHCP de reenvío (normalmente un router) que coñeza a dirección do servidor DHCP.




Como podemos ver na seguinte figura, o protocolo funciona en catro pasos:




  1. DHCP discover



  2. DHCP offer



  3. DHCP request



  4. DHCP ACK





DHCP pode configurarse para realizar a asignación dos parámetros aos equipos de distintas formas. Así, distinguimos tres tipos de asignación:




  • Asignación manual. Neste modo de funcionamento DHCP compórtase como BOOTP. A asignación dos parámetros faise manualmente e cada vez que un equipo se conecte á rede asígnaselle automaticamente eses parámetros.



  • Asignación persistente. Neste caso, a asignación tamén é automática e cada vez que o equipo se conecta a esa rede obtén a mesma dirección IP, con todo, non precisa que o administrador estableza unha configuración inicial dos parámetros.



  • Asignación dinámica (aluguer de direccións). O cliente recibe a dirección IP do servidor durante un tempo limitado, pasado o cal o cliente debe renovar a súa solicitude ou a concesión expirará. Así, unha mesma dirección pode ser reutilizada por diferentes máquinas en momentos diferentes.



Un caso típico de uso de DHCP é nos provedores de acceso a Internet ou ISP. Por exemplo, se o ISP dá servizo a 2000 clientes e calcúlase que nunca haberá máis de 200 computadores simultaneamente conectados, en principio, poderiamos dar servizo cunha rede IP de clase C (254 direccións) e usando DHCP con asignación dinámica.




Clientes DHCP



En calquera momento podemos executar o cliente DHCP para renovar a nosa dirección IP:




  • En GNU/Linux. Co comando dhclient renovamos a dirección IP. 1.Se se precisa borrar a configuración do cliente:




sudo dhclient -r





  • En MS-Windows. Para borrar a IP actual:




ipconfig /release
ipconfig /renew. Renova a IP



En ambos casos, cando apaguemos o computador perderase a configuración. Se o que queremos é manter a configuración permanentemente para que o noso computador se conecte mediante DHCP sempre farémolo do seguinte xeito:




  • En modo gráfico:





    • En GNU/Linux: Depende do contorno de escritorio que teñamos instalado. En Gnome: Sistema->Administración->Rede



    • En MS-Windows: En propiedades de rede pode seleccionarse asignación automática de dirección IP e DNS




  • En modo texto. En GNU/Linux hai que editar o ficheiro /etc/network/interfaces tal e como se amosa na seguinte figura:







Inconvenientes de DHCP



Non todo son vantaxes. Entre os principais inconvenientes podemos destacar:




  • Problemas de trazabilidade. Se se desexa rastrexar un problema e só se dispón da dirección IP resulta máis difícil (ás veces imposible) pescudar que computador ou usuario foi o causante do problema.



  • Inconsistencias cos nomes de dominio. Outro problema que pode aparecer é a asociación de direccións e nomes no DNS. Coa asignación dinámica diferentes máquinas poden recibir o mesmo nome en diferentes momentos provocando inconsistencias. Este problema pode solventarse con programas como WinIP, DNS2GO, etc.




Anexo: Configuración da rede en Linux



Normalmente, a configuración da rede pode realizarse a través de aplicacións gráficas, como en MS-Windows. Con todo, neste apartado veremos como facelo desde a liña de comandos que é o método máis frecuente cando configuramos, por exemplo, un servidor. O seguinte aplícase ao sistema operativo Ubuntu, sendo moi similar para outras distribucións (Debian, OpenSuse, etc.).


Moitos dos aspectos de configuración relacionados coas interfaces de rede están no ficheiro /etc/network/interfaces. Se o computador non ten dispositivos ethernet este ficheiro só conterá a interface loopback, tal e como se amosa a continuación:



# Este ficheiro describe as interfaces de rede dispoñibles no sistema
# e como activalas. Para máis información: man interfaces.

# A interface de rede loopback
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0



Para ver o ficheiro de interfaces pódese teclear o seguinte:



more /etc/network/interfaces




Configuración mediante DHCP



Se o computador ten só un dispositivo ethernet, eth0, que se activa automaticamente ao arrincar o sistema e que se configura mediante un servidor DHCP, o ficheiro interfaces terá dúas liñas máis::



auto eth0
iface eth0 inet dhcp



A primeira liña indica que o dispositivo eth0 se activa automaticamente durante o arrinque do sistema. A segunda liña indica que a interface (“iface”) eth0 ten unha dirección IPv4. Se substituímos “inet” con “inet6” teríamos unha dirección IPv6. Se o servidor DHCP está correctamente configurado non se precisa facer nada máis para ter a rede funcionando. O servidor DHCP proporcionará o encamiñador por defecto (gateway), a dirección IP e os servidores DNS. Para editar o ficheiro interfaces pódese usar o editor de textos nano tecleando o seguinte:



nano /etc/network/interfaces



Para máis información sobre o nano consulta as páxinas de manual tecleando:



man nano



Tamén se poden configurar os parámetros anteriores mediante a ferramentas dhclient pero os cambios non se manterán se apagamos o computador.




Configuración manual



Se non temos un servidor DHCP hai que configurar os parámetros anteriores manualmente. O ficheiro /etc/network/interfaces úsano os scripts de configuración ifup/ifdown scripts. Tamén se poden configurar os parámetros anteriores mediante as ferramentas ifconfig e route pero os cambios non se manterán se apagamos o computador.




Direccións IP: o ficheiro interfaces


Supoñamos que queremos asignar a dirección IP 192.168.0.2 ao dispositivo eth1, cunha máscara natural 255.255.255.0. O encamiñador por defecto é o 192.168.0.1. Habería que editar o ficheiro /etc/network/interfaces para que incluíra o seguinte información:



iface eth1 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1




Servidor de nomes: o ficheiro resolv.conf


A continuación hai que especificar o servidor DNS cales serán os servidores DNS. Esta información está almacenada no ficheiro /etc/resolv.conf, que ten o seguinte aspecto:



search iessanclemente.net
nameserver 192.168.0.1
nameserver 4.2.2.2



A palabra search engade o dominio iessanclemente.net ás consultas para tentar resolver os nomes dentro da nosa rede. Por exemplo, se o noso dominio é iessanclemente.net e tentamos facer un ping ao equipo pc1 dentro da nosa rede, non será necesario teclear o nome completo, é dicir, ping pc1.iessanclemente.net, senón que automaticamente a consulta DNS será pc1.iessanclemente.net se tecleamos ping pc1. A palabra nameserver especifica os servidores DNS que se usarán para resolver nomes a direccións IP. Pode haber varios servidores DNS e consultaranse na orde especificada.


Se o servidor DNS se obtén dinamicamente mediante DHCP as entradas no ficheiro resolv.conf se sobrescribirán.




O ficheiro hosts


O ficheiro /etc/hosts contén direccións IP e os seus correspondentes nomes de equipo. Cando o computador tenta averiguar a dirección IP dun equipo primeiro acudirá a este ficheiro antes que ao servidor de nomes DNS. Xa que logo, se a dirección IP está no ficheiro /etc/hosts o DNS non se usará (isto pode cambiarse editando o ficheiro /etc/nsswitch.conf).


Se a nosa rede ten computadores con direccións IP que non están no DNS recoméndase engadilas ao ficheiro /etc/hosts.




Reinicio manual do servizo de rede



En calquera momento podemos reiniciar o servizo de rede tecleando o seguinte:



sudo /etc/init.d/networking restart

Nivel de enlace

Nás próximas entradas recollo algúns dos temas feitos polos compañeiros de informática do ies san clemente.


  • 1 Introdución


  • 2 Servizos do nivel de enlace


    • 2.1 Entramado


    • 2.2 Detección e corrección de erros


    • 2.3 Control de fluxo


    • 2.4 Xestión de acceso ao medio


      • 2.4.1 ALOHA


      • 2.4.2 ALOHA rañurado


      • 2.4.3 CSMA / LBT


      • 2.4.4 CSMA / CD


    • 2.5 Direccionamento


  • 3 Protocolos do nivel de enlace reais: as redes de acceso a Internet


    • 3.1 O PPP


    • 3.2 Ethernet


    • 3.3 O 802.3


  • 4 Dispositivos do nivel de enlace: os switches


    • 4.1 Dominios de colisión


    • 4.2 Funcionamento dun switch


    • 4.3 Exemplos de interconexións


    • 4.4 Virtual LAN (VLAN)

Introdución

A principal función dun protocolo do nivel de enlace é transportar paquetes sen erros, encapsulados en tramas (frames), entre nodos adxacentes, a través dun enlace simple de comunicación. Polo tanto, o concepto de encamiñamento non existe no nivel de enlace.

Do mesmo xeito que o nivel físico proporcionaba servizos ao nivel de enlace, as funcións do nivel de enlace son servizos fornecidos á capa superior, é dicir, ao nivel de rede ou nivel IP, na pila TCP/IP.
Durante a transmisión, o emisor:


  • Acepta os paquetes do nivel de rede e divídeos en tramas


  • Constrúe os campos da trama


  • Pasa as tramas ao nivel físico
E o receptor:


  • Compón a trama a partir dos bits que van subindo do nivel físico


  • Comproba os erros (este paso non se fai en todos os protocolos do nivel de enlace)


  • Se a trama é correcta sobe a información ao nivel de rede.

Servizos do nivel de enlace

Polo tanto, os principais servizos que pode ter un protocolo de nivel de enlace son:


  • Confección de tramas ou entramado


  • Control de erros


  • Control de fluxo


  • Xestión do acceso ao medio


  • Direccionamento
Non todas as funcións se implementan en todos os protocolos do nivel de enlace. Por exemplo, Ethernet non implementa control de erros, nin control de fluxo.

Entramado

Unha trama está formada por un campo de datos, onde vai inserido o paquete da capa de rede (é o que se chama o payload), unha cabeceira con información de control e unha cola ou fin (trailer).
Unha trama típica dun protocolo do nivel de enlace podería ser como a da seguinte figura:
O campo guión úsase para sincronizar a emisor con receptor e e poder transmitir. A sincronización determina onde empeza e remata cada trama. A esta técnica chámase caracteres de inicio e fin e consiste en utilizar un patrón de bits, por exemplo 01111110 para indicar o inicio e o final dunha trama. Como eses díxitos poden aparecer tamén dentro da información, utilízase un recheo para evitar posibles confusións. Por exemplo, por cada cinco 1 consecutivos, o emisor engade un 0.
Supoñamos que o emisor quere transmitir esta información binaria:
100101110111111111110110011111001111



Para elo, constrúe a trama da seguinte forma (en negriña os bits que non son de información):



0111111010010111011111011111010110011111000111101111110




Detección e corrección de erros



A taxa de erros é función de múltiples factores pero, principalmente, do medio de transmisión utilizado. Así, a fibra óptica e o par trenzado teñen normalmente taxas máis baixas que as transmisións sen fíos (GSM, LAN sen cables, etc.). Con todo, dada a elevada fiabilidade da meirande parte dos medios físicos actuais normalmente non é rendible solicitar comprobación e retransmisión das tramas no nivel de enlace. Isto suporía realizar un proceso case sempre inútil en cada nodo do traxecto, polo que será normalmente o protocolo de transporte o que se ocupe de solicitar a retransmisión en caso de erro. De feito, este é un servizo que tamén proporciona o nivel de transporte en TCP/IP.


En calquera caso, a detección de erros permite determinar se a trama recibida ten ou non erros. Estes erros poden producirse por distintos factores:





  • Tramas que chegan con información errónea (algún bit cambiou de valor). Úsase información adicional (redundante) que permite que o receptor reconstrúa a trama e a compare coa orixinal.




  • Tramas incompletas (perdéronse algúns díxitos). Úsanse técnicas de delimitación de tramas como a conta de caracteres e “inicio e fin”




  • Tramas que non chegan. Úsase un temporizador e un tipo de trama especial de asentimento (confirmación) á que se lle chama trama ACK, do inglés acknowledgement. Poden existir retransmisións dunha mesma trama polo que hai que numeralas.







INTERÉSACHE



A disciplina que estuda os erros de transmisión dende un punto de vista matemático é a teoría da codificación. Débese a R. W. Hamming quen publicou en 1950 un artigo onde establecía as bases dos códigos de detección e corrección de erros.



Na gráfica, ao paquete que queremos transmitir (D) engádeselle información para o control e detección de erros (EDC) e toda a información envíase nunha trama do nivel de enlace. O receptor recibirá unha secuencia de bits (D' e EDC') que pode diferir da orixinal. Pode haber un erro e que non se detecte pero se o emisor localiza algún bit cambiado tentará arranxalo.




Canto máis sofisticadas son as técnicas de detección e corrección máis recursos computacionais consumen. Hai dúas técnicas moi coñecidas que paga a pena mencionar:









  • Control de paridade. É a máis simple. Consiste en engadir un bit que indica se o número de uns a transmitir é par ou impar. Se traballamos con paridade par, engadimos un 1 se o número de uns é par e engadimos un 0 se o número de uns é impar; se traballamos con paridade impar: engadimos un 1 se o número de uns é impar e engadimos un 0 se o número de uns é par. Por exemplo: utilizando paridade impar queremos enviar a secuencia de bits seguinte:




1001011



Enviaremos:



10010110



Se se produce un erro no segundo díxito chegará:



10010100



O receptor saberá que se produciu un erro porque a paridade da palabra recibida é impar. Se se producise un número par de erros o control non funcionaría.





  • Códigos de redundancia cíclica ou CRC. Son máis sofisticados que o control de paridade e úsanse tamén noutros ámbitos como a descompresión de información. Tamén se lles chama códigos polinómicos porque os bits a transmitir poden verse como un polinomio e baséanse na inclusión, ao final da palabra orixinal, dunha serie de díxitos redundantes que se obteñen a partir dun polinomio xerador.




Exemplo:
10011011 equivale a x7 + x4 + x3 + x + 1
11001010 equivale a x7 + x6 + x3 + x



Calquera mecanismo de control de erros baséase na inclusión dun certo grao de redundancia, o que require un compromiso entre eficiencia e fiabilidade. Os códigos de corrección de erros sempre teñen unha eficiencia menor que os de detección e, salvo que o medio de transmisión teña moitos erros, non son rendibles computacionalmente.




Control de fluxo



O control de fluxo pode ser necesario en caso de que o emisor transmita tramas a unha velocidade superior á que pode procesar o receptor.




Úsanse un tipo de tramas especiais, chamadas tramas de confirmación ou ACK, que permiten ao receptor indicarlle ao emisor que se recibiron ben os datos. O sistema aproveita as tramas de confirmación para enviar tamén datos, en caso de que teña algo que enviar. A esta técnica chámaselle piggy backing (os asentimentos van dentro dos mesmo datos). Se hai ACK a canle ten que ser semi-dúplex ou full-dúplex.




Xestión de acceso ao medio



Nas redes de difusión en medio compartido é necesario xestionar quen accede ao medio e cando. Esta función é o que se coñece como control de acceso ao medio e está implementada a través do subnivel MAC (Medium Access Control). Polo tanto, nos medios compartidos se dúas estacións queren transmitir ao mesmo tempo prodúcese unha colisión (algunhas tarxetas de rede teñen un indicador luminoso de colisión). Nas redes non compartidas non existe este problema.




Existen diferentes formas de xestionar o acceso ao medio:





  • Estáticos (explicados na unidade 3). Principalmente baseados en técnicas de multiplexación no tempo (TDM) e en frecuencia (FDM).




  • Dinámicos. Hai dous tipos:







    • Contenda. As estación loitan polo acceso á canle. Existen moitas técnicas para repartir a canle nas redes de difusión, pero as mesmas ideas podémolas atopar nas seguintes: ALOHA, ALOHA rañurado, CSMA/LBT, CSMA/CD (usado por Ethernet).




    • Regulados (estación central ou paso de testemuña). Está en desuso.





ALOHA


É o antecesor do CSMA/CD e usábase en Hawai para as comunicacións entre illas. O funcionamento é simple, deixar ás estacións transmitir no momento en que teñan a información. É pouco eficaz, pois o índice de colisións será moi elevado. Cando se producen colisións descártanse as tramas e a estación emisora espera un tempo aleatorio antes de retransmitir. Ademais, cantas máis estacións compartan o medio e canto maior sexa o tráfico máis colisións.


Imagen:redes_UD4_9.jpg




ALOHA rañurado


O tempo divídese en slots ou rañuras (úsase un reloxo que marca o comezo de cada slot). Cando unha estación teña datos para transmitir debe esperar ao comezo dun novo slot. Redúcense as colisións porque se se está transmitindo unha trama e unha estación ten datos, debe esperar ao comezo do novo slot. As colisións produciranse ao comezo de cada slot. O slot debe ser o suficientemente grande como para que se poida transmitir unha trama de extremo a extremo.


Imagen:redes_UD4_10.jpg




CSMA / LBT


Son as siglas de Acceso múltiple con detección de portadora / Escoitar antes de falar (Carrier Sense Multiple Access / Listen Before Talk). Cando unha estación desexa transmitir debe escoitar a canle para ver se está libre ou non. É mellor que os de tipo ALHOA porque cando as estacións detectan que o medio de transmisión está ocupado non hai colisións. Con todo, non evita as colisións cando dúas estacións comezan a transmitir exactamente ao mesmo tempo.


Na variante CSMA persistente, cando unha estación desexa transmitir escoita a canle. Se está ocupada, espera ata que estea libre e transmite a trama. Se está libre transmite a súa trama


Na variante CSMA non persistente, cando unha estación desexa transmitir, escoita a canle. Se está ocupada, espera un tempo aleatorio antes de voltar a escoitar. Se está libre transmite a súa trama.




CSMA / CD


É un CSMA con detección de colisións. As estacións tamén esperan a transmitir se a canle está ocupada. Se dúas estacións empezan a transmitir ao mesmo tempo son capaces de comprobar se se está producindo unha colisión e abortarán o envío de forma instantánea. Esperarán un tempo aleatorio para volver a transmitir. Este tempo está baseado nun algoritmo chamado exponential backoff.


Mellora os anteriores porque evita transmitir as tramas completas cando hai colisións aforrando tempo e ancho de banda.




Direccionamento



Nunha rede de área local é necesario identificar as distintas estacións polo que se usa o direccionamento. O direccionamento no nivel de enlace fai referencia á dirección da tarxeta de rede. A estas direccións chámaselles direccións LAN, direccións físicas ou direccións MAC e son números binarios de 48 bits (6 bytes) que se expresan como grupos de 8 bits en hexadecimal. Cada byte da dirección son dous números hexadecimais de 4 bits cada un:



18.3E.A0.64.F2.01



Os tres primeiros bytes da dirección MAC identifican ao fabricante da tarxeta de rede (OUI ou Organizationally Unique Identifier). Os OUI asígnaos o IEEE a cada fabricante (un OUI costa US$ 1250).


Imagen:redes_UD4_11.jpg




Unha dirección MAC é única para cada tarxeta de rede (grávase na ROM da tarxeta).


Un portátil cunha tarxeta de rede sempre ten a mesma dirección MAC, independentemente de onde se atope (isto non sucede coas direccións IP). As MAC son como o DNI dunha persoa. As direccións IP son como a dirección postal dunha persoa. Ambos datos poden ser necesarios.


Cando se quere enviar unha trama, o nivel de enlace insire a dirección MAC da estación de destino no campo correspondente da trama. Se a rede é unha LAN baseada en difusión en medio compartido a trama será recibida por todas as estacións. Cada estación procesará a trama e analizará a dirección de destino, se coincide coa súa extraerá o paquete pasándoo ao nivel de rede. Se o campo de dirección destino non coincide coa súa dirección MAC, a estación descarta a trama.


Existe unha dirección MAC de propósito especial chamada dirección broadcast, que está formada por 48 uns seguidos en binario, isto é en hexadecimal:



FF-FF-FF-FF-FF-FF



Se se envía un broadcast nunha rede todas as estacións recibirán e aceptarán a trama. Algúns protocolos que usan este tipo de tramas son o DHCP e o ARP.




Protocolos do nivel de enlace reais: as redes de acceso a Internet



Non todos os protocolos do nivel de enlace implementan todos os servizos vistos. Como exemplo, imos ver dous protocolos do nivel de enlace reais. En concreto, aqueles protocolos do nivel de enlace que se usan para acceder a Internet:





  • Acceso mediante liña telefónica: Point to Point Protocol




  • Acceso mediante LAN: Ethernet




O PPP



É o Protocolo Punto a Punto (Point to Point Protocol) e foi especificado nos anos 90 (RFC 1661, RFC 1662 e RFC 1663). É o protocolo de nivel de enlace que se usa cando accedemos a Internet mediante liña telefónica, é dicir, módem e ADSL.


No PPP non hai confirmacións de recepcións, é dicir, non se usan tramas de recoñecemento durante a transmisión (ACK). Polo tanto, en canto ao xestión de erros, se se detecta algún problema na trama recibida non se solicita a retransmisión. Para a detección e corrección usa un Código de Redundancia Cíclica pero se non pode corrixilos descarta a trama. Ao non haber ACK tampouco hai control de fluxo (delégase nas capas superiores, en TCP no caso da pila TCP/IP).


Non existe subnivel MAC, é dicir, control de acceso ao medio, por utilizar unha conexión punto a punto, é dicir, é un protocolo orientado á conexión (usa un subprotocolo para o establecemento da mesma chamado LCP).


En canto ao direccionamento, non é necesario direccionar a nivel de enlace, tamén por ser unha conexión punto a punto. Úsase sempre a dirección 11111111 como dirección de destino.


En canto ao entramado, PPP usa a secuencia de bits 01111110 como delimitador de inicio e fin de trama. Tamén usa a técnica de recheo de caracteres (bit stuffing) para evitar confusións da secuencia de inicio e fin cunha secuencia de datos. O formato da trama PPP é o seguinte:




O campo tipo na trama establece a que tipo de protocolo pertence o paquete recibido da capa de rede. Desta forma PPP pode utilizarse para transmitir paquetes pertencentes a diferentes protocolos do nivel de rede (IP, IPX de Novell, Appletalk, etc.). En concreto, o valor x0021 corresponde ao IP. O campo control non se usa.




Ethernet



A maior parte das LAN actuais usan a tecnoloxía Ethernet. Esta tecnoloxía converteuse nun estándar de facto. Apareceu nos anos 80 e o IEEE adaptouna a posteriori, con pequenas modificacións, no estándar 802.3, facéndoa un estándar de iure. Con todo, cando nos conectamos a Internet dende unha LAN o protocolo de nivel de enlace que usamos, con moita probabilidade, segue sendo Ethernet e non o estándar 802.3. Desde o punto de vista da estandarización, Ethernet é ás redes LAN o que TCP/IP é ás redes WAN.


Baixo o nome Ethernet aglutínanse, polo tanto, un conxunto de estándares definidos polo comité 802.3 do IEEE, entre eles:





  • Fast Ethernet: 802.3i (100BaseT)




  • Gigabit Ethernet: 802.3ab (1000BaseT)




  • 10 Gigabit Ethernet: 802.3ae



Hai múltiples motivos polos que esta tecnoloxía se converteu nun estándar de facto:





  • Simplicidade.Apareceu moi cedo e foi das primeiras LAN en ser amplamente usada pola súa simplicidade.




  • Custe. As alternativas, Token Ring, FDDI e ATM eran máis complexas e caras.




  • Velocidade. A velocidade de Ethernet foi en aumento ata chegar a velocidades superiores ás das tecnoloxías coas que competía.




  • Aceptación. Debido á súa gran aceptación o hardware para Ethernet é moi barato.



Como protocolo de acceso ao medio Ethernet usa CSMA/CD. Úsase direccionamento explícito para o nivel de enlace mediante direccións MAC.


En canto á xestión de erros, se se detecta algún problema na trama non se solicita a retransmisión. Polo tanto, usa a técnica de CRC para corrixilos pero se non pode descarta a trama, igual que o PPP. Ethernet ofrece un servizo non orientado a conexión ao nivel de rede, é dicir, cando o nivel de enlace dunha estación "A" quere enviar un paquete ao nivel de enlace dunha estación "B", A encapsula o paquete nunha trama e inicia a transmisión sen “falar” previamente con B (non hai establecemento previo de conexión). Cando B recibe a trama, se o CRC falla, descártaa sen máis. Tampouco hai control de fluxo (delégase nas capas superiores).


En canto ao entramado, a trama Ethernet ten o seguinte formato:







  • Preámbulo. Está formado por 64 bits, alternativamente 0 e 1 para sincronizar ao emisor e o receptor. Os dous últimos bits son 11 e indican onde empeza a trama. É idéntico en todas as tramas.




  • Dir destino (48 bits). A dirección física (MAC) do destinatario da trama.




  • Dir orixe (48 bits). A dirección física do transmisor.




  • Tipo (16 bits). Indica o tipo de contido que leva a trama (é dicir, que protocolo encapsula). Por exemplo, as tramas que transportan paquetes IP levan un 0x0800; as que transportan paquetes ARP levan 0x0806.




  • Datos (de 0 a 1500 bytes). Transporta a PDU (Protocol Data Unit) do nivel superior. Unha trama Ethernet debe ter como mínimo 64 bytes (para evitar confundir unha trama de datos con "restos" de colisións). Se o campo de datos ten menos de 46 bytes inclúese un trailer (todo ceros) ao final da trama para completar eses 64 bytes. Ethernet (e todos os protocolos do nivel de enlace) ten limitada a lonxitude máxima de información transportable pola trama (Maximun Transfer Unit ou MTU). A MTU en Ethrenet é 1.500 bytes. Esta limitación ten como obxectivo evitar que unha estación monopolice a LAN. Polo tanto, se o nivel de rede quere enviar un paquete de tamaño superior a 1500 bytes terá que dividirse (fragmentarse) en varios fragmentos.




  • Código de redundancia cíclica( 32 bits). O CRC úsase para a detección e corrección de erros.




O 802.3



Durante un tempo pensouse que o IEEE802.3 acabaría substituíndo á Ethernet orixinal pero isto non aconteceu. As tramas do 802.3 teñen un formato similar ás de Ethrenet:







  • Preámbulo + inicio (64 bits). 7 bytes a 10101010 para que receptor e transmisor se sincronicen (sinal cadrado) e 1 byte co patrón 10101011 para indicar que comeza a trama.




  • Dir destino (48 bits). A dirección física (MAC) do destinatario da trama.




  • Dir orixe (48 bits). Dirección física do transmisor.




  • Lonxitude (16 bits). Indica cantos bytes van no campo de datos ou de información. Polo tanto úsase a técnica de conta de caracteres.




  • Datos (de 0 a 1500 bytes). Igual que no Ethernet orixinal.




  • Recheo. Unha trama debe ter como mínimo 64 bytes. Considérase que as tramas inferiores son resultado de colisións e son obviadas por los receptores. Se o campo de datos ten menos de 46 bytes, débese usar o campo de recheo para completar eses 64 bytes.




  • CRC. Código de redundancia cíclica.




Dispositivos do nivel de enlace: os switches



Os hubs ou concentradores son dispositivos do nivel físico (ver unidade III). Os switches ou conmutadores son dispositivos que traballan no nivel de enlace, é dicir, con tramas, Ethernet no noso caso.




Dominios de colisión



O emprego de concentradores ou hubs para formar unha LAN Ethernet estende o dominio de colisión, é dicir, en todos os hubs da LAN vese todo o tráfico. Este tráfico comparte a velocidade máxima que teñamos na rede.


Cando un conmutador recibe unha trama examina a dirección MAC de destino e reenvíaa pola interface onde está conectado o destinatario. Ao contrario que os concentradores, que inundaban a rede (un único dominio de colisión), os conmutadores delimitan un segmento de rede por cada porto. Un dominio de colisión é un segmento da rede no que as tramas enviadas por un equipo só poden colisionar con outras tramas nese mesmo segmento. Os dominios de colisión segmentan a rede mellorando o aproveitamento dos recursos xa que evitan difusións de tramas innecesarias e colisión entre dispositivos de distintos segmentos. Polo tanto, a función principal dun conmutador é a segmentación da rede para aumentar as prestacións desta.


Na seguinte LAN hai tres segmentos de rede e, polo tanto, tres dominios de colisión (un por cada porto do conmutador):




Na actualidade, as tecnoloxías aplicadas á conmutación permiten fabricar conmutadores de nivel 3. Non son routers pero posúen moitas das características destes, podendo ser utilizados para deseñar redes virtuais (VLAN) dentro dunha LAN.




Funcionamento dun switch



Un conmutador mantén unha táboa de direccións MAC co seguinte formato:







  • Address é a dirección MAC do emisor.




  • Interface é o porto do switch polo que chegou a trama.




  • Time é o momento no que se recibiu a trama no switch.



O funcionamento é o seguinte: cando o conmutador recibe unha trama almacena a dirección MAC de quen a envía, a interface pola que chegou e a hora. Mira o campo de destino da trama e consulta a táboa para saber por que porto está alcanzable esa dirección MAC. Se a MAC non existe na táboa envía a trama por todos os interfaces, é dicir, compórtase como un hub inundando todos os segmentos.




A táboa, polo tanto, créase dinamicamente, a medida que chegan as tramas, e as entradas da mesma bórranse cada certo tempo (o switch non ten memoria ilimitada). Polo tanto, cando un equipo transmite, o switch recibe a trama e reenvía polo porto axeitado, salvo que o destino non estea na táboa.


Para evitar que os equipos conectados ao conmutador interfiran entre si nas súas transferencias, o switch almacena nun buffer (memoria intermedia) as tramas que lle chegan e logo procésaas. Así, dous equipos poderían estar enviando a outros dous sen molestarse. No gráfico de exemplo, os tres equipos A, B e C poden enviar simultaneamente: o computador A pode enviar a A' mentres que B envía a B' e C a C'. Se cada computador ten unha NIC a 100Mbps o throughput durante as tres transmisión simultáneas será de 300Mbps.




Exemplos de interconexións



Os conmutadores poden conectarse para formar distintas topoloxías. Un uso típico é nunha pequena LAN nunha empresa ou organización, tal e como se ve na seguinte figura:




As impresoras e outros periféricos, así como os servidores e estacións de traballo están conectados directamente mediante cables de par trenzado planos.


Outra posibilidade é usar un switch para crear diferentes segmentos de rede ou dominios de colisión, como na seguinte figura:




Para conectar os hubs co switch hai que usar cables cruzados, ou ben conectar un cable plano ao porto MDI (crossover ou uplink) do hub, se é que o ten. O switch, ademais, está conectado a unha rede backbone a través dun cable de fibra óptica conectado a un módulo 100Base-FX instalado no switch.


Por último, na seguinte figura vese unha combinación das dúas topoloxías anteriores:






Virtual LAN (VLAN)



Unha VLAN é un grupo lóxico de nodos dunha rede, conectados a un ou varios conmutadores, que se xestionan como unha subrede. Este tipo de redes son posibles tecnoloxicamente grazas aos routers. Os nodos agrúpanse seguindo criterios ou políticas de conexión, independentemente da súa ubicación ou conexión física. Isto axuda a controlar o uso do largo de banda permitindo, por exemplo, agrupar a usuarios con necesidades altas nun segmento da LAN e ao resto noutro.


Unha VLAN configúrase mediante a asignación de portos do switch a un mesmo dominio de broadcast (os nodos dunha VLAN normalmente comparten o esquema de direccionamento e, polo tanto, están dentro da mesma subrede). Para comunicar dúas VLAN necesítase un encamiñador externo.




Para distinguir as tramas das distintas VLAN úsanse etiquetas. O estándar máis frecuente de etiquetado de VLAN é o 802.1Q ou VLAN tagging. Evidentemente, as tarxeta de rede deben soportar este protocolo. Este estándar permite asignar cada porto do switch a unha ou máis VLAN, como se ve na seguinte figura:


Manual de Iptables

Mediante iptables podemos configurar el cortafuegos en cualquier equipo con Linux, igualmente podemos emplearlo para instalar y configurar un router de un modo rápido, sencillo y seguro.

Durante algunos cursos he venido empleando la presentación del siguiente enlace para explicar su funcionamiento. Sólo un par de advertencias con respecto a la misma, tiene algunos errores en los ejemplos del final ya que, a veces, cuando tecleas "--" en un editor de texto las une en una línea más larga, así que a veces dónde debe poner "--dport" pone "-dport", por ejemplo.

Los que esperéis una presentación "al uso" veréis que en realidad se trata de un documento tipo manual, con bastantes explicaciones, más que de una presentación que podáis usar como tal.

El índice con los temas tratados en la presentación es el siguiente:

1.- INTRODUCCIÓN SPI:
  ¿QUÉ ES UN FILTRO DE PAQUETES?
  INSTALACIÓN DE IPTABLES
  CREACIÓN DE FIREWALLS DE IPTABLES


2.- EL FUNCIONAMIENTO DE IPTABLES I
  2.1- COMANDOS IPTABLES
  2.2 - REGLAS IPTABLES
  2.3.- OPCIONES


3. PRIMEROS PASOS


4.IPTABLES AVANZADO
  4.1- ESPECIFICACIONES DE FILTRADO
  4.2- EXTENSIONES A IPTABLES
  4.2.1- LAS EXTENSIONES DE   COINCIDENCIAS
  4.3 ESPECIFICACIÓN DE OBJETIVOS (TARGET)‏
  4.3.1 CADENAS DEFINIDAS POR EL   USUARIO
  4.3.2 EXTENSIONES A IPTABLES:   NUEVOS OBJETIVOS
  4.3.3 OBJETIVOS ESPECIALES DE   SERIE


5. OPERACIONES CON UNA CADENA


6. CONFIGURACIÓN DE RED DE HOST INDEPENDIENTES


7. ¿QUÉ ES NAT?
  7.1 ENMASCARAR
  7.2 QUÉ PASAR POR NAT
  7.3 SELECCIONES USANDO IPTABLES
  7.4 CÓMO MODIFICAR LOS PAQUETES
  7.4.1 SOURCE NAT (CAMBIO DE   ORIGEN)‏
  7.4.2 ENMASCARAMIENTO
  7.4.3 DESTINATION NAT (CAMBIO DE   DESTINO)‏
  7.4.3.1 REDIRECCIÓN
  7.5 PROTOCOLOS ESPECIALES Y DEFECTOS DE NAT


8. FIREWALL NAT, CASOS PRÁCTICOS
  8.1 UN CASO SENCILLO
  8.2 FIREWALL CON REENVÍO DE PUERTOS
  8.3 FIREWALL CON DMZ Y PROXY WEB TRANSPARENTE
  8.4 VPN IPSEC A TRAVÉS DEL FIREWALL


9. IMPLEMENTACIÓN DE MARCAS DE TIPO DE SERVICIO (TOS)‏


10. BIBLIOGRAFÍA

Enlace al fichero: http://docs.google.com/present/edit?id=0AY4-0lmgCwxZZGc4bngyY2JfNmNicnpwZ2Yy&hl=es

otro manual:
http://www.frozentux.net/documents/iptables-tutorial/

sábado, 6 de marzo de 2010

Unidad 2: Servidor DHCP, DNS y WINS en Windows Server


Instalación de un servidor DHCP, DNS Y WINS

1.- INSTALACIÓN DE LOS SERVICIOS

Para agregar los servidores vamos a Inicio → Herramientas administrativas → Administre su servidor
image
tras pulsar en Agregar o quitar función voy agregando cada uno de los servidores que quiero añadir y aprovechando para configurar los valores de cada uno de ellos.

image

2.- SERVIDOR DHCP

En el caso del servidor DHCP, especifico el rango de direcciones que va a conceder el servidor -en este caso desde la 192.168.2.10 a la 192.168.2.20 y posteriormente añado para este ámbito las direcciones ip de los servidores de DNS, WINS y enrutamiento para este ámbito, poniendo en todas ellas la misma dirección del servidor windows 2003 (192.168.2.3)
image
Finalmente el servidor queda funcionando con la configuración citada y con las siguientes ips ya asignadas, una vez puesto en funcionamiento y tras cambiar la dirección de las máquinas anfitrión y windows xp de ip fija a dinámica.
image

Videotutorial instalación y configuración servidor DHCP en Windows

3.- SERVIDOR DNS

En el caso del servidor DNS he creado una zona nueva principal llamada “uned.es”, dentro de ella he creado cuatro entradas de tipo host nuevas una para el servidor, otra para el anfitrión y dos, con idéntica ip, para la máquina virtual xp.
image
Del mismo modo he creado una zona principal de búsqueda inversa cuyo funcionamiento compruebo mediante el uso del comando nslookup con la ip del equipo anfitrión:

image

Videotutorial instalación y configuración DNS en Windows 2003

4.- SERVIDOR WINS

Tras su instalación compruebo que está funcionando correctamente:
image

5.- CONFIGURACIÓN FINAL

Para su correcto funcionamiento hay que realizar finalmente los siguientes cambios en las configuraciones:



  1. En Virtual Box he deshabilitado el servicio de DHCP que trae incorporado para asignar ips de manera dinámica a los equipos virtuales que hagan uso de este tipo de conexión. Para ello desde el menú de Virtual Box voy a Archivo → Preferencias → Red → Configuración → Servidor DHCP y desmarco el cuadro de habilitar servidor (si ya está en ejecución también se puede matar el proceso Virtualboxdhcp.exe desde el administrador de tareas de la máquina anfitrión ):image



  2. En la configuración de red del servidor 2003 le asigno como servidor DNS a sí mismo. El resto de los equipos adquirirán la ip a través del propio servidor de DHCP.image



  3. Cambio la configuración de la ip en windows xp y en el equipo anfitrión a “Obtener una dirección IP automáticamente” y “Obtener la dirección del servidor DNS automáticamente” para que tome los valores proporcionados por el servidor de DHCP.

6.- COMPROBACIONES FINALES

Realizo un ipconfig /all en la máquina virtual de windows xp y visualizo los detalles de la red en el equipo anfitrión para comprobar que han tomado los valores correctamente.image
Finalmente realizo un ping entre las distintas máquinas empleando el formato ping nombre de dominio/ nombre wins para comprobar que el servidor de DNS y/o Wins funcionan correctamente:
image
Para ver el resto de manuales de servidores windows pulsar el enlace.

viernes, 5 de marzo de 2010

Tema 1: Instalar una red Windows en Virtual Box

Se trata en esta actividad de realizar la instalación de una red local basada en máquinas virtuales de Windows.

1.- INSTALACION DE LAS MÁQUINAS VIRTUALES
En primer lugar y tras la instalación de VirtualBox he instalado las máquinas virtuales – Windows Server y Windows xp - y las Guest Additions para moverme con mayor facilidad entre máquinas virtuales y física.

image



2.- CONFIGURACIÓN DE LA RED
En primer lugar he configurado los adaptadores de red en los equipos virtuales para conectarse en una red host-only entre ellos y con el anfitrión:
image
Posteriormente he asi gnado las ips de acuerdo a lo solicitado en la actividad, en la imagen captura de asignación de ip a la máquina física, para ello he de ir INICIO → Panel de Control → Conexiones de Red → Virtual Box Host Only → Propiedades:
Máquina física:192.168.2.1
Windows xp: 192.168.2.2
Windows 2003: 192.168.2.3
image



3.- COMPROBACIÓN
Para comprobar que las ips han sido asignadas correctamente y que todos los equipos se ven entre ellos realizamos un ping entre las distintas máquinas. Lo muestro en una captura de pantalla en la que se ven todas las máquinas; muestro por un lado la ip asignada y por otro realizando el ping entre ellas.
image

Para ver el resto de manuales de servidores windows pulsar el enlace.

Administrar y configurar redes, servicios y servidores en Windows

Por razones que no vienen al caso, he elaborado unos manuales de administración de servidores en Windows.
Inicialmente los manuales están basados en windows xp y windows server 2003 pero son fácilmente exportables a server 2008, en cualquier caso como las prácticas de los alumnos irán por ahí, si veo que no es tan inmediato o que les cuesta intentaré pasarlas a 2008 también.
Para la realización de las prácticas se parte del supuesto de la existencia de dos departamentos: contabilidad y desarrollo con dos usuarios cada uno: c1, c2 y d1 y d2 respectivamente. Lo que montaré serán los servicios básicos que después iré "complicando" un poco usando certificados o servicios como puedan ser webdav,...
Espero que os sean de utilidad:

Unidad 1: Configuración de virtual box con Windows Server y XP
Unidad 2: Servidor DHCP, DNS y WINS en Windows Server
Unidad 3: El directorio Activo en Windows Server
Unidad 4: Servidor FTP en Windows Server
Unidad 5: Servidor web en Windows Server, Internet Information Services IIS
Unidad 6: Entidad certificadora: certificados en IIS
Unidad 7:Webdav en Windows Server con IIs.
Unidad 8: Servidor de Correo en Windows Server


En el siguiente enlace tenéis también las configuraciones para server 2008 y 2012