Как стать автором
Поиск
Написать публикацию
Обновить

Балансировка траффика между двумя NAT на разных провайдерах на одном физическом роутере cisco

Время на прочтение4 мин
Количество просмотров26K
При классической схеме подключения двух ISP к одному роутеру, есть возможность использовать сразу два канала для NATирования внутренних клиентов с балансировкой нагрузки, а не только для фейловера при отказе одного из провайдеров.

Осуществляется это следующим образом:
c использованием vrf:
описание vrf для первого провайдера:
экспортируем нашу метку «100:0»,
импортируем метку из vrf второго провайдера «100:1»

ip vrf ISPA
 rd 100:0
 route-target export 100:0
 route-target import 100:1

описание vrf для второго провайдера:
экспортируем нашу метку «100:1»,
импортируем метку из vrf первого провайдера «100:0»

ip vrf ISPB
 rd 100:1
 route-target export 100:1
 route-target import 100:0

описание vrf для клиентской сети:
импортируем обе метки из vrf двух провайдеров «100:0» и «100:1»

ip vrf LAN
 rd 100:100
 route-target import 100:0
 route-target import 100:1


Настройка интерфейсов:
к первому провайдеру:
настраиваем правильный vrf
ip vrf forwarding ISPA

включаем нат
ip nat outside


interface FastEthernet0/0
 ip vrf forwarding ISPA
 ip address 50.0.0.1 255.0.0.0
 ip nat outside

ко второму провайдеру:
настраиваем правильный vrf
ip vrf forwarding ISPB

включаем нат
ip nat outside


interface FastEthernet1/0
 ip vrf forwarding ISPB
 ip address 60.0.0.1 255.0.0.0
 ip nat outside

интерфейс смотрящий в локальную сеть:
настраиваем правильный vrf
ip vrf forwarding LAN

включаем нат
 ip nat inside


interface FastEthernet1/1
 ip vrf forwarding LAN
 ip address 192.168.0.1 255.255.255.0
 ip nat inside


Маршруты по умолчанию к провайдерам:
с указанием vrf для каждого маршрута

ip route vrf ISPA 0.0.0.0 0.0.0.0 50.0.0.2
ip route vrf ISPB 0.0.0.0 0.0.0.0 60.0.0.2


Настройка BGP для взаимной редистрибьюции маршрутов между vrf:
распространяем подключенные сети с интерфейсов:
redistribute connected

распространяем статические дефолтные маршруты к провайдерам:
  redistribute static
  default-information originate

в клиентском vrf разрешаем распределение нагрузки:
maximum-paths 2


router bgp 65000
 address-family ipv4 vrf ISPA
  redistribute connected
  redistribute static
  default-information originate

 address-family ipv4 vrf ISPB
  redistribute connected
  redistribute static
  default-information originate

 address-family ipv4 vrf LAN
  redistribute connected
  maximum-paths 2


Правила для NAT:
включаем NAT на оба внешних интерфейса в клиентском vrf

ip nat inside source route-map A interface FastEthernet0/0 vrf LAN overload
ip nat inside source route-map B interface FastEthernet1/0 vrf LAN overload


Access list и route-map для правил NATирования:
используем route-map для двух целей:
— IOS не дал бы создать два разных правила NAT для одного access-list
— идентификация по исходяшему интерфейсу

route-map A permit 10
 match ip address 1
 match interface FastEthernet0/0

route-map B permit 10
 match ip address 1
 match interface FastEthernet1/0

access-list 1 permit 192.168.0.0 0.0.0.255


Для проверки что балансировка маршрутов случилась, будем использовать команду traceroute:
R1#traceroute vrf  LAN 8.8.8.8 source fa 1/1
Type escape sequence to abort.
Tracing the route to 8.8.8.8
VRF info: (vrf in name/id, vrf out name/id)
  1 50.0.0.2 132 msec
    60.0.0.2 44 msec
    50.0.0.2 24 msec

как видно из приходящих ответов отвечают два провайдера.

Таблица NAT после этих ответов подтверждает созданные соответствия:
R1#show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
udp 50.0.0.1:49162     192.168.0.1:49162  8.8.8.8:33434      8.8.8.8:33434
udp 60.0.0.1:49163     192.168.0.1:49163  8.8.8.8:33435      8.8.8.8:33435
udp 50.0.0.1:49164     192.168.0.1:49164  8.8.8.8:33436      8.8.8.8:33436


Таблица маршрутизации для клиентского vrf выглядит следующим образом:
R1#show ip route vrf LAN

B*    0.0.0.0/0 [20/0] via 60.0.0.2 (ISPB), 00:00:20
                [20/0] via 50.0.0.2 (ISPA), 00:00:20
      50.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
B        50.0.0.0/8 is directly connected (ISPA), 00:00:22, FastEthernet0/0
L        50.0.0.1/32 is directly connected, FastEthernet0/0
      60.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
B        60.0.0.0/8 is directly connected (ISPB), 00:00:20, FastEthernet1/0
L        60.0.0.1/32 is directly connected, FastEthernet1/0
      192.168.0.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.0.0/24 is directly connected, FastEthernet1/1
L        192.168.0.1/32 is directly connected, FastEthernet1/1


без использования vrf:
#интерфейс к первому провайдеру
interface FastEthernet0/0
 ip address 50.0.0.1 255.0.0.0
 ip nat outside

#интерфейс ко второму провайдеру
interface FastEthernet1/0
 ip address 60.0.0.1 255.0.0.0
 ip nat outside

#интерфейс к клиентской сети
interface FastEthernet1/1
 ip address 192.168.0.1 255.255.255.0
 ip nat inside

#PBR для того чтобы при запросах снаружи наш роутер не путался куда отдавать пакеты
ip local policy route-map PBR

#NAT правила и маршруты по умолчанию с одинаковыми метриками
ip nat inside source route-map A interface FastEthernet0/0 overload
ip nat inside source route-map B interface FastEthernet1/0 overload
ip route 0.0.0.0 0.0.0.0 50.0.0.2
ip route 0.0.0.0 0.0.0.0 60.0.0.2

#PBR если пакеты должны уйти через первый провайдер
route-map PBR permit 10
 match ip address 10
 set ip next-hop 50.0.0.2

#PBR если пакеты должны уйти через второй провайдер
route-map PBR permit 20
 match ip address 11
 set ip next-hop 60.0.0.2

#для NAT через первого провайдера
route-map A permit 10
 match ip address 1
 match interface FastEthernet0/0

#для NAT через второго провайдера
route-map B permit 10
 match ip address 1
 match interface FastEthernet1/0

#сопутствующие acl
access-list 1 permit 192.168.0.0 0.0.0.255
access-list 10 permit 50.0.0.1
access-list 11 permit 60.0.0.1


!
ip cef обязателен в обоих случаях

Всем спасибо за внимание, жду ваших комментариев.

P.S.
ecmp фейл (спасибо vasilevkirill что обратил внимание) не случается благодаря алгоритму хеширования используемому в cef,
подробно об этом на официальном сайте
циско www.cisco.com/c/en/us/support/docs/ip/express-forwarding-cef/116376-technote-cef-00.html
Теги:
Хабы:
Всего голосов 14: ↑12 и ↓2+10
Комментарии15

Публикации

Ближайшие события