Sekali dalam beberapa hari saya memiliki masalah berikut. Laptop saya (pengujian Debian) tiba-tiba menjadi tidak dapat berfungsi dengan koneksi TCP ke internet.
Hal-hal berikut terus bekerja dengan baik:
- UDP (DNS), ICMP (ping) - Saya mendapat respons instan
- Koneksi TCP ke mesin lain di jaringan lokal (mis. Saya bisa ssh ke laptop tetangga)
- semuanya ok untuk mesin lain di LAN saya
Tetapi ketika saya mencoba koneksi TCP dari laptop saya, mereka time out (tidak ada tanggapan terhadap paket SYN). Berikut ini adalah hasil keriting yang khas:
% 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
Memulai kembali koneksi dan / atau memuat kembali modul kernel kartu jaringan tidak membantu. Satu-satunya hal yang membantu adalah reboot.
Jelas ada yang salah dengan sistem saya (semuanya berfungsi dengan baik), tapi saya tidak tahu persis apa.
Pengaturan saya adalah router nirkabel yang terhubung ke ISP melalui PPPoE.
Ada saran?
Jawaban untuk komentar
NIC apa itu?
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
Bagaimana keadaan NIC Anda saat masalah terjadi?
iptables-save
tidak mencetak apa pun.
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
Semua hal di atas sama ketika mesin bekerja dalam mode normal.
ifconfig
- Saya menjalankannya, tetapi entah bagaimana lupa menyimpan sebelum me-reboot. Harus menunggu sampai waktu berikutnya masalah terjadi. Maaf soal itu.
Ada QoS di tempat?
Mungkin tidak - setidaknya saya belum melakukan sesuatu yang khusus untuk mengaktifkannya.
Sudahkah Anda mencoba mengendus lalu lintas yang sebenarnya dikirim pada antarmuka?
Saya berlari keriting dan tcpdump beberapa kali, dan ada dua pola.
Yang pertama adalah paket SYN tanpa jawaban.
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
Yang kedua adalah ini:
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
keluaran 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
info modul
# 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
Tidak ada /sys/module/brcmsmac/parameters
. Inilah yang saya miliki di sana:
# tree /sys/module/brcmsmac
/sys/module/brcmsmac
├── drivers
│ └── pci:brcmsmac -> ../../../bus/pci/drivers/brcmsmac
├── holders
├── initstate
├── notes
├── refcnt
├── sections
│ └── __bug_table
└── uevent
Beberapa situs sebenarnya berfungsi
Seperti yang disarankan oleh dr , saya mencoba beberapa situs lain, dan saya sangat terkejut beberapa dari mereka benar-benar berfungsi. Berikut beberapa host yang berfungsi:
- rambler.ru
- google.ru
- ya.ru
- opennet.ru
- tut.by
- ro-che.info
- yahoo.com
- ebay.com
Dan ada beberapa yang tidak:
- vk.com
- meta.ua
- ukr.net
- tenet.ua
- prom.ua
- reddit.com
- github.com
- stackexchange.com
Pengambilan jaringan
Saya membuat tangkapan jaringan dan mengunggahnya di sini .
sumber
iptables-save
, dariip rule show
,ip route show table all
. Ada QoS di tempat?linux-image-3.2.0-3-686-pae
), dan firmware berasal darifirmware-brcm80211
paket. Apakah Anda memiliki masalah yang mirip dengan masalah saya? Saya lebih suka menghindari membuat barang dengan tangan, kecuali itu adalah masalah yang diketahui. Juga, mengapa masalah modul NIC memanifestasikan dirinya pada layer 4?Jawaban:
Dalam tangkapan yang Anda berikan, Time Stamp Echo Balas di SYN-ACK di paket kedua tidak cocok dengan TSVal di SYN dalam paket pertama dan beberapa detik di belakang.
Dan lihat bagaimana semua TSecr yang dikirim oleh 173.194.70.108 dan 209.85.148.100 semuanya sama dan tidak relevan dari TSVal yang Anda kirim.
Sepertinya ada sesuatu yang berbaur dengan stempel waktu TCP. Saya tidak tahu apa yang menyebabkan itu, tetapi sepertinya ada di luar mesin Anda. Apakah me-reboot router membantu dalam hal ini?
Saya tidak tahu apakah itu yang menyebabkan mesin Anda mengirim RST (pada paket ke-3). Tapi itu pasti tidak suka SYN-ACK, dan itu satu-satunya hal yang salah yang dapat saya temukan tentang itu. Satu-satunya penjelasan lain yang bisa saya pikirkan adalah jika bukan mesin Anda yang mengirim RST tetapi mengingat perbedaan waktu antara SYN-ACK dan RST saya akan ragu begitu. Tapi untuk berjaga-jaga, apakah Anda menggunakan mesin virtual atau wadah atau ruang nama jaringan pada mesin ini?
Anda dapat mencoba menonaktifkan cap waktu TCP sama sekali untuk melihat apakah itu membantu:
Jadi, baik situs-situs tersebut mengirim TSecr palsu atau ada sesuatu dalam perjalanan ke sana (router apa pun di jalan, atau proksi transparan) yang mengatur TSVal keluar atau TSecr yang masuk, atau proxy dengan tumpukan TCP palsu. Mengapa seseorang harus membuat cap waktu tcp saya hanya bisa berspekulasi: bug, penghindaran deteksi intrusi, algoritma pembentukan lalu lintas yang terlalu pintar / palsu. Itu bukan sesuatu yang pernah saya dengar sebelumnya (tapi kemudian saya bukan ahli dalam hal ini).
Cara menyelidiki lebih lanjut:
sumber
Dikatakan salah checksum di atas. Apakah ada pembebanan checksum untuk perangkat itu (saya tidak tahu perangkat nirkabel dapat membongkar checksum).
Apa yang
sudo ethtool -k wlan0
memberitahumu. Jika ada pembongkaran, Anda mungkin ingin mencoba dan menonaktifkannya.Anda harus melakukan root untuk memanggil iptables-save. Masih ada sedikit peluang bahwa ada sesuatu yang merusak paket di sana. Jika
iptables-save
tidak berhasil, coba:Dalam tangkapan jaringan Anda, apakah alamat MAC tujuan cocok dengan router. Adakah yang menarik dalam perbandingan dari lalu lintas UDP ke lalu lintas TCP?
Juga, di mana
$dev
driver kernel (modul) (lihatethtool -i wlan0
) untuk adaptor nirkabel Anda, apa yang harus Anda lakukanmodinfo "$dev"
dangrep . /sys/module/"$dev"/parameters/*
katakan?sumber
namei -l "$(command -v iptables)"
dandpkg -S "$(command -v iptables)"
katakan?tshark -Viwlan0 tcp
salah satu paket SYN di sini?Sepertinya, saya memiliki perilaku yang sama persis di laptop saya juga. Saya tidak tahu alasannya, tetapi dari waktu ke waktu saya tidak dapat terhubung ke google.com dan beberapa sumber daya eksternal lainnya. Permintaan ping dan DNS bekerja dengan sempurna. Saya juga hanya menemukan satu solusi: reboot .
Saya bisa menambahkan beberapa pengamatan:
Beberapa informasi teknis tentang kotak saya:
OS: ArchLinux Terakhir amd64
Saya kira, perilaku buggy ini terjadi karena beberapa bug halus di beberapa versi kernel Linux, tapi saya tidak tahu bagaimana cara men-debug masalah ini, dan karena mereproduksi yang tidak stabil saya terjebak.
sumber
Saya memiliki masalah yang sama seperti yang Anda gambarkan sampai menambahkan perintah di atas perintah Internet iptables gateway saya. In termasuk secara default dalam paket rp-pppoe dan lainnya. Tetapi ketika Anda pergi untuk konfigurasi khusus dan tidak mengaturnya secara manual, komputer pada LAN di belakang gateway akan memiliki masalah yang Anda jelaskan.
sumber