Apostila de Internet e Arquitetura TCP/IP volume I I

19
Apostila de “Internet e Arquitetura TCP/IP” volume I I Curso de Redes de Computadores 2 a edição José Alberto Vasi Werner

description

Apostila de“Internet e ArquiteturaTCP/IP”volume I IPuc-RIO

Transcript of Apostila de Internet e Arquitetura TCP/IP volume I I

  • Apostila de Internet e ArquiteturaTCP/IPvolume I I

    Curso de Redes de Computadores2a edio

    Jos Alberto Vasi Werner

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 2

    1. Protocolos da camada de Rede e Protocolos auxiliares de TCP/IPEste protocolos so agrupados neste captulo, por fornecerem servios auxiliares para TCP/IP, tanto a nvel deenlace OSI quanto a nvel a de aplicao.

    BOOTP e DHCP

    Este protocolos fornecem aos protocolos TCP/IP, as informaes iniciais de configurao da mquina tais comoendereo IP, mscara de sub-rede, roteadores default, rotas, servidores de Boot, servidores de nome e diversasoutras informaes. Eles so utilizados principalmente para realizar a administrao centralizada de mquinasTCP/IP e possibilitar o BOOT de mquinas sem rgido e sem informaes iniciais de configurao. O BOOTP(Bootstrap Protocol) o protocolo mais antigo e o DHCP (Dynamic Host Control Protocol) est aos poucos osubstituindo. O BOOTP bastante utilizado para o boot inicial de dispositivos de rede, como roteadores,switches, hubs gerenciveis, alm de estaes Unix diskless (sem disco e cada vez mais raras hoje). O DHCP um pouco mais complexo e mais verstil e vem sendo utilizado principalmente para simplificar aadministrao de endereos e outros parmetros de configurao de grandes instalaes de mquinas TCP/IP.

    Protocolo BOOTP

    A mensagem BOOTP encapsulada em UDP e possui o seguinte formato:

    Octeto 1 Octeto 2 Octeto 3 Octeto 40 7 15 23 31

    HLENGTH

    SECONDS (tempo desde o boot) UNUSED

    YOUR IP ADDRESS

    HW TYPE

    GATEWAY IP ADDRESSSERVER IP ADDRESS

    HOPS

    CLIENT HARDWARE ADDRESS (16 OCTETS)

    SERVER HOST NAME (64 OCTETS)

    BOOT FILE NAME (128 OCTETS)

    VENDOR-SPECIFIC AREA (64 OCTETS)

    TRANSACTION ID

    CLIENT IP ADDRESS (se cliente souber)

    OP (1=Req,2=Rep)

    As mensagens BOOTP Request e BOOTP Reply tem o mesmo formato mas no Request alguns campos noso preeenchidos. Uma estao que deseja obter informaes de configurao pode enviar uma mensagemBOOTP Request por broadcast. Um servidor de BOOTP pr configurado na rede com os parmetros de cadacliente, receber a mensagem e enviar os dados previamente armazenados para o cliente. Este procedimento mostrado nas duas figuras abaixo:

    1 1 6 0003267A3

    2 000000000000000000000000000000000000

    EF234A671234A012000000000000000000

    UNIX

    ClienteBOOTP

    2 1 6 0003267A3

    2 000000000000

    139.82.17.10139.82.20.15139.82.17.55

    EF234A671234A012servidor.inf.puc-rio.br

    /bootfiles/vmunix

    Servidor BOOTP

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 3

    Na rea Vendor-Specific da mensagem BOOTP podem ser colocadas uma srie de variveis possveisadicionais para configurao da estao cliente de BOOTP. Estas opes so definidas em RFCs adicionais eservem tanto para BOOTP quanto para DHCP.

    Protocolo DHCP

    O DHCP tem como principal vantagem em relao ao BOOTP a sua capacidade de configurao automticade estaes, sem necessidade de criao de uma tabela de configurao para cada mquina (com seusparmetros e endereos MAC respectivos, como o caso de BOOTP). Desta forma, um administrador de redepode configurar as diversas estaes IP existentes na rede de modo genrico, sem especificar uma tabela paracada uma.

    O DHCP tem a capacidade de distribuir endereos de forma dinmica para as estaes, usando trs mtodosde fornecimento distintos:

    Emprstimo (leasing) de endereo aleatrio por tempo limitado: Neste tipo de fornecimento de endereo IP,o servidor fornece ao cliente um endereo IP obtido de um conjunto pr-definido de endereos (p.ex.192.168.0.10 a 192.168.0.90) por um tempo pr determinado.

    Emprstimo de endereo aleatrio por tempo infinito: Neste tipo, o servidor associa um endereo obtido doconjunto de endereos a um cliente na primeira vez que este cliente contactar o servidor. Nas demais vezes,ser fornecido o mesmo endereo a este cliente (associado atravs do endereo MAC), mesmo que asduas mquinas sejam desligadas e ligadas. Este mtodo simplifica a atribuio de endereos para umaquantidade grande de mquinas.

    Emprstimo de endereo fixo: Neste tipo de fornecimento, o DHCP opera como o BOOTP, onde h aassociao explcita entre o endereo IP e o endereo MAC da mquina origem, estipulado em uma tabelade configurao

    A mensagem DHCP compatvel com BOOTP e possui o formato abaixo:

    Octeto 1Octeto 1 Octeto 2Octeto 2 Octeto 3Octeto 3 Octeto 4Octeto 400 77 1515 2323 3131

    OP

    CLIENT IP ADDRESS

    CLIENT HARDWARE ADDRESS (16 bytes)

    TRANSACTION IDSECONDS FLAGS

    HTYPE HLEN HOPS

    YOUR IP ADDRESSSERVER IP ADDRESSROUTER IP ADDRESS

    SERVER HOST NAME (64 bytes)BOOT FILE NAME (128 bytes

    OPTIONS (Variavel)

    Ao contrrio da mensagem BOOTP que possui apenas dois tipos de comandos (REQUEST e REPLY), amensagem DHCP possui 8 tipos de comandos. Este comandos no so colocados no campo OP, como emBOOTP, mas para manter a compatibilidade, so colocados como uma opo especial no campo OPTIONS, ade cdigo 53, associado a um dos comandos abaixo:

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 4

    DHCP DISCOVER - Enviado pelo cliente para solicitar uma resposta de algum servidor DHCPDHCP OFFER - Oferta de endereo IP de um servidor para um cliente. Um cliente pode receber vriasofertas de diferentes servidores DHCPDHCP REQUEST - Requisio de um endereo especfico daqueles oferecidos pelos servidores. enviado por broadcast apesar de ser endereado a um nico servidor para que os demais tomemconhecimento da escolha.DHCP DECLINE - Informa que a oferta contm parmetros incorretos (Erro)DHCP ACK - Confirmao do servidor sobre a atribuio do endereo para a requisio do cliente.DHCP NAK - Servidor nega o fornecimento do endereo previamente oferecido, geralmente causadopor um erro ou pelo fato do cliente ter demorado muito a requisitar o endereo solicitado.DHCP RELEASE - Cliente libera o endereo IP utilizado. raramente utilizado na prtica, poisgeralmente o cliente desligado sem liberar o endereo. Ele retorna ao conjunto de endereosdisponveis no servidor devido ao estouro do tempo de leasing.DHCP INFORM - Cliente que j possui endereo IP pode requisitar outras informaes deconfigurao respectivas quele endereo.

    A operao de DHCP define diversos estados de funcionamento, quando o cliente est executando algumaao e enviando uma das mensagens acima:

    1. INITIALIZE Configura interface com valor zero pois no tem endereo disponvel - 0.0.0.0 Envia DHCPDISCOVER(UDP 67) como broadcast e muda para estado SELECT. Nesta

    mensagem, pode colocar opes de configuraes desejadas1. SELECT

    Pode receber uma ou vrias mensagens DHCPOFFER, cada uma com seus parmetros distintos Escolhe uma, envia DHCPREQUEST como broadcast e vai para estado REQUEST

    1. REQUEST Aguarda at receber DHCPACK do servidor escolhido. Se no receber, escolhe outra oferta e a

    solicita Vai para o estado BOUND.

    1. BOUND o estado normal de funcionamento. Passa a utilizar o endereo, durante o tempo especificado pelo servidor Quando o tempo atingir 50%, envia novo DHCPRequest para o servidor e passa para estado

    RENEW Para cancelar o uso da endereo envia DHCPRelease

    1. RENEW Servidor pode enviar DHCPNAK, DHCPACK ou nenhuma resposta solicitao de Request Se receber ACK, volta para o estado BOUND Se no receber resposta nenhuma, o cliente envia DHCPREQUEST em broadcast para que outros

    servidores possam enviar ofertas. Se receber DHCPNAK, libera IP e vai para estado INITIALIZE

    Opes DHCP

    As opes DHCP tem o formato abaixo:

    CODE LENGTH VARIVEL ...

    O cdigo indica o tipo da opo. Os comandos DHCP tem sempre o cdigo 53 e tamanho 1, sendo o prximobyte o cdigo especfico do comando:

    1 = DHCPDISCOVER2 = DHCPOFFER3 = DHCPREQUEST4 = DHCPDECLINE

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 5

    5 = DHCPPACK6 = DHCPNACK7 = DHCPRELEASE8 = DHCPINFORM

    As opes de DHCP e BOOTP informam dados teis para as diversas camadas TCP/IP, desde o nvel de Redaao Nvel de Aplicao. Enumera-se algumas abaixo:

    Opes Bsicas:Code Param Descrio0 Pad - alinhamento255 Fim das opes1 MASK Mscara a ser utilizada pela estao3 IP1, IP2, ... Lista de roteadores default para a estao6 IP1, IP2, Lista de servidores de DNS9 IP1, IP2, Lista de servidores de impresso LPR12 nome Nome da mquina13 nmero Tamanho do arquivo de boot15 nome Nome do domnio16 IP Endereo do servidor de swap17 nome Path do diretrio / da mquina

    Opes de DHCPCode Param Descrio50 IP Endereo IP requerido preferencialmente51 tempo (s) Tempo de emprstimo de endereo53 mensagem Mensagem DHCP54 IP Identificao do servidor DHCP remetente55 COD1, Cliente requisita opes ao servidor56 texto Mensagem de erro57 nmero Tamanho mximo da mensagem DHCP58 tempo T1 - Tempo de espera para estado RENEWING59 tempo T2 - Tempo de espera para estado REBINDING

    Opes de IPCode Param Descrio19 1/0 Habilita IP Forwarding na estao20 1/0 Habilita Source Routing na estao22 nmero Tamanho mximo do datagrama que cliente deve receber23 nmero Tamanho do TTL default da mquina26 nmero MTU da interface27 1/0 Todas as interfaces tem o mesmo MTU ?28 IP Endereo de broadacst da rede29 1/0 Realizar ICMP Mask Discovery ?31 1/0 Realizar ICMP Router Discovery ?33 IP1/DEST1, IP2/DEST2, .. Rotas estticas

    Protocolo PPP

    O protocolo PPP (Point-to-Point Protocol) o principal protocolo para o transporte de IP sobre ligaes ponto aponto, criando um nvel de enlace em um meio que no o possua. O PPP empregado como protocolo deenlace nos seguintes tipos de meio: ligaes seriais discadas, ligaes seriais dedicadas (enlaces telefnicos,satlite, rdio), ligaes ISDN e outras.

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 6

    Pode-se diferenciar o funcionamento de PPP em dois grupos principais: quando empregado em ligaesdiscadas ele prov os mecanismos de autenticao, com a correspondente interao com os dispositivos paraverificar a autenticidade do originador da chamada, alm de que as mensagens trocadas diferenciam ooriginador da chamada do receptor da chamada. Quando empregado em ligaes dedicadas, geralmente noso trocadas mensagens de autenticao e o funcionamento do protocolo praticamente simtrico em relaos mensagens trocadas.

    PPP genrico podendo carregar diversos protocolos de nvel de rede OSI, alm de possuir uma srie deopes que podem ser negociadas pelos dois lados da conexo. PPP prov trs tipos de funcionalidade:

    Encapsulamento

    Protocolos de Controle do Enlace PPP (protocolo LCP, PAP, CHAP, LQM)

    Protocolos de Controle do Protocolo de Nvel 3 sendo carregado (protocolos IPCP, IPXCP, )

    O Encapsulamento de PPP na verdade no faz parte do protocolo, permitindo que ele se encaixe em outrosprotocolos de nvel de enlace. O PPP pode utilizar diversos tipos de encapsulamento compatveis com HDLC,ISDN e outros. Na sua forma default, o encapsulamento de PPP similar ao incio de um pacote HDLC,conforma a figura abaixo:

    FLAG Ctrl Protocolo DadosAddr FLAGFCS

    7E 7EFF 03

    Os campos FLAG, ADDR e CTRL so similares a HDLC. Os campos Protocolo, Dados e FCS so comuns atodo pacote PPP. Protocolo contm o protocolo sendo carregado no campo de dados, sendo por exemplo osvalores: LCP = C021, IPCP = 8021, IPXCP = 802B, PAP = C023, CHAP = C223, LQR = C025, IP = 0021, IPX =002B, Bridging NCP = 8031, Netbios = 803F, ...

    O encapsulamento dos diversos protocolos sobre PPP mostrado na figura abaixo:

    FLAG Ctrl Protocolo DadosAddr FLAGFCS

    Pacote PPP

    Pacote LCP

    Pacote LQM

    Pacote PAP

    Pacote IPCP

    Pacote IP

    Protocolo LCP - Link Control Protocol

    Este protocolo controla o enlace PPP. O formato de sua mensagem dado abaixo:

    COMANDO ID Length Dados Variveis

    O Comando pode ser um dos seguintes tipos:

    Configure-Request: Solicita o aceite para as opes especificadas no campo de dados

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 7

    Configure-Ack: Concorda com as opes, para serem utilizadas pelo outro lado Configure-Nack: Rejeita as opes, enumerando-as no campo de dados Configure-Reject: Rejeita as opes que no possuem um campo de valor Terminate-Request: Informa o fim da conexo PPP Terminate-Ack: Concorda com o fim da conexo Code-Reject: Informa erro no cdigo do comando LCP Protocol-Reject: Informa erro no protocolo da mensagem PPP Echo-Request Echo-Reply Discard-Request

    A troca de dados em uma conexo PPP realizada conforme a figura abaixo. Os comandos de configuraodo link PPP (LCP) so trocados com o objetivo de estabelecer os parmetros de operao da ligao. Aps oacordo dos comandos de configurao, so passados os comandos de configurao do protocolo de dados(IPCP) e, apes estes, so finalmente passados os pacotes do protocolo IP.

    A B

    Configure-Request para parmetros default A

    Configure-Nack para alguns parmetros propostos porA

    Configure-Request para parmetros A modificados

    Configure-Ack para parmetros A

    Configure-Reject para parmetros sem campo de dados

    Configure-Request para parmetros default B

    .

    Terminate-Request

    Pacotes NCP de testePacotes IPCP, PAP, CHAP, IP, etc...

    T

    Terminate-Ack

    As opes de configurao LCP mais utilizadas so:

    Maximum Receive Unit Authentication Protocol Quality Protocol Magic Number Protocol Field Compression Address Control Field Compression

    Em ligaes discadas comum os servidores de acesso remoto possurem a opo de deteco automtica dePPP. Neste caso, como, geralmente os primeiros pacotes PPP trocados so os Configure-Request, basta que oreceptor verifique se os dados correspondem aos cdigos deste comando e, ento, iniciem automaticamente oPPP.

    Protocolo IPCP - Network Control Protocol

    Os comandos possveis no protocolo IPCP so:

    Configure-Request: Solicita o aceite para as opes especificadas no campo de dados

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 8

    Configure-Ack: Concorda com as opes, para serem utilizadas pelo outro lado Configure-Nack: Rejeita as opes, enumerando-as no campo de dados Configure-Reject: Rejeita as opes que no possuem um campo de valor Terminate-Request: Informa o fim da troca de dados IP Terminate-Ack: Concorda com o fim da troca de dados Code-Reject: Informa erro no cdigo do comando IPCP

    Este comandos so trocados de forma semelhante ao LCP, sendo que ao trmino da fase de acordo do IPCP,passam os dados do protocolo IP.

    As principais opes de configurao de IPCP so:

    IP Compression Protocol: Informa se ser utilizado algum protocolo de compresso (e qual) para ocabealho IP

    IP Address: origem informa ao destino o endereo IP a ser utilizado pela origem. No caso de conter 0.0.0.0(que ocorre tipicamente na estao que realiza uma ligao serial discada), o outro lado (neste caso oservidor de acesso remoto) fornece o endereo IP a ser utilizado pela origem, atravs do comandoConfigure Nack.

    As possveis formas de negociao de endereo IP so dadas pela figura abaixo:

    ClIente

    Servidor

    de

    Acesso

    Configure-Request IP = 200.0.2.3

    Configure-Ack

    Configure-Ack

    Configure-Request IP = 200.0.2.100

    T1. Cliente e servidor tem endereos especficos (ligao dedicada)

    2. Cliente solicita endereo IP qualquer (ligao discada)

    Configure-Request IP = 0.0.0.0

    Configure-Nack IP = 200.0.2.99

    Configure-Ack

    Configure-Request IP = 200.0.2.100 (servidor informa seu prprio end.)

    Protocolo SLIP

    SLIP fornece apenas o encapsulamento para um enlace serial. Sua mensagem dado na forma abaixo:

    Flag FlagData

    0xDB - ESC 0xC0 - END

    O funcionamento de SLIP ocorre da seguinte forma:

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 9

    Transmite ESC Transmite datagrama, caracter por caracter, substituindo um ESC nos dados por ESC ESC Transmite END

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 10

    3. Interfaces do Nvel de Transporte (socket, WinSock)A interface de socket do Unix um conjunto de funes para permitir a utilizao do sistema de comunicaopor processos (programas) neste sistema operacional. A interface Winsock composta de funessemelhantes a socket, para o ambiente Windows.

    A interface socket possui funes distintas para a comunicao com e sem conexo.

    A utilizao das funes de socket para a comunicao sem conexo dada abaixo:

    bind()bind()socket()socket()

    SistemaSistemaOperacionalOperacional

    AplicaoAplicao

    SistemaSistemaOperacionalOperacional

    AplicaoAplicaobind()bind()socket()socket()ClienteCliente ServidorServidor

    Inter-redeTCP/IP

    sendto()sendto()recvfrom()recvfrom()close()close() close()close()

    sendto()sendto() recvfrom()recvfrom()

    A utilizao destas funes dada abaixo:

    socket: Inicializa a estrutura de dados do socket (equivalente ao SAP - Ponto de acesso de servio),determinando qual o protocolo (PF_INET = TCP/IP) e o tipo do servio (DGRAM = UDP e STREAM = TCP)

    bind: associa o socket a uma porta USP ou TCP - pode-se dizer que para o programador, a porta doprotocolo TCP ou UDP efetivamente o socket.

    sendto: solicita ao sistema de comunicao o envio de dados, especificando o endereo IP destino e a portadestino, alm dos prprios dados.

    recvfrom: informa ao sistema de comunicao que o programa est aguardando dados. O programa sercongelado enquanto no houverem dados para receber, sendo reativado quando chegarem dados.

    close: desassocia a porta do socket e desativa o socket.

    Deve-se observar que nem todas as funes geram mensagens de rede. De fato, apenas a funo sendto gerauma mensagem.

    A sintaxe destas funes mostrada abaixo:

    sock1 = socket (pf, type, protocol)pf = PF_INET | PF_APPLETALK | PF_NETW | PF_UNIXtype = SOCK_STREAM | SOCK_DGRAM | SOCK_RAW | SOCK_RDGRAM

    close (sock1)bind (sock1, localaddr, addrlen)

    localaddr = struct {ADDR_FMLY, PROTO_PORT, IP_ADDR}

    sendto (sock1, message, length, flags, destaddr, addrlen)

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 11

    recvfrom (sock1, buffer. length, flags, fromaddr, addrlen)nptr = gethostbyname (name)

    nptr = struct {name, aliases, address_type, address}

    nptr = gethostbyaddr (addr, len, type)sptr = getservbyname (servname, proto)

    sptr = struct {name, protocol, port)

    No caso de comunicao utilizando conexo, a utilizao das funes dada na figura abaixo:

    bind()bind()socket()socket()

    write( )write( )connect()connect()

    SistemaSistemaOperacionalOperacional

    AplicaoAplicao

    SistemaSistemaOperacionalOperacional

    AplicaoAplicao

    read( )read( )close( )close( )

    bind()bind()socket()socket()

    read( )read( )accept()accept()

    write( )write( )close( )close( )

    ClienteCliente ServidorServidor

    Inter-redeTCP/IP

    Inter-redeTCP/IP

    A sintaxe das funes adicionais dada abaixo:

    connect (sock1, destaddr, addrlen)destaddr = struct {ADDR_FMLY, PROTO_PORT, IP_ADDR}

    write (sock1, data, length)read (sock1, buffer, length)listen (sock1, qlength)newsocket = accept (sock1, addr, addrlen)ready = select (ndesc, indesc, outdesc, excdesc, timeout)

    ndesc = numero de descritores a serem examinadosindesc = descritores examinados excdesc = descritores examinados para exceotimeout = tempo mximo de espera

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 12

    4. Protocolos de Nvel de AplicaoOs protocolos de aplicao TCP/IP so aqueles que realizam as funes de alto-nvel e que utilizam os serviosda camada de transporte UDP ou TCP para a comunicao.

    Os protocolos de aplicao podem realizar funes diretamente acessveis pelo usurio como FTP, HTTP,SMTP, POP3, IMAP4, Finger, Telnet, Chat, NFS, TFTP, NNTP e outros. Alm disto, podem tambm realizarfunes mais prximas do sistema de comunicao, tais como os protocolos DNS, BOOTP, DHCP, SNMP,BGP4, e outros.

    As aplicaes so ilustradas na figuira abaixo:

    HARDWARE + ENLACE DE DADOS + PROTOCOLOS DE ACESSO

    ARP RARP

    ASN.1ASN.1 SMTPSMTP RLOGINRLOGINRSHRSH DNSDNS ASN.1ASN.1 TFTPTFTP BOOTPBOOTP RPCRPC

    IP + ICMP + IGMP

    CMOTCMOT FTPFTP SNMPSNMPNFSNFS

    CMOTCMOT

    APLICAESAPLICAES

    XDRXDR

    TELNETTELNET HTTPHTTP

    UDPTCP

    Protocolo DNS

    O protocolo DNS (Domain Name System) especifica duas partes principais: regras de sintaxe para a definiode domnios e o protocolo utilizado para a consulta de nomes.

    O DNS basicamente um mapeamento entre endereos IP e nomes. A abordagem inicial para estemapeamento era a utilizao de nomes planos, ou seja, sem hierarquia. Esta abordagem possui limitaesintrnsecas quanto a escalabilidade e a manuteno. O sistema de nomes utilizado na Internet tem o objetivo deser escalvel, suportando a deinio de nomes nicos para todas as redes e mquinas na Internet e permitirque a administrao seja descentralizada.

    A estrutura de nomes na Internet tem o formato de uma rvore invertida onde a raiz no possui nome. Osramos imediatamante inferiores raiz so chamados de TLDs (Top-Level Domain Names) e so por exemplo .com, .edu., .org, .gov, .net, .mil, .br, .fr, .us, uk, etc Os TLDs que no designam pases so utilizados nosEUA. Os diversos pases utilizam a sua prpria designao para as classificaes internas. No Brasil, porexemplo, temos os nomes .com.br., .gov.br, .net.br, .org.br e outros.

    Cada ramo completo at a raiz como, por exemplo, puc-rio.br, acme.com.br, nasa.gov, e outros so chamadosde domnios. Um domnio a rea administrativa englobando ele prprio e os subdomnios abaixo dele. Porexemplo o domnio .br engloba todos os subdomnios do Brasil. O domnio acme.com.br tem a responsabilidadepor todos os domnios abaixo dele.

    A delegao de responsabilidade de um domnio a capacidade do DNS de simplificar a administrao. Aoinvs do domnio .br ser responsvel diretamente por todos os seus sub-domnios e os que vierem abaixodeles, h na verdade uma delegao na atribuio de nomes para os diversos sub-domnios. No exemploacima, a empresa Acme possui a responsabilidade de administrao do domnio acme.com.br.

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 13

    A hierarquia de domnios pode ser observada na figura abaixo:

    root

    edu com net org gov mil int uk

    puc-rio

    inf icad

    exu oxum oxala odeon

    telemdia

    exu.inf.puc-rio.br

    br . . .

    MIT UCLA com

    acme

    adm

    rh fin

    servserv.rh.adm.acme.com.br

    Os domnios principais genricos, chamados de GTLDs (Generic Top Level Domain Names) que so .net, .come .org so administrados pelo Internic (Internet Network Information Center) que tambm responsvel pelaadministrao do espao de endereamento IP. Recentemente foram criados novos nomes de domniogenricos que sero utilizado a partir de 98. So eles: .firm, .store, .web, .arts, .rec, .infor, .nom.

    Os domnios so completamente independentes da estrutura de rede utilizada. No existe necessariamentealgum relacionamento entre eles. O DNS possui uma estrutura inversa para poder representar oendereamento de rede, ou permitir que seja feito o mapemento do endereo IP correspondente a um nome.Esta estrutura possui como raiz principal a notao .arpa e possui como nico ramo o .in-addr. Abaixo deste socolocados em ordem os bytes do endereo IP.

    Implementao do DNS

    O DNS implementado por meio de uma aplicao cliente-servidor. O cliente o resolver (conjunto de rotinasem uma implementao de TCP/IP que permite a aconsulta a um servidor) e um servidor geralmente oprograma bind ou uma implementao especfica de um servidor de DNS (Windows NT).

    Um servidor de DNS pode ser responsvel pela resoluo de uma ou mais nomes de domnios (ex.acme.com.br, presid.acme.com.br). Seu escopo de atuao define a Zona de atuao de um servidor DNS. Porexemplo, para resolver o domnio acme.com.br e seus sub-domnios existem trs zonas: a primeira resolve oprprio domnio principal e os subdomnios mktg.acme e vendas.acme; a segunda resolve os domniosengen.acme e prod.engen.acme; e a terceira resolve o domnio lab.engen.acme. Cada zona possui um servidorde nomes principal ou primrio, que mantm em tabelas o mapeamento dos nomes em endereos IP daqueledomnio. Uma zona pode ter servidores secundrios que possam substituir os primrios em caso de falha. Ossecundrios, entretanto no possuem fisicamente as tabelas de mapeamento mas carregam regularmente asinformaes do primrio.

    Veja figura abaixo:

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 14

    br

    acme

    mktg vendasengen

    lab prod B C A B C A B

    C D E F G

    Zona

    Zona

    Zona

    com

    Por outro lado, a representao do domnio reverso .in-addr.arpa para uma das mquinas deprod.engen.acme.com.br visto abaixo:

    br

    acme

    engen

    prod B C

    serv1 G

    arpa

    in-addr

    serv1.prod.engen.acme.com.br =200.18.100.2

    1 2 3 ... 254200 ...

    1 2 ... 25418 ...

    1 2 ... 254100 ...

    1 2 3 ... 254253serv1.prod.engen.acme.com.br

    A resoluo de um nome realizada de forma recursiva, consultando diversos servidores de nome at chegarquele responsvel pelo domnio consultado. Por exemplo a resoluo do endereo www.lab.acme.com.br,ser realizado pelo servidor da zona responsvel por lab.acme.com.br. A figura abaixo ilustra o processo deconsulta:

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 15

    brcomorgacme...

    com puc

    telemidia

    odeon

    acme

    www

    NS3

    NS4

    NS1

    resolverwww =200.18.1.1

    NS2

    1

    234

    56

    7 8

    9

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 16

    Protocolos de Roteamento

    Protocolo RIP

    Conforme citado em captulos anteriores, o IP possui vrios mecanismos para obter informaes para suatabela de rotas (especficas de cada mquina). A tabela de rotas de IP pode ser preeenchida por meio de:

    Rotas default por meio de configurao esttica (manual)

    Rotas especficas por meio de configurao esttica (manual)

    Rotas default por meio do protocolo ICMP Router Advertisement

    Rotas especficas para estao por meio de ICMP Redirect

    Rotas aprendidas dinmicamente por meio de protocolos de roteamento (ex. RIP, OSPF, BGP-4)

    A ltima forma de aprendizado se aplica normalmente aos prprios roteadores, quando situados em redescomplexas, j que suas tabelas de rota devem conter os detalhes de roteamento da rede (Uma estao poroutro lado, pode ter rotas para um nico roteador default e aprender rotas melhores por meio de ICMPRedirect).

    O protocolo RIP do tipo Vetor de Distncia, j que baseia a escolha de rotas por meio da distncia em nmerode roteadores. O funcionamento do protocolo RIP bem simples, consistindo na divulgao de rotas de cadaroteador para seus vizinhos (situados na mesma rede).

    Cada roteador divulga sua tabela de rotas atravs de um broadcast na rede. Os demais roteadores situados namesma rede recebem a divulgao e verificam se possuem todas as rotas divulgadas, com pelo menos omesmo custo (custo a quantidade de roteadores at o destino).

    Se no possurem rota para determinada rede divulgada, incluem mais uma entrada na sua tabela de rotas ecolocam o roteador que a divulgou como o gateway para aquela rede. Em seguida, sua prpria divulgao derotas j conter a rota nova aprendida. Este processo se repete para todos os roteadores em um conjunto deredes, de modo que, aps vrias interaes, todos j possuem rotas para todas as redes. Uma rota aprendida mantida enquanto o roteador que a originou continuar divulgando. Caso o roteador pare de divulgar a rota ounenhuma mensagem de divulgao seja recebida dele, o roteador que havia aprendido a rota a mantm por160 segundos, findos os quais a rota retirada da tabela de rotas. Neste caso, se outro roteador divulgar umarota para aquela rede especfica, esta ser utilizada.

    No caso em que um roteador, recebe rotas para uma mesma rede divulgadas por roteadores diferentes, a commenor custo usada, sendo as demais descartadas.

    O protocolo RIP no possui suporte para sub-rede (mscara de rede), o que s vem a ser suportado noprotocolo RIPv2.

    O custo de uma rota a quantidade de roteadores que uma mensagem ter que atravessar desde o roteadorque possui a rota at a rede destino. O custo mximo em RIP tem o valor de 16, que significa infinito. Por isto, odimetro mximo de uma rede com protocolo RIP de 14 roteadores.

    A mensagem RIP tem o seguinte formato:

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 17

    0 7 15 23 31Octeto 1 Octeto 1 Octeto 1 Octeto 1

    COMMAND VERSION MUST BE ZEROFAMILY OF NET 1 MUST BE ZERO

    IP ADDRESS OF NET 1MUST BE ZEROMUST BE ZERO

    DISTANCE TO NET 1FAMILY OF NET 2 MUST BE ZERO

    IP ADDRESS OF NET 2MUST BE ZEROMUST BE ZERO

    DISTANCE TO NET 2. . .

    Nesta mensagem, as rotas divulgadas por cada roteador so includas na parte IP ADDRESS OF NET X .

    As figuras abaixo mostram a divulgao de rotas por meio do protocolo RIP. Os roteadores divulgam e recebeminformaes de rotas via RIP, enquanto as estaes apenas aprendem as rotas (RIP passivo).

    1. Roteador G1 divulga sua tabela de rotas, que inicialmente contm apenas as rotas diretas, para as redesligadas diretamente.

    Rede 1Rede 1

    A B C11G 22G

    Rede 3Rede 3Rede 2Rede 2

    Rede GW M Rede GW M Rede GW M Rede GW M Rede GW M

    Tabela de RotasTabela de Rotas

    Rede 2Rede 2G1G1 00 Rede 1Rede 1G1G1 00

    Rede 1 - 0 Rede 1 - 0Rede 2 - 0

    Rede 2 - 0 Rede 3 - 0

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 18

    2. O roteador G2, possui rotas para as redes ligadas diretamente, mas recebe um pacote de divulgao derotas de R1, com uma rede nova (Rede 1). O roteador G2 instala a rota nova na sua tabela de rotas.

    Rede 1Rede 1

    A B C11G 22G

    Rede 3Rede 3Rede 2Rede 2

    Rede GW M Rede GW M Rede GW M Rede GW M Rede GW M

    Tabela de RotasTabela de Rotas

    Rede 1Rede 1G1G1 00

    Rede 1 - 0Rede 2 G1 1

    Rede 1 - 0Rede 2 - 0

    Rede 2 - 0Rede 1 G1 1

    Rede 1 G1 1

    Rede 3 - 0Rede 2 - 0Rede 3 - 0

    3. O Roteador G2 divulga suas rotas para as redes ligadas diretamente, incluindo a rota nova aprendida de G1.G1, recebendo esta divulgao, instala uma rota nova para a Rede 3.

    Rede 1Rede 1

    A B C11G 22G

    Rede 3Rede 3Rede 2Rede 2

    Rede GW M Rede GW M Rede GW M Rede GW M Rede GW M

    Tabela de RotasTabela de Rotas

    Rede 3G2 0

    Rede 1 - 0Rede 2 G1 1

    Rede 1 - 0Rede 2 - 0

    Rede 2 - 0Rede 1 G1 1

    Rede 1 G1 1

    Rede 3 - 0Rede 2 - 0Rede 3 - 0

    Rede 1G2 1Rede 2G2 0

    O protocolo RIP possui problemas intrnsecos de loop e convergncia. O problema de convergncia ocorre noseguinte caso:

    Rede A R1 R2 R3 Rede BX

    O roteador R2 havia aprendido uma rota para a Rede A, atravs de R1. Tanto R1 quanto R2 divulgam de 30 em30 segundos a sua tabela de rotas por meio de RIP. No funcionamento normal, se R1 perder a rota para a Rede

  • CURSO REDES DE COMPUTADORES - INTERNET E ARQUITETURA TCP/IP - PUC RIO/CCE 19

    A, o roteador R1 divulgar uma mensagem RIP contendo uma rota para a Rede A com custo infinito (=16). Oroteador R2, ao receber esta rota, verificar que ela veio de R1, de onde havia aprendido a rota para a rede A.Ele ento proceder como determina o protocolo RIP e colocar a rota tambm com custo = 16.

    Entretanto se, quando R1 perder a rota para a Rede A, R2 enviar sua tabela de rotas por RIP antes que R1 otenha feito, R1 verificar que R2 possui uma rota melhor que ele para a rede A, com custo = 2 (j que R2enviaria por meio de R1). R1 ento instala uma rota para a rede A com custo = 3, sendo R2 o gateway da rota.Na prxima divulgao de R1, R2 constatar uma rota para a rede A com custo = 3. Ele ento atualizar suaprpria rota (j que a havia aprendido de R1), com custo = 4. A prxima divulgao de R2, causar a respectivaalterao do custo da rota em R1 para 5. Isto ocorre at que o custo desta rota atinja o valor 16.

    O problema de convergncia pode ser reduzido adotando-se as seguintes tcnicas:

    split -horizon update: no divulga rotas de volta para a interface de onde recebeu a informao de rota

    hold-down: no aceita por 60s informaes sobre uma rede aps ela ser dada como no -alcanvel

    poison-reverse: divulga rotas de volta para a interface de onde recebeu a rota, mas com mtrica 16 (no-alcanvel e mantm este estado durante um tempo mnimo, mesmo recebendo rota para a rede

    riggered-updates: fora um roteador a divulgar imediatamente as rotas quando recebe rede no-alcanvel

    Protocolo RIP2

    O protocolo RIP2 bastante semelhante ao RIP, com as seguintes adies:

    As rotas contm a mscara da rede destino, permitindo divulgar rotas para subredes

    O protocolo pode ser autenticado, adicionando segurana

    RIP2 pode carregar informaes de outros roteadores adjacentes, que funcionam com outros protocolos(como OSPF e BGP-4)

    A mensagem RIP mostrada abaixo:

    00 77 1515 2323 3131Octeto 1Octeto 1 Octeto 1Octeto 1 Octeto 1Octeto 1 Octeto 1Octeto 1

    COMMAND (1) VERSION (2) MUST BE ZEROFAMILY OF NET 1 ROUTE TAG

    IP ADDRESS OF NET 1SUBNET MASK

    NEXT HOP GATEWAYDISTANCE TO NET 1

    . . .