Redes de Computadores Protocolos, DNS, DHCP, Ethereal e comandos em Linux Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Março de 2006 Endereços e nomes… Quaisquer duas estações de uma rede têm que ter endereços da rede que as interliga para poderem comunicar Aula Prática 2 Redes de Computadores 2 1 Dar nomes aos computadores Aula Prática 2 Redes de Computadores 3 DNS – Domain Name System • O DNS é o software que traduz o nome de um domínio num endereço de rede, na sua forma numérica, e vice-versa. elara.ipb.pt ↔ 193.136.195.220 • Genericamente, o nome de uma estação na rede será: nodarede.subdominio.dominio.dominioprincipal Aula Prática 2 Redes de Computadores 4 2 Árvore do DNS Aula Prática 2 Redes de Computadores 5 Funcionamento do DNS Aula Prática 2 Redes de Computadores 6 3 Nomes ↔ Endereços • /etc/resolv.conf – nslookup – host Aula Prática 2 Redes de Computadores 7 Protocolo DHCP • Protocolo DHCP – Dynamic Host Configuration Protocol fornece uma forma de transmitir informação de configuração a hosts numa rede TCP/IP • Baseia-se no protocolo BOOTP, adicionando a capacidade de alocação automática de endereços de rede reutilizáveis, bem como opções adicionais de configuração – Endereço do gateway, p. ex. Aula Prática 2 Redes de Computadores 8 4 DHCP - Formato das mensagens • • • • • • • • • • Code: indica se se trata de um request ou de um reply (1 - request; 2 - reply) HWtype: Tipo de hardware (p.e. 1 - Ethernet; 6 Redes IEEE 802) Length: tamanho do endereço de hardware, em bytes (p.e. Ethernet e Token Ring utilizam 6 octetos) Hops: o cliente coloca este campo a zero. De seguida é incrementado por cada encaminhador que reenvia a mensagem para outro servidor, sendo usado para identificar loops. O RFC 951 sugere o valor 3 para indicar um loop Client IP address: endereço definido pelo cliente; se não conhece o seu endereço IP coloca 0.0.0.0 Your IP address: fornecido pelo servidor se o cliente tiver enviado 0.0.0.0 Server IP address: definido pelo servidor Router IP address: endereço de um agente BOOTP de reencaminhamento da mensagem Client hardware address: endereço definido pelo cliente Boot file name: valor fornecido pelo servidor, que indica o caminho completo para o ficheiro a ser utilizado pelo cliente na sua configuração Aula Prática 2 Redes de Computadores 9 DHCP - Funcionamento Aula Prática 2 Redes de Computadores 10 5 O protocolo IP • É o principal dos protocolos de rede – Implementa um serviço de datagramas “connectionless” – O IP transmite para a rede pacotes sem ser necessário o estabelecimento prévio de ligações. Funciona por isso em modo não baseado em ligações • Os datagramas IP – Os pacotes gerados no IP, carregam os endereços IP do remetente e do destinatário. Estes pacotes são normalmente designados por datagramas Aula Prática 2 Redes de Computadores 11 O datagrama IP • • • • • • • Aula Prática 2 O alinhamento é 32-bits. O bit mais à esquerda é enviado primeiro (o network byte order é big endian). São transmitidos os bits 0-7, depois 8-15, a seguir 16-23 e no fim 24-31. Version é o primeiro campo, permite que cada versão do protocolo use um formato diferente para o cabeçalho e seja reconhecido pelos vários sistemas (no IPv4 assume o valor 4). HLEN especifica o tamanho do cabeçalho em palavras de 32-bits (o cabeçalho sem opções tem 20 octetos, o habitual, e no máximo tem 60). TOS Type of Service, permite serviços diferenciados. LENGTH é o comprimento do datagrama em octetos (com 16 bits neste campo, o datagrama IP terá no máximo 65535 octetos incluindo o cabeçalho). Os campos IDENT, FLAGS, OFFSET são usados para a fragmentação e reconstrução dos datagramas. Redes de Computadores 12 6 O datagrama IP • • • • • O campo de IDENT contem um identificador único de cada datagrama IP (normalmente é incrementado numa unidade em cada datagrama consecutivo). Este valor é copiado para todos os fragmentos de um datagrama. O campo de FLAGS tem um bit para “more fragments”. Este bit está activo em todos os fragmentos de um datagrama, excepto o último. O campo de FLAGS tem outro bit que é o “don’t fragment”. Se este bit estiver activo um datagrama IP não pode ser fragmentado (é devolvido à origem o erro ICMP “fragmentation needed but don’t fragment bit set”). O campo OFFSET contém o offset do início do fragmento em relação ao datagrama original (tem que ser um múltiplo de 8...). Num fragmento, o campo LENGTH é alterado para o tamanho desse fragmento. Aula Prática 2 Redes de Computadores 13 O datagrama IP • TTL (Time to live) limita o número de routers por onde o datagrama pode passar, usado para evitar que os datagramas circulem indefinidamente. • Protocol: UDP = 17 e TCP = 6. • Checksum é a soma em complemento para 1 do cabeçalho, usando palavras de 16-bits. (Se o receptor ao calcular o checksum não obtiver tudo ´1´s é porque há erro!) Aula Prática 2 Redes de Computadores 14 7 O protocolo ICMP (Internetwork Control Message Protocol) • • • • • • Internet Control Message Protocol (ICMP) A sua principal função é emitir mensagens quando acontece algum erro Como o IP é um serviço de envio de pacotes sem ligação, e não confiável, o ICMP permite aos routers enviar mensagens de erros ou de controle a outros routers ou hosts Este protocolo apenas reporta erros à fonte original, essa depois deverá relatar os erros aos programas de aplicação e adoptar uma acção a fim de corrigir o problema. As mensagens são carregadas em pacotes com a mesma estrutura dos datagramas IP (e encapsuladas nestes), que por sua vez são encapsulados em tramas Ethernet Uma das mensagens que o ICMP pode enviar é: – Destination Unreachable, o qual, por sua vez pode ser dos seguintes tipos: • • • • Network Unreachable (host não alcançável) Host Unreachable (porta não alcançável) Destination Host Unknown (host destino desconhecido) Destination Network Unknown (rede destino desconhecida) Aula Prática 2 Redes de Computadores 15 Formato das mensagens ICMP 78 0 Tipo 1516 Código Identificador 31 Checksum Nº de sequência Dados Opcionais • Tipo de mensagens ICMP – Ex: 0 - echo reply, 8 – echo request • O número de sequência começa em 1 e é incrementado sempre que uma nova mensagem é enviada • 2 aplicações que fazem uso do ICMP: – ping – traceroute Aula Prática 2 Redes de Computadores 16 8 ARP e RARP Qualquer nó activo de uma rede tem que ter um endereço para o interface que lhe dá conectividade Aula Prática 2 Redes de Computadores 17 ARP – Address Resolution Protocol Duas estações ligadas a uma rede só podem comunicar se uma conhecer o “endereço do hardware” (endereço do sub-nível MAC) da outra e vice-versa. Aula Prática 2 Redes de Computadores 18 9 ARP ARP Aula Prática 2 RARP Redes de Computadores 19 Funcionamento do ARP Aula Prática 2 Redes de Computadores 20 10 Funcionamento do ARP (2) • O ARP mapeia endereços IP em Ethernet (MAC) • No slide anterior, na rede 192.35.246.0, o host 192.35.246.46 pretende estabelecer comunicação com o host 192.35.246.104 – Está na mesma rede então pode conversar directamente via Ethernet (precisa saber o endereço MAC) – O nosso sistema irá procurar então o endereço 192.35.246.104 na sua tabela ARP, para saber o MAC • Caso o encontre, o sistema irá adicionar um cabeçalho Ethernet e enviar o pacote. • E se não o tiver na sua tabela? Aula Prática 2 Redes de Computadores 21 Funcionamento do ARP (3) • Como solução o nosso host utiliza o protocolo ARP para enviar um pedido ARP – Um pedido ARP diz “Eu necessito que me enviem o endereço Ethernet referente a 192.35.246.104” e é enviado para toda a rede. – Então o 192.35.246.104 verá o pedido e responderá com uma resposta ARP indicando que o IP 192.35.246.104 corresponde ao MAC 8:0:20:1:56:34 (exemplo) – O nosso sistema irá guardar esta informação na sua tabela ARP, desta forma os futuros pacotes para esse mesmo endereço poderão ir directamente. • Nota: Os endereços Ethernet (MAC) são de 48 bits (6 bytes), e são convencionalmente apresentados em hexadecimal: – De 00:00:00:00:00:00 a FF:FF:FF:FF:FF:FF – Os 3 bytes mais significativos representam o código do fabricante e os 3 restantes o número de série Aula Prática 2 Redes de Computadores 22 11 O protocolo RARP • O RARP (Reverse Address Resolution Protocol) é um protocolo que permite a uma estação descobrir o seu próprio endereço IP. – É utilizado por estações de trabalho (terminais) que não possuem disco rígido – Para isso ela envia uma mensagem ao servidor RARP da sua rede local com o seu endereço MAC, e o servidor enviará então à estação o seu endereço IP – É normalmente utilizado no arranque das máquinas. – Para além desta situação o RARP não é utilizado Aula Prática 2 Redes de Computadores 23 O pacote ARP/RARP Aula Prática 2 Redes de Computadores 24 12 Trama (frame) Ethernet • • • • • • • Preâmbulo – para efeitos de sincronização SFD – Separador do início de trama FCS – Frame Check Sequence O tamanho mínimo de uma trama (minFrameSize) é 64 octetos. O tamanho máximo de uma trama (maxFrameSize) é 1518 octetos. Para o cálculo do minFrameSize e do maxFrameSize não são considerados o preâmbulo e o SFD Se os dados contidos numa trama são insuficientes para constituir uma trama com minFrameSize, i.e., o valor do tamanho do campo de dados (LLCdataSize) é inferior a 46 (minFrameSize - 2 x addressSize - lengthSize - crcSize), são inseridos octetos de padding (PAD) no fim do campo de dados e antes de calcular o FCS, até obter o tamanho mínimo. O valor do PAD não é especificado. Aula Prática 2 Redes de Computadores 25 TCP/IP – onde se situa o quê • TCP – – • UDP – – • Protocolo principal da pilha Encaminha datagramas (sem conexão) Serviço do tipo best-effort ICMP – – Auxiliar do IP Envia mensagens de erro • IGMP • ARP, RARP – – Aula Prática 2 Envia/recebe datagramas das aplicações Transporte não fiável IP – – – • Orientado à conexão Transporte fiável entre estações Gere grupos de multicasting Resolução de endereços IP em endereços físicos Redes de Computadores 26 13 Ethereal • O Ethereal é uma aplicação interactiva utilizada para a análise de tráfego e de protocolos em redes de comunicações • Permite: – Monitorizar e apresentar em tempo real informação acerca do tráfego existente na rede – Capturar tráfego da rede e armazenar os respectivos pacotes num buffer (ou opcionalmente num ficheiro) para posterior análise. Esta captura pode ser feita utilizando filtros definidos por protocolo, por endereço ou por tamanho de pacote – Visualizar e analisar os pacotes armazenados no buffer de captura, apresentando-os sob diversas formas • O Ethereal só captura pacotes que circulem na rede local à qual está ligado Aula Prática 2 Redes de Computadores 27 Alguns comandos em Linux • • • • • • • • ifconfig arp route traceroute netstat ftp telnet ssh Aula Prática 2 Redes de Computadores 28 14