LINUX.ORG.RU
решено ФорумAdmin

Мой роутер меня забанил

 


0

3

Привет.

Наблюдаю подземный стук:

Имеется домашняя сеть. В сети роутер на базе OpenWRT, который одновременно является NAS (воткнут HDD в USB), точкой доступа и собственно, интернетом. В него воткнут настольный компьютер, который по NFS имеет доступ к HDD. Также есть несколько клиентов по WiFi. Из сервисов также присутствуют ssh, luci и dhcp/dns.

Симптомы: при интенсивных сетевых операциях по NFS или загрузке торрентов роутер банит настольный компьютер. Выглядит это так: всё продолжает работать, кроме соединений с роутером. То есть связь настольный компьютер - интернет, настольный компьютер - другие клиенты WiFi продолжает работать. На настольном компьютере при этом отваливаются NFS, DHCP, SSH и так далее, вплоть до консоли управления Luci - то есть все соединения с самим роутером. С других клиентов все вышеперечисленные службы остаются доступны. Можно зайти, например, с телефона в Luci и перезагрузить роутер. Можно настроить на настольном компе статический IP (если время аренды DHCP истекло) и продолжать сидеть в интернете без NFS.

Что это может быть? В OpenWRT-шном iptables чёрт ногу сломит. Syn-flood protection? Я пока его отключил. Есть ли возможность отключить Syn-flood protection для внутренних интерфейсов, оставив для наружных?

Если в openwrt есть какой-то более человекочитаемый способ получить содержимое netfilter, скажите мне, я вечером выложу.

★★★★★

Если в openwrt есть какой-то более человекочитаемый способ получить содержимое netfilter, скажите мне, я вечером выложу.

nft list ruleset

anonymous
()

Если там есть аналог fail2ban - смотри его логи и логи сервисов, плагины для которых включены в fail2ban.

Может твой ПК где-то пытается авторизоваться некорректно и fail2ban блокирует доступ.

anonymous
()

А у меня дешманский тупо-линк с помойки купленный 7 лет назад имеющий из настроек две кнопки, как включил так и работает :)

Может в самом роутере с ПЗУ проблемы? Ну проще говоря прошивка слетает, пытается прочитать конфиг, а никак, а по умолчанию на всё блок или типа того. Это я к тому что система нипеля там сложная, может попробовать просто перезалить прошивку, ведь если реально неадекватное поведение внезапное и оно связано с выше предпологаемыми проблемами то один фиг придётся перезаливать.

Мимокрокодил, помыслил вслух просто.

P.S.

который одновременно является NAS

Тогда ой, проглядел.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от LINUX-ORG-RU

Эээ. Если бы слетала прошивка, там был бы кирпич. Более того, это не лечилось бы перезагрузкой.

Может, память битая, при достижении какой-то там ячейки наверху происходит ой, но эту версию мы отложим до изучения более простых.

Aceler ★★★★★
() автор топика
Ответ на: комментарий от Aceler

Может, память битая, при достижении какой-то там ячейки наверху происходит ой, но эту версию мы отложим до изучения более простых.

Очень маловероятно, если ты пишешь, что проблема проявляется только для твоего ПК и с другими узлами сети проблем нет.

Смотри логи сервисов.

anonymous
()
Ответ на: комментарий от anonymous

Очень маловероятно, если ты пишешь, что проблема проявляется только для твоего ПК и с другими узлами сети проблем нет.

Согласен.

Aceler ★★★★★
() автор топика

а в dmesg при этом на ПК и роутере нет ничего интересного?

Какая версия nfs используется?

А во время такой «блокировки» arp нормально работает (arping для проверки)?

Я бы начал с отключения всех offload на сетевом интерфейсе ПК, потом на роутере.

vel ★★★★★
()
Ответ на: комментарий от vel

а в dmesg при этом на ПК и роутере нет ничего интересного?

В роутере нет dmesg. На ПК просто «nfs: server 192.168.10.1 not responding, timed out». После перезагрузки роутера «nfs: server 192.168.10.1 OK». И файловая операция продолжается как ни в чём не бывало, слава NFS.

Какая версия nfs используется?

Четвёртая.

А во время такой «блокировки» arp нормально работает (arping для проверки)?

Нет.

Aceler ★★★★★
() автор топика

wild guess:

при интенсивных сетевых операциях по NFS или загрузке торрентов

заканчиваются свободные сокеты? там ведь можно ограничения ставить через sysctl

С других клиентов все вышеперечисленные службы остаются доступны

не может ли это быть простым совпадением? пока идешь до мобильника, на роутере освобождаются ресурсы и создаётся впечатление, что с мобилы работает, а с десктопа - нет

aol ★★★★★
()

при интенсивных сетевых операциях по NFS или загрузке торрентов роутер банит настольный компьютер.

Проц перегружен

Выглядит это так: всё продолжает работать, кроме соединений с роутером. То есть связь настольный компьютер - интернет, настольный компьютер - другие клиенты WiFi продолжает работать

Это всё может идти большей частью через switch chip. Ну, за исключением файрволла, но ему файловое хранилище для работы не нужно. А вот весь юзерспейс и файловое I/O может и откиснуть, тут не угадаешь.

Можно зайти, например, с телефона в Luci и перезагрузить роутер.

Хм, а вот это уже не вкладывается в мою теорию. Сеть Wi-Fi и проводная объединены в bridge или разные? Интенсивный обмен по NFS идет именно от компа на котором с доступом происходит несчастье?

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 2)
Ответ на: комментарий от aol

не может ли это быть простым совпадением? пока идешь до мобильника, на роутере освобождаются ресурсы и создаётся впечатление, что с мобилы работает, а с десктопа - нет

Нет, не может. Если бы освобождались ресурсы, NFS бы подключался обратно. А тут устойчиво настольный ПК забанен, а телефон устойчиво работает.

Aceler ★★★★★
() автор топика
Ответ на: комментарий от Pinkbyte

Проц перегружен

Для ПК перегружен, а для ноутбука нет? )

Это всё может идти большей частью через switch chip.

Да, но внешний интернет подключен через PPPoE, там процессор нужен. А внешний интернет продолжает работать, отваливаются NFS, DNS, DHCP, SSH.

Сеть Wi-Fi и проводная объединены в bridge или разные?

Объединены.

Интенсивный обмен по NFS идет именно от компа на котором с доступом происходит несчастье?

Да.

Aceler ★★★★★
() автор топика
Ответ на: комментарий от Aceler

Добавь в самый верх правил пакетного фильтра правило ACCEPT в таблицах INPUT, OUTPUT, FORWARD для IP ПК.

Привяжи к мак адресу ПК статический lease, если проблема уйдёт - значит в правилах файрволл и объёме трафика была.

anonymous
()
Ответ на: комментарий от Aceler

Телефон может получить IP от DHCP?

Очень странное поведение. Попробуй подключиться по SSH с телефона к роутеру, а с роутера ssh к компьютеру

r0ck3r ★★★★★
()
Последнее исправление: r0ck3r (всего исправлений: 1)
Ответ на: комментарий от r0ck3r

Телефон может получить IP от DHCP?

Да.

Очень странное поведение. Попробуй подключиться по SSH с телефона к роутеру, а с роутера ssh к компьютеру

Сейчас вот качаю большой файл, посмотрим.

Aceler ★★★★★
() автор топика
Ответ на: комментарий от Aceler

ssh добавляет задержки, т.ч. скорее всего будет работать.

Я вижу два варианта проблем: в USB (через которое подключен hdd) и проблему в сетевой карте.

Я бы посмотрел какие offload (tso,gso,gro,lro,sg) есть на роутере и на ПК, и попробовал их отключать (ethtool -k).

А если на роутере сделать dd if=/dev/sdX bs=64k of=/dev/zero, то проблем не возникает? Просто тест на то, что с usb все впорядке.

Я тут столкнулся со странными эффектами на usb3 c сетевой картой.

vel ★★★★★
()
Ответ на: комментарий от vel

Я вижу два варианта проблем: в USB (через которое подключен hdd) и проблему в сетевой карте.

Если бы проблемы с USB влияли на luci, то я не мог бы подключиться к luci ни с ПК, ни через WiFi. Проблема в сетевой карте и offload — это надо посмотреть, да.

Aceler ★★★★★
() автор топика
Ответ на: комментарий от Aceler

это надо посмотреть, да.

Уже выше написали, что смотреть надо логи в момент возникновения проблемы в первую очередь. Если с этим есть проблемы, то тогда удалить openwrt.

zent
()

Ну, поехали.

logread: https://hastebin.com/share/ruxatemasu.yaml

Я попробовал использовать случайный mac. Не помогло. Видно, что DHCP сервер пытается раздать IP новым появившимся в сети mac-адресам. Но пакеты не доходят.

192.168.10.193 - это ноутбук, он подключился по WiFi и работает нормально, в т.ч. по NFS.

nft list ruleset: https://hastebin.com/share/ovatucuyeq.python

ip n видит новые случайные mac-адреса настольного ПК. Настольный компьютер видит роутер в таблице ARP.

Дальше я поменял физический порт с первого на третий. Не помогло.

Ощущение, что забанен весь исходящий трафик по проводу, а по WiFi всё работает.

Но это же чудеса. И главное, интернет-то работает, LOR грузится - если установить статический IP, адрес шлюза и внешний DNS.

Offload по Ethernet как проверить?

P.S. Занятых сокетов около 1000 из 65000. Нагрузка на процессор не более 50% при интенсивном копировании по NFS. После того, как NFS отвалится нагрузка вообще около нуля.

Aceler ★★★★★
() автор топика
Последнее исправление: Aceler (всего исправлений: 1)
Ответ на: комментарий от Aceler

Подкллючил ноутбук по проводу. Он не смог получить адрес по DHCP и подключиться к роутеру. Т.е. отваливается именно проводное соединение.

Aceler ★★★★★
() автор топика
Ответ на: комментарий от Aceler

Ощущение, что забанен весь исходящий трафик по проводу, а по WiFi всё работает.

Попробуй поменять провод, может он у тебя поврежден, хотя конечно переключение в другой порт, опускание и поднятие линка должны бы были помочь.

anonymous
()
Ответ на: комментарий от Aceler

И главное, интернет-то работает, LOR грузится - если установить статический IP, адрес шлюза и внешний DNS.

А сам роутер пингуется в этот момент по ethernet подключению?

zent
()
Последнее исправление: zent (всего исправлений: 1)
Ответ на: комментарий от vel

На WiFi существенно выше задержки и скорость ниже чем по проводу.

И?

ethtool -k

А, точно :-)

А от направления копирования по nfs что-нибудь меняется?

На сколько я могу судить, нет. Надо ещё попробовать подключить ноутбук по WiFi, зацепить NFS и сломать WiFi.

Aceler ★★★★★
() автор топика

Кто-нибудь уже советовал установить tcpdump на роутер и/или ПК?

logread

Это в момент интенсивной нагрузки, когда всё отваливается? Или уже отвалилось и пробуешь подключаться?

перезагрузить роутер

Если перезагружать не роутер, а отдельные службы?

NyXzOr ★★★★
()
Последнее исправление: NyXzOr (всего исправлений: 2)
Ответ на: комментарий от vel
# ethtool -k br-lan 
Features for br-lan:
rx-checksumming: off [fixed]
tx-checksumming: on
	tx-checksum-ipv4: off [fixed]
	tx-checksum-ip-generic: on
	tx-checksum-ipv6: off [fixed]
	tx-checksum-fcoe-crc: off [fixed]
	tx-checksum-sctp: off [fixed]
scatter-gather: on
	tx-scatter-gather: on
	tx-scatter-gather-fraglist: off [requested on]
tcp-segmentation-offload: on
	tx-tcp-segmentation: on
	tx-tcp-ecn-segmentation: on
	tx-tcp-mangleid-segmentation: on
	tx-tcp6-segmentation: on
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: off [fixed]
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: off [fixed]
highdma: on
rx-vlan-filter: off [fixed]
vlan-challenged: off [fixed]
tx-lockless: on [fixed]
netns-local: on [fixed]
tx-gso-robust: off [requested on]
tx-fcoe-segmentation: off [requested on]
tx-gre-segmentation: on
tx-gre-csum-segmentation: on
tx-ipxip4-segmentation: on
tx-ipxip6-segmentation: on
tx-udp_tnl-segmentation: on
tx-udp_tnl-csum-segmentation: on
tx-gso-partial: on
tx-tunnel-remcsum-segmentation: on
tx-sctp-segmentation: off [requested on]
tx-esp-segmentation: on
tx-udp-segmentation: on
tx-gso-list: on
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off [fixed]
rx-all: off [fixed]
tx-vlan-stag-hw-insert: on
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: off [fixed]
esp-hw-offload: off [fixed]
esp-tx-csum-hw-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]
tls-hw-tx-offload: off [fixed]
tls-hw-rx-offload: off [fixed]
rx-gro-hw: off [fixed]
tls-hw-record: off [fixed]
rx-gro-list: off
macsec-hw-offload: off [fixed]
# ethtool -k eth0
Features for eth0:
rx-checksumming: on
tx-checksumming: on
	tx-checksum-ipv4: on
	tx-checksum-ip-generic: off [fixed]
	tx-checksum-ipv6: on
	tx-checksum-fcoe-crc: off [fixed]
	tx-checksum-sctp: off [fixed]
scatter-gather: on
	tx-scatter-gather: on
	tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: on
	tx-tcp-segmentation: on
	tx-tcp-ecn-segmentation: off [fixed]
	tx-tcp-mangleid-segmentation: off
	tx-tcp6-segmentation: on
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: on
tx-vlan-offload: on
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: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-ipxip4-segmentation: off [fixed]
tx-ipxip6-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: off [fixed]
tx-tunnel-remcsum-segmentation: off [fixed]
tx-sctp-segmentation: off [fixed]
tx-esp-segmentation: off [fixed]
tx-udp-segmentation: off [fixed]
tx-gso-list: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off [fixed]
rx-all: off [fixed]
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: on
esp-hw-offload: off [fixed]
esp-tx-csum-hw-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]
tls-hw-tx-offload: off [fixed]
tls-hw-rx-offload: off [fixed]
rx-gro-hw: off [fixed]
tls-hw-record: off [fixed]
rx-gro-list: off
macsec-hw-offload: off [fixed]
Aceler ★★★★★
() автор топика
Ответ на: комментарий от NyXzOr

Это в момент интенсивной нагрузки, когда всё отваливается? Или уже отвалилось и пробуешь подключаться?

Это когда уже всё отвалилось, подключаюсь с ноутбука и снимаю logread.

Aceler ★★★★★
() автор топика
Ответ на: комментарий от NyXzOr

То есть логи же в ОЗУ только хранятся (по умолчанию). Не стерлись ли в момент сбоя?

Ага, «стёрлись». Выборочно, с выравниванием по концу строки, да так, что ядро не заметило потери бойца.

Не нужно нести чушь :-) Так не бывает.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

рестарт /etc/init.d/log restart стирает логи. Просто у него ещё короткий вывод logread. В 64кб, которые по умолчанию, обычно больше текста влазит. Либо он не весь лог показал.

с выравниванием по концу строки

Это не понял. Где выравнивание по концу строки?

NyXzOr ★★★★
()
Последнее исправление: NyXzOr (всего исправлений: 3)
Ответ на: комментарий от Aceler

По ссылке написано, что у роутера весь трафик переставал через ethernet отправляться. А здесь получается, что транзитный трафик спокойно роутится, более того даже локальные icmp приходят и уходят. Т.е. проблема получается чисто с локальным udp/tcp трафиком. Вот как раз поэтому gso в первую очередь под подозрение попадает. Т.е. его надо заранее выключить и потестироватьуже без него - будет проявляться проблема или нет. Если также будет проявляться, то можно правила добавить в INPUT/OUTPUT цепочки нетфильтра на ACCEPT (например, для udp пакетов с 67 и 68 портом для DHCP) и дальше по счетчикам посмотреть приходят ли пакеты на br-lan и уходят ли с него и т.п.

zent
()
Ответ на: комментарий от Aceler

А, мудотек. Там емнип может встать колом dma между процом и свитчом, там не gmii, а шаред мемори емнип. Проявляется как раз под нагрузкой и симптомы схожи, потому что транзитный проходит. Ограничь nfs по пропускной способности, триггериться будет реже.

Dark_SavanT ★★★★★
()