Виртуализация маршрутизатора Cisco

Как вы знаете, иногда на блоге публикуются статьи наших хороших знакомых.

Сегодня Евгений расскажет нам о виртуализации маршрутизатора Cisco.

Имеется классическая схема организации сети: уровень доступа (SW1, SW2, SW3), уровень распределения (R1) и присоединение к глобальной сети (R2). На маршрутизаторе R2 организован сбор статистики и настроен NAT. Между R2 и R3 установлен аппаратный брандмауэр с функциями фильтрации трафика и маршрутизации (схема 1)

Не так давно была поставлена задача по миграции всей сети на альтернативный шлюз (R4). Новый шлюз обладает кластерным функционалом и способен горизонтально масштабироваться за счет увеличения количества нод кластера. Согласно плану введения в эксплуатацию, требовалось, чтобы в определенный период времени в сети было одновременно два шлюза – старый (R2) – для всех клиентских сетей, и новый (R4) – для сетей, участвующих в тестировании нового шлюза (схема 2).

Попытки реализовать PBR (Policy-based routing) на внутреннем маршрутизаторе (R1) не увенчались успехом – трафик зацикливался. Руководство на просьбы дополнительного оборудования ответило отказом. Время шло, маршрутизатора не было, задача буксовала…

И тут на глаза попалась статья из Интернета, которая рассказывала об изоляции таблиц маршрутизации на маршрутизаторах Cisco.

Я решил получить дополнительный маршрутизатор с независимой таблицей маршрутизации на базе существующего оборудования. Для решения задачи был составлен новый проект (Схема 3), подразумевающий наличие дополнительного маршрутизатора с возможностью PBR.

Соединительная сеть между R1 и R5:

VLAN ID: 1000

Сеть: 172.16.200.0 /30

Интерфейс на R1: 172.16.200.2 /30

Интерфейс на R5: 172.16.200.1 /30

VLANID: 100 – старый маршрутизатор

VLANID: 101 – новый маршрутизатор

Замечание: в качестве R5 используется виртуальный маршрутизатор, созданный на базе R3 (Cisco IOS Software, C2900 Software (C2900-UNIVERSALK9_NPE-M), Version 15.0(1)M1, RELEASE SOFTWARE (fc1)).

Маршрутизатор R3 оснащен тремя гигабитными портами Ethernet, интерфейс Gi0/0 – используется для внутренней маршрутизации, Gi0/1 – для подключения к аппаратному файерволу, а Gi0/2 – для подключения к внешнему провайдеру.

Перейдем к настройке маршрутизатора R5.

Переходим в режим конфигурирования:
R3(config)#ip vrf zone1
этой командой на маршрутизаторе создается изолированная таблица маршрутизации. Название zone1 выбирается администратором самостоятельно. Так же можно назначить идентификатор и описание. Более подробно можно прочитать в документации. По завершению возвращаемся в режим конфигурирования с помощью команды exit.

Настраиваем сетевые интерфейсы:
R3(config)#interface GigabitEthernet0/0.100
R3(config-subif)#ip vrf forwarding zone1
R3(config-subif)#encapsulation dot1Q 100
R3(config-subif)#ip address 172.16.100.2 255.255.255.252
R3(config-subif)#exit
R3(config)#interface GigabitEthernet0/0.101
R3(config-subif)#ip vrf forwarding zone1
R3(config-subif)#encapsulation dot1Q 101
R3(config-subif)#ip address 172.16.100.6 255.255.255.252
R3(config-subif)#exit
R3(config)#interface GigabitEthernet0/0.1000
R3(config-subif)#ip vrf forwarding zone1
R3(config-subif)#encapsulation dot1Q 1000
R3(config-subif)#ip address 172.16.200.1 255.255.255.252
R3(config-subif)#exit

Сейчас необходимо настроить PBR. Для этого составим ACL, руководствуясь следующим правилом: все, кто попадает в ACL – маршрутизируются через старый шлюз, а остальные – через новый.
R3(config)#access-list 101 deny ip host 192.168.3.24 any
R3(config)#access-list 101 deny ip host 192.168.3.25 any
R3(config)#access-list 101 deny ip host 192.168.3.26 any
R3(config)#access-list 101 permit ip any any

Создаем Route-Map:
R3(config)#route-map gw1 permit 50
R3(config-route-map)#match ip address 101
R3(config-route-map)#set ip vrf zone1 next-hop 172.16.100.1
R3(config-route-map)#exit

И применяем его на интерфейс:
R3(config)#interface GigabitEthernet0/0.1000
R3(config-subif)#ip policy route-map gw1
R3(config-subif)#exit

Добавляем маршрут по умолчанию в таблицу маршрутизации zone1:
R3(config)#ip route vrf zone1 0.0.0.0 0.0.0.0 GigabitEthernet0/0.101 172.16.100.5
и проверяем таблицу маршрутизации для zone1
R3#show ip route vrf zone1
Routing Table: zone1
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, + - replicated route

Gateway of last resort is 172.16.100.5 to network 0.0.0.0

S*    0.0.0.0/0 [1/0] via 172.16.100.5, GigabitEthernet0/0.101
172.16.0.0/16 is variably subnetted, 6 subnets, 2 masks
C        172.16.100.0/30 is directly connected, GigabitEthernet0/0.100
L        172.16.100.2/32 is directly connected, GigabitEthernet0/0.100
C        172.16.100.4/30 is directly connected, GigabitEthernet0/0.101
L        172.16.100.6/32 is directly connected, GigabitEthernet0/0.101
C        172.16.200.0/30 is directly connected, GigabitEthernet0/0.1000
L        172.16.200.1/32 is directly connected, GigabitEthernet0/0.1000
Задача по разделению трафика клиентских сетей на разные шлюзы решена. Из минусов принятого решения хотелось бы отметить увеличение нагрузки на аппаратную часть маршрутизатора и ослабление безопасности, так как маршрутизатор, подключенный к глобальной сети, имеет прямое подключение к локальной сети в обход аппаратного брандмауэра.

2 thoughts on “Виртуализация маршрутизатора Cisco”

  1. А почему бы не использовать эмулятор маршрутизатора Cisco в виртуальной машине/выделенном сервере?
    Или еще какой-нибудь софтовый маршрутизатор с поддержкой PBR?
    Избавились бы от минусов 😉

  2. Очень справедливый вопрос.
    Ответ банальный – нет технической возможности! 🙂
    А проблему с минусами мы решим путем приобретения маршрутизатора.

Leave a Reply

Your email address will not be published. Required fields are marked *