Когда маршрутизатор не справляется с нагрузкой

    Поделюсь одним случаем из телекоммуникационной практики.
    У нас стоит циска 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. Если интересуют технические подробности реализации новой схемы или какие-то вопросы, я добавлю их в топик.
    Support the author
    Share post

    Comments 88

      +16
      Чем вы схемку нарисовали?
        +16
        Как и в предыдущих топиках. В 3dSMax'е.
          +7
          Полез смотреть предыдущие топики)
            +2
            Проблема в том, что файлхостинг с картинками мне их заблочил. И они теперь бесхозные. Завтра я попробую обновить картинки, если нужно.
            +8
            Интересно вы подсеть 172.16.0.0/16 нарисовали.
            Видимо это отображает «бурление говен» праведный гнев пользователе й- при подвисании маршрутизатора ;)

              +1
              Бурления были) Хотя вообще-то это дизайнерское облако))
              +8
              В первый момент мне показалось, что это фигурки на листочке выложены)

              А это же идея!
              Продавать фигурки для скоростного мозгового штурма по конфигурации сети. Можно себя полководцем почувствовать.
            +12
            а я подумал сначала, что та какашка сверху интернет :)
              0
              Была такая идея) И была реализована в одном из моих старых топиков)
                +10
                Нет, это серая офисная масса =)
                  0
                  А ведь и впрямь похоже!
                    0
                    Не уж то у вас всё так плохо? =)
                      0
                      У вас какой-то другой интернет? :)
                        0
                        Нет, просто масса более коричневая ;)
                  +2
                  > Но как временная всё же сгодится.
                  Как говорится: «нет ничего более постоянного, чем временное» :)
                    0
                    Ох, как вы правы. Уже месяца три сидим ждём новую циску с этой временной схемой, ибо бюрократия.
                      0
                      почему тень от серой массы падает вверх, а от роутеров вниз?
                        0
                        Тень падает и вверх и вниз из-за двух источников освещения.
                          0
                          Тень падает в обе стороны от всех объектов из-за двух источников освещения. Как на футбольном поле, когда от игрока 4 тени.
                            0
                            Светило где-то между ними :)
                              +1
                              там помо освещение с двух сторон…
                              +8
                              Можно было в двух словах: когда маршрутизатор не справляется с нагрузкой берем еще два.
                                0
                                Спасибо, cisco скрывала от нас этот факт.:) Будем брать количеством, а не качеством.
                                Такая проблема решается всё-таки покупкой более производительного маршрутизатора, а не такими костылями, как я описал. Я просто рассказал частный случай в условиях ограниченного времени.
                                  +5
                                  Просто я читая название поста подумал, «о, сейчас посмотрим что кушает проц на цисках у коллег по цеху и как они выкрутились. Наверное какойнить конфиг хитрый сделали или фичу заюзали», а оказалось: «циска загрузилась (без цифр, ппс, скоростей интерфейсов и т.д., даже без show proc cpu), новую не дают, взяли еще две циски и поделили между ними задачи»… т.е. стандартная ситуация и типичное решение :(
                                    0
                                    Извините за неоправданные надежды. Решение всё-так нетипичное. Либо я ещё не испорчен реалиями. Всё-таки делать так у провайдера не норма. Для шаражкиной конторы подойдёт. Маршрутизатор должен быть маршрутизатором, а не свитчом с возможностью маршрутизации.
                                    Про цифры вы, пожалуй, правы. И я бы обязательно разместил, но за давностью произошедшего скринов не осталось.
                                      +2
                                      >И настал один прекрасный момент, когда сеть большую часть дня просто лежала. Практически перестал ходить даже локальный трафик. До кучи это совпало с важной телефонной конференцией одного из абонентов (больше половины звонков отбрасывалась из-за высокой нагрузки) и не менее важной презентацией другого.

                                      да шарашкина контора и есть. много дней наблюдать как сеть умирает и дождаться пока случится коллапс и только тогда начать бегать в панике. Россия такая Россия.
                                        –1
                                        Вот надо зайти и пукнуть, да? Вы хоть коменты почитайте. Я в тот момент еще не успел втянуться в процесс, а старому работнику особо дела не было. Но да, надо же брякнуть, что такая Россия плохая.
                                          0
                                          Иногда полезнее признать свою ошибку, чем доказать свою правоту.
                                            0
                                            Вынужден согласиться с утверждением, но не вашим выпадом в мою сторону.
                                              0
                                              Я как себе представил, так и смоделировал. Но, если вы подскажете вектор, в следующий раз я учту. Расскажите, что непонятно на схеме, что улучшить?
                                  0
                                  а можно на конфигы посмотреть??
                                    0
                                    Можно, на e-mail. Постараюсь скинуть сегодня, если успею.
                                      0
                                      И мне:) если не затруднит))
                                        0
                                        И если не затруднит, то e-mail дайте)
                                          0
                                          Кто последний за конфигами? =)
                                    +2
                                    Грустно то, что имея в наличии еще один роутер и свитч, вы начали шевелиться только тогда, когда, простите, петух в жопу клюнул, хотя 80% загрузку цпу терпели до этого.
                                    А НАТ можно было соорудить на линуксе, так и делают когда нет денег ;)
                                      0
                                      На самом деле никто эту загрузку не видел. Я в тот момент человек был очень новый и плохо знал схему сети. Но в экстренном порядке пришлось разобраться. Пока думали, да рассуждали, что делать, когда уже засекли тонкое место, случился этот криз. Про НАТ на линуксе читал и думал, но глубоких знатоков этой ОС, кто бы мог путём настроить.
                                        +3
                                        Ну я и написал не Вас/тебя, а вас, т.е. всех ответственных. Но если бы у меня тормозила консоль, то sh proc cpu s было бы следующей моей командой…

                                        При условии одинаковой производительности линуксовое решение будет в разы дешевле, чем циска, но тока тсссс, это огромный холивар :)
                                          0
                                          А как в линус засунуть 20+ интерфейсов? Просто интересно, сам я в этом чайник.
                                            +1
                                            8021q на интерфейсах компьютера + L2 коммутатор с их поддержкой.
                                              0
                                              Так это надо каждому клиенту-компании настроить и поддерживать 8021q. Имхо, это гемор побольше чем разница в стоимости между циской и линуксовым тазиком.
                                                0
                                                С какой это стати?
                                                Для 802.1q есть такое понятие как untagged порт, куда и подключается машина абонента. Соответственно компьютер клиента даже и не «догадывается» что он так «хитро» включен.
                                                А дальше ещё интереснее — на L2 коммутаторе настраиваем приоритезацию трафика для VoIP и видео.

                                                  0
                                                  Не совсем понимаю. Вот есть у нас ситуация из топика: 20+ корпоративных клиентов (компаний, а не компов) и циска, в которую сходятся провода от них. Выше сказали, что будет дешевле не менять циску на более крутую, а поставить вместо нее линуксовую машину. Вот мне и не понятно как подключить этих клиентов к linux-роутеру при условии не изменения конфигурации на клиентах.
                                                    0
                                                    Всё верно говорит Fill. Принципиальной разницы нет стоит в качестве маршрутизатора циска или компьютер. На маршрутизаторе поднимается сабинтерфейс с определённой подсетью и отдаётся на коммутатор, с которого раздаётся сеть абонентам через untagged порты.
                                                      0
                                                      Они в одном влане или в разных? Делаете аналогично как автор, только вместо 2600 ставите линуксовую машинку. Клиенты в свитч, свитч в линукс, линукс в инет. На линуксе делаете политики, секюрность и все, что вам нужно.
                                                        0
                                                        на коммутаторе создам на каждого клиента отдельный vlan. В сторону linux (да не важно собственно что там стоит) делаем его tagged в сторону клиента untagged.
                                                        В итоге получаем N интерфейсов на роутере.
                                                        Если Вам интересно то для начала советую ru.wikipedia.org/wiki/IEEE_802.1Q
                                                        0
                                                        Дополню: в статье примерно так и сделано: 1 физический интерфейс и сабинтерфейсы (vlan если говорит про коммутаторы). А у абонентов на L2/3 свитче ставится untagged порт в соответствующий vlan.
                                            0
                                            Вы не наживую писали с курчатника?
                                              +1
                                              Я не понял ваш вопрос)
                                                +1
                                                Я не понял ваш вопрос.
                                                  0
                                                  Речь, вероятно, идет о Курчатовском.
                                                  И, видимо, там что-то случилось)
                                                    0
                                                    Вот что такого особенно в курчатнике я и не понял)
                                                      0
                                                      Именно так :)
                                                      Восстановилось.
                                                      0
                                                      Я не понял, чего это два раза добавилось с разницей в 11 минут (
                                                    0
                                                    что только люди не сделаю, лишь бы не поставить linux на старый pc :)
                                                      0
                                                      Идея моделировать схему сети понравилась, но можно было бы покрасивее или поинформативней, как на карте боевых действий)
                                                      Одна голова — хорошо…
                                                      Комьюнити двигатели прогресса
                                                        0
                                                        Я как себе представил, так и смоделировал. Но, если вы подскажете вектор, в следующий раз я учту. Расскажите, что непонятно на схеме, что улучшить?
                                                          0
                                                          Хотите красиво и информативно — рекомендую прогу NetViz. Если создать свою базу оборудования то можно отказаться от большого кол-ва мускулатуры.
                                                          0
                                                          Можно конфиги добавить в топик?
                                                            0
                                                            Конфиги будут или сегодня вечером или на почту. Пока нет возможности их выложить.
                                                            0
                                                            Согласно «Router Performance Matrix» 262X при Process Switching имеет лимит в 1,500 pps/0.768 Mbps.
                                                            Честно — я не представляю — какой ширины у Вас канал, что-бы в нём жили все перечисленные Вами сервисы. Все описанные Вами задачи решаются на уровне L2 коммутатора + любой офисный компьютер с нормальными сетевыми картами.

                                                              0
                                                              1) Не понимаю, как связаны производительность маршрутизатора и пропускная способность канала
                                                              2) Лично для меня настроить cisco — дело несложное, в то время, как поднимать linux, танцевать с большим количеством настроек гораздо затратнее по человекочасам. Кроме того объяснить начальству, что cisco можно заменить компьютером не так просто. А если получится, то вся ответственность ложится на меня.
                                                              Да, это минус к моей технической подкованности и я ищу причины. Мне правда стыдно.
                                                                +1
                                                                1. Производительность устройства меряется не в мегабитах/гигабитах (это параметр вторичен), а в pps — количество пакетов в секунду которые могут пройти через это устройство. Связанно это в первую очередь с тем, что _каждый_ пакет необходимо проанализировать, пропустить по цепочке шейп/nat/фильтрация/etc. Как пример — если в устройстве стоит 4 гигабитных порта — то это ещё не значит что пропускная способность равна 8Gbit/sec :)

                                                                2. Я не агитирую за какое либо _конкретное_ решение. Просто излагаю свои мысли. Благо администрирование штука такая, что позволяет выполнить задачу несколькими путями.
                                                                0
                                                                uTorrent+uTP=ацкие оверхеды как раз при условии забитого аплинка. pps растут как на дрожжах.
                                                                Но в данном случае умер cpu из-за ната в принципе. Т.е. будь это тупо свитчинг/роутинг, выполняемый asic-ом (не уверен полностью что оно так в 2600 серии), то при том же кол-ве pps циска ничего бы не заметила. НАТ ресурсоемкий…
                                                                  0
                                                                  уж сколько миру мы твердим — не используйте НАТ на cisco :)
                                                                  ну или используйте на соответствующих сериях с соответствующими модулями.
                                                                    0
                                                                    Всё верно сказали. Без НАТа загрузка 10-15% максимум.
                                                                  0
                                                                  очень жаль, что до сих пор кошки остаются пока еще основным решением для неСОХО разруливания сетей. (на мой взгляд это напоминает ситуацию с АСУС, которые в свое время «выехали» на достаточно надежных материнках и видео, а теперь — просто та же «дешевка с именем»)

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

                                                                  железки — опять же — mikrotik, juniper (кстати, конфиг вьятты многое перенял с джунипера)
                                                                    0
                                                                    ну почему жаль — будучи пионеров в своей нише, Cisco фактически создала «отраслевой стандарт» cli интерфейса для ряда других разработчиков. По моему мнению — это очень даже хорошо. Очень тяжело управлять разнородным железом, имеющим разный интерфейс.


                                                                    mikrotik — железо там слабое, их Route OS — фактически Linux + обвязка для удобного управления.
                                                                    juniper — его не щупал, но там возникает масса вопросов с поддержкой со стороны разработчика. (ну и к слову — управление железякой реализовано то на FreeBSD обвязке).

                                                                    0
                                                                    А на каком основании вы использовали IP 193.1.1.2?
                                                                      0
                                                                      Я прошу прощения, если использовал его не по праву. Хотел отразить лишь суть — белые IP
                                                                        +1
                                                                        IPv4 Address Blocks Reserved for Documentation
                                                                        Documentation Address Blocks:
                                                                        The blocks 192.0.2.0/24 (TEST-NET-1), 198.51.100.0/24 (TEST-NET-2),
                                                                        and 203.0.113.0/24 (TEST-NET-3) are provided for use in
                                                                        documentation.


                                                                        не подумайте, что я придираюсь, это просто так на будущее
                                                                          0
                                                                          Спасибо на самом деле большое. Не знал об этом. Буду иметь ввиду.
                                                                      0
                                                                      Забавно, каталист и вторая 26-я у вас как рояль в кустах, при наличии таких железок на полке, следовало построить сеть правильно, не дожидаясь затыка. Про необходимость разделения пограничной и внутренней маршрутизации «знають і в садочку малі діти» :)
                                                                        0
                                                                        Эта сеть — в примере — всё равно построена неправильно. Правда, если перенсти весь роутинг обратно на 26-ые, то будет нор.
                                                                        Про «дожидаться затыка» я уже ответил в комментариях.
                                                                        Внутренний и пограничный роутинг разделены)
                                                                        0
                                                                        Ну а после этого коллапса начали мониторить ваши железки?
                                                                          0
                                                                          Да. Но дело не в коллапсе, конечно. Это норма.
                                                                          0
                                                                          кроме шуток у вас лучшие иллюстрации к подобным статьям
                                                                            0
                                                                            Спасибо. И наконец-то у меня дошли руки вернуть картинки к топикам про WiMAX)
                                                                            0
                                                                            Неприкрытая реклама ЖЖ топикстартера на экране монитора детектед!
                                                                              0
                                                                              Я прошу, прощения, но где вы увидели?
                                                                                0
                                                                                QR-код на экране монитора в схеме ;)
                                                                                  0
                                                                                  Оу. Слона не приметил) Забыл про неё.
                                                                                  Да ладно. В последних топиках у меня ссылка на жж прямым текстом стоит. И ничего)
                                                                                    0
                                                                                    Да я ж не возражаю, сам в ЖЖ только и пасусь.
                                                                                    Это как в том древнем анекдоте: «Как, у тебя дома есть компьютер? Какой??»
                                                                                      0
                                                                                      Это там где, попой на клавиатуру?)
                                                                                        0
                                                                                        Оно самое. Щаз ведь уже не поймут, это ТЕ времена…
                                                                                          0
                                                                                          Да уж. И ЖЖ лежит.
                                                                                    0
                                                                                    И не лень вам было :)
                                                                                      0
                                                                                      Ага :))

                                                                              Only users with full accounts can post comments. Log in, please.