Балансировка трафика в IP-сетях оператора

В статье рассмотрен способ организации балансировки трафика на границе сети при следующих условиях:

  • транспортный протокол: IPv4;
  • протокол динамической маршрутизации OSPFv2 [1, 2];
  • исходящий и входящий трафик одного пользовательского IP-адреса проходит через один и тот же шлюз услуг и через один и тот же NAT-маршрутизатор [3];
  • балансировка трафика осуществляется между 2 шлюзами услуг (BNG [4]);
  • балансировка трафика осуществляется между 2 NAT-маршрутизаторами, не использующими динамическую маршрутизацию;

Подключенный пользовательский сегмент сети рассмотрен на примере беспроводных сетей стандарта IEEE 802.11 [5] с использованием контроллеров.

Решаемые задачи:

  • балансировка трафика в точке подключения пользовательских устройств к сети;
  • равномерное распределение пользовательского трафика между BNG;
  • обеспечение симметричной маршрутизации входящего и исходящего трафика при использовании NAT.


Уровень распределения представляет собой пограничный компонент сети, выполняющий следующие основные функции:

  • подключение контроллеров беспроводного доступа;
  • маршрутизация и управление потоками трафика контроллеров беспроводного доступа;
  • сопряжение с другими сетями.

Уровень контроллеров беспроводного доступа (УКБД) — группа контроллеров, которые выполняют следующие основные функции:

  • точка агрегации трафика от точек доступа и беспроводных пользователей;
  • обеспечение роуминга беспроводных пользователей между контроллерами;
  • управление точками доступа.

Уровень радиопокрытия — точки доступа, размещенные на объектах.

Центр предоставления услуг (ЦПУ) – обеспечивает подключение контроллеров к сети передачи данных, управление и контроль предоставляемых пользователям, подключение к сети Интернет, трансляцию IP-адресов.

С точки зрения маршрутизации, IP-cеть разделена на несколько сегментов маршрутизации: пользовательский сегмент, сегмент точек доступа и сегмент управления. В этой статье рассматривается только пользовательский сегмент маршрутизации.

В предложенном решении используется протокол динамической маршрутизации OSPFv2 [1] и расширение Multi-Instance [2]. Основные использованные параметры конфигурации протокола OSPF показаны на рисунках 1-5.

Использование VRF на уровне распределения


Использование нескольких VRF позволяет назначить разные комбинации основного/резервного BNG для трафика пользователей.
Для этой цели на уровне распределения, на каждом из двух L3-коммутаторов, пользовательские интерфейсы определяются в разные виртуальные таблицы маршрутизации (VRF Lite [9]):
В каждом VRF создаются по одному OSPF-процессу.

Балансировка пользовательского трафика в точке подключения к сети


Балансировка выполняется путем распределения пользовательских устройств между виртуальными сетями (VLAN). Для этой цели, на контроллерах беспроводного доступа, точки доступа разделены на группы (до 10-15 точек доступа на группу). Каждой группе следует выделить VLAN ID и подсеть IP-адресов пользователей, емкостью не менее 2-4 сетей класса C (из расчета до активных 25 подключений на точку доступа и дополнительная емкость для учета неактивных пользовательских подключений и особенностей применения протокола DHCP: «lease time» [6]).
На L3-коммутаторах уровня распределения, к которым подключены контроллеры, используемые IP-сети делятся на две большие группы. Это необходимо для дальнейшего суммирования маршрутной информации и балансировки трафика между BNG на 3-м уровне модели OSI.
Каждая группа определена в один из VRF коммутатора уровня распределения.
На L3 резервирование выполняется с помощью протокола OSPF, как показано на рисунке.
рисунок 1



Выбор типа зоны NSSA определяется следующими факторами:
— Уменьшает число маршрутов в NSSA за счет суммирования маршрутной информации о сетях беспроводных пользователей на ASBR.
— Обеспечивает возможность устанавливать значение AD (Administrative Distance) для «внешних» OSPF маршрутов на ABR.
— Обеспечивает возможность простого выделения и суммирования маршрутной информации перераспределенных маршрутов на ABR.
— Обеспечивает возможность устанавливать ABR в качестве источника маршрутной информации при рассылке LSA в area 0 [suppress-fa 14]. Это позволяет не отправлять в Area 0 информацию о структуре IP-адресации и источниках внешних маршрутов из NSSA-зоны.
— Позволяет обойтись рассылкой двух маршрутов по умолчанию внутри NSSA-зоны [no-summary 14]. Балансировка трафика между ABR выполняется за счет установки значений стоимости каналов между ASBR и ABR внутри NSSA зоны.
— Позволяет выделить 2 типа внешних маршрутов для фильтрации и управления маршрутизацией пользовательским сегментом маршрутизации на ABR.

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

На рисунке 2 показаны примеры использования VRF на уровне распределения:
— WUsers1 — для пользователей, использующих в качестве основного шлюза услуг маршрутизатор ЦПУ SG-01, а в качестве резервного шлюза услуг маршрутизатор ЦПУ SG-02;
— WUsers2 — для пользователей, использующих в качестве основного шлюза услуг маршрутизатор ЦПУ SG-02, а в качестве резервного шлюза услуг маршрутизатор ЦПУ SG-01.

Рисунок 2


Выбор пары основного/резервного шлюзов услуг в VRF WUsers1 и WUsers2 реализуется посредством динамической маршрутизации и назначения разных стоимостей на виртуальные каналы связи.

Балансировка нагрузки на уровне распределения


IP-сети, назначенные виртуальным каналам (VLAN) пользователей, в пределах каждого из L3-коммутаторов уровня распределения, определяются по двум VRF. Таким образом, беспроводные пользователи, в зависимости от того, в какую AP-группу они были включены контроллерами беспроводного доступа, попадают в разные VRF и используют разные пары основного/резервного шлюзов услуг, обеспечивая распределение нагрузки между шлюзами услуг.

В случае выхода из строя одного из коммутаторов уровня распределения, все пользователи будут переключены на оставшийся в работе коммутатор с повторным подключением к беспроводной сети и получением IP-адреса из новой IP-сети. IP-сети переключившихся беспроводных пользователей также распределены по двум VRF. Таким образом, сохраняется распределение нагрузки между BNG, независимо от того факта, что в какой-то времени момент функционирует только один L3-коммутатор уровня распределения.

Резервирование подключения шлюза услуг может быть организовано, с использованием дублированных виртуальных каналов связи, находящихся в разных IP-подсетях и терминируемых на разных физических портах шлюза услуг.
Физическая схема и топология сети, а также соответствующая ей схема организации логических каналов связи не представлены в настоящей статье. Решения, используемые на этих уровнях, также предусматривают организацию резервируемых физических и логических каналов связи.

Схема маршрутизации на уровне распределения показана на рисунках 1 и 2.

Маршрутизация трафика между уровнем распределения и ЦПУ


Организация связи между коммутаторами УР и шлюзами услуг ЦПУ возможна одним из следующих методов:

На 2-м уровне модели OSI, без использования промежуточного «L3-хопа».
С использованием промежуточного «L3-хопа».
Первое решение требует больше ресурсов (VLAN ID, STP).
При использовании второго метода в роли промежуточных маршрутизаторов может выступать стек коммутаторов, на котором создаются 2 VRF.

Это решение позволяет значительно уменьшить число виртуальных каналов (VLAN), необходимых для организации связи между шлюзами услуг ЦПУ и УР.

Схема организации связи между маршрутизаторами УР и шлюзами услуг ЦПУ показана на рисунке 3.
Рисунок 3

Равная метрика протокола OSPF, назначенная на параллельные виртуальные каналы связи позволяет обеспечить распределение трафика беспроводных пользователей между виртуальными каналами связи и, как следствие, обеспечить балансировку трафика между физическими линиями связи.

NAT в ЦПУ


NAT-маршрутизаторы осуществляют трансляцию (преобразование) частных IP-адресов (Network Address Translation, NAT) в публичные IP-адреса. Для реализации механизма трансляции IP-адресов необходимо выделение диапазона (pool) уникальных публичных IP-адресов. Для пары маршрутизаторов формируются соответствующие NAT-группы, в каждой из которых один маршрутизатор выбран основным (активным), другой резервным. В случае выхода из строя основного маршрутизатора, резервный становится активным, продолжая обслуживание пользовательских сессий.

Маршрутизация между шлюзами услуг и NAT-маршрутизаторами


При использовании NAT-маршрутизаторов учитываются следующие ограничения:

  • на NAT-маршрутизаторах используются только статические маршруты;
  • на каждую NAT-группу выделяется по две виртуальных сети (VLAN): inside VLAN и outside VLAN;

Inside VLAN используется для связи с шлюзами услуг ЦПУ. Outside VLAN используется для связи с граничными BGP-маршрутизаторами.

В целях повышения отказоустойчивости, для подключения каждого BNG используются по два физических интерфейса. Вследствие различных особенностей оборудования, а также необходимости жестко привязать пул внешних IP-адресов к определенному BNG предлагается использовать следующие ограничения:
— Не использовать технологию Etherchannel, а организовать балансировку нагрузки и резервирование с помощью L3-маршрутизации;
— Для каждого NAT-маршрутизатора использовать по одному физическому каналу для связи с BNG.

Таким образом, возникает необходимость в организации промежуточного «L3-узла» (далее ЦПУ ASBR) между BNG и NAT-маршрутизаторами. Промежуточный узел будет выполнять следующие функции:
— OSPF ASBR для area 0.
— Распространение маршрутов по умолчанию для area 0.
— Маршрутизацию пакетов, приходящих от NAT-маршрутизаторов в сторону OSPF ABR.
— Статическую маршрутизацию приходящих из OSPF area 0 пакетов на NAT-маршрутизаторы (шлюзы по умолчанию).

Роль промежуточного маршрутизатора может выполнять стек L3-коммутаторов, обеспечивающий подключение BNG и NAT-маршрутизаторов, на котором для этой цели создаются 2 VRF (VRF Lite [9]): Users1_out и Users2_out.

Важно использование именно стека L3-коммутаторов, т.к. это позволяет:
— использовать оба физических подключения BNG для организации виртуальных каналов связи с каждым из NAT-маршрутизаторов;
— обеспечить балансировку нагрузки между физическими интерфейсами BNG;
— обеспечить сохранение подключения BNG к L3-коммутатору стека, в случае выхода из строя одного из L3-коммутаторов стека или проблем с работой одного из физических интерфейсов BNG.

Еще одной особенностью решения является использование на стеке L3-коммутаторов двух VRF.
Это необходимо для того, что бы жестко «привязать» каждый BNG к конкретному ASBR (см. рисунок 4) и, соответственно, привязать пул внешних IP-адресов к конкретному BNG.
Для каждого из этих VRF (Users1_out и Users2_out) на стеке L3-коммутаторов запускаются независимые OSPF-процессы. Виртуальные каналы связи между BNG и VRF Users1_out и Users2_out стека коммутаторов входят в 0-ю (магистральную) зону OSPF.

Для маршрутизации между ASBR и NAT-маршрутизаторами использована статическая маршрутизация:
  • в VRF Users1_out — статический маршрут по умолчанию через виртуальный IP-адрес NAT-group1;
  • в VRF Users2_out — статический маршрут по умолчанию через виртуальный IP-адрес NAT-group2;
  • для первого NAT-маршрутизатора— статические маршруты на IP-сети беспроводных пользователей через IP-адрес VRF Users1_out;
  • для второго NAT-маршрутизатора — статические маршруты на IP-сети беспроводных пользователей через IP-адрес VRF Users2_out.


Для рассылки маршрута по умолчанию в OSPF-процессах ASBR VRF Users1_out и ASBR Users2_out включается функция рассылки маршрута по умолчанию (default information originate).

Схема с использованием промежуточного «L3-узла» представлена на рисунке 4.
Рисунок 4


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

ASBR ЦПУ является пограничным маршрутизатором для протокола OSPF и используется для перераспределения маршрутов из других сегментов маршрутизации, NAT-пулов IP-адресов и сети Интернет.

Маршрутизация и балансировка трафика между ASBR ЦПУ и NAT-маршрутизаторами


Между ASBR ЦПУ и NAT-маршрутизаторами создаются виртуальные каналы связи как показано на рисунке 5. Отказоустойчивость шлюзов по умолчанию на NAT-маршрутизаторах можно реализовать с использованием механизма HSRP (Hot Standby Router Protocol [11]).

На интерфейсах NAT-маршрутизаторов используются две HSRP-группы. Первая HSRP-группа отвечает за работу шлюза по умолчания для NAT-group1, вторая HSRP-группа отвечает за работу шлюза по умолчания для NAT-group2, как показано на рисунке 5.
Рисунок 5



Маршрутизация между NAT-маршрутизаторами и граничными маршрутизаторами сети


В предложенном решении маршрутизация выполнена с использованием статической маршрутизации и протокола HSRP на маршрутизаторах границы сети (outside-router, см. рисунок 6). Это решение детально в данной статье не рассматривается.
Рисунок 6



Между NAT-маршрутизаторами и граничными маршрутизаторами создаются виртуальные каналы связи. Отказоустойчивость шлюзов по умолчанию на граничных маршрутизаторах можно реализовать с использованием механизма HSRP или аналогичного, в зависимости от возможностей используемого оборудования. Для этой цели используются две HSRP-группы.
Схема маршрутизации показана на рисунке 6.

Схемы и рисунки
Рисунок 1. VRF беспроводных пользователей на уровне распределения, суммирование маршрутов на IP-подсети пользователей.


Рисунок 2. Маршрутизация на уровне распределения.


Рисунок 3. Маршрутизация между уровнем распределения и ЦПУ.


Рисунок 4. Маршрутизация между BNG и ЦПУ ASBR.


Рисунок 5. Маршрутизация между ЦПУ ASBR и NAT-маршрутизаторами.


Рисунок 6. Маршрутизация на границе сети.



Источники
[1] J. Moy (Ascend Communications), Request for Comments: 2328 “OSPF Version 2”, April 1998.
[2] A. Lindem (Ericsson), A. Roy, S. Mirtorabi (Cisco Systems) Request for Comments: 6549, OSPFv2 Multi-Instance Extensions, March 2012
[3] S. Wadhwa (Alcatel-Lucent), J. Moisand (Juniper Networks), T. Haag (Deutsche Telekom), N. Voigt (Nokia Siemens Networks), T. Taylor, Ed. (Huawei Technologies) Request for Comments: 6320, Protocol for Access Node Control Mechanism in Broadband Networks, October 2011
[4] P. Srisuresh (Jasmine Networks), K. Egevang (Intel Corporation) Request for Comments: 3022, Traditional NAT, January 2001
[5] IEEE 802.11, «Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications», 1997.
[6] R. Droms (Bucknell University) Request for Comments 2131, Dynamic Host Configuration Protocol, March 1997
[7] AP Group VLANs with Wireless LAN Controllers Configuration Example, www.cisco.com, 2008
[8] L. Andersson, T. Madsen (Acreo AB) Request for Comments 4026, Provider Provisioned Virtual Private Network (VPN) Terminology
[9] Configuring VRF-lite, Cisco web site [Online]. Available: www.cisco.com
[10] Y. Rekhter T.J. Watson Research Center, IBM Corp. T. Li, cisco Systems Editors, Request for Comments 1518, An Architecture for IP Address Allocation with CIDR, September 1993
[11] T. Li (Juniper Networks), B. Cole (Juniper Networks) P. Morton (Cisco Systems), D. Li (Cisco Systems), Request for Comments 2281: Cisco Hot Standby Router Protocol (HSRP), March 1998
[12] NAT Examples and Reference, Cisco web site [Online]. Available: www.cisco.com
[13] “Создание беспроводных публичных сетей» 2008-2010гг”, step.ru/projects/industrys/telecom
[14] Cisco IOS IP Routing: OSPF Command Reference


UPDATE: Добавил очень подробное описание решения. Надеюсь, стало понятнее.
Рисунки поправил.
Поделиться публикацией
Комментарии 12
    0
    Выглядит так, будто вы взяли подготовленный для заказчика документ и с минимальными правками выложили.
    Помимо невозможности продраться через кириллические аббревиатуры (часть которых не объяснена вообще — что такое УКБД? — управление контроллерами беспроводного доступа?), непонятна оригинальность решения.

    Всё же сводится к:
    * распихаем клиентов по разным вланам (через SSID? через .1x? смешная третья опция?) (добавлено) Это, кстати, был бы самый интересный момент, т.к. всё остальное не участвует в непосредственно балансировке. Либо у нас с вами разное понимание термина «балансировка трафика». Покажете картинки трафика «было»/«стало»?
    * первый влан подключается по-умолчанию в 1 BNG, второй — во второй, у обоих есть резерв в виде оставшегося шлюза.

    И какие у вас VRF на коммутаторах? Этот момент не совсем понятен — вы не описали ядро.
      0

      Отвечу про балансировку на уровне радио, так как вопрос касался только этой части.
      SSID использовался один.
      Балансировка пользователей выполнялась не совсем штатно, с помощью фичи:
      [7] AP Group VLANs with Wireless LAN Controllers Configuration Example, www.cisco.com


      Ядро состояло из пары коммутаторов Catalyst 6500, к которым через набор гагабитных линков подключали пару BNG, mpls-сеть и коммутаторы с контроллерами WiFi.
      Сложность была в том, что сессия пользователя на BNG могла быть привязана только к 1 физическому интерфейсу (не Etherchannel).
      Т.е. нужно было поделить трафик пользователей на n-е число сегментов и равномерно распределить их на разные физические интерфейсы BNG, обеспечить NAT (при большом числе трансляций и ) и «симметрию» обратного трафика для того, что бы он возвращался через тот же самый BNG, что и исходящий трафик.
      С точки зрения маршрутизации задачка оказалась очень нетривиальной.


      Было/стало показать нет возможности.


      Речь про использование VRF-lite на коммутаторах.

        +1
        Сессия может быть привязана только к 1 phy на BNG?
        Получается, сами BNG ничего подобного не умеют, и вы делали обвязку, верно?

        У вас со ссылками беда, вы бы делали лучше не на цискоком, а не конкретную статью. Плюс у вас часть со ссылками перегружена ненужной информацией. Например, нет нужды приводить RFC по CIDR или HSRP — это общеизвестные вещи. Ссылайтесь на то, что даст понять, в чём суть проблемы.

        6500 как L2 — это жирно, конечно :) Как чистые L2 или венок из hairpin-ов из платы в плату?
          0
          >> Сессия может быть привязана только к 1 phy на BNG?
          Да. Не знаю, лечится ли заменой софта.

          Спасибо, чувствую, надо бы переписать текст. :)

          6500, как чистые L2, даже без VSS.
            0
            >> Получается, сами BNG ничего подобного не умеют, и вы делали обвязку, верно?
            Не совсем понял вопрос про BNG. Функционал BNG как шлюза услуг здесь не описан (интеграции с AAA, биллингом и сервером политик и т.д.). Только физическая топология и маршрутизация трафика пользователей в т.ч. на BNG.
            Были ограничения, например такое, что пользовательская сессия может быть привязана только к 1 физическому интерфейсу (из-за чего нельзя было использовать Etherchannel, пришлось придумывать схему балансировки, учитывающей то, как распределяется трафик по каналам с помощью CEF и OSPF). Оптимальный вариант был использовать 8 каналов. Но это уже лишние тонкости. :)
            0
            В статье речь об IP-маршрутизации. ШПД давняя тема, не в этой статье.
            Заголовок поправлю, если придумаю более подходящее название. :)
          0
          УКБД — уровень контроллеров беспроводного доступа.
          Большая часть информации на схемах, текст как пояснение.
          Не добавлял описание, как сеть устроена на Layer 2, тогда было бы понятнее.
          Про 6500 в ядре добавлю, что использовались как L2 устройства.
          Физическая топология:
          L2 6500
          |__ WiSM+L3 6500
          |__ PE routers
          |__ 2xBNG
          |__ стек 2 х (L3 SW + VRV lite) <---> (nat routers) <---> (bgp routers)

          Плюс к этому организация основных и резервных l2 виртуальных каналов с помощью stp.

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

            Сделал апдейт статьи.
            В проекте этой информации не было. Все хранилось в голове автора (me) и было зашифровано на картинках.

            И почему я не стал пересдавать лабу RS в свое время. :) Представляю какими монстрами стали те, кто подошел к этому вопросу более серьезно. )
            0
            Что со шрифтами на картинках? Особенно на этой habrastorage.org/webt/6k/mt/ox/6kmtoxarxx2dgvywzumybel_w3c.png
            Хотя там на всех ужас
              0

              Приходилось статью полностью делать телефоне с Андроид, были сложности переносом картинок из Visio. Спасибо, поправлю.

                0

                Пришлось статью делать на андроид, проблема с извлечением картинок из visio.
                Спасибо, поправлю, как будет .

                  0
                  Теперь читаемо.

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое