Outros Protocolos
Prof. Dr. José Marcos C. Brito
Internet Control Message Protocol - ICMP
• Usado pelos hosts e roteadores para troca de informações relacionadas à camada de rede
– Tipicamente report de erro.
• Mensagens ICMP são transportadas por datagramas IP
• Mensagens contêm um campo de tipo e um campo de código
• O cabeçalho e os oito primeiro bytes do
datagrama IP que causou a mensagem também fazem parte da mesma
Algumas mensagens ICMP
TTL expired 0
11
Source quench 0
4
Destination port unreachable 2
3
Destination host unreachable 1
3
Destination network unreachable 0
3
Echo request 0
8
Echo reply (ping) 0
0
Descrição Cód
Tipo
Alguns usos do ICMP
• Ping
– Host de origem envia uma mensagem Echo request para o host especificado. O host de destino responde com um echo reply.
• Controle de congestionamento (quase nunca utilizada na prática)
– Roteador em congestionamento envia um
Alguns usos do ICMP
• Traceroute
– Host de origem envia datagramas UDP (com número de porta improvável).
– O primeiro datagrama vai com campo TTL = 1, o segundo com TTL = 2 e assim por diante.
– Host de origem iniciar um contador de tempo para cada datagrama
– Quando o roteador descarta o datagrama (TTL = 0), este envia de volta uma mensagem TTL expired, que contém o nome do roteador e seu endereço IP.
Alguns usos do ICMP
• Traceroute
– A fonte não sabe a quantos hops de distância está o destino.
– No entanto, o primeiro datagrama que chegar ao destino deve gerar uma mensagem ICMP Port
Unreachable, pois um número de porta improvável foi utilizado.
– Quando a fonte recebe esta mensagem ela sabe que o destino foi alcançado e pode parar de enviar
datagramas de probe.
Mapeamento de Endereços
• Mapeamento entre endereços lógicos e físicos
– ARP: Address Resolution Protocol
• Mapemanto entre endereços físicos e lógicos
– RARP: Reverse Address Resolution Protocol – BOOTP: Bootstrap Protocol
– DHCP: Dynamic Host Configuration Protocol
Protocolo de resolução de endereço - ARP
• Camada de enlace não entende endereços IP
– Ex.: Em Redes Locais o que a placa de rede vê é o endereço Ethernet (48 bits)
– Há necessidade de converter endereço IP em endereço da Camada de Enlace
ARP - Exemplo
Exemplo
• Usuário do host 1 envia mensagem para um usuário do host 2
– Através do DNS (Domain Name System) o
endereço do host 2 é convertido para o endereço IP correspondente (192.31.65.5)
– O software IP no host 1 olha para o endereço de destino e sabe que ele está na sua própria rede, mas não sabe o endereço Ethernet
correspondente.
Exemplo
• Como descobrir o endereço Ethernet do endereço IP 192.31.65.5 ?
– Ter um arquivo de configuração que mapeia os endereços IP em endereços Ethernet é uma solução possível, mas não é indicada pela complexidade resultante quando o número de máquinas cresce
ARP
• Host 1 envia um pacote em broadcast com a seguinte pergunta: “quem nesta rede tem o endereço 192.31.65.5” ?
• Host 2 responde enviando seu endereço Ethernet (E2). A resposta é Unicast.
• Host 1 aprende que associado ao endereço IP 192.31.65.5 está o endereço Ethernet E2
ARP packet
ARP
• O Host 1 armazena o par de endereços (IP,Ethernet) da máquina 2 para uso futuro
– O cache dura tipicamente 20 minutos
• O par de endereços do Host 1 está contido na mensagem de broadcast, permitindo que as demais máquinas da rede tomem conhecimento deste par de endereços (mas não
necessariamente o processam).
ARP
• Quando a máquina faz o boot, ela envia uma mensagem do tipo “qual máquina da rede tem meu próprio endereço?”
– O objetivo desta mensagem é apenas fazer um broadcast do par de endereços
(IP,Ethernet) da máquina que está
inicializando, de modo que os demais Hosts possam aprender esta informação
ARP
– Se outro Host responde “Meu endereço Ethernet é EX”, existem dois Hosts na rede com o mesmo endereço IP. A máquina que está inicializando aborta o processo e gera mensagem de erro
Quatro casos de uso do ARP
Host 1 deseja enviar pacote para o Host 4
• Solução 1: O roteador R1 pode ser
configurado para responder às requisições ARP para a rede 192.31.63.0
– O Host 1 fará o mapeamento (192.31.63.8,E3) e enviará todo o tráfego destinado ao Host 4 para o roteador local
– Esta solução é chamada de PROXY ARP
Host 1 deseja enviar pacote para o Host 4
• Solução 2: O Host 1 verifica que o pacote se destina a uma rede remota e envia todo o tráfego para o endereço Ethernet default que manuseia todo o tráfego remoto, neste caso E3.
– Esta solução não requer que o roteador R1 saiba quais redes remotas ele está servindo.
O que acontece no roteador R1?
• Com base no endereço IP de destino e em sua tabela de roteamento ele descobre que os pacotes destinados à rede 192.31.63.0 devem ser enviados para o roteador
192.31.60.7.
– Se ele ainda não conhece o endereço FDDI deste roteador ele envia, em broadcast, uma requisição ARP solicitando que a máquina 192.31.60.7 se
O que acontece no roteador R2?
• O roteador examina o endereço IP do pacote e descobre que deve enviá-lo à máquina 192.31.63.8
– Se ele ainda não sabe o endereço Ethernet correspondente, ele envia uma requisição ARP para a rede e aprende que o Host de destino tem endereço Ethernet E6.
Mensagem para a WAN
• O roteador R1 recebe a mensagem e,
através de sua tabela de roteamento,
descobre que deve enviá-la para o
roteador FDDI conectado à WAN (que
possui endereço IP 192.31.60.8, por
exemplo, e endereço FDDI F2)
RARP
• Host que não conhece seu endereço lógico envia mensagem de broadcast perguntando:
“Qual é meu endereço lógico?”
• Servidor define endereço lógico e encaminha de volta para o host.
• Como a mensagem de broadcast é na camada de enlace, deve haver um servidor RARP para cada domínio de broadcast. PROBLEMA
• Está sendo abandonado.
BOOTP
• Protocolo cliente/servidor da camada de aplicação
• Cliente e servidor podem estar na mesma rede ou em redes separadas
• As mensagens BOOTP são encapsuladas em segmentos UDP, que são transportados por datagramas IP
• Não é um protocolo de configuração dinâmica
– Deve preexistir no servidor uma tabela que
Cliente e servidor podem estar na mesma rede ou em redes diferentes
Cliente e Servidor na mesma rede
• Cliente envia mensagem de broadcast perguntando “qual é meu endereço IP?”.
• O endereço IP da fonte é todo 0 (o cliente não sabe qual é seu endereço)
• O endereço IP de destino é todo 1 (o
cliente não sabe o endereço do servidor)
Cliente e Servidor em redes diferentes
• Mensagem broadcast IP não passa pelo roteador
– Há necessidade de um agente de retransmissão que conheça o endereço unicast do servidor BOOTP
• Agente de retransmissão encapsula a
mensagem BOOTP em um datagrama unicast e a encaminha para o servidor
– Agente inclui seu endereço IP na mensagem para que a mesma seja devolvida para ele.
• O agente recebe a resposta e a encaminha para o cliente BOOTP
Problemas com o BOOTP
• O que acontece se o host mudar de uma rede física para outra?
• O que acontece se um host quiser um endereço IP temporário?
• O BOOTP não consegue lidar com isto, pois as associações entre endereços físicos e lógicos é estática e determinada em uma tabela
DHCP
• Permite alocação estática ou dinâmica de endereços
– Com alocação estática funciona como o BOOTP.
• Há compatibilidade, um cliente BOOTP pode acessar um servidor DHCP
– Com alocação dinâmica há um banco de dados com um pool de endereços IP disponíveis
• Servidor atribui um endereço IP disponível por um período negociável
DHCP
• Servidor primeiro verifica tabela estática, se não houver associação estática, utiliza o pool de endereços disponíveis para definir de forma dinâmica o endereço.
• A alocação dinâmica é temporária
– Valor é fornecido pelo servidor na mensagem de resposta.
– Esgotado o tempo de validade, o cliente deve deixar de usar o endereço ou solicitar renovação (que pode
Mensagens DHCP
• DHCP server discovery
– Enviada em um segmento UDP para a porta 67
– Endereço IP de destino 255.255.255.255 – Endereço IP de origem 0.0.0.0
– Mensagem alcança o servidor DHCP ou o agente de retransmissão (como no BOOTP)
Mensagens DHCP
• DHCP server offer
– Servidor responde se oferecendo como servidor (pode haver mais de um)
– Mensagem contém o endereço IP proposto, a máscara de rede e o tempo de vida do
endereço
DHCP mensagens
• DHCP request
– Cliente escolhe servidor (se houver mais de uma resposta) e responde com a mensagem de resposta, fazendo um eco dos parâmetros recebidos.
• DHCP ack
– Servidor reconhece o recebimento do request, confirmando os parâmetros requisitados.