Содержание статьи:
Рассмотрим вариант настройки маршрутизаторов CISCO, с использованием нескольких провайдеров, в режиме резервирования каналов и с возможностью разделения трафика между провайдерами.
В настройке будет использоваться технологии VRF Lite (Virtual Routing and Forwarding) в связке с EVN 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 *" !
Понравилась или оказалась полезной статья, поблагодари автора
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА
vrf definition ISP1
address-family ipv4
route-replicate from vrf LAN unicast all
exit-address-family
в боевом маршрутизаторе нет строки route-replicate from vrf LAN unicast all
Быть может в вашем и нет, а в версии прошивки 15.4(3)M9 (c2900-universalk9-mz.SPA.154-3.M9.bin) она есть.
все есть просто не надо было не выходить из address-family ipv4
А при чем тут EVN?