воскресенье, 18 сентября 2016 г.

Cisco ASA Firewall - Failover configuration / Межсетевой экран Cisco ASA - Настраиваем файловер - Часть 2: Многоконтекстный режим. Настройка Active\Active

   Ранее в вот этой вот статье были рассмотрены основы файловера и настройка Active\Standby на паре ASA. Продолжаем разбираться с вариантами настройки отказоустойчивой системы, но теперь рассмотрим необходимость варианта Active\Active и его настройку. 

   Когда может возникнуть необходимость в Active\Active failover?


   Хороший и правильный вопрос. Дело в том, что такой тип отказоустойчивой конфигурации необходим и, что самое главное, доступен только тогда, когда ASA работают в многоконтекстном режиме. В этом случае трафик будет ходить через обе ASA в соответствие с тем, как были разбиты контексты по группам. Но обо всем по порядку.

   Еще немного теории

 

    При включении Active/Active файловера необходимо разделить все контексты на так называемые файловерные группы (failover groups). Это всего лишь логическое разделение контекстов на две группы (кстати, это максимальное количество групп, которое можно создать, что логично, ведь файловерных ASA всего две) для того, чтобы определить, какая часть контекстов будет располагаться на одной ASA, а какая на другой. При этом админский контекст всегда будет находится в группе номер 1, а так же туда будут помещаться все контексты, принадлежность которых к какой-то конкретной группе не определена.
   Логика работы в режиме Active\Active такова, что все отслеживаемые параметры относятся теперь не только к физическому устройству, а к группе контекстов в большей степени. Если для группы, которая в данный момент является активной, обнаружены какие-либо неполадки, то её статус меняется на резервную (standby), а резервная становится активной. Интерфейсы, которые стали активными для данной группы, перенимают активные IP и MAC адреса, а второй группе достаются резервные значения.
   Для Active\Active файловера характерно деление на первичный и вторичный юнит, как и в Active\Standby, но в этом случае данная характеристика указывает только лишь на то, для какой конкретно группы контекстов какая ASA имеет первичное или вторичное значение, при этом трафик проходит через обе ASA.
   Репликация конфигов и их синхронизация происходит так же, как и при Active\Standby - любые изменения конфигов необходимо производить на активном устройстве\активном контексте, вторичное же устройство синхронизируется с активной.


Приступаем к практике: Настройка контекстов

 

   Перед тем, как включить файловер Active\Active на паре ASA, необходимо включить многоконтекстный режим и завести пару контекстов для наглядности. Для этого воспользуюсь теми же ASA, которые настраивал ранее в режим Active\Standby. Для начала развалю уже имеющийся файловер с помощью выключения файловера командой no failover. При этом активная ASA останется в активном режиме:
!
ASA-1(config)# no failover
ASA-1(config)# sh failover
Failover Off
Failover unit Primary
Failover LAN Interface: FAILOVER Redundant1 (up)
Reconnect timeout 0:00:00
Unit Poll frequency 1 seconds, holdtime 15 seconds
Interface Poll frequency 5 seconds, holdtime 25 seconds
Interface Policy 1
Monitored Interfaces 3 of 114 maximum
MAC Address Move Notification Interval not set
ASA-1(config)#

!
А резервная ASA останется в режиме резервной:
!
ASA-1(config)# no failover
INFO: This unit is currently in standby state. By disabling failover, this unit will remain in standby state.
ASA-1(config)# exit
ASA-1# sh failover
Failover Off (pseudo-Standby)
Failover unit Secondary
Failover LAN Interface: FAILOVER Redundant1 (up)
Reconnect timeout 0:00:00
Unit Poll frequency 1 seconds, holdtime 15 seconds
Interface Poll frequency 5 seconds, holdtime 25 seconds
Interface Policy 1
Monitored Interfaces 3 of 114 maximum
MAC Address Move Notification Interval not set
ASA-1# 

!
   В результате этих действий я не потерял доступ к обеим ASA и могу спокойно продолжить работу с каждой из них по отдельности. Начнем с бывшей активной. Необходимо включить многоконтекстный режим, создать пару контекстов, присвоить им имеющиеся интерфейсы.
!
ASA-1(config)# mode multiple    //ввожу команду для переключения в многоконтекстный режим. Вввод данной команды приводит к перезагрузке
WARNING: This command will change the behavior of the device
WARNING: This command will initiate a Reboot
Proceed with change mode? [confirm]
Convert the system configuration? [confirm]
!!
The old running configuration file will be written to flash

Converting the configuration - this may take several minutes for a large configuration

The admin context configuration will be written to flash

The new running configuration file was written to flash
Security context mode: multiple
ASA-1(config)#

!
   После успешной смены режима командная строка при подключении к устройству будет показывать, что в данный момент мы подключены к контексту admin - контекст, создаваемый по умолчанию, в котором производится настройка различных элементов управления ASA, management plane, если можно так выразиться. По умолчанию же к этому контексту относятся интерфейсы Management.
!
ASA-1/admin#  //новый вид командной строки, встречающий нас при подключении через SSH
!
   Переключение между контекстами осуществляется с помощью команды changeto context <ContextName>. Помимо админского контекста по умолчанию создается так же и контекст System, куда вынесены все элементы управления физикой ASA. Именно там можно посмотреть, сколько контекстов существует, какому какие интерфейсы отданы, где хранятся файлы и т.д.
   Небольшой секрет: в системный контекст можно зайти как введя команду changeto context system, так и просто changeto system.
!
ASA-1# sh run
!====== //Убрал лишний вывод, чтобы показать, как в системном контексте в конфиге выглядит настройка админского контекста.
!

admin-context admin
context admin
  allocate-interface Management0/0
  config-url disk0:/admin.cfg

!!======
   По аналогии создам еще один контекст. Добавлю в него один физический интерфейс.
!
ASA-1(config)# context SPECIAL          //контекст с именем SPECIAL
Creating context 'SPECIAL'... Done. (2)
ASA-1(config-ctx)# allocate-interface G0/1       
//добавляю в контекст интерфейс G0/1
 ASA-1(config-ctx)# config-url disk0:/SPECIAL          //указываю место хранения конфига
WARNING: Could not fetch the URL disk0:/SPECIAL
INFO: Creating context with default config

!
   Теперь можно приступить к настройка файловеров.


   Настройка файловера Active\Active


   Не буду мучить скринами конфигов и команд, т.к. рассматривал их в части 1, приведу ниже блок команд, необходимый для включения файловера на первой ASA:
!
interface Redundant1
 description LAN/STATE Failover Interface
 member-interface GigabitEthernet0/5

!
failover
failover lan unit primary
failover lan interface FAILOVER Redundant1
failover link FAILOVER Redundant1
failover interface ip FAILOVER 10.10.168.1 255.255.255.252 standby 10.10.168.2
failover group 1       //
первое отличие от конфига Active\Standby - включаем дополнительно группы файловера. Если этого не сделать, все контексты будут помещены в одну группу, и файловер будет работать как обычный A\S файловер, что нивелирует все преимущества А\А
failover group 2
!
admin-context admin
context admin
  allocate-interface Management0/0
  config-url disk0:/admin.cfg
  join-failover-group 1   //
вводим эту команду для того, чтобы контекст был определен в свою группу не случайным образом. Если не настраивать это, то по умолчанию все контексты будут в группе 1
!
context SPECIAL
  allocate-interface GigabitEthernet0/1
  config-url disk0:/SPECIAL
  join-failover-group 2
!

   Следующая команда может быть отнесена к разряду "красивостей", но тем не менее она несет весьма полезную функцию. Дело в том, что мне хочется, чтобы командная строка указывала мне на то, является ли данный контекст на устройстве активным или резервным. Я не хочу каждый раз при входе в систему узнавать это вводом дополнительных команд. Поэтому я в каждом контексте введу команду prompt <перечень параметров>:
!
ASA-1(config)# prompt hostname context state //указываю, что командная строка должна говорит мне об имени устройства, имени контекста, состоянии контекста (активный\резервный).ASA-1/actNoFailover(config)#  //изменения вступили в силу сразу же и указываю мне, что это ASA-1, имя контекста не отображается только для системного контекста, состояние активное и без файловера.
!
   На этом настройка файловера за первой ASA завершена. Теперь для включения файловера на соседней ASA  необходимо переключить её в мультиконтекстный режим, перезагрузиться, ввести следующий набор команд:
!
interface Redundant1
 description LAN/STATE Failover Interface
 member-interface GigabitEthernet0/5

!
failover
failover lan unit secondary   //
единственное отличие от конфига активной ASAfailover lan interface FAILOVER Redundant1
failover link FAILOVER Redundant1
failover interface ip FAILOVER 10.10.168.1 255.255.255.252 standby 10.10.168.2
failover group 1

failover group 2
!
   Больше никаких действий предпринимать не требуется, т.к. остальной конфиг, включая контексты, будет реплицирован на резервную ASA.

Комментариев нет:

Отправить комментарий