1

Еще несколько месяцев назад мой рабочий стол с Linux выполнял двойную функцию в качестве маршрутизатора для моей домашней сети, и все было хорошо.

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

Подобные ошибки встречаются часто (эта ошибка во время сеанса rsync):

Write failed: Broken pipe
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
rsync: connection unexpectedly closed (1576 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(601) [sender=3.0.7]

Мои сеансы обмена мгновенными сообщениями отключаются и повторно подключаются часто. Сеансы SSH сбрасываются, и иногда веб-страницы не загружаются.

Это всегда активное соединение , которое потеряется (в отличие от проблем , устанавливающих новые связи). И это чаще всего, когда мое интернет-соединение занято - с точки зрения количества активных соединений, а не с точки зрения пропускной способности. Например, запуск bittorrent усугубляет проблему, но загрузка или выгрузка одного большого файла, который занимает 100% моей полосы пропускания, похоже, не вызывает проблему. Я всегда могу восстановить соединение немедленно (хотя новое соединение часто также быстро сбрасывается).

У меня 8мбит (ха! да правильно!) подключение кабельного модема от Telecable (одна из крупнейших кабельных компаний в Мексике). Я предположил бы, что это была проблема с их обслуживанием, за исключением того, что у меня нет проблемы, когда я не использую мой маршрутизатор.

Поэтому мне кажется очевидным, что я достиг своего рода предела "максимальных подключений" в моем маршрутизаторе Linux

В прошлом я сталкивался с подобными проблемами на очень загруженных системах, и увеличение netconn_max (или аналога в старых ядрах) всегда решало проблему. Но на этот раз это не проблема. Это сразу после серии отключений:

/proc/sys/net/ipv4/netfilter/ip_conntrack_max: 48324
/proc/sys/net/ipv4/netfilter/ip_conntrack_count: 75

Для чего стоит вывод `iptables -L -t nat ':

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  anywhere             anywhere            multiport dports 6881:6999 to:10.0.3.5
DNAT       udp  --  anywhere             anywhere            multiport dports 6881:6999 to:10.0.3.5
DNAT       tcp  --  anywhere             anywhere            tcp dpt:4380 to:10.0.3.12
DNAT       udp  --  anywhere             anywhere            udp dpt:4380 to:10.0.3.12
DNAT       tcp  --  anywhere             anywhere            tcp dpt:49181 to:10.0.3.12
DNAT       udp  --  anywhere             anywhere            udp dpt:49181 to:10.0.3.12

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Что еще мне нужно проверить?

Редактировать: загрузить среднее значение и использование памяти, как требуется:

            total       used       free     shared    buffers     cached
Mem:           755        747          8          0        154        504
-/+ buffers/cache:         88        667
Swap:         1903          0       1903

 18:32:19 up 4 days, 19:53,  2 users,  load average: 0.00, 0.00, 0.00

Я также забыл включить вывод uname -a :

Linux reep 2.6.32-5-686 #1 SMP Wed Jan 12 04:01:41 UTC 2011 i686 GNU/Linux

1 ответ1

0

Интересно, что одна из вещей, которую делает ваш «роутер», это маскарад / NAT (если я правильно понял).

Если ваш кабельный модем обычно выполняет эту задачу, на его способность обрабатывать исходящие соединения может влиять тот факт, что все на другой стороне вашего «маршрутизатора» (в кавычках, потому что он делает больше, чем просто маршрут) имеет тот же IP-адрес, в то время как Маршрутизатор включен. Другими словами, если у него есть ведро для каждого хоста для соединений или если его внутренняя обработка соединений просто не может справиться с большим количеством соединений с одного хоста, то маршрутизатор кабельного модема может быть перегружен.

Один из способов проверить это - настроить маршрутизатор так, чтобы он просто передавал пакеты на маршрутизатор с кабельным модемом, а не выполнял маскарад / NAT. Это означает настройку маршрута по умолчанию и указание ядру пересылать пакеты (если я правильно помню). Если я прав, проблема должна исчезнуть снова.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .