Curso de Pós-Graduação “Lato
Transcrição
Curso de Pós-Graduação “Lato
Curso de Pós-Graduação “Lato-Sensu” em Redes de Computadores Arquitetura TCP/IP Hermes Senger DC/UFSCar – 2012 Pós-Graduação “Lato-Sensu” em Redes de Computadores Nota: Notas de aula do prof. Hélio Crestana Guardia. Pós-Graduação “Lato-Sensu” em Redes de Computadores 2 ICMP: Internet Control Message Protocol ftp://ftp.rfc-editor.org/in-notes/rfc792.txt Considerado parte da camada IP Deve estar presente em toda implementação ICMP, uses the basic support of IP as if it were a higher level protocol, however, ICMP is actually an integral part of IP, and must be implemented by every IP module. ...The purpose of these control messages is to provide feedback about problems in the communication environment, not to make IP reliable. Utilizado para o envio de mensagens de erro e outras condições que requerem atenção Mensagens recebidas são tratadas pela camada IP ou pela camada superior (TCP ou UDP) Mensagens são transmitidas dentro de datagramas IP Cabeçalho IP Mensagem ICMP Datagrama IP Pós-Graduação “Lato-Sensu” em Redes de Computadores 3 Tipos de Mensagens ICMP Mensagens ICMP: consultas ou tratamentos de erro Mensagens de erro sempre contêm o cabeçalho do IP causador do erro e os 8 primeiros bytes da mensagem dentro dele (cabeçalho UDP/TCP), para permitir à origem identificar o processo (porta) associado à comunicação Para prevenir explosões de mensagens ICMP (broadcast storms), mensagens ICMP NÃO são geradas em resposta a: outras mensagens de erro ICMP datagrama IP destinado a endereço de broadcast datagrama enviado dentro de quadro de broadcast fragmentos que não o inicial de um pacote datagrama cujo endereço de origem não identifica um host único (0, loopback, broadcast ou multicast) Pós-Graduação “Lato-Sensu” em Redes de Computadores 4 Pacote ICMP ICMP messages are sent using the basic IP header. The first octet of the data portion of the datagram is a ICMP type field; the value of this field determines the format of the remaining data. 0 8 Tipo (8 bits) 16 Código (8 bits) 31 Checksum da msg (16 bits) Conteúdo (dependente do tipo e código) Mensagem ICMP Pós-Graduação “Lato-Sensu” em Redes de Computadores 5 Tipos ICMP type code 3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Descrição Query Error destination unreachable: network unreachable host unreachable protocol unreachable port unreachable fragmentation needed but don't-fragment bit set source route failed destination network unknown destination host unknown source host isolated (obsolete) destination network administratively prohibited destination host administratively prohibited network unreachable for TOS host unreachable for TOS communication administratively prohibited by filtering host precedence violation precedence cutoff in effect Pós-Graduação “Lato-Sensu” em Redes de Computadores * * * * * * * * * * * * * * * * 6 Tipos ICMP type code 4 Descrição Query Error 0 source quench (elementary flow control) * 0 1 2 3 redirect: redirect for network redirect for host redirect for type-of-service and network redirect for type-of-service and host * * * * 0 0 echo reply (Ping reply) * 8 0 echo request (Ping request) * 9 10 0 0 router advertisement router solicitation * * 5 Pós-Graduação “Lato-Sensu” em Redes de Computadores 7 Tipos ICMP type code Descrição Query Error 0 1 time exceeded: time-to-live equals 0 during transit (Traceroute) time-to-live equals 0 during reassembly * * 12 0 1 parameter problem: IP header bad (catchall error) required option missing * * 13 14 0 0 timestamp request timestamp reply * * 15 16 0 0 information request (obsolete) information reply (obsolete) * * 17 18 0 0 address mask request address mask reply * * 11 Pós-Graduação “Lato-Sensu” em Redes de Computadores 8 ICMP Echo Request e Echo Reply Utilizado para testar se uma estação é atingível e está ativa Transportado dentro de pacotes IP, permite verificar se a rede e o sistema de roteamentos estão funcionando, incluindo tabelas de rota e roteadores Tipos: 8 (Echo Request); 0 (Echo Reply) Número de seqüência associa pedido e resposta Receptor deve retornar echo reply com o mesmo número de seqüência e os mesmos dados recebidos na parte opcional. Função implementada em muitos sistemas pelo comando PING Tipo (8 ou 0) Código (0) Checksum da msg identificador Número de seqüência Dados (opcionais) ICMP Echo request e reply Pós-Graduação “Lato-Sensu” em Redes de Computadores 9 PING Envia ICMP Echo request para um host e espera Echo reply Maioria das implementações TCP/IP provê um servidor PING dentro do próprio sistema operacional Servidor deve retornar os campos identificador e número de seqüência recebidos na mensagem, bem como quaisquer dados enviados no campo de dados Campo identificador normalmente é preenchido pelo S.O. com o identificador do processo (PID) que gerou o pedido Número de seqüência é iniciado em 0 e incrementado a cada nova mensagem enviada Pós-Graduação “Lato-Sensu” em Redes de Computadores 10 Uso das Mensagens ICMP: PING Uso: ping [-t] [-a] [-n num] [-l tamanho] [-f] [-i TTL] [-v TOS] [-r num] [-s num] [[-j lista_hosts] | [-k lista_hosts]] [-w tempo_limite] lista_destino Opções (MS NT) - ajustes são realizados através dos campos do cabeçalho IP: -t Dispara contra o host especificado até ser interrompido. -a Resolve endereços para nomes de host. -n num Número de requisições de eco a enviar. O valor padrão é 4. -l tam Envia o tamanho do buffer. -f Ativa o sinalizador de não fragmentação no pacote IP -i TTL Define o tempo de vida usado no pacote IP -v TOS Define o tipo de serviço no pacote IP -r num Registra rota dos pacotes para <num> saltos usando o campo RR do IP -s num Registra a data e hora para o número de saltos definidos em <num> -j lista_hosts Roteia pacotes utilizando rota de origens definida em <lista_hosts> -k lista_hosts Roteia pacotes usando rota restrita de origens definida <lista_hosts> -w t_limite Tempo limite (ms) a aguardar para cada resposta Pós-Graduação “Lato-Sensu” em Redes de Computadores 11 Uso das Mensagens ICMP: PING Uso: ping [-LRUbdfnqrvVaA] [-c count] [-i interval] [-w deadline] [-p pattern] [-s packetsize] [-t ttl] [-I interface or address] [-M mtu discovery hint] [-S sndbuf] [ -T timestamp option ] [ -Q tos ] [hop1 ...] destination Pós-Graduação “Lato-Sensu” em Redes de Computadores 12 ICMP Unreachable error Enviado quando um roteador não consegue entregar um datagrama IP Campo de código fornece mais detalhes sobre o problema, que nem sempre pode ser identificado pelo roteador (host pode estar desligado, e.g.) Tipo (3) Código (0-12) Checksum da msg Não utilizado (deve ser 0) Cabeçalho IP + primeiros 8 bytes dos dados do datagrama ICMP unreachable message Pós-Graduação “Lato-Sensu” em Redes de Computadores 13 Códigos ICMP Unreachable Códigos e significados das mensagens de problema de alcance: 0 : Network unreachable – Rede inatingível 1 : Host unreachable – Máquina inatingível 2 : Protocol unreachable – Protocolo inatingível 3 : Port unreachable – Porta inatingível (não registrada) 4 : Fragmentation needed and DF set – Necessário fragmentar 5 : Source route failed – Falha no roteamento pela origem 6 : Destination Network unknown – Rede destino desconhecida 7 : Destination Host unknown – Máquina destino desconhecida 8 : Source host isolated 9 : Communication with dest. Net administratevely prohibited 10: Com. with dest. Host adm. prohib 11: Network unreachable for TOS 12: Host unreachable for TOS Pós-Graduação “Lato-Sensu” em Redes de Computadores 14 ICMP Source Quench Enviado quando um pacote é descartado em um roteador, por problemas de falta de capacidade para tratamento ou de espaço para armazenamento temporário Endereço de origem do pacote indica o roteador congestionado Não é preciso enviar uma mensagem para cada pacote descartado Host de destino também pode enviar Source Quench quando pacotes estão chegando muito rapidamente para serem armazenados em buffers Tipo (4) Código (0) Checksum da msg Não utilizado (deve ser 0) Cabeçalho IP + primeiros 8 bytes dos dados do datagrama ICMP Source Quench message Pós-Graduação “Lato-Sensu” em Redes de Computadores 15 ICMP Source Quench RFC 792 não determina quando roteador ou host destino devem enviar ICMP Source Quench Roteador pode enviar ao perceber escassez de recursos RFC 1812 (Requirements for IP Version 4 Routers) indica que roteadores não deveriam enviar ICMP SQ, pois isso pode gerar mais tráfego em um canal já congestionado Embora ICMP SQ seja uma notificação da camada de rede (Internet), IP não possui mecanismo para controle de fluxo UDP também não tem mecanismo para controle de fluxo TCP possui mecanismo de controle de fluxo TCP é notificado da chegada de ICMP SQ Tratamento equivale à perda de um segmento, que precisa ser retransmitido Taxa de transmissão é ajustada de acordo com o mecanismo slow start / fast recovery Pós-Graduação “Lato-Sensu” em Redes de Computadores 16 ICMP Redirect Usada por roteador para pedir mudança de rota num host na mesma rede Envio ocorre quando host encaminha pacote usando rota não otimizada Não serve para a propagação de rotas entre roteadores Infos do cabeçalho IP permitem ao host identificar destino da rota Códigos: 0 : Redireciona datagramas para uma rede (obsoleto) 1 : Redireciona datagramas para um Host 2 : Redireciona datagramas para o TOS e Rede 3 : Redireciona datagramas para o TOS e Host Tipo (5) Código (0-3) Checksum da msg Endereço IP do roteador Cabeçalho IP + primeiros 8 bytes dos dados do datagrama ICMP Redirect message Pós-Graduação “Lato-Sensu” em Redes de Computadores 17 Esquema de rede: Roteador default Roteador para outra rede local Pós-Graduação “Lato-Sensu” em Redes de Computadores 18 ICMP Time Exceeded Usada para prevenir que pacotes circulem indefinidamente Ocorre quando: Campo TTL chega em 0 Tempo de espera por fragmentos de um pacote é excedido Códigos: 0 : TTL reduzido a 0 1 : Excedido tempo de espera por fragmentos Tipo (11) Código (0 ou 1) Checksum da msg Não usado (deve ser 0) Cabeçalho IP + primeiros 8 bytes dos dados do datagrama ICMP Time Exceeded message Pós-Graduação “Lato-Sensu” em Redes de Computadores 19 ICMP Address Mask Request e Reply Permite a uma estação diskless obter sua máscara de rede (da mesma forma como BOOTP obtém um IP) Tipos: 17 – Address Mask Request 18 – Address Mask Reply Tipo (17/18) Código (0) Identificador Checksum da msg Número de seqüência Máscara de rede ICMP Address Mask Request e Reply Pós-Graduação “Lato-Sensu” em Redes de Computadores 20 ICMP Parameter Problem Indica problemas com campos do cabeçalho IP que forçaram o seu descarte Envio ocorre quando pacote IP é descartado e não há outro ICMP mais específico para indicar o erro Códigos: 0: ponteiro indica posição do campo defeituoso 1: Opção obrigatória não especificada 2: Problema no tamanho Tipo (12) Ponteiro Código (0 ou 1) Checksum da msg Não usado (deve ser 0) Cabeçalho IP + primeiros 8 bytes dos dados do datagrama ICMP Parameter problem message Pós-Graduação “Lato-Sensu” em Redes de Computadores 21 ICMP Timestamp Request and Reply Permite obter a hora atual em host remoto (precisão de milisegundos) Serve para sincronização de relógios e cálculo do tempo em trânsito Outras formas de obter a data e a hora: telnet host daytime (porta 13 TCP/UDP) Network Time Protocol (NTP): mecanismo de sincronização de relógios Unix timed: daemon para sincronização de relógios Tipo (13 ou 14) Código (0) Checksum da msg identificador Número de seqüência Timestamp da geração Timestamp da recepção Timestamp da transmissão ICMP timestamp request e reply Pós-Graduação “Lato-Sensu” em Redes de Computadores 22 ICMP Router Discovery Permite a descoberta de um roteador na rede Propagação normalmente ocorre usando o endereço multicast all-hosts (224.0.0.1) ou o endereço broadcast da sub-rede Roteadores propagam informações a cada 10 minutos Informações normalmente têm validade de 30 minutos Outras formas para descoberta de roteador: BOOTP e o DHCP Tipo (9) Código (0) Checksum da msg Núm endereços Tam endereço * Tempo de vida ** Endereço Roteador 1 Número de preferência 1 Endereço Roteador 2 Número de preferência 2 … ICMP Router Advertisement (*) Tamanho em palavras de 32 bits: 1 para IPv4 Pós-Graduação “Lato-Sensu” em Redes de Computadores 23 ICMP Router Solicitation Permite que cliente solicite que roteadores na rede propaguem suas informações (Router Advertisement) Propagação normalmente ocorre usando o endereço multicast allrouters (224.0.0.2) ou o endereço broadcast da sub-rede Tipo (10) Código (0) Checksum da msg Reservado ICMP Router Solicitation Pós-Graduação “Lato-Sensu” em Redes de Computadores 24 Uso das Mensagens ICMP TRACEROUTE Permite examinar a rota seguida por um datagrama IP de um host até outro Pode apresentar resultados diferentes, uma vez que pacotes são roteados independentemente Usa mensagens ICMP e o campo TTL do pacote IP Pós-Graduação “Lato-Sensu” em Redes de Computadores 25 Uso das Mensagens ICMP: TRACEROUTE Uso: tracert [-d] [-h max_saltos] [-j lista_hosts] [-w tempo] destino Opções (MS NT) - ajustes realizados através dos campos do cabeçalho IP: -d Não resolver endereços para nomes de host -h max_saltos Número máximo de saltos para o destino -j lista_hosts Rota ampliada de origens em lista_hosts -w tempo Tempo de espera em milissegundos para cada resposta. Pós-Graduação “Lato-Sensu” em Redes de Computadores 26