Разгрузил роутер
Было дело, не так давно. С роутерами заморочка была. На руках 3 штуки а какой не подключу, приходится то перезагружать раз в двое суток (примерно), то менять аппарат. Как это бывает, вдруг осенило. Надо просто поискать информацию в инете. Текста будет не много. Всё оказалось проще некуда.
Скрины с моего роутера TP LINK WR942N. В принципе всё интуитивно понятно.
Зашёл в админку роутера, и конечно же после прочтения статьи, обратил внимание на загрузку процессора. Собственно стало понятно почему именно этот роутер (другие не проверял пока) сбрасывал сетевой сигнал по wifi. Загрузка процессора 100%. И этот показатель не изменялся.
Зашел в «Дополнительные настройки» -> «Беспроводной режим» -> «Настройка беспроводного режима»
Там есть такая строка «Мощность передатчика». И она настроена на Высокую мощность. Меняем на среднюю. Что в целом не изменило сигнала в квартире. Я думал сигнал будет хуже.
И сохраняем. Я для надёжности еще и перезагрузил роутер.
Здесь конечно показывает загрузку совсем маленькую (сразу после смены мощности передатчика). Но потом, в процессе загрузка процессора не поднималась выше 27ми процентов. Пока во всяком случае. Роутер еще не разу не глюканул.
В статье еще было про отключение шифрования, что как говорят тоже снижает нагрузку на процессор. (отключение шифрования, скрытие сети и т.д.) Мне оказалось достаточно просто снизить мощность передатчика. Без дальнейших танцев с бубном.
Глобально, смысл в том, что роутер, сам по себе, — устройство с определенными характеристиками железа внутри (так же, как и в компьютере, — там есть память, процессор со своей частотой и тд и тп). От характеристик, что логично зависит мощность и цена.
Логично, что роутер, помимо трансляции трафика, занимается много чем еще, — предоставляет услуги DHCP , Firewall , NAT , обеспечивает то самое шифрование данных, обеспечивает зону покрытия и прочее и прочее.
Само собой, что всем этим занимается его железо и операционной системы (прошивки), от которых, во многой степени и зависит производительность. В частности, как раз на железо в большей части ложится нагрузка, связанная с шифрованием фильтрацией трафика.
Шифрование, на слабеньких роутерах с таким же ПО, чаще всего ест больше всего ресурсов, равно как встроенные возможности по фильтрации трафика и функционал фаерволла, если таковой есть. На этом, исключительно в условиях дома , можно сыграть.
Т.е, по сути, остаемся без пароля, шифрования и с голой попой, что изначально кажется печальным, но, тем не менее, существенно экономит ресурсы нашего устройства.
С этого момента жить должно быть проще и веселее, — скорость может и не поднимется на порядок, но роутер будет реже виснуть, перезагружаться и поддерживать большее число устройств.
Так как сидеть с голой попой не хочется и вредно, то для начала полезно будет скрыть имя точки Wi-Fi . За это обычно отвечает пункт Hide SSID или Hide network , SSID Broadcast disable ..
Это позволит скрыть имя точки доступа при поиске сети устройствами, т.е подключаться смогут только те, кто это имя знает. Такой себе аналог пароля, но без шифрования.
Это не 100 % скрывает точку, т.к найти её всё равно можно сканерами и другими способами, но тем не менее, если Вы дома, а соседи подкованы не очень, то такой маленький и безобидный шаг скроет Вас от лишних глаз.
Тем не менее, чтобы быть спокойнее, есть смысл привязать свои устройства по MAC -адресу, а роутер переключить в закрытый режим, т.е подключаться разрешит только тем устройствам, что есть в списке и чей MAC -адрес совпадает с указанным в списке
Может кому подвернется эта информация и поможет. Как мне например.
Когда маршрутизатор не справляется с нагрузкой
Поделюсь одним случаем из телекоммуникационной практики.
У нас стоит циска 26-й серии (2620XM). На ней заведено около четырёх десятков сабинтерфейсов. Большинство для локальных абонентов, расположенных в том же здании, и есть несколько линков на дальние точки. Среди них аэропорт, кирпичный завод, горнолыжный комплекс, совхоз. «Да это ж старьё непотребное» — скажете вы и будете правы, но так исторически сложилось. Однако суть не в этом.
И вот некоторое время назад оказалось что нагрузка слишком высока. Сначала это проявлялось в некоторых задержках при работе в консоли. Типа набираешь команду, а буквы появляются не сразу а немного с задержкой. Потом периодически стал увеличиваться пинг до циски с удалённых точек. Следующий симптом — иногда отваливающийся канал в интернет (при этом маршрутизация внутри локальной сети работала безупречно и потерь не было). А в логах тем временем жуткая картина о сильно активном использовании CPU. Загрузка процессора не опускается ниже 80%, а большую часть времени 95-99%. Теперь пинг стал теряться даже если ты находишься в той же подсети. Интернет захромал на обе ноги.
Проблемы было две: эта циска выполняла функции NAT’а, который очень нехило нагружает маршрутизатор, и наличие всего одного интерфейса на борту. Такая схема подключения называется маршрутизатор на палочке, потому что от свитча идёт всего один линк до него, а все подсети заводятся на сабинтерфейсах. Получается, что весь трафик — даже локальный в рамках одного здания проходит через один порт и через него же идёт весь трафик, исходящий вовне. Кроме того циска также передавала голос от одной АТС к другой.
Так дальше продолжаться не могло. И настал один прекрасный момент, когда сеть большую часть дня просто лежала. Практически перестал ходить даже локальный трафик. До кучи это совпало с важной телефонной конференцией одного из абонентов (больше половины звонков отбрасывалась из-за высокой нагрузки) и не менее важной презентацией другого. Меры нужны были экстренные — если на следующий день всё повторится, то последствия будут просто непоправимыми — подошёл срок сдачи бухгалтерской отчётности. Еле ворочается не только интернет, но и связь с серверами 1С и Галактики.
Покупку нового более производительного маршрутизатора скорее всего бы не одобрили, тем более, что на полке лежала 48-портовая каталиста и ещё одна 26-ая циска. Да и придти он физически не успеет. Каталист 3550 — это L3-коммутатор и вполне справляется с маршрутизацией. Кроме того на нем можно настраивать L3-интерфейсы, то есть не привязывать их ВЛАН’ам, а назначать на них IP.
Вторая циска 26-й серии с двумя портами, что позволит не пускать весь трафик через одну дырку: локальных абонентов подключить к одному порту, а второй выделить под аплинк к удаленному бордеру.
Решение в общем-то простое:
1)Выносим NAT на отдельный маршрутизатор. (Он будет заниматься исключительно NAT’ом и маршрутизацией белых IP)
2)Выносим все сабинтерфейсы на каталисту (это облегчит передачу данных по локальной сети и разгрузит восходящий канал)
3)Старая циска остаётся только для телефонного транзита.
На схеме это можно выразить примерно так:
Розовым отображён маршрут пакета, отправленного в интернет, сиреневым путём следует внутренний пакет с адресатом из сети 172.16.0.0/16. Зелёный — путь телефонного вызова.
То есть, если пакет отправляется в сетку 172.16.0.0, то каталиста маршрутизирует его в соответствии со своей таблицей, а шлюзом по умолчанию является маршрутизатор, который проивзодит натинг и если пакет отправлен не в 172-ую сеть, то он натится на белый IP и отправляется по другому логическому каналу прямиком на бордер. При этом второй маршрутизатор просто выполняет функцию едва ли не голосового шлюза — принимает по E1 данные от АТС и по Ethernet вместе с остальным локальным трафиком отправляет на другую циску.
Схема не очень рациональная в плане использования железа. Но как временная всё же сгодится.
Это сильно снизило нагрузку на оборудование — средняя загруженность процессора маршрутизатора для NAT’а составляет 20-30%, у каталисты и того меньше. Проблемы прекратились.
У такого подхода есть один существенный недостаток — каталиста всё-таки не маршрутизатор в полном смысле этого слова. Например, на ней нельзя вешать rate-limit на логический интерфейс, да и с физическим всё сложно. В лучшем случае получится ограничить скорость входящего на интерфейс трафика для конкретного acl, но кому оно надо?
Следовательно, как красиво бы мы не выкрутились из ситуации, нужно покупать нормальный производительный маршрутизатор и строить классическую схему.
P.S. Если интересуют технические подробности реализации новой схемы или какие-то вопросы, я добавлю их в топик.
Программное снижение нагрузки на роутер: возможно?
Всем привет.
WiFi-маршрутизатор D-Link DIR-320-b1 с Openwrt.
При загрузке торрента со скоростью больше 1 МБ/с пинг становится нестабильным, повисают веб-страницы и т.д.
На роутере: процессор загружен ~100%. На это влияет только скорость загрузки, но не количество соединений torrent-клиента.
Роутер без MIMO, однопроцессорный.
Вопрос:
возможно ли на стороне маршрутизатора программными средствами (как то: шейперы, планировщики пакетов) снизить нагрузку от торрентов? Или они нагрузят процессор ещё больше?
Если можно, в какие инструменты изучить и применить?
Купить нормальный роутер или поставить PC-роутер. В теории могут помочь dnat/snat вместо маскарадинга, аппаратный nat (если есть), минимизация правил netfilter.
Любые программные средства, требующие обработки проходящих пакетов, расходуют ресурсы CPU.
Купи роутер покруче. Можно сразу циску взять 🙂
Тип подключения к интернету какой?
Наверняка ему приходится заворачивать пакеты в виртуальный интерфейс типа pppoe. Он и жрёт.
Я, кстати, в циске подобное наблюдал, но там это решается включением кеширвания.
Может ТС это тоже поможет, ТС — ищи как включить кеширование маршрутов.
Листинг показывает общую загрузку процессора (за последнюю процессора процессами. Как показали неоднократные измерения, процессорное время кушает один процесс — «IP Input» (в листинге выделено жирным). Если процессор «тормозят» другие процессы — Вы столкнулись с другой проблемой.
Как выяснилось после изучения вопроса — это достаточно распространенная проблема. Происходит это потому что при примнении policy routing (политика роутинга, позволяющая разруливать трафик по разным интерфейсам) используется process switching. В это режима для каждой входящей дейтограммы требуется запуск центрального процессора. Соотвественно при интенсивном трафике этот процесс занимает все процессорное время.
Как выяснилось, бороться с этим эффектом можно. Для этого, нужно включить кеширование обработки дейтаграмм. Такой режим называется fast-switching. В таком режиме работы маршрутизатор запоминает маршрут в кеше и на следующий пакет в маршруте время уже не затрачивается.
Включается fast switching командой на интерфейсе, где включен policy
routing: nnz-cisco#conf t nnz-cisco(config)#in e0/0 nnz-cisco(config-if)# ip route-cache