Настройка маршрутизатора CISCO на работу с несколькими провайдерами по технологии VRF Lite + EVN RR. Резервирование канала (Failover), разделение трафика между провайдерами.

Рассмотрим вариант настройки маршрутизаторов CISCO, с использованием нескольких провайдеров, в режиме резервирования каналов и с возможностью разделения трафика между провайдерами.

 

В настройке будет использоваться технологии VRF Lite (Virtual Routing and Forwarding) в связке с ENV RR (Easy Virtual Network Route Replicate).

 

Исходные данные:

  • Маршрутизатор Cisco 2911/K9 версия прошивки 15.4(3)M9 (c2900-universalk9-mz.SPA.154-3.M9.bin)
  • Первый провайдер ISP1 — VLAN100 (77.77.77.2/30)
  • Второй провайдер ISP2 — VLAN200 (88.88.88.2/30)
  • Служебная сеть VLAN9 (10.10.9.0/30)
  • Локальные сети VLAN10 (10.10.10.0/24), VLAN11 (10.10.11.0/24)

 

Создание виртуальных интерфейсов (VRF)

Создаём виртуальные маршрутизаторы (VRF) и указываем кто с кем обменивается таблицами маршрутизации:

  • LAN — обменивается маршрутами с обоими провайдерами (ISP1, ISP2)
  • ISP1, ISP2 — обмениваются с LAN
vrf definition ISP1
address-family ipv4
route-replicate from vrf LAN unicast all
exit-address-family

vrf definition ISP2
address-family ipv4
route-replicate from vrf LAN unicast all
exit-address-family

vrf definition LAN
address-family ipv4
route-replicate from vrf ISP1 unicast all
route-replicate from vrf ISP2 unicast all
exit-address-family

 

Настройка физических интерфейсов

Настраиваем интерфейсы. Так как используются VLAN, то необходимо создать SUB-интерфейс для каждого VLAN, указать инкапсуляцию, привязывать виртуальные маршрутизаторы (VRF) к соответствующим интерфейсам, присвоить IP-адреса, указать NAT (inside — для локальной сети, outside — для внешней сети):

interface GigabitEthernet0/0.9
description LAN GATEWAY
encapsulation dot1Q 9
vrf forwarding LAN
ip address 10.10.9.1 255.255.255.252
ip nat inside

interface GigabitEthernet0/1.100
description PRIMARY INTERNET
encapsulation dot1Q 100
vrf forwarding ISP1
ip address 77.77.77.2 255.255.255.252
ip nat outside

interface GigabitEthernet0/2.200
description SECONDARY INTERNET
encapsulation dot1Q 200
vrf forwarding ISP2
ip address 88.88.88.2 255.255.255.252
ip nat outside

 

 

Проверка на доступность

Перед тем как прописать маршруты по-умолчанию, добавим проверку на доступность (IP SLA) провайдера (ISP1). Это необходимо для реализации резервирования каналов.

ip sla 10
icmp-echo 8.8.4.4 source-interface GigabitEthernet0/1.100
vrf ISP1
threshold 1000
timeout 1500
frequency 3
ip sla schedule 10 life forever start-time now

 

Настройка маршрутизации

Прописываем маршруты по-умолчанию, для каждого провайдера (ISP1, ISP2) и маршруты в локальные сети (10.10.10.0/24, 10.10.11.0/24).

 

Реализуем резервирование интернет канала, для этого маршрут по-умолчанию для второго провайдера (ISP2) укажем с дистанцией 10, а на маршрут по-умолчанию для первого провайдера (ISP1) повесим проверку доступности (IP SLA) канала. Так же добавим статический маршрут через первого провайдера (ISP1) до 8.8.4.4, для корректной работы проверки доступности (IP SLA):

ip route vrf ISP1 0.0.0.0 0.0.0.0 77.77.77.2 track 10
ip route vrf ISP1 8.8.4.4 255.255.255.255 77.77.77.1
ip route vrf ISP2 0.0.0.0 0.0.0.0 88.88.88.2 10
 
ip route vrf LAN 10.10.10.0 255.255.255.0 10.10.9.2
ip route vrf LAN 10.10.11.0 255.255.255.0 10.10.9.2

 

Настройка NAT

Выполним настройку NAT, так чтобы при необходимости было легко расширить, прим. добавить новые подсети в NAT и т.д.

 

Создадим две группы объектов, первая (NAT-DENY) для запрета NAT, вторая (NAT-PERMIT) для разрешения NAT:

object-group network NAT-DENY

object-group network NAT-PERMIT
10.10.9.0 255.255.255.252
10.10.10.0 255.255.255.0
10.10.11.0 255.255.255.0

 

Создаем список доступа, в который сперва добавляем запрещающее правило для группы объектов NAT-DENY, затем разрешающее правило правило для NAT-PERMIT:

ip access-list extended NAT
deny ip object-group NAT-DENY any
permit ip object-group NAT-PERMIT any

 

Делаем карты маршрутизации для каждого провайдера:

route-map ISP1-NAT permit 10
match ip address NAT
match interface GigabitEthernet0/1.100

route-map ISP2-NAT permit 10
match ip address NAT
match interface GigabitEthernet0/2.200

 

Добавляем NAT правила:

ip nat inside source route-map ISP1-NAT interface GigabitEthernet0/1.100 vrf LAN overload
ip nat inside source route-map ISP2-NAT interface GigabitEthernet0/2.200 vrf LAN overload

 

Очистка APR

При срабатывании (IP SLA) теста и переключении маршрута по-умолчанию, необходимо сбрасывать текущие NAT сессии, для этого добавим следующие правило:

event manager applet CLR_NAT_10
event track 10 state any
action 10 cli command "enable"
action 20 cli command "clear ip nat translation *"

 

На этом настройка маршрутизатора на работу с несколькими провайдера выполнена.

 

Конфигурация

vrf definition ISP1
!
address-family ipv4
route-replicate from vrf LAN unicast all
exit-address-family
!
vrf definition ISP2
!
address-family ipv4
route-replicate from vrf LAN unicast all
exit-address-family
!
vrf definition LAN
!
address-family ipv4
route-replicate from vrf ISP1 unicast all
route-replicate from vrf ISP2 unicast all
exit-address-family
!
object-group network NAT-DENY
!
object-group network NAT-PERMIT
10.10.9.0 255.255.255.240
10.10.10.0 255.255.255.0
10.10.11.0 255.255.255.0
!
track 10 ip sla 10 reachability
delay down 20 up 10
!
interface GigabitEthernet0/0.9
description LAN GATEWAY
encapsulation dot1Q 9
vrf forwarding LAN
ip address 10.10.9.1 255.255.255.240
ip nat inside
ip virtual-reassembly in
!
interface GigabitEthernet0/1.100
description PRIMARY INTERNET
encapsulation dot1Q 100
vrf forwarding ISP1
ip address 77.77.77.2 255.255.255.252
ip nat outside
ip virtual-reassembly in
!
interface GigabitEthernet0/2.200
description SECONDARY INTERNET
encapsulation dot1Q 200
vrf forwarding ISP2
ip address 88.88.88.2 255.255.255.252
ip nat outside
ip virtual-reassembly in
!
ip nat inside source route-map ISP1-NAT interface GigabitEthernet0/1.100 vrf LAN overload
ip nat inside source route-map ISP2-NAT interface GigabitEthernet0/2.200 vrf LAN overload
ip route vrf ISP1 0.0.0.0 0.0.0.0 77.77.77.1 track 10
ip route vrf ISP1 8.8.4.4 255.255.255.255 77.77.77.1
ip route vrf ISP2 0.0.0.0 0.0.0.0 88.88.88.1 10
!
ip access-list extended NAT
deny ip object-group NAT-DENY any
permit ip object-group NAT-PERMIT any
!
ip sla 10
icmp-echo 8.8.4.4 source-interface GigabitEthernet0/1.100
vrf ISP1
threshold 1000
timeout 1500
frequency 3
ip sla schedule 10 life forever start-time now
!
route-map ISP1-NAT permit 10
match ip address NAT
match interface GigabitEthernet0/1.100
!
route-map ISP2-NAT permit 10
match ip address NAT
match interface GigabitEthernet0/2.200
!
event manager applet CLR_NAT_10
event track 10 state any
action 10 cli command «enable»
action 20 cli command «clear ip nat translation *»
!

[свернуть]

 

Разделение трафика между каналами

Рассмотрим как в приведенной выше конфигурации использовать не только резервирование канала, но и возможность разделать трафик между каналами. Для реализации данной задачи будем использовать PBR (Policy Base Routing).

 

Задача:

  • Выход в интернет из подсети 10.10.10.0/24, осуществлять через ISP1
  • Выход в интернет из подсети 10.10.11.0/24, осуществлять через ISP2
  • Доступ в интерент с IP-адреса 10.10.11.5, осуществлять через ISP1

Создаем группы объектов, по каким портам мы будем разделять трафик. В примере мы будем разделять трафик по WEB портам (80, 8080, 443):

object group service WEB-PORTS
tcp eq www
tcp eq 8080
tcp eq 443

 

Создаем группы объектов, для определения принадлежности IP-адресации к тому или иному каналу.

  • ISP1-DENY, ISP2-DENY — для запрета прохождения трафика через ISP1/ISP2
  • ISP1-PERMIT, ISP2-PERMIT — для разрешения прохождения трафика через ISP1/ISP2
object-group network ISP1-DENY

object-group network ISP1-PERMIT
10.10.10.0 255.255.255.0
host 10.10.11.5

object-group network ISP2-DENY
host 10.10.11.5

object-group network ISP2-PERMIT
10.10.11.0 255.255.255.0

 

Создаем списки доступа (ACL), для каждого провайдера (ISP1, ISP2) на основе ранее созданных групповых объектов. Сперва указывается запрещающее правило, затем разрешающее:

ip access-list extended ISP1
deny object-group WEB-PORTS object-group ISP1-DENY any
permit object-group WEB-PORTS object-group ISP1-PERMIT any

ip access-list extended ISP2
deny object-group WEB-PORTS object-group ISP2-DENY any
permit object-group WEB-PORTS object-group ISP2-PERMIT any

 

Добавим проверку на доступность (IP SLA) провайдера (ISP2). Это нужно для исключения ситуации, когда канал будет не доступен, а маршруты будут направляться через него.

ip sla 20
icmp-echo 8.8.4.4 source-interface GigabitEthernet0/2.200
vrf ISP2
threshold 1000
timeout 1500
frequency 3
ip sla schedule 20 life forever start-time now

 

Добавляем карты маршрутизации для каждого из каналов (ISP1, ISP2), с указанием проверки списков доступа (ACL) и на основе их, направлять запрос, через тот или иной канал (с проверкой его на доступность). В случае если один из каналов будет не доступен, то маршрутизация будет осуществятся на основании глобальных параметров маршрутизации.

route-map ROUTE-ISP permit 10
match ip address ISP1
set ip next-hop verify-availability 77.77.77.1 10 track 10

route-map ROUTE-ISP permit 20
match ip address ISP2
set ip next-hop verify-availability 88.88.88.1 10 track 20

 

Применяем карту маршрутизации на интерфейс который смотрит в локальную сеть.

interface GigabitEthernet0/0.9
ip policy route-map ROUTE-ISP

 

Добавим сбрасывать текущие NAT сессии, при срабатывании (IP SLA) теста на доступность второго канала (ISP2):

event manager applet CLR_NAT_20
event track 20 state any
action 10 cli command "enable"
action 20 cli command "clear ip nat translation *"

 

Итоговая конфигурация

vrf definition ISP1
!
address-family ipv4
route-replicate from vrf LAN unicast all
exit-address-family
!
vrf definition ISP2
!
address-family ipv4
route-replicate from vrf LAN unicast all
exit-address-family
!
vrf definition LAN
!
address-family ipv4
route-replicate from vrf ISP1 unicast all
route-replicate from vrf ISP2 unicast all
exit-address-family
!
object-group network NAT-DENY
!
object-group network NAT-PERMIT
10.10.9.0 255.255.255.240
10.10.10.0 255.255.255.0
10.10.11.0 255.255.255.0
!
object group service WEB-PORTS
tcp eq www
tcp eq 8080
tcp eq 443
!
object-group network ISP1-DENY
!
object-group network ISP1-PERMIT
10.10.10.0 255.255.255.0
host 10.10.11.5
!
object-group network ISP2-DENY
host 10.10.11.5
!
object-group network ISP2-PERMIT
10.10.11.0 255.255.255.0
!
track 10 ip sla 10 reachability
delay down 20 up 10
!
interface GigabitEthernet0/0.9
description LAN GATEWAY
encapsulation dot1Q 9
vrf forwarding LAN
ip address 10.10.9.1 255.255.255.240
ip nat inside
ip virtual-reassembly in
ip policy route-map ROUTE-ISP
!
interface GigabitEthernet0/1.100
description PRIMARY INTERNET
encapsulation dot1Q 100
vrf forwarding ISP1
ip address 77.77.77.2 255.255.255.252
ip nat outside
ip virtual-reassembly in
!
interface GigabitEthernet0/2.200
description SECONDARY INTERNET
encapsulation dot1Q 200
vrf forwarding ISP2
ip address 88.88.88.2 255.255.255.252
ip nat outside
ip virtual-reassembly in
!
ip nat inside source route-map ISP1-NAT interface GigabitEthernet0/1.100 vrf LAN overload
ip nat inside source route-map ISP2-NAT interface GigabitEthernet0/2.200 vrf LAN overload
ip route vrf ISP1 0.0.0.0 0.0.0.0 77.77.77.1 track 10
ip route vrf ISP1 8.8.4.4 255.255.255.255 77.77.77.1
ip route vrf ISP2 0.0.0.0 0.0.0.0 88.88.88.1 10
!
ip access-list extended NAT
deny ip object-group NAT-DENY any
permit ip object-group NAT-PERMIT any
!
ip access-list extended ISP1
deny object-group WEB-PORTS object-group ISP1-DENY any
permit object-group WEB-PORTS object-group ISP1-PERMIT any
!
ip access-list extended ISP2
deny object-group WEB-PORTS object-group ISP2-DENY any
permit object-group WEB-PORTS object-group ISP2-PERMIT any
!
ip sla 10
icmp-echo 8.8.4.4 source-interface GigabitEthernet0/1.100
vrf ISP1
threshold 1000
timeout 1500
frequency 3
ip sla schedule 10 life forever start-time now
!
ip sla 20
icmp-echo 8.8.4.4 source-interface GigabitEthernet0/2.200
vrf ISP2
threshold 1000
timeout 1500
frequency 3
ip sla schedule 20 life forever start-time now
!
route-map ISP1-NAT permit 10
match ip address NAT
match interface GigabitEthernet0/1.100
!
route-map ISP2-NAT permit 10
match ip address NAT
match interface GigabitEthernet0/2.200
!
route-map ROUTE-ISP permit 10
match ip address ISP1
set ip next-hop verify-availability 77.77.77.1 10 track 10
!
route-map ROUTE-ISP permit 20
match ip address ISP2
set ip next-hop verify-availability 88.88.88.1 10 track 20
!
event manager applet CLR_NAT_10
event track 10 state any
action 10 cli command «enable»
action 20 cli command «clear ip nat translation *»
!
event manager applet CLR_NAT_20
event track 20 state any
action 10 cli command «enable»
action 20 cli command «clear ip nat translation *»
!

[свернуть]

 

Понравилась или оказалась полезной статья, поблагодари автора

 

БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
Загрузка...

Оставить ответ

шесть − 2 =