Настройка балансировки трафика на каналах с одинаковой стоимостью

Топология сети:

В EIGRP есть крайне полезная опция, которая называется балансировка трафика. Это бывает полезно в случае, когда нам необходимо пустить весь трафик, или его часть по определенному каналу.

Исходная конфигурация устройств следующая: на интерфейсах настроены IP-адреса, все адреса анонсируются EIGRP-соседу, автоматическое суммирование отключено.

R1:

R1#sh run | section router eigrp 100
router eigrp 100
 network 1.0.0.0
 network 2.0.0.0
 network 10.0.0.0
 eigrp router-id 1.1.1.1
 no auto-summary

R2:

R2#sh run | sec router eigrp 100
router eigrp 100
 network 1.0.0.0
 network 2.0.0.0
 network 20.0.0.0
 eigrp router-id 2.2.2.2
 no auto-summary

После того, как между устройствами установлено EIGRP-соседство, смотрим список маршрутов, полученных по EIGRP от R1:

R2#sh ip route eigrp | begin Gateway
Gateway of last resort is not set

D     10.0.0.0/8 [90/2195456] via 2.2.2.1, 00:07:21, Serial1/0
                 [90/2195456] via 1.1.1.1, 00:07:21, Serial1/1

Разберем более подробно верхнюю строку:

Из таблицы маршрутизации видно, что до сети 10.0.0.0/8 у нас есть 2 маршрута с одинаковой метрикой и административной дистанцией (FD). Теперь с R2 выполним трассировку до адреса 10.1.1.1:

R2#traceroute 10.1.1.1
Type escape sequence to abort.
Tracing the route to 10.1.1.1
VRF info: (vrf in name/id, vrf out name/id)
  1 1.1.1.1 10 msec
    2.2.2.1 11 msec * 

Повторим данную процедуру:

R2#traceroute 10.1.1.1
Type escape sequence to abort.
Tracing the route to 10.1.1.1
VRF info: (vrf in name/id, vrf out name/id)
  1 2.2.2.1 10 msec
    1.1.1.1 10 msec * 

Как видно из трассировки, первый трейс пошел через интерфейс s1/1, а второй через s1/0. EIGRP, понимая, что между ними 2 равноправных маршрута, посылает трафик поочередно через разные каналы в сторону R1.

По умолчанию EIGRP может добавлять в таблицу маршрутизации до 4 маршрутов с одинаковой стоимостью для каждой подсети. Изменить количество маршрутов можно, используя команду maximum-path number  (число number должно быть в диапазоне от 1 до 32) в режиме конфигурации eigrp:

R2(config)#router eigrp 100
R2(config-router)#maximum-path 1
R2(config-router)#end
R2#

Смотрим, что вышло:

R2#sh ip route eigrp | begin Gateway
Gateway of last resort is not set

D     10.0.0.0/8 [90/2195456] via 1.1.1.1, 00:06:24, Serial1/1

В таблицу маршрутизации действительно попал всего лишь один маршрут, но в таблице топологии по-прежнему 2 варианта маршрутов:

R2#sh ip eigrp topology           
EIGRP-IPv4 Topology Table for AS(100)/ID(2.2.2.2)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status 

P 2.0.0.0/8, 1 successors, FD is 2169856
        via Connected, Serial1/0
P 10.0.0.0/8, 1 successors, FD is 2195456
        via 1.1.1.1 (2195456/281600), Serial1/1
        via 2.2.2.1 (2195456/281600), Serial1/0
P 1.0.0.0/8, 1 successors, FD is 2169856
        via Connected, Serial1/1
P 20.0.0.0/8, 1 successors, FD is 281600
        via Connected, Ethernet0/0

Настройка балансировки трафика на каналах с разной стоимостью

В данном случае топология и IP-адресация остается неизменной. Поменяем только «стоимость» канала.

R2(config)#int s1/0
R2(config-if)#bandwidth 800

Примечание: команда bandwidth несет исключительно информационный характер для протоколов динамической маршрутизации. Скорость на интерфейсе она не ограничивает.
После этого смотрим таблицу маршрутизации:

R2#sh ip route eigrp | begin Gateway
Gateway of last resort is not set

D     10.0.0.0/8 [90/2195456] via 1.1.1.1, 00:00:17, Serial1/1

Теперь видно, что в таблицу маршрутизации попал «лучший» маршрут, с более широкой пропускной способностью.
Глянем топологию eigrp для сети 10.0.0.0/8:

R2#sh ip eigrp topology | section 10.0.0.0/8
P 10.0.0.0/8, 1 successors, FD is 2195456
        via 1.1.1.1 (2195456/281600), Serial1/1
        via 2.2.2.1 (3737600/281600), Serial1/0

По таблицы топологии видно, что лучшая административная дистанция (FD, возможное расстояния) = 2195456, именно поэтому путь через s1/1 попал в таблицу маршрутизации.
Теперь давайте попробуем сделать так, чтобы оба маршрута попали в таблицу маршрутизации, делается это командой variance в режиме настройки роутера:

R2(config)#router eigrp 100
R2(config-router)#variance 2

Давайте разберемся, для чего нужна variance: как известно, в таблицу маршрутизации попадает лучший маршрут, но в реальной жизни значения метрики маршрутов бывают близки, но все же не равны, поскольку она может исчисляться миллионами, и полное совпадение метрик маловероятно. Для того, чтобы близкие по стоимости маршруты могли попадать в таблицу маршрутизации и используется команда variance — она позволяет считать равными маршруты с относительно близкими значениями метрики, а следовательно, добавлять в таблицу маршрутизации несколько маршрутов неравной метрики к той же подсети.
В режиме конфигурирования EIGRP с помощью команды variance multiplier можно указать число в диапазоне от 1 до 128 (параметр вариации метрики).  Маршрутизатор после указания variance умножает FD (метрику оптимального маршрута) на это число и получает диапазон метрики маршрутов, которые могут быть добавлены в таблицу маршрутизации.
В нашем примере multiplier = 2, это означает, что диапазон метрик будет от 2195456 до 2195456*2=4390912. В таком случае второй маршрут до сети 10.0.0.0/8 с метрикой 3737600 попадает в указанный нами диапазон, что позволяет ему быть успешно добавленным в таблицу маршрутизации:


R2#sh ip route eigrp | begin Gateway
Gateway of last resort is not set

D     10.0.0.0/8 [90/3737600] via 2.2.2.1, 00:00:53, Serial1/0
                 [90/2195456] via 1.1.1.1, 00:00:53, Serial1/1

Отсюда видно, что вопреки разной стоимости путей в таблицу маршрутизации попали оба маршрута до сети 10.0.0.0/8

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.