Quan alguna cosa falla, no vagis a cegues: diagnostica de baix a dalt, seguint el camí que fa un paquet des del teu equip fins al servei. Si un graó falla, atura't allà — no cal comprovar els de dalt.
Regla d'or
Aïlla la capa. Primer mira si tens enllaç físic, després adreça IP, després xarxa local (passarel·la), després Internet, després DNS i, finalment, el servei. Cada comprovació descarta (o confirma) una capa.
El camí del paquet
💻El teu equip
🔌Commutador (LAN)
📶Passarel·la
☁️Internet
🔤DNS
🎯Servei
Escala de diagnòstic
Comprova les capes en ordre. Les comandes es donen per a Linux i Windows (PowerShell).
#
Capa
Què comprovar
Linux
Windows
1
Enllaç físic
Cable/wifi connectat, interfície activa (UP)
ip link
Get-NetAdapter
2
Adreça IP
Tens una IP vàlida (no 169.254.x.x)
ip a
ipconfig
3
Xarxa local
Arribes a la passarel·la
ping 192.168.1.1
ping 192.168.1.1
4
Internet
Arribes a una IP pública
ping 1.1.1.1
ping 1.1.1.1
5
DNS
Es resolen els noms
dig exemple.cat / nslookup
nslookup exemple.cat
6
Servei / aplicació
El port del servei està obert
ss -tlnp · nc -zv host port
Test-NetConnection host -Port n
Taula de primers auxilis
Símptoma
Causa típica
Primera comanda
No navego i la IP és 169.254.x.x
El DHCP no respon (APIPA)
dhclient · ipconfig /renew
El ping a una IP va, però als noms no
DNS mal configurat o caigut
nslookup exemple.cat 1.1.1.1
El ping a la passarel·la falla
LAN, VLAN, màscara o cable
ip a · ping <passarel·la>
La web no carrega però el ping sí
Servei/port, proxy o tallafoc
curl -I https://web
Els correus no surten
Port 25 bloquejat o autenticació
nc -zv mail 587
Rebo correu però no n'envio
SPF/DKIM/DMARC o llista negra
dig TXT domini
Alguns equips tenen IP i altres no
Abast (scope) del DHCP esgotat
(al servidor) journalctl -u isc-dhcp-server
Sense IP en una VLAN, però en una altra sí
Falta el DHCP relay (ip helper-address)
(al switch/router) show run interface vlanX
Tinc IP però la passarel·la/DNS són estranys
Servidor DHCP intrús (rogue)
ipconfig /all (DHCP Server)
«IP en conflicte» o connectivitat intermitent
Dues màquines amb la mateixa IP
arping -D <ip>
Va bé però algunes webs/VPN es pengen
MTU / MSS (PMTUD trencat)
ping -M do -s 1472 <ip>
Un nom concret resol a una IP vella
Entrada al fitxer hosts
getent hosts <nom>
Els noms interns van, els externs no
Resolver sense forwarders/recursió
dig @<dns> google.com
SERVFAIL només en alguns dominis
Validació DNSSEC o rellotge desquadrat
dig +cd <domini>
Incidència 1 — No tinc adreça IP
No tinc IP — diagnòstic pas a pas
Capa 1 · Enllaç físic
Abans de res, comprova que hi ha enllaç físic: el cable connectat (o el wifi associat) i la interfície en estat UP.
$ip link
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> state UP
PS>Get-NetAdapter
Name Status LinkSpeed
Ethernet Up 1 Gbps
✗ Si surt DOWN / Disconnected → revisa el cable, el port del commutador o l'associació wifi.
✓ Si està UP → passa a comprovar l'adreça IP.
Capa 2 · Adreça IP
Mira quina IP té l'equip. Una adreça 169.254.x.x (APIPA / link-local) vol dir que no s'ha rebut cap oferta del DHCP.
$ip a
inet 169.254.23.7/16 scope link ← APIPA: sense IP del DHCP
PS>ipconfig
Dirección IPv4. . . : 169.254.23.7
✗ IP 169.254.x.x → no has rebut configuració del servidor DHCP.
Capa 2 · Renovació del lease
Força l'equip a demanar de nou una adreça (torna a llançar el procés DORA).
$sudo dhclient -r
$sudo dhclient eth0
PS>ipconfig /release
PS>ipconfig /renew
inet 192.168.1.34/24 ← IP correcta del rang!
✓ Si ara reps una IP del rang de la xarxa → incidència resolta.
Capa 2 · Servidor DHCP
Si segueixes sense IP, el problema és al servei DHCP o al camí. Captura el trànsit i mira si el teu DISCOVER rep resposta.
$sudo tcpdump -i eth0 port 67 or port 68
DHCP-Message ... Request from ... (DISCOVER)
... cap OFFER de resposta ...
⚠ DISCOVER sense OFFER → servidor DHCP aturat, abast (scope) exhaurit o falta un DHCP relay entre VLANs. Revisa el servidor i el relay.
Solució temporal
Mentre no es repari el DHCP, assigna una IP estàtica lliure i coherent amb la xarxa (mateixa subxarxa i passarel·la).
⚠ Tria una IP que no estigui en ús ni dins del rang que reparteix el DHCP, per evitar conflictes.
Incidència 2 — Tinc IP però no navego
Sense connectivitat — diagnòstic pas a pas
Capa 3 · Passarel·la
Tens IP, però comprova si arribes a la passarel·la (el router de la teva xarxa local).
$ping -c 2 192.168.1.1
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.4 ms
✗ Sense resposta → problema a la LAN (commutador, VLAN) o màscara/passarel·la mal configurades.
✓ Amb resposta → la xarxa local funciona; comprova la sortida a Internet.
Capa 4 · Internet
Fes ping a una IP pública (no a un nom, per no dependre del DNS encara).
$ping -c 2 1.1.1.1
Destination Host Unreachable
✗ Sense resposta → problema d'encaminament/NAT al router o tallafoc de sortida.
✓ Amb resposta → la connectivitat IP funciona. Si els noms no van, vés a la Incidència 3.
Capa 4 · Ruta per defecte
Comprova que hi ha una ruta per defecte (gateway) a la taula d'encaminament.
$ip route
default via 192.168.1.1 dev eth0
PS>Get-NetRoute -DestinationPrefix 0.0.0.0/0
⚠ Si no hi ha ruta default → afegeix-la o revisa que el DHCP entregui l'opció 3 (router).
Capa 6 · Tallafoc
Un tallafoc local pot bloquejar la sortida encara que la xarxa estigui bé.
$sudo ufw status
Status: active — deny (out) 80,443
PS>Get-NetFirewallProfile | Select Name,Enabled
⚠ Si una regla bloqueja el trànsit de sortida → ajusta el tallafoc o crea una excepció.
Incidència 3 — El DNS no resol noms
DNS no resol — diagnòstic pas a pas
Aïllar el problema
Confirma que la connectivitat IP va bé però els noms no: si el ping a una IP funciona i el ping a un nom falla, el problema és el DNS.
$ping -c 2 1.1.1.1
64 bytes from 1.1.1.1: time=8.3 ms ← la IP va
$ping -c 2 exemple.cat
ping: exemple.cat: Name or service not known ← els noms no
⚠ IP sí, nom no → és un problema de resolució DNS, no de connectivitat.
Capa 5 · Quins DNS uses
Mira quins servidors DNS té configurats l'equip.
$resolvectl status | grep 'DNS Server'
DNS Servers: 192.168.1.1
PS>ipconfig /all | findstr Servidores
✗ Cap servidor DNS o un d'incorrecte → corregeix la configuració (o l'opció 6 del DHCP).
Capa 5 · Provar la resolució
Intenta resoldre un nom directament amb dig o nslookup.
$dig exemple.cat +short
;; connection timed out / status: SERVFAIL
PS>nslookup exemple.cat
✗ SERVFAIL o timeout → el teu servidor DNS no respon o no resol aquesta zona.
Capa 5 · DNS alternatiu
Prova a resoldre amb un DNS públic per veure si el problema és el teu servidor.
$dig @1.1.1.1 exemple.cat +short
185.199.108.153 ← amb 1.1.1.1 SÍ que resol
PS>nslookup exemple.cat 8.8.8.8
⚠ Si amb el DNS públic funciona → el teu servidor DNS és el problema (caigut, forwarders o zona mal configurada).
Cache i fitxer hosts
Descarta una cache antiga o una entrada manual al fitxer hosts que "segresti" el nom.
$sudo resolvectl flush-caches
$cat /etc/hosts
10.0.0.9 exemple.cat ← entrada manual sospitosa!
PS>ipconfig /flushdns
⚠ Una entrada errònia a hosts té prioritat sobre el DNS; la cache antiga pot retornar IPs velles.
Incidència 4 — No s'envien correus
El correu no surt — diagnòstic pas a pas
Capa 4 · Connectivitat SMTP
Comprova que arribes al servidor de correu i al port de sortida. El port 25 sortint sol estar bloquejat pels proveïdors: fes servir el 587 (submission, STARTTLS) o el 465 (SMTPS).
$nc -zv mail.exemple.cat 587
Connection to mail.exemple.cat 587 port [tcp] succeeded!
PS>Test-NetConnection mail.exemple.cat -Port 587
⚠ Si el 25 falla però el 587 va → l'ISP bloqueja el 25; configura el client amb el 587 i STARTTLS.
Capa 6 · Diàleg SMTP
Prova el diàleg amb el servidor amb TLS i mira que anunciï AUTH.
✗ Si no arribes a un 250 → el servei està aturat o el TLS està mal configurat.
Capa 6 · Autenticació
La majoria de servidors exigeixen autenticar-se per enviar (evita ser un open relay).
>AUTH LOGIN
535 5.7.8 Error: authentication failed
✗ 535 → usuari/contrasenya incorrectes. Molts proveïdors demanen una contrasenya d'aplicació si tens 2FA.
Capa 5 · Registres DNS del correu
Perquè els destinataris t'acceptin, el domini necessita els registres correctes: MX (recepció), SPF, DKIM i DMARC (reputació).
$dig MX exemple.cat +short
10 mail.exemple.cat.
$dig TXT exemple.cat +short
"v=spf1 mx -all"
✗ Sense MX no reps correu; sense SPF/DKIM/DMARC correctes, els destinataris et rebutgen o et marquen com a spam.
Reputació i logs
Revisa els logs del servidor i si la teva IP està en alguna llista negra (DNSBL).
$tail -f /var/log/mail.log
status=bounced (blocked using zen.spamhaus.org)
⚠ Si la teva IP surt en una DNSBL → sol·licita'n la retirada i investiga la causa (relay obert, compte compromès). Eines: MXToolbox, Mail-Tester.
Incidències avançades
Quan la comprovació bàsica no explica el problema, sovint la causa és a la infraestructura: l'abast del DHCP, les VLAN, un servidor DHCP intrús, un conflicte d'IP o problemes d'enllaç. Aquest és el model mental de per què el DHCP falla entre VLAN:
---
config:
theme: base
themeVariables:
background: "#FFFFFF"
primaryTextColor: "#1F2937"
lineColor: "#64748B"
primaryColor: "#e0e7ff"
primaryBorderColor: "#2563EB"
---
flowchart LR
subgraph V20["VLAN 20 · Usuaris"]
PC["💻 PC sense IP"]
end
subgraph V10["VLAN 10 · Servidors"]
DHCP["🖥️ DHCP Server<br/>10.0.10.5"]
end
PC -. "① DHCPDISCOVER<br/>(broadcast, es queda a la VLAN 20)" .-> SW["Switch L3 / Router"]
SW == "② ip helper-address 10.0.10.5<br/>reenvia com a UNICAST a l'altra VLAN" ==> DHCP
Per què el DHCP no travessa les VLAN
El DHCPDISCOVER és un broadcast i els broadcasts no surten del seu domini de difusió (la seva VLAN). Si el client i el servidor DHCP són en VLAN diferents, cal un DHCP relay (ip helper-address a Cisco, DHCP relay agent / isc-dhcp-relay a Linux) que reenviï la petició com a unicast cap al servidor.
Incidència 5 — El DHCP no dona IP (casos avançats)
DHCP sense IP — causes d'infraestructura
Servidor · Abast esgotat
El servidor DHCP està viu i reparteix IP a altres equips, però ha assignat totes les adreces del rang. Els clients nous es queden sense (APIPA).
$journalctl -u isc-dhcp-server | grep -i "no free leases"
DHCPDISCOVER from a4:... no free leases on subnet 10.0.20.0
⚠ Abast (scope) esgotat → amplia el rang, redueix el temps de lease perquè les adreces es reciclin abans, o allibera reserves/leases morts.
Capa 2 · VLAN sense relay
El client és en una VLAN diferent de la del servidor DHCP. El seu DISCOVER (broadcast) no arriba al servidor perquè falta el DHCP relay a la interfície de la VLAN del client.
sw#show running-config interface vlan 20
interface Vlan20 → (cap "ip helper-address": el relay hi falta!)
! Correcció al switch L3 / router:
interface Vlan20 ; ip helper-address 10.0.10.5
✗ Sense ip helper-address a la VLAN del client → afegeix el relay apuntant al servidor DHCP (a Linux: isc-dhcp-relay).
Capa 2 · Port en VLAN incorrecta
El port on connecta l'equip pot estar assignat a una VLAN diferent de l'esperada (o a una VLAN sense servei DHCP).
sw#show interfaces status | include Gi0/3
Gi0/3 connected 99 a-full a-1000 (VLAN 99, hauria de ser la 20!)
! Correcció:
interface Gi0/3 ; switchport access vlan 20
⚠ Port en VLAN incorrecta → reassigna'l a la VLAN de dades correcta amb switchport access vlan.
Servidor · Exclusions i reserves
L'adreça que hauria de rebre l'equip pot estar exclosa del rang o reservada per a una altra MAC.
⚠ Subxarxa que no correspon → revisa la VLAN del port del commutador (Incidència 5, pas 3).
Capa 2/3 · Servidor DHCP intrús
Un servidor DHCP no autoritzat (un router domèstic connectat per error, una màquina compromesa) respon abans que el legítim i entrega una passarel·la o DNS erronis.
$sudo nmap --script broadcast-dhcp-discover
Server Identifier: 10.0.20.5 (legítim)
Server Identifier: 192.168.1.254 (INTRÚS!)
PS>ipconfig /all | findstr "DHCP"
✗ Dos servidors DHCP a la xarxa → localitza el rogue i activa DHCP snooping al commutador (només els ports de confiança poden oferir DHCP).
Capa 3 · Conflicte d'IP
Dues màquines amb la mateixa IP provoquen connectivitat intermitent i avisos d'"adreça IP duplicada".
$sudo arping -D -I eth0 10.0.20.34
Unicast reply from 10.0.20.34 [b8:27:eb:...] → DUPLICAT!
✗ IP duplicada → sovint una IP estàtica assignada dins del rang del DHCP. Treu-la del rang (exclusió) o corregeix l'estàtica.
Incidència 7 — Connectivitat intermitent o lenta
Xarxa lenta o intermitent — causes d'enllaç
Capa 1 · Dúplex i errors de port
Una negociació dúplex incorrecta (half vs full) o un cable dolent provoquen col·lisions, errors i molta lentitud tot i "tenir connexió".
$ethtool eth0 | grep -E "Speed|Duplex"
Speed: 100Mb/s Duplex: Half (hauria de ser Full!)
sw#show interfaces gi0/3 counters errors
CRC 1423 Runts 88 Late-Coll 210
⚠ Dúplex desaparellat o cable defectuós → fixa la mateixa negociació als dos extrems o canvia el cable.
Capa 3/4 · MTU i PMTUD
La connexió bàsica va, però algunes webs o la VPN es pengen: els paquets grans es descarten i el Path MTU Discovery no funciona perquè algú bloqueja l'ICMP.
$ping -M do -s 1472 1.1.1.1
Frag needed and DF set (mtu = 1400) → 100% packet loss
$ping -M do -s 1372 1.1.1.1
1380 bytes from 1.1.1.1: ... (amb paquet més petit, SÍ)
⚠ Problema de MTU/MSS (típic en VPN i PPPoE) → redueix la MTU de la interfície o aplica MSS clamping, i permet l'ICMP "fragmentation needed".
Capa 3 · On es perden els paquets
Amb latència alta o pèrdues, fes servir mtr per veure a quin salt comença el problema (LAN, ISP o destí).
$mtr -rw 1.1.1.1
1. 10.0.20.1 0.0% loss 1 ms
3. 81.45.x.x 22% loss 140 ms ← el problema comença aquí
PS>pathping 1.1.1.1
⚠ Identifica el salt amb pèrdues: si és a la teva LAN, és cosa teva; si és a l'ISP, cal escalar-ho amb dades (captura del mtr).
Incidència 8 — DNS: casos avançats
DNS avançat — hosts, forwarders, search i DNSSEC
Client · fitxer hosts
El sistema resol els noms segons l'ordre de /etc/nsswitch.conf (hosts: files dns): primer mira el fitxer hosts, i només després el DNS. Una entrada manual al hosts té prioritat i pot "segrestar" un nom cap a una IP vella o falsa.
$getent hosts intranet.exemple.cat
10.9.9.9 intranet.exemple.cat ← ve del hosts, no del DNS!
⚠ Comprova sempre el hosts: hi té prioritat sobre el DNS. Treu o corregeix l'entrada (i buida la cache).
Servidor DNS · Forwarders / recursió
El teu servidor DNS resol bé els dominis interns però no els externs: està configurat com a autoritatiu o li falten els forwarders (o té la recursió desactivada per als clients).