Solução de problemas de caminho de rede com Linux
Trabalhar em rede pode ser complicado. Conectar várias caixas em outras caixas é fácil, mas fazer com que os bits certos fluam dos computadores certos através dos confins da internet e cheguem ao destino certo, apontando para a porta correta que está aberta e aguardando tráfego, se torna muito complicado muito rápido. Com as velocidades de interconectar que a Equinix oferece, você pode se deparar com comportamentos de rede desconhecidos.
Este guia você uma base sólida para solução de problemas de rede no Linux. Embora seja genericamente útil para quem envia bits entre servidores, o foco será na solução de problemas de conexões entre você (ou seu data center) e a Equinix. Mesmo que isso não resolva seus problemas, você poderá fornecer todas as informações necessárias à nossa equipe de sucesso do cliente para que você possa prosseguir com o processo.
Pré-requisitos
- Uma Conta Equinix Metal com acesso às máquinas em questão.
- Um sistema Linux local (algumas ferramentas podem exigir acesso root/sudo)
- Opcionalmente, a ferramenta Metal CLI
IPv4 e IPv6
Já que estamos falando de redes, vamos lidar com endereços IP. Você provavelmente já conhece esses números por causa do uso diário, mas um conhecimento mais aprofundado ajudará a descobrir onde as coisas estão dando errado. Em geral, tudo o que vamos abordar utiliza o tradicional formato IPv4.
IPv4
Em IPv4, qualquer dispositivo conectado à rede recebe um identificador único, geralmente chamado de endereço IP. IP significa protocolo de internet e se refere a um protocolo padrão usado em conectividade de rede. Os endereços IP consistem em 32 bits, geralmente representados como quatro octetos na notação decimal pontilhada (xxx.xxx.xxx.xxx). Qualquer endereço IP pode ser dividido em duas partes: o primeiro conjunto de bits representa a porção * de rede* do endereço e o restante representa a porção do host. Isso é representado pela notação CIDR (Classless Inter-Domain Routing) ou pelo uso de uma máscara de sub-rede, sendo que a primeira apenas indica quantos bits são usados pela segunda. Por exemplo, digamos que você tenha um IP da Equinix: 55.82.200.45/29. Você pode calcular a máscara de sub-rede correta e os outros endereços IP disponíveis nesse bloco. Com 29 bits (/29) dedicado à rede, isso significa que você tem 3 bits de host, resultando em uma máscara de sub-rede de 255.255.255.248 (11111111.11111111.11111111.11111000 em binário). E com uma pequena conversão binária, você pode descobrir que os 8 IPs disponíveis serão 55.82.200.40-48. Destes, o primeiro (todos 0s) geralmente é reservado para o endereço de "rede" e o último (todos 1s) é reservado para o endereço de "broadcast" da rede . Isso provavelmente é um pouco mais complexo do que este guia precisa abordar.
A principal conclusão ao analisar o endereço 55.82.200.45/29 é que o dispositivo com esse IP tratará quaisquer endereços entre 55.82.200.40 e .48 como locais para ele, encaminhando solicitações externas à rede apenas para seu gateway ou roteador padrão. Mas o que é um gateway?
As pessoas tendem a pensar na internet como "uma grande rede", mas essa visão é um tanto inadequada. Na verdade, a internet se assemelha mais a uma enorme quantidade de pequenas redes interligadas. Cada segmento de rede com conectividade a outras redes na internet recebe um número de * sistema autônomo*, também conhecido como número AS ou ASN. Os ASNs são usados pelos roteadores para anunciar a todos os outros roteadores na internet quais intervalos de endereços IP eles gerenciam. Quando um computador na rede A precisa se comunicar com um computador na rede B (ou qualquer computador que não faça parte de sua própria rede local), ele encaminha sua solicitar para o roteador configurado localmente, geralmente também chamado de gateway ou gateway padrão. O gateway encaminhará os pacotes para o roteador que anunciou publicamente sua responsabilidade pela rede à qual o endereço IP do host de destino pertence.
O caminho que um pacote precisa percorrer para chegar da sua origem ao seu destino é geralmente chamado de rota. Seu sistema normalmente só conhece a rota até o gateway padrão, a partir da qual o roteamento ocorre de forma dinâmica, com base nas tabelas de roteamento globais. Isso permite que qualquer host em qualquer sub-rede da internet se comunique com qualquer outro host, em geral. (Estamos deixando de lado casos especiais, como firewalls, por uma questão de simplicidade.)
Portanto, se você estiver com problemas para enviar dados de 55.82.200.45 para 55.82.200.46, você seja necessário verificar se eles estão conectados corretamente à mesma rede ou verificar suas máscaras de sub-rede para garantir que cada computador tenha uma imagem correta de suas conexões de rede . Se esses testes forem aprovados, verificar se há algum problema com a conectividade do gateway é o próximo passo lógico.
IPv6
Como você deve saber, com um número de 32 bits representando todos os dispositivos na internet, teríamos espaço para apenas cerca de 4,3 bilhão de dispositivos conectados à internet, menos quando você considera o número de IPs reservados para redes locais. E embora 3 bilhão pareçam um número grande, certamente não é quando você considera a população mundial e o grande número de dispositivos conectados à internet que todos nós temos e com os quais interagimos diariamente. Além disso, com a forma como os blocos de endereços IP podem ser subdivididos e movidos, as tabelas de roteamento podem ficar lotadas rapidamente. De fato, a maioria das autoridades regionais está reduzida ao seu bloco final de /8 (~16 milhões) de endereços IP desde 2015.
O IPv6 foi introduzido para aliviar esse problema com endereços de 128 bits, fornecendo 2^128 ou 3,4 x 10^32 endereços IP disponíveis, ou "provavelmente suficiente para o futuro previsível". E, em vez de uma máscara de sub-rede mutável, o IPv6 usa um conjunto fixo de 64 bits para as porções de host e rede do endereço. Concebido com a natureza original de ponta a ponta da internet em mente, o IPv6 é roteado de forma um pouco diferente do IPv4, com demandas diferentes e ligeiramente mais simples dos próprios roteadores e mais processamento nos nós finais. Existem [outras diferenças entre as duas versões do protocolo, mas a principal diferença para os propósitos deste guia é a notação.
Enquanto o IPv4 é escrito como 4 octetos decimais (grupos de 8 bits ou bytes) separados por pontos ou pontos, o IPv6 é escrito como 8 hextetos hexadecimais (grupos de 16 bits ou chomps) separados por dois pontos. Para maior conveniência e clareza, o IPv6 também inclui algumas regras sobre abreviação: todos os 0s iniciais podem ser omitidos em cada hexteto e hextetos consecutivos de todos os 0s podem ser substituídos por dois pontos (::). Esta última condição só pode ser aplicada uma vez em um endereço, pois múltiplos usos tornariam o endereço vago e indeterminado.
Por exemplo, você pode obter o endereço IPv6 2001:0db8:0000:0000:0000:ff00:0042:8329. Após remover os 0s iniciais, você ficaria com 2001:db8:0:0:0:ff00:42:8329 e, após compactar hextetos consecutivos de 0, ficaríamos com 2001:db8::ff00:42:8329. Reconhecer, expandir e abreviar endereços IPv6, bem como lembrar os 64 bits para rede e 64 bits para host, são as principais implicações para a solução de problemas de IPv6 neste guia.
Encontrando o endereço IP da sua máquina
Você pode encontrar o endereço IP do seu servidor no console do Equinix Metal ou na CLI.
Usando a interface de usuário da Web do Equinix Metal
A partir do Console, abra Organização > Projeto > Servidores > Nome do host do servidor (endereço IPv4/6).
Usando o Equinix Metal CLI
Se você estiver usando a CLI do Metal :
Para obter todos os endereços IP atribuídos:
metal devices get -o json | jq '.[0].ip_addresses'
Para obter endereços IP atribuídos a um dispositivo específico, use:
metal devices get -i $device_id -o json | jq '.ip_addresses'
Verificando informações da Web UI/CLI com seus sistemas
Obter os endereços IP pelo console Equinix Metal ou CLI é útil, mas às vezes você pode querer ir diretamente à fonte. Essas técnicas permitirão que você recupere informações de rede na própria máquina.
A maioria das ferramentas a seguir estará disponível em instalações Linux padrão. Caso contrário, todas estarão disponíveis no gerenciador de pacotes da sua distribuição (apt, snap, rpm).
Encontrando seu endereço IP na linha de comando da máquina
Para encontrar o endereço IP a partir da linha de comando, use o comando ip em uma das seguintes variações:
ip a
ip add
ip addr
ip -br -c a breve + cores
Por exemplo, para gerar uma visão geral concisa de todas as interfaces e endereços atribuídos, use:
# ip -br -c a
lo UNKNOWN 127.0.0.1/8 ::1/128
enp1s0f0 UP
enp1s0f1 UP
bond0 UP 139.178.69.191/31 10.88.19.129/31 2604:1380:1000:c00::1/127 fe80::ec4:7aff:feb2:98dc/64
Para obter mais informações sobre o uso do comando ip, consulte um dos [muitos guias online.
Determinando quais portas estão escutando
Para obter informações sobre as portas disponíveis, use o comando ss (estatísticas de socket):
ss -l
ss -lp (mostrar processo)
lsof -i
Por exemplo, para ver uma lista de todas as portas de escuta na sua máquina atual, use:
# ss -lp
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
udp UNCONN 0 0 127.0.0.53%lo:domain 0.0.0.0:* users:(("systemd-resolve",pid=888,fd=12))
tcp LISTEN 0 4096 127.0.0.53%lo:domain 0.0.0.0:* users:(("systemd-resolve",pid=888,fd=13))
tcp LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:* users:(("sshd",pid=1476,fd=3))
tcp LISTEN 0 4096 *:5201 *:* users:(("iperf3",pid=14162,fd=3))
tcp LISTEN 0 128 [::]:ssh [::]:* users:(("sshd",pid=1476,fd=4))
Para obter uma lista de todos os descritores de arquivo abertos no momento, use:
# lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 888 systemd-resolve 12u IPv4 20923 0t0 UDP localhost:domain
systemd-r 888 systemd-resolve 13u IPv4 20924 0t0 TCP localhost:domain (LISTEN)
sshd 1476 root 3u IPv4 27081 0t0 TCP *:ssh (LISTEN)
sshd 1476 root 4u IPv6 27083 0t0 TCP *:ssh (LISTEN)
sshd 1969 root 4u IPv4 27199 0t0 TCP metal-guide-00:ssh->123-123-100-10.sbcglobal.net:51434 (ESTABLISHED)
Para obter mais informações sobre o comando ss, consulte [este guia.
Determinando se uma máquina remota está acessível
Para descobrir se uma máquina está disponível na rede, use o comando ping:
ping [address]
Além de determinar se uma máquina existe, você também pode querer saber quanto tempo leva para alcance essa máquina, também conhecido como latência. A saída de ping também você dirá isso.
O exemplo a seguir mostra a acessibilidade do host remoto packet.com com uma latência de aproximadamente um milissegundo:
# ping packet.com
PING packet.com (104.18.26.66) 56(84) bytes of data.
64 bytes from 104.18.26.66 (104.18.26.66): icmp_seq=1 ttl=58 time=1.02 ms
64 bytes from 104.18.26.66 (104.18.26.66): icmp_seq=2 ttl=58 time=1.04 ms
64 bytes from 104.18.26.66 (104.18.26.66): icmp_seq=3 ttl=58 time=0.881 ms
64 bytes from 104.18.26.66 (104.18.26.66): icmp_seq=4 ttl=58 time=1.03 ms
Para obter mais informações sobre ping, consulte [este guia.
Verificando se uma porta remota específica está acessível
Para verificar um endereço IP, ping é uma ótima ferramenta. Para verificar uma porta específica em outra máquina, use nc ou netcat, assim:
nc -vz [address] [port]
Para verificar se a porta 443 do equinix.com está acessível a partir do seu computador, utilize o seguinte comando:
# nc -vz equinix.com 443
Connection to equinix.com 443 port [tcp/https] succeeded!
Para obter mais informações sobre o comando nc, consulte [este guia.
Verificando se uma porta remota específica pode ser acessada com mais informações
Se você deseja informações mais detalhadas sobre o status da porta, use nmap:
nmap -p [port] [address]
A mesma tarefa realizada usando a ferramenta nmap:
# nmap -p 443 equinix.com
Starting Nmap 7.80 ( https://nmap.org ) at 2022-03-01 03:51 UTC
Nmap scan report for equinix.com (40.91.78.229)
Host is up (0.023s latency).
PORT STATE SERVICE
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 0.53 seconds
Para obter mais informações sobre como usar nmap, consulte [este guia.
Determinando a rota para um endereço especificado
Como mencionado anteriormente, as rotas são dinâmicas, portanto, você deseja determinar a rota exata que está sendo usada para um destino específico, usando o comando mtr:
mtr [address]
mtr -r -c 10 [address] (-cycles)
O comando mtr também pode você quantos saltos estão contidos em uma determinada rota e se um deles é mais lento do que o aceitável.
Aqui está o exemplo de saída para um host, usando um IP IPv6, tentando alcance outro host.
metal-guide-00 (2604:1380:1000:c00::1) 2022-03-01T03:56:07+0000
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. _gateway 0.0% 28 7.8 3.0 1.0 8.6 2.5
2. 0.ae147.dsr1.r00c02.sjc1.packet.net 0.0% 28 9.4 23.0 1.5 401.7 75.8
3. 0.ae11.bsr1.sjc1.packet.net 0.0% 28 17.5 2.4 0.7 21.2 4.8
4. 0.et-0-0-11.bsr1.sv5.packet.net 0.0% 28 1.5 4.4 1.3 40.5 9.2
5. 2001:4860:1:1::1d7f 0.0% 27 1.4 1.4 1.2 1.8 0.1
6. 2607:f8b0:82c2::1 48.1% 27 2.2 2.4 2.2 2.7 0.2
7. any-in-2001-4860-4802-36--15.1e100.net 0.0% 27 1.5 1.4 1.2 1.5 0.1
Para obter mais informações sobre mtr, consulte [este guia.
Testando a velocidade da conexão
Às vezes, você vai querer testar a velocidade de uma conexão diretamente. Para isso, você precisará instalar o utilitário speedtest:
apt install speedtest-cli
Você pode então executar o teste com:
speedtest
Para executar um teste de velocidade na CLI, use:
# speedtest
Retrieving speedtest.net configuration...
Testing from Packet Host (139.178.69.191)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Ayera Technologies, Inc. (Modesto, CA) [97.79 km]: 7.473 ms
Testing download speed................................................................................
Download: 1142.73 Mbit/s
Testing upload speed......................................................................................................
Upload: 1656.41 Mbit/s
Para obter mais informações sobre a ferramenta Speedtest CLI, consulte a [documentação oficial.
Medindo a velocidade de transferência entre duas máquinas
Você pode testar as velocidades de transferência entre duas máquinas com o utilitário iPerf. Você precisará instalar o iperf tanto na máquina local quanto na remota:
apt install iperf3
No servidor remoto, para começar a escutar, use:
iperf3 -s
No seu sistema local, utilize:
iperf3 -c [target address]
iperf3 -c [target address] -R (ao contrário, remoto -> local)
A saída pode ser parecida com esta:
# iperf3 -c 139.178.69.191
Connecting to host 139.178.69.191, port 5201
[ 5] local 192.168.0.233 port 52106 connected to 139.178.69.191 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 35.2 MBytes 295 Mbits/sec
[ 5] 1.00-2.00 sec 53.8 MBytes 451 Mbits/sec
[ 5] 2.00-3.00 sec 27.0 MBytes 227 Mbits/sec
[ 5] 3.00-4.00 sec 51.8 MBytes 435 Mbits/sec
[ 5] 4.00-5.00 sec 43.6 MBytes 366 Mbits/sec
[ 5] 5.00-6.00 sec 38.7 MBytes 324 Mbits/sec
[ 5] 6.00-7.00 sec 41.5 MBytes 348 Mbits/sec
[ 5] 7.00-8.00 sec 43.7 MBytes 367 Mbits/sec
[ 5] 8.00-9.00 sec 44.5 MBytes 373 Mbits/sec
[ 5] 9.00-10.00 sec 46.1 MBytes 386 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 426 MBytes 357 Mbits/sec sender
[ 5] 0.00-10.06 sec 424 MBytes 354 Mbits/sec receiver
iperf Done.
Para obter mais informações sobre o iPerf, consulte a [documentação oficial.
Visualização da carga da rede por dispositivo
Para obter uma visão mais ampla da carga de rede em cada um dos seus dispositivos, use o utilitário nload:
nload
Use as teclas de seta para alternar entre os dispositivos disponíveis e pressione q para sair.
Aqui está um exemplo de saída de nload:
Device bond0 [139.178.69.191] (1/5):
===========================================================================================
Incoming:
#####################
#####################
.#####################
######################
######################
######################
######################
######################
###################### Curr: 2.91 kBit/s
###################### Avg: 125.98 MBit/s
###################### Min: 2.90 kBit/s
###################### Max: 317.84 MBit/s
###################### Ttl: 1.20 GByte
Outgoing:
Curr: 30.23 kBit/s
. .. Avg: 1.01 MBit/s
################## Min: 7.57 kBit/s
###################| Max: 2.42 MBit/s
.#################### Ttl: 159.86 MByte
Para obter mais informações sobre nload, consulte [este guia.
Determinando o proprietário de um domínio
Quando você tiver um endereço remoto e quiser confirmar o proprietário e outras informações do registrador, use o comando whois:
whois [address]
O exemplo a seguir mostra as informações whois para o domínio equinix.com:
# whois equinix.com
Domain Name: EQUINIX.COM
Registry Domain ID: 2603897_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.corporatedomains.com
Registrar URL: http://cscdbs.com
Updated Date: 2021-08-22T05:11:35Z
Creation Date: 1998-08-27T04:00:00Z
Registry Expiry Date: 2022-08-26T04:00:00Z
Registrar: CSC Corporate Domains, Inc.
Registrar IANA ID: 299
Registrar Abuse Contact Email: domainabuse@cscglobal.com
Registrar Abuse Contact Phone: 8887802723
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
Name Server: DNS1.P07.NSONE.NET
Name Server: DNS2.P07.NSONE.NET
Name Server: DNS3.P07.NSONE.NET
Name Server: DNS4.P07.NSONE.NET
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2022-03-01T04:03:24Z <<<
Para obter mais informações sobre whois, use [este guia.
Determinando o endereço de um nome de domínio
O comando whois é ótimo quando você quer saber sobre um domínio, mas às vezes você quer saber o endereço específico para o qual um nome de domínio é resolvido. Para isso, você usa nslookup, ou para uma resposta mais detalhada, usa dig:
nslookup [address]
dig +trace [address]
Um exemplo usando nslookup:
# nslookup equinix.com
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: equinix.com
Address: 40.91.78.229
O mesmo exemplo usando dig:
# dig +trace equinix.com
; <<>> DiG 9.16.1-Ubuntu <<>> +trace equinix.com
;; global options: +cmd
. 79825 IN NS e.root-servers.net.
. 79825 IN NS d.root-servers.net.
. 79825 IN NS g.root-servers.net.
. 79825 IN NS a.root-servers.net.
. 79825 IN NS k.root-servers.net.
. 79825 IN NS b.root-servers.net.
. 79825 IN NS i.root-servers.net.
. 79825 IN NS m.root-servers.net.
. 79825 IN NS l.root-servers.net.
. 79825 IN NS h.root-servers.net.
. 79825 IN NS j.root-servers.net.
. 79825 IN NS c.root-servers.net.
. 79825 IN NS f.root-servers.net.
;; Received 262 bytes from 127.0.0.53#53(127.0.0.53) in 0 ms
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 86400 IN DS 30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com. 86400 IN RRSIG DS 8 1 86400 20220313210000 20220228200000 9799 . l/Qi4jz9Mm/17YNIjJM8Z9vBxY2LNM4EwJykZsFLMXg8AnbJDxaAGB3h 47gGMj8mzTpTpgRrmD6ohAh/HOpbzR74YlQze6rVp+fn5oBZGzxKlVvW jVhm0L2vVCBwoilPJJ13sWdVYxBYJC4E1H23vT4khtzEUtjHdNnSbTbl GrFk3DDb6oIR5AhPQZII+zbYWPgLxJS7MJ20ch9ZXpby44IQ/0L+cgly Il/y84Ix/jq4qpfMexbxjTBWa9cK3S+vBIpWnxv4372lEFTiN6SPFYfF YCQVafKCnNZxWq3DIdwDNJcgcZS4ezCkm08Y4PZ/phfHBWHoFaqNMMpw BSY0cg==
;; Received 1199 bytes from 192.112.36.4#53(g.root-servers.net) in 44 ms
equinix.com. 172800 IN NS dns1.p07.nsone.net.
equinix.com. 172800 IN NS dns2.p07.nsone.net.
equinix.com. 172800 IN NS dns3.p07.nsone.net.
equinix.com. 172800 IN NS dns4.p07.nsone.net.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20220304052328 20220225041328 38535 com. QBEVp5RQYWO4WbeNlRYtAg+ob5TeMdT9lidq3zTL5xoEWS8N9xGXMhjx JEnRCkf8+yirdIyLZvIqzKqKtvzr2WXVLpEDdoUsfpj3xdG1VDPXNbva 9bSOgIcOnfv0IUXJJXHhsp80NDWeFYbwR+wJMeEwgrHWQfyccyUejjpU JKK+uBrBP3D7wvHpnNIh1XnFk4f49bhdJCj5/ITzZyjR0Q==
2S6MCLRVGJJO7EJTAFM73G5O7INU7C84.com. 86400 IN NSEC3 1 1 0 - 2S6NAQI4JCBDB8UF5NFPLETQ9GTHE3P6 NS DS RRSIG
2S6MCLRVGJJO7EJTAFM73G5O7INU7C84.com. 86400 IN RRSIG NSEC3 8 2 86400 20220307055325 20220228044325 38535 com. RlR6BsuGKh937/apIR6FtvvQZ47Gv3CXUx0XotbbCGD3EtwsJfxY5bxa Yv3b2HnU+DqL1SChUD2MBAKr0SzNeTSa726Ymy6P75QDM7iGA9ObRRPP 6FEtkfcNxDqXx52pBQpiIQfVhRklW+VoRGD4V54vyC6jSq/PaOSoWCFE tD71VC4mvCbaox5KKUHPn2F8WH5rLFPqoRmHcFuAV01POw==
;; Received 678 bytes from 192.41.162.30#53(l.gtld-servers.net) in 24 ms
equinix.com. 300 IN A 40.91.78.229
;; Received 56 bytes from 2a00:edc0:6259:7:7::4#53(dns4.p07.nsone.net) in 0 ms
Para obter mais informações sobre o comando nslookup, consulte [este guia.
Para obter mais informações sobre o comando dig, consulte [este guia.
Determinando a configuração de hardware local
Para obter informações detalhadas sobre o hardware presente no sistema, utilize o comando lshw (listar hardware):
lshw
lshw -class network
lshw -class network -short
Aqui está um exemplo de saída de lshw, que frequentemente parecerá congestionada e caótica:
# lshw -class network
*-network:0
description: Ethernet interface
product: I350 Gigabit Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:01:00.0
logical name: enp1s0f0
version: 01
serial: 0c:c4:7a:b2:98:dc
size: 1Gbit/s
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress bus_master cap_list rom ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.6.0-k duplex=full firmware=1.52, 0x800007ae latency=0 link=yes multicast=yes port=twisted pair slave=yes speed=1Gbit/s
resources: irq:16 memory:88400000-8847ffff ioport:e020(size=32) memory:88580000-88583fff memory:88500000-8853ffff memory:88584000-885a3fff memory:885a4000-885c3fff
*-network:1
description: Ethernet interface
product: I350 Gigabit Network Connection
vendor: Intel Corporation
physical id: 0.1
bus info: pci@0000:01:00.1
logical name: enp1s0f1
version: 01
serial: 0c:c4:7a:b2:98:dc
size: 1Gbit/s
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress bus_master cap_list rom ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.6.0-k duplex=full firmware=1.52, 0x800007ae latency=0 link=yes multicast=yes port=twisted pair slave=yes speed=1Gbit/s
resources: irq:17 memory:88480000-884fffff ioport:e000(size=32) memory:885c4000-885c7fff memory:88540000-8857ffff memory:885c8000-885e7fff memory:885e8000-88607fff
*-network
description: Ethernet interface
physical id: 3
logical name: bond0
serial: 0c:c4:7a:b2:98:dc
capabilities: ethernet physical
configuration: autonegotiation=off broadcast=yes driver=bonding driverversion=3.7.1 duplex=full firmware=2 ip=139.178.69.191 link=yes master=yes multicast=yes
Para obter mais informações sobre o comando lshw, consulte [este guia.
Obtendo informações específicas da placa de rede
Para obter informações mais específicas sobre a placa de rede e o driver usados em uma máquina específica, use ethtool:
ethtool [DEVICE NAME]
ethtool -i [DEVICE NAME]
Para obter mais informações sobre ethtool, consulte [este guia.
Descobrindo regras de firewall
Muitas distribuições Linux pré-instalam regras ou serviços de firewall, como firewalld, para segurança básica do sistema . Esses serviços podem atrapalhar a configuração de redes. Em sistemas Linux, os filtros de pacotes são implementados usando iptables ou nftables, sendo este último mais recente, mas com uma interface de compatibilidade com iptables. Veja como obter uma lista de todas as regras aplicadas:
iptables -S
Lembre-se de que tanto iptables quanto nftables seguem o princípio da “primeira regra correspondente”. Isso significa que um pacote recebido é tratado de acordo com a primeira regra correspondente.
Ferramentas obsoletas
Você pode estar familiarizado com utilitários de rede mais antigos, como arp, ifconfig ou route. Essas ferramentas agora estão obsoletas e foram substituídas por ip. A ferramenta netstat foi substituída por ss.
Conclusão
Este artigo apresentou uma visão geral das diversas ferramentas disponíveis em sistemas Linux para solução de problemas de rede. Embora essas ferramentas possam não resolver todos os problemas de rede, é sempre bom saber onde obter as informações adequadas. No mínimo, ter essas informações prontamente disponíveis agilizará as chamadas de suporte .