Em qualquer tipo de organização, independentemente de sua infraestrutura, e para muitos usuários, é natural que em algum momento do dia a dia seja necessária a utilização de utilitários que foram projetados para validar, otimizar e monitorar diversos aspectos do sistema.
Uma dessas áreas está associada à rede, que é essencial não só para o acesso à Internet, mas também é essencial, no caso de ambientes corporativos, para que as funções, processos e serviços dos servidores funcionem de forma correta. . Dentre os utilitários que nos permitem um controle centralizado sobre o estado da rede está o comando ping, para que a Solvetic analise o que é este comando e como funciona, para este tutorial usaremos o Ubuntu 18.04.
Qual é o comando pingO comando ping foi desenvolvido como um utilitário de rede que está disponível para a maioria dos sistemas operacionais cuja missão é basicamente validar se um host está acessível em uma rede de protocolo de Internet (IP), ou seja, com o ping será possível verificar se um computador é capaz de se comunicar através da rede, local ou externa, com outro computador ou dispositivo de rede.
Para que todo esse processo seja realizado corretamente, o comando ping envia uma série de mensagens, denominadas ECHO_REQUEST, do Internet Control Message Protocol (ICMP) para o host de destino e passa a aguardar uma resposta de eco ICMP, denominada ECHO_RESPONSE.
Com base no número de respostas que são retornadas e em quanto tempo demoram para retornar, teremos informações fornecidas pelo comando ping para executar as tarefas de administração e controle de rede. Se o computador de destino estiver ativo, é possível medir o tempo que os pacotes levam para chegar ao host de destino e retornar ao nosso computador, isso é chamado de TTL (Time to Live) e é vital verificar o status de a rede de dispositivos entre o equipamento local e remoto, da mesma forma, a perda de algum pacote é expressa em porcentagem.
O comando ping usaOs usos mais comuns do comando ping são:
- Valide e analise o status da rede e de vários hosts de destino.
- Rastreie e isole problemas de hardware e software associados à rede.
- Execute teste, medição e gerenciamento de rede.
1. Como usar o comando PING Linux
O comando ping é executado enviando um datagrama por segundo e essa saída é impressa como uma linha de saída para cada resposta recebida. Nestes resultados, podemos ver os tempos de ida e volta e estatísticas de perda de pacotes, e também um breve resumo é mostrado ao final da execução do comando. O comando ping terminará quando o programa expirar ou quando um sinal SIGINT for recebido. Por padrão, o comando ping continuará a enviar solicitações de eco ao computador de destino até que uma interrupção de ação seja recebida (Ctrl-C).
Sintaxe do comando pingExistem vários parâmetros para usar com o comando ping, a sintaxe geral é a seguinte:
ping [-t] [-a] [-n contagem] [-l tamanho] [-f] [-i TTL] [-v TOS] [-r contagem] [-s contagem] [-w tempo limite] [- R] [-S srcaddr] [-p] [-4] [-6] destino [/?]
As variáveis a serem usadas são:
-tEsta opção faz o ping do destino até que ele seja forçado a parar de usar as teclas Ctrl-C.
-paraEsta opção resolve, se possível, o nome do host de um destino de endereço IP.
-n contagemCom esta opção é possível definir o número de solicitações de eco ICMP a serem enviadas, as opções variam de 1 a 4294967295. O comando ping enviará 4 por padrão se o parâmetro -n não for usado.
-l tamanhoEsta opção permite definir o tamanho, em bytes, do pacote de solicitação de eco em um intervalo de 32 a 65.527. O comando ping enviará uma solicitação de eco de 32 bytes se você não usar a opção -l no comando.
-FEsta opção evita que as solicitações de eco ICMP sejam fragmentadas por roteadores entre os computadores de origem e de destino. A opção -f é mais frequentemente usada para solucionar problemas da unidade de transmissão máxima do caminho (PMTU) em redes locais.
-i TTLEsta opção define o valor Time to Live (TTL), seu valor máximo é 255.
-v TOSCom esta opção será possível definir um valor Tipo de Serviço -Tipo de Serviço (TOS).
-r contagemUsando esta opção, podemos especificar o número de saltos entre o computador de origem e o computador ou dispositivo de destino no qual iremos registrar e exibir. O valor máximo para esta ação é 9.
-s contagemEsta opção permite informar a hora, em formato Internet Timestamp, em que cada solicitação de eco é recebida e a resposta de eco enviada. O valor máximo para contagem é 4, portanto, apenas os primeiros quatro saltos podem ser marcados com o tempo.
-w tempo limiteAo especificar um valor de tempo limite, você define a quantidade de tempo, em milissegundos, que o ping espera por cada resposta do computador de destino, caso não use esta opção -w, o valor de tempo limite será usado. Espera padrão de 4000, que é de 4 segundos.
-REsta opção permite que você execute um rastreamento de rota de ida e volta.
-srcaddrCom esta opção será possível especificar o endereço de origem.
-pEsta opção pode ser usada em um endereço de provedor de virtualização de rede Hyper-V.
-4Este parâmetro força o comando ping a usar apenas endereços IPv4, mas só será útil se o destino for um nome de host e não um endereço IP.
-6Este parâmetro força o comando ping a usar apenas endereços IPv6.
AlvoEste valor indica o destino do ping, um endereço IP ou um nome de host.
/?Exibe ajuda para o comando ping
-f, -v, -r, -s, -j e -kAs opções -f, -v, -r, -s, -j e -k funcionam com endereços IPv4 apenas, enquanto as opções -R e -S funcionam apenas com IPv6.
2. Exemplos de comando PING Linux
Agora vamos ver alguns exemplos práticos para o uso de ping no Linux
Execução básica de pingÉ possível executar um teste de ping simples para verificar se o host de destino está acessível ou não, lembre-se de que é possível usar um endereço IP em vez de um nome de domínio conforme mostrado.
ping www.solvetic.comComo já mencionamos, este é um processo que será permanente e podemos interrompê-lo com as teclas Ctrl + C, ao interromper o processo, os resultados serão exibidos com detalhes como:
- Número de pacotes enviados
- Número de pacotes recebidos
- Pacotes perdidos (em formato de porcentagem)
- Tempo de resposta total em milissegundos
PROLONGAR
Indique o número de pedidosTambém será possível especificar o número de solicitações ECHO_REQUEST que serão enviadas com a execução do ping, isto é feito com o parâmetro -c e a quantidade de solicitações a enviar:
ping -c 7 www.solvetic.comNesse caso, apenas 7 solicitações serão enviadas para a equipe de destino:
PROLONGAR
Defina o intervalo em segundosCom o parâmetro -i será possível definir o intervalo em segundos entre o envio de cada pacote, o valor padrão é um segundo, executaremos o seguinte por um intervalo de 4 segundos:
ping -i 4 -c 6 www.solvetic.comAssim, enviaremos 6 solicitações com um intervalo de 4 segundos entre cada uma delas.
PROLONGAR
Valide a resposta da redePara determinar a resposta da rede em condições de alta carga, o que é essencial para verificar a capacidade da rede, é possível executar um ping de inundação (flood ping) que é responsável por enviar solicitações muito mais rápido, isso é feito com o -f parâmetro e deve ser executado como usuário root.
As opções de uso são uma das seguintes:
sudo ping -f www.solvetic.com sudo ping -f -i 3 www.solvetic.com (indicando o intervalo entre cada solicitação)
PROLONGAR
Habilitar ping para transmissãoSe quisermos habilitar o ping para a transmissão, podemos usar o parâmetro -b.
ping -b 192.168.0.255
PROLONGAR
Limite o número de TTLÉ possível limitar o número de saltos de rede (TTL - Time-to-live) realizados pelo comando ping, isto é feito com o valor -t, será possível definir qualquer valor entre 1 e 255.
Devemos esclarecer que cada roteador que recebe o pacote subtrai pelo menos 1 da contagem e se a contagem for ainda maior que 0, o roteador encaminha o pacote para o próximo salto, caso contrário ele será descartado e uma resposta ICMP será enviada ao nosso equipe.
ping -t 15 www.solvetic.com
PROLONGAR
Definir pré-carga de pingNo caso de especificar um pré-carregamento em tempo de execução, o comando ping envia muitos pacotes que não irão esperar por uma resposta, este deve ser executado como root para selecionar um pré-carregamento maior que 3.
sudo ping -l 6 www.solvetic.com
PROLONGAR
Defina o tamanho dos pacotesO tamanho do pacote padrão em ping é suficiente para determinar o estado da rede, mas este valor pode ser editado se necessário. Será possível especificar o tamanho da carga útil, em número de bytes utilizando a opção -s, o que resultará em um tamanho de pacote total do valor fornecido mais 8 bytes adicionais para o cabeçalho ICMP, para isso executamos:
ping -s 800 www.solvetic.comInserimos um tamanho de 800 e podemos ver que o ping define 808:
PROLONGAR
Defina o tempo de respostaSe for necessário definir o tempo de resposta de uma solicitação, em segundos, usaremos para isso a opção -W desta forma:
ping -W 9 www.solvetic.com
PROLONGAR
Se o caso for estabelecer um tempo limite em segundos, antes que o comando ping seja executado independentemente de quantos pacotes foram enviados ou recebidos, usaremos o parâmetro -w:
ping -w 8 www.solvetic.com
PROLONGAR
Habilitar detalhes do pacote de depuraçãoPodemos usar a opção -d para habilitar os detalhes do pacote de depuração de IP.
ping -d www.solvetic.com
PROLONGAR
Ver informações detalhadasSerá possível habilitar a saída detalhada usando o sinalizador -v:
ping -v www.solvetic.com
PROLONGAR
Defina endereços IPv4 ou IPv6Podemos especificar que o comando ping detecta apenas endereços IPv4 ou IPv6 (se existirem), para isso executamos a opção mais adequada.
ping -4 www.solvetic.com ping -6 www.solvetic.com
PROLONGAR
Desta forma, o comando ping é um dos utilitários mais práticos e completos para realizar o processo de controle e gerenciamento de redes.