http://nettips.ru

Балансировка нагрузки между каналами связи используя протокол EIGRP на маршрутизаторах CISCO

На главную Cisco Systems VoIP маршрутизатор Беларусь Asterisk коммутатор Nateks Alcatel MTS Gigaset Velcom ZTE Grandstream Android Huawei админы шутят о сайте Zelax Allied Telesis D-Link Arduino Штрихкоды HP
Телефонные номера доступа sip операторов Телефонные коды городов и стран мира.

Рейтинг статьи: 2.607/5 Рейтинг 2.61 из 5Рейтинг 2.61 из 5Рейтинг 2.61 из 5Рейтинг 2.61 из 5Рейтинг 2.61 из 5 (28 голосов).

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

Спонсор этой страницы:

Схема сети и настройка двух маршрутизаторов

Схема сети передачи данных

Настройка локальных адресов и поднятие протокола HSRP


Конфигурация маршрутизатора 1

interface g0/0.1
  encapsulation dot1Q 1
  ip address 10.0.0.101 255.255.255.0
  standby 1 ip 10.0.0.1
  standby 1 priority 110
  standby 1 preempt


Конфигурация маршрутизатора 2

interface g0/0.1
  encapsulation dot1Q 1
  ip address 10.0.0.102 255.255.255.0
  standby 1 ip 10.0.0.1
  standby 1 priority 90
  standby 1 preempt


Настройка адресов сети провайдера

Конфигурация маршрутизатора 1

interface g0/0.100
  encapsulation dot1Q 100
  ip address 10.100.0.1 255.255.255.248
ip route 10.100.0.0 255.255.0.0 10.100.0.6


Конфигурация маршрутизатора 2

interface G0/0.100
  encapsulation dot1Q 100
  ip address 10.100.0.2 255.255.255.248
ip route 10.100.0.0 255.255.0.0 10.100.0.6


Настройка Сериального интерфейса

interface Serial0/0/0
  description Office 2
  ip address 10.200.0.1 255.255.255.252


Поднятие протокола EIGRP

Конфигурация маршрутизаторов 1 и 2

router eigrp 100
  network 10.0.0.0
  no auto-summary
  passive-interface Gi0/0.100


При аналогичной настройке маршрутизаторов офиса 2 все начинает работать.

Проверяем маршруты и метрики в таблице маршрутизации


с2821_1#sh ip eigrp top 10.1.1.0/24
IP-EIGRP (AS 100): Topology entry for 10.1.1.0/24
  State is Passive, Query origin flag is 1, 1 Successor(s), FD is 933632
  Routing Descriptor Blocks:
  10.200.0.2 (Serial0/0/0), from 10.200.0.2, Send flag is 0x0
      Composite metric is (1764352/28160), Route is Internal
      Vector metric:
        Minimum bandwidth is 2048 Kbit
        Total delay is 20100 microseconds
        Reliability is 0/255
        Load is 42/255
        Minimum MTU is 1500
        Hop count is 1


с2821_1#sh ip route 10.1.1.0
  Routing entry for 10.1.1.0/24
  Known via "eigrp 100", distance 90, metric 1764352, type internal
  Redistributing via eigrp 100
  Last update from 10.200.0.2 on Serial0/0/0, 05:13:54 ago
  Routing Descriptor Blocks:
  * 10.1.1.0, from 10.200.0.54, 05:13:54 ago, via Serial0/0/0
      Route metric is 1764352, traffic share count is 1
      Total delay is 20100 microseconds, minimum bandwidth is 2048 Kbit
      Reliability 255/255, minimum MTU 1500 bytes
      Loading 42/255, Hops 1


Хотя матрика состоит из суммы метрик разных сегментов, мы можем приблизительно расчитать метрики по формуле:
metric=(10 000 000/bandwidth+delay/10)*256
Данная формула работает, когда все коэффициенты в протоколе EIGRP настроены по умолчанию, что означает, что в расчете метрики используется только ширина канала и задержка
(10000000/2048+20100/10)*256=1764560


Настройка тунелей

После некоторых проб и ошибок было построено до второго офиса 2 тунеля
c2821_1 - c2821_4
c2821_2 - c2821_3

Конфигурация маршрутизатора 1

interface Tunnel24
  description Office2_router4
  bandwidth 2048
  ip address 10.200.2.1 255.255.255.252
  delay 2000
  keepalive 10 3
  tunnel source 10.100.0.1
  tunnel destination 10.100.2.4


Конфигурация маршрутизатора 2

interface Tunnel23
  description Office2_router3
  bandwidth 2048
  ip address 10.200.2.5 255.255.255.252
  delay 2000
  keepalive 10 3
  tunnel source 10.100.0.2
  tunnel destination 10.100.2.3


При аналогичной настройке маршрутизаторов офиса 2 поднимается маршрутизация на тунелях.

Мало вероятно, что одновременно выйдут из строя маршрутизаторы 1 3, но для подстраховки можно поднять тунель между 2 и 4.

Схема сети передачи данных

Данная схема реализует балансировку трафика per-destination и только, если метрики одинаковые. При этом общая пропускная способность будет суммой двух каналов, но пропускная способность единичного компьютера не привысит пропускную способность одного канала.


Балансировка per-packet

Для включения балансировки по пакетам добавляем на всех интерфейсах
ip load-sharing per-packet При этом на интерфейсы Serial0/0/0 и Tunnel24 будут циклически посылаться группы пакетов и пропускная способность отдельзых соединений достигнет суммы пропускной способности двух каналов.


Далее была обнаружена такая проблема:
В связи с тем, что провайдер режет трафик на уровне физического интерфейса, а на данном интерфейсе есть трафик от других подразделений (офисы 2,3,4), то при максимальных нагрузках наблюдаются глюки в виде пропадания пакетов и резкого падения скорости. (Спасибо механизму TCP windows)
После замеров объемов входящего трафика в офисе 2, было решено разделить трафик между Serial0/0/0 и Tunnel24 в пропорции 4 к 3.


Балансировка с разными метриками

router eigrp 100
  variance 2
  traffic-share balanced
  maximum-paths 2


variance N указывает во сколька раз метрика одного канала может превышать метрику другого, участвуя в передаче трафика


Что бы увеличить метрику на интерфейсе можно или уменьшить bandwidth или увеличить delay

оптимальнее bandwidth не трогать, и после небольших расчетов увеличил delay

interface Tunnel24
  delay 4300


Чтобы трафик шел только через один тунел, увеличиваем Delay и втором паршрутизаторе на величину большую, чем на рабочем тунеле.

interface Tunnel23
  delay 6000


Получаем неравномерную балансировку/

с2821_1#sh ip route 10.1.1.1
Routing entry for 10.1.1.0/24
  Known via "eigrp 100", distance 90, metric 1764352, type internal
  Redistributing via eigrp 100
  Last update from 10.200.0.2 on Serial0/0/0, 00:13:54 ago
  Routing Descriptor Blocks:
  * 10.200.0.2, from 10.200.0.2, 00:00:13 ago, via Serial0/0/0
      Route metric is 1764352, traffic share count is 4
      Total delay is 20100 microseconds, minimum bandwidth is 2048 Kbit
      Reliability 255/255, minimum MTU 1500 bytes
      Loading 42/255, Hops 1
    10.200.2.2, from 10.200.2.2, 00:00:13 ago, via Tunnel24
      Route metric is 2353152, traffic share count is 3
      Total delay is 43100 microseconds, minimum bandwidth is 2048 Kbit
      Reliability 255/255, minimum MTU 1476 bytes
      Loading 85/255, Hops 1


Согласно traffic share count is на каждые 4 пакета, направляемые в Serial0/0/0 в Tunnel24 будут напрвлены 3 пакета

В случае каналов разной пропускной способности, метрика пересчитается исходя из bandwidth и, соотвественно, пересчитает и соостношение количества передаваемых пакетов

Тормоза отдельных компьютеров

После построения схемы были замечены непонятные тормоза при незагруженных каналах.

Было выдвинуто предположение, что глюки возникази из за того, на разных интерфейсах были разные MTU.
Сесия начиналась через Serial и продолжаласт через Tunnel.

Для проверки версии на некоторых компьютерах на сетевых интерфейсах был уменьшен MTU до l300.
Тормоза на данных компьютерах исчезли.

Пока часть компьютеров и измененным MTU работало искал решение для остальных, так как офисов много, и на всех компах менять MTU тяжело

Для проверки была использована команда ping.

Проверяем серийный интерфейс

ping 10.200.0.2 -l 1449 -f

Ответ от 10.200.0.2: число байт=1449 время=51мс TTL=254
Ответ от 10.200.0.2: число байт=1449 время=51мс TTL=254
Ответ от 10.200.0.2: число байт=1449 время=51мс TTL=254
Ответ от 10.200.0.2: число байт=1449 время=51мс TTL=254


Проверяем тунельный интерфейс

ping 10.200.2.2 -l 1449 -f

Превышен интервал ожидания для запроса.
Ответ от 10.0.0.101: Требуется фрагментация пакета, но установлен запрещающий флаг.
Требуется фрагментация пакета, но установлен запрещающий флаг.
Требуется фрагментация пакета, но установлен запрещающий флаг.


Пингуем компьютер в сети Офиса

ping 10.1.1.25 -l 1449 -f

Ответ от 10.1.1.25: число байт=1449 время=61мс TTL=252
Ответ от 10.0.0.101: Требуется фрагментация пакета, но установлен запрещающий флаг.
Требуется фрагментация пакета, но установлен запрещающий флаг.
Требуется фрагментация пакета, но установлен запрещающий флаг.


После копания интернета и документации добавили на всех сериальных и тунельных интерфейсах:

interface xxx
  ip mtu 1476


ping 10.1.1.25 -l 1449 -f

Ответ от 10.0.0.101: Требуется фрагментация пакета, но установлен запрещающий флаг.
Требуется фрагментация пакета, но установлен запрещающий флаг.
Требуется фрагментация пакета, но установлен запрещающий флаг.
Требуется фрагментация пакета, но установлен запрещающий флаг.


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

Cisco Systems маршрутизатор

Пожалуйста, оцените и ВЫ эту статью:

Комментариев нет. Снаньте первым!


Ваши отзывы и предложения по работе сайта направляйте на форму обратной связи.

Яндекс.Метрика