Une fois en plusieurs jours, j'ai le problème suivant. Mon ordinateur portable (test Debian) devient soudainement incapable de fonctionner avec des connexions TCP à Internet.
Les choses suivantes continuent de bien fonctionner:
- UDP (DNS), ICMP (ping) - je reçois une réponse instantanée
- Connexions TCP à d'autres machines du réseau local (par exemple, je peux ssh vers un ordinateur portable voisin)
- tout va bien pour les autres machines de mon LAN
Mais lorsque j'essaie les connexions TCP depuis mon ordinateur portable, elles expirent (pas de réponse aux paquets SYN). Voici une sortie curl typique:
% curl -v google.com
* About to connect() to google.com port 80 (#0)
* Trying 173.194.39.105...
* Connection timed out
* Trying 173.194.39.110...
* Connection timed out
* Trying 173.194.39.97...
* Connection timed out
* Trying 173.194.39.102...
* Timeout
* Trying 173.194.39.98...
* Timeout
* Trying 173.194.39.96...
* Timeout
* Trying 173.194.39.103...
* Timeout
* Trying 173.194.39.99...
* Timeout
* Trying 173.194.39.101...
* Timeout
* Trying 173.194.39.104...
* Timeout
* Trying 173.194.39.100...
* Timeout
* Trying 2a00:1450:400d:803::1009...
* Failed to connect to 2a00:1450:400d:803::1009: Network is unreachable
* Success
* couldn't connect to host
* Closing connection #0
curl: (7) Failed to connect to 2a00:1450:400d:803::1009: Network is unreachable
Redémarrer la connexion et / ou recharger le module du noyau de la carte réseau n'aide pas. La seule chose qui aide est de redémarrer.
De toute évidence, quelque chose ne va pas avec mon système (tout le reste fonctionne bien), mais je n'ai aucune idée de quoi exactement.
Ma configuration est un routeur sans fil qui est connecté au FAI via PPPoE.
Aucun conseil?
Réponses aux commentaires
De quelle carte réseau s'agit-il?
12:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)
Subsystem: Dell Inspiron M5010 / XPS 8300
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at fbb00000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Capabilities: [58] Vendor Specific Information: Len=78 <?>
Capabilities: [48] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [d0] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [13c] Virtual Channel
Capabilities: [160] Device Serial Number 00-00-9d-ff-ff-aa-1c-65
Capabilities: [16c] Power Budgeting <?>
Kernel driver in use: brcmsmac
Quel est l'état de votre carte réseau lorsque le problème se produit?
iptables-save
n'imprime rien.
ip rule show
:
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
ip route show table all
:
default via 192.168.1.1 dev wlan0
192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.105
broadcast 127.0.0.0 dev lo table local proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1
broadcast 192.168.1.0 dev wlan0 table local proto kernel scope link src 192.168.1.105
local 192.168.1.105 dev wlan0 table local proto kernel scope host src 192.168.1.105
broadcast 192.168.1.255 dev wlan0 table local proto kernel scope link src 192.168.1.105
fe80::/64 dev wlan0 proto kernel metric 256
unreachable default dev lo table unspec proto kernel metric 4294967295 error -101 hoplimit 255
local ::1 via :: dev lo table local proto none metric 0
local fe80::1e65:9dff:feaa:b1f1 via :: dev lo table local proto none metric 0
ff00::/8 dev wlan0 table local metric 256
unreachable default dev lo table unspec proto kernel metric 4294967295 error -101 hoplimit 255
Tout ce qui précède est le même lorsque la machine fonctionne en mode normal.
ifconfig
- Je l'ai exécuté, mais j'ai oublié de sauvegarder avant de redémarrer. Devra attendre la prochaine fois que le problème se produira. Désolé pour ça.
Y a-t-il une QoS en place?
Probablement pas - au moins, je n'ai rien fait spécifiquement pour l'activer.
Avez-vous essayé de flairer le trafic réellement envoyé sur l'interface?
J'ai couru plusieurs fois curl et tcpdump, et il y avait deux modèles.
Le premier n'est que des paquets SYN sans réponses.
17:14:37.836917 IP (tos 0x0, ttl 64, id 4563, offset 0, flags [DF], proto TCP (6), length 60)
192.168.1.105.42030 > fra07s07-in-f102.1e100.net.http: Flags [S], cksum 0x27fc (incorrect -> 0xbea8), seq 3764607647, win 13600, options [mss 1360,sackOK,TS val 33770316 ecr 0,nop,wscale 4], length 0
17:14:38.836650 IP (tos 0x0, ttl 64, id 4564, offset 0, flags [DF], proto TCP (6), length 60)
192.168.1.105.42030 > fra07s07-in-f102.1e100.net.http: Flags [S], cksum 0x27fc (incorrect -> 0xbdae), seq 3764607647, win 13600, options [mss 1360,sackOK,TS val 33770566 ecr 0,nop,wscale 4], length 0
17:14:40.840649 IP (tos 0x0, ttl 64, id 4565, offset 0, flags [DF], proto TCP (6), length 60)
192.168.1.105.42030 > fra07s07-in-f102.1e100.net.http: Flags [S], cksum 0x27fc (incorrect -> 0xbbb9), seq 3764607647, win 13600, options [mss 1360,sackOK,TS val 33771067 ecr 0,nop,wscale 4], length 0
La seconde est la suivante:
17:22:56.507827 IP (tos 0x0, ttl 64, id 41583, offset 0, flags [DF], proto TCP (6), length 60)
192.168.1.105.42036 > fra07s07-in-f102.1e100.net.http: Flags [S], cksum 0x27fc (incorrect -> 0x2244), seq 1564709704, win 13600, options [mss 1360,sackOK,TS val 33894944 ecr 0,nop,wscale 4], length 0
17:22:56.546763 IP (tos 0x58, ttl 54, id 65442, offset 0, flags [none], proto TCP (6), length 60)
fra07s07-in-f102.1e100.net.http > 192.168.1.105.42036: Flags [S.], cksum 0x6b1e (correct), seq 1407776542, ack 1564709705, win 14180, options [mss 1430,sackOK,TS val 3721836586 ecr 33883552,nop,wscale 6], length 0
17:22:56.546799 IP (tos 0x58, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)
192.168.1.105.42036 > fra07s07-in-f102.1e100.net.http: Flags [R], cksum 0xf301 (correct), seq 1564709705, win 0, length 0
17:22:58.511843 IP (tos 0x0, ttl 64, id 41584, offset 0, flags [DF], proto TCP (6), length 60)
192.168.1.105.42036 > fra07s07-in-f102.1e100.net.http: Flags [S], cksum 0x27fc (incorrect -> 0x204f), seq 1564709704, win 13600, options [mss 1360,sackOK,TS val 33895445 ecr 0,nop,wscale 4], length 0
17:22:58.555423 IP (tos 0x58, ttl 54, id 65443, offset 0, flags [none], proto TCP (6), length 60)
fra07s07-in-f102.1e100.net.http > 192.168.1.105.42036: Flags [S.], cksum 0x3b03 (correct), seq 1439178112, ack 1564709705, win 14180, options [mss 1430,sackOK,TS val 3721838596 ecr 33883552,nop,wscale 6], length 0
17:22:58.555458 IP (tos 0x58, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)
192.168.1.105.42036 > fra07s07-in-f102.1e100.net.http: Flags [R], cksum 0xf301 (correct), seq 1564709705, win 0, length 0
sortie ethtool
ethtool -k wlan0
:
Features for wlan0:
rx-checksumming: off [fixed]
tx-checksumming: off
tx-checksum-ipv4: off [fixed]
tx-checksum-unneeded: off [fixed]
tx-checksum-ip-generic: off [fixed]
tx-checksum-ipv6: off [fixed]
tx-checksum-fcoe-crc: off [fixed]
tx-checksum-sctp: off [fixed]
scatter-gather: off
tx-scatter-gather: off [fixed]
tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: off
tx-tcp-segmentation: off [fixed]
tx-tcp-ecn-segmentation: off [fixed]
tx-tcp6-segmentation: off [fixed]
udp-fragmentation-offload: off [fixed]
generic-segmentation-offload: off [requested on]
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: off [fixed]
tx-vlan-offload: off [fixed]
ntuple-filters: off [fixed]
receive-hashing: off [fixed]
highdma: off [fixed]
rx-vlan-filter: off [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: on [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
iptables
# namei -l "$(command -v iptables)"
f: /sbin/iptables
drwxr-xr-x root root /
drwxr-xr-x root root sbin
lrwxrwxrwx root root iptables -> xtables-multi
-rwxr-xr-x root root xtables-multi
# dpkg -S "$(command -v iptables)"
iptables: /sbin/iptables
# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
# iptables -t mangle -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
# iptables -t security -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
informations sur le module
# ethtool -i wlan0
driver: brcmsmac
version: 3.2.0-3-686-pae
firmware-version: N/A
bus-info: 0000:12:00.0
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
# modinfo brcmsmac
filename: /lib/modules/3.2.0-3-686-pae/kernel/drivers/net/wireless/brcm80211/brcmsmac/brcmsmac.ko
license: Dual BSD/GPL
description: Broadcom 802.11n wireless LAN driver.
author: Broadcom Corporation
alias: pci:v000014E4d00000576sv*sd*bc*sc*i*
alias: pci:v000014E4d00004727sv*sd*bc*sc*i*
alias: pci:v000014E4d00004353sv*sd*bc*sc*i*
alias: pci:v000014E4d00004357sv*sd*bc*sc*i*
depends: mac80211,brcmutil,cfg80211,cordic,crc8
intree: Y
vermagic: 3.2.0-3-686-pae SMP mod_unload modversions 686
Il n'y a pas /sys/module/brcmsmac/parameters
. Voici ce que j'y ai:
# tree /sys/module/brcmsmac
/sys/module/brcmsmac
├── drivers
│ └── pci:brcmsmac -> ../../../bus/pci/drivers/brcmsmac
├── holders
├── initstate
├── notes
├── refcnt
├── sections
│ └── __bug_table
└── uevent
Certains sites fonctionnent réellement
Comme suggéré par dr , j'ai essayé d'autres sites, et à ma grande surprise, certains d'entre eux ont effectivement fonctionné. Voici quelques hôtes qui ont fonctionné:
- rambler.ru
- google.ru
- ya.ru
- opennet.ru
- tut.by
- ro-che.info
- yahoo.com
- ebay.com
Et voici certains qui n'ont pas:
- vk.com
- meta.ua
- ukr.net
- tenet.ua
- prom.ua
- reddit.com
- github.com
- stackexchange.com
Capture réseau
J'ai fait une capture réseau et l'ai téléchargée ici .
la source
iptables-save
, deip rule show
,ip route show table all
. Une QoS en place?linux-image-3.2.0-3-686-pae
), et le firmware provient dufirmware-brcm80211
package. Avez-vous eu des problèmes similaires au mien? Je préfère éviter de construire des trucs à la main, sauf s'il s'agit d'un problème connu. Aussi, pourquoi un problème de module NIC se manifesterait-il sur la couche 4?Réponses:
Dans la capture que vous avez fournie, la réponse d'écho d'horodatage dans le SYN-ACK dans le deuxième paquet ne correspond pas au TSVal dans le SYN dans le premier paquet et a quelques secondes de retard.
Et voyez comment tous les TSecr envoyés à la fois par 173.194.70.108 et 209.85.148.100 sont tous identiques et sans rapport avec le TSVal que vous envoyez.
Il semble qu'il y ait quelque chose qui se mélange aux horodatages TCP. Je n'ai aucune idée de ce qui peut provoquer cela, mais il semble que ce soit en dehors de votre machine. Le redémarrage du routeur est-il utile dans ce cas?
Je ne sais pas si c'est ce qui fait que votre machine envoie un RST (sur le 3ème paquet). Mais il n'aime vraiment pas ce SYN-ACK, et c'est la seule chose que je puisse trouver. La seule autre explication à laquelle je peux penser est que si ce n'est pas votre machine qui envoie le RST mais étant donné la différence de temps entre le SYN-ACK et le RST, j'en doute. Mais au cas où, utilisez-vous des machines virtuelles ou des conteneurs ou des espaces de noms réseau sur cette machine?
Vous pouvez essayer de désactiver complètement les horodatages TCP pour voir si cela aide:
Donc, soit ces sites envoient de faux TSecr, soit il y a quelque chose en route (n'importe quel routeur en cours de route ou proxy transparent) qui gêne le TSVal sortant ou le TSecr entrant, ou un proxy avec une pile TCP bidon. Pourquoi on pourrait modifier les horodatages TCP, je ne peux que spéculer: bogue, évasion de détection d'intrusion, un algorithme de mise en forme du trafic trop intelligent / faux. Ce n'est pas quelque chose dont j'ai entendu parler auparavant (mais je ne suis pas un expert en la matière).
Comment enquêter davantage:
la source
Il indique une somme de contrôle incorrecte ci-dessus. Existe-t-il un déchargement de la somme de contrôle pour cet appareil (je ne savais pas que les appareils sans fil pouvaient décharger les sommes de contrôle).
Qu'est-ce que ça
sudo ethtool -k wlan0
vous dit. En cas de déchargement, vous pouvez essayer de le désactiver.Vous devez être root pour appeler iptables-save. Il y a encore quelques chances éloignées que quelque chose gâche des paquets là-bas. Si
iptables-save
cela ne fonctionne pas, essayez:Dans votre capture réseau, l'adresse MAC de destination correspond-elle à celle du routeur. Quelque chose d'intéressant dans une comparaison entre le trafic UDP et le trafic TCP?
En outre, où se
$dev
trouve le pilote du noyau (module) (voirethtool -i wlan0
) pour votre adaptateur sans fil, que fairemodinfo "$dev"
etgrep . /sys/module/"$dev"/parameters/*
vous dire?la source
namei -l "$(command -v iptables)"
etdpkg -S "$(command -v iptables)"
dites-vous?tshark -Viwlan0 tcp
un de ces paquets SYN ici?Il semble que j'ai exactement le même comportement sur mon ordinateur portable. Je ne connais pas la raison, mais de temps en temps, je ne pouvais pas me connecter à google.com et à d'autres ressources externes. Les requêtes ping et DNS fonctionnent parfaitement. De plus, je n'ai trouvé qu'une seule solution: redémarrer .
Je pourrais ajouter plusieurs observations:
Quelques informations techniques sur ma box:
Système d'exploitation: Last ArchLinux amd64
Je suppose que ce comportement de bogue se produit à cause d'un bogue subtil dans certaines versions du noyau Linux, mais je ne sais pas comment déboguer ce problème et à cause d'une reproduction instable, je suis bloqué.
la source
J'ai eu le même problème que vous avez décrit jusqu'à ce que ajouté ci - dessus commande mes iptables de passerelle Internet. In est inclus par défaut dans le package rp-pppoe et autres. Mais lorsque vous optez pour des configurations personnalisées et que vous ne le définissez pas manuellement, les ordinateurs sur le LAN derrière la passerelle auront les problèmes que vous décrivez.
la source