суббота, 2 августа 2014 г.

Настройка Failover на cisco PIX/ASA

Наверное, многие уже сталкивались с проблемой падения линий в сторону провайдеров и, как следствие, остановки рабочего процесса на предприятии. Иногда это случается на стороне самого провайдера, иногда из-за отказа внутреннего оборудования или линий.
Есть масса способов организовать отказоустойчивое соединение. Сегодня я расскажу, как сделать отказоустойчивую схему, имея под рукой два устройства cisco PIX/ASA. Для этого нам придется настроить LAN-Based Failover («Failover через локальную сеть»).
Приглашаю под кат…

Схема у нас будет следующая:



Итак, что у нас есть на схеме:
  • FW1 (primary) – первый firewall, который будет главным по умолчанию. Outside интерфейс – 1.1.1.1/24 (standby IP – 1.1.1.2/24), inside интерфейс – 10.10.10.1/24 (standby IP – 10.10.10.2/24), интерфейс для failover IP – 192.168.1.1/24 (standby IP – 192.168.1.2/24), интерфейс state failover IP – 172.16.1.1/24 (standby IP – 172.16.1.2/24).
  • FW2 (standby) – второй firewall, который будет резервным по умолчанию. Outside интерфейс – 1.1.1.2/24 (standby IP – 1.1.1.1/24), inside интерфейс – 10.10.10.2/24 (standby IP – 10.10.10.1/24), интерфейс для failover IP – 192.168.1.2/24 (standby IP – 192.168.1.1/24), интерфейс state failover IP – 172.16.1.2/24 (standby IP – 172.16.1.1/24). (но пока не ставьте IP – адреса на интерфейсы, по ходу настроек все поймете :)).
  • Remote_Router – роутер для эмуляции провайдера (или интернета). IP – адрес на интерфейсе в сторону наших устройств безопасности 1.1.1.200/24, Loopback интерфейс IP – 2.2.2.2/32 (будем его пинговать с локальной машины).
  • SW1 – обычный коммутатор для сбора линий в одном устройстве. Все интерфейсы в одном vlan.
  • SW2 – обычный коммутатор для организации связи между FW1 и FW2. Имеется 2 vlan (один используется для интерфейсов firewall, второй – для интерфейсов state failover).
  • SW3 – обычный коммутатор для сбора линий в локальной сети. Все интерфейсы в одном vlan.
  • Local_PC – компьютер в локальной сети. IP – 10.10.10.200/24. Шлюз по умолчанию 10.10.10.1/24.
Задача у нас, чтобы сетевая доступность loopback – интерфейса на Remote_Router с локального компьютера (Local_PC) не прерывалась (ну или прерывалась на небольшое время) при падении линии на outside интерфейсе FW1, либо полном отключении FW1. Другими словами, если что-то произойдет с FW1, трафик должен пойти через FW2.
Приступаем к настройкам. Настроим для начала Remote_Router.

  • Router>en
    Router#conf t
    Router(config)#hostname Remote_Router
    Remote_Router(config)#int fa 0/0
    Remote_Router(config-if)#ip address 1.1.1.200 255.255.255.0
    Remote_Router(config-if)#no sh
    Remote_Router(config-if)#exit
    Remote_Router(config)#int loopback 0
    Remote_Router(config-if)#ip address 2.2.2.2 255.255.255.255
    Remote_Router(config-if)#exit
    Remote_Router(config)#exit
    Remote_Router#wr
Проверим настройки:



Все в порядке. Идем дальше.
Для настройки Failover в GNS3 необходимо включить данные возможности на устройствах (я использую PIX 525 с IOS pix723.bin). Как это делать, можно посмотреть вот тут (если вы делаете на реальном оборудовании, то просто проверьте, позволяет ли вам делать Failover ваша лицензия командой show version).
Вот что у меня позволено делать на устройствах после включения дополнительных функций:



Надеюсь, у вас получилось включить нужные нам функции. Теперь заходим на первый (главный) PIX/ASA и делаем следующее:

  • pixfirewall> en
    Password:
    pixfirewall# conf t
    pixfirewall(config)# hostname FW1
    FW1(config)# enable password cisco
    FW1(config)# int ethernet 0
    FW1(config-if)# nameif outside
    INFO: Security level for "outside" set to 0 by default.
    FW1(config-if)# ip address 1.1.1.1 255.255.255.0 standby 1.1.1.2 – назначаем IP – адрес на интерфейсе и сразу прописываем дополнительный;
    FW1(config-if)# no shutdown
    FW1(config-if)# exit
    FW1(config)# int ethernet 1
    FW1(config-if)# nameif inside
    INFO: Security level for "inside" set to 100 by default.
    FW1(config-if)# ip address 10.10.10.1 255.255.255.0 standby 10.10.10.2
    FW1(config-if)# no shutdown
    FW1(config-if)# exit
    FW1(config)# access-list FOR_NAT extended permit ip 10.10.10.0 255.255.255.0 any – создаем список для NAT;
    FW1(config)# nat (inside) 1 access-list FOR_NAT – определяем сети для NAT, согласно списка;
    FW1(config)# global (outside) 1 interface – включаем NAT на интерфейсе outside;
    INFO: outside interface address added to PAT pool
    FW1(config)# route outside 0.0.0.0 0.0.0.0 1.1.1.200 – прописываем маршрут по умолчанию;
    FW1(config)# failover lan enable – включаем failover через локальную сеть;
    FW1(config)# failover lan unit primary – определяем это устройство как главное (primary);
    FW1(config)# failover lan interface failover ethernet2 – определяем интерфейс для failover;
    INFO: Non-failover interface config is cleared on Ethernet2 and its sub-interfaces
    FW1(config)# failover interface ip failover 192.168.1.1 255.255.255.0 standby 192.168.1.2 – назначаем IP – адрес на этот интерфейс и прописываем сразу дополнительный IP;
    FW1(config)# interface ethernet 2
    FW1(config-if)# no shutdown – включаем интерфейс;
    FW1(config-if)# exit
    FW1(config)# failover link state ethernet3 – определяем интерфейс для Stateful failover (опционально);
    INFO: Non-failover interface config is cleared on Ethernet3 and its sub-interfaces
    FW1(config)# failover interface ip state 172.16.1.1 255.255.255.0 standby 172.16.1.2 –назначаем ему IP – адрес и прописываем дополнительный IP;
    FW1(config)# int ethernet 3
    FW1(config-if)# no shutdown – включаем интерфейс;
    FW1(config-if)# exit
    FW1(config)# failover polltime interface 2 holdtime 10 – изменяем интервалы для опроса интерфейсов;
    FW1(config)# failover polltime unit 2 holdtime 10 – изменяем интервалы для опроса соседнего устройства;
    FW1(config)# failover – глобально включаем failover;
    FW1(config)# wr
    FW1(config)#
Все необходимое на primary FW1 настроили. Вот для ориентировки конфигурация:

  • FW1# sh run
    : Saved
    PIX Version 7.2(3)
    hostname FW1
    enable password 2KFQnbNIdI.2KYOU encrypted
    names
    interface Ethernet0
    nameif outside
    security-level 0
    ip address 1.1.1.1 255.255.255.0 standby 1.1.1.2 interface
    Ethernet1
    nameif inside
    security-level 100
    ip address 10.10.10.1 255.255.255.0 standby 10.10.10.2
    interface Ethernet2
    description LAN Failover Interface
    interface Ethernet3
    description STATE Failover Interface

    interface Ethernet4
    shutdown
    no nameif
    no security-level
    no ip address
    passwd 2KFQnbNIdI.2KYOU encrypted
    ftp mode passive
    access-list FOR_NAT extended permit ip 10.10.10.0 255.255.255.0 any
    pager lines 24
    mtu outside 1500
    mtu inside 1500
    failover
    failover lan unit primary
    failover lan interface failover Ethernet2
    failover lan enable
    failover polltime unit 2 holdtime 10
    failover polltime interface 2 holdtime 10
    failover link state Ethernet3
    failover interface ip failover 192.168.1.1 255.255.255.0 standby 192.168.1.2
    failover interface ip state 172.16.1.1 255.255.255.0 standby 172.16.1.2

    icmp unreachable rate-limit 1 burst-size 1
    no asdm history enable
    arp timeout 14400
    global (outside) 1 interface
    nat (inside) 1 access-list FOR_NAT
    route outside 0.0.0.0 0.0.0.0 1.1.1.200 1

    timeout xlate 3:00:00
    timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02
    timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00
    timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00
    timeout uauth 0:05:00 absolute
    no snmp-server location
    no snmp-server contact
    snmp-server enable traps snmp authentication linkup linkdown coldstart
    telnet timeout 5
    ssh timeout 5
    console timeout 0
    class-map inspection_default
    match default-inspection-traffic
    policy-map type inspect dns preset_dns_map
    parameters message-length maximum 512
    policy-map global_policy
    class inspection_default
    inspect dns preset_dns_map
    inspect ftp
    inspect h323 h225
    inspect h323 ras
    inspect rsh
    inspect rtsp
    inspect esmtp
    inspect sqlnet
    inspect skinny
    inspect sunrpc
    inspect xdmcp
    inspect sip
    inspect netbios
    inspect tftp
    inspect icmp
    service-policy global_policy global
    prompt hostname context
    Cryptochecksum:8499dd46ec5f004723e91795c7c52015
    : end
    FW1#

Переходим к настройке secondary FW2. Там настроек будет меньше (придется настроить только интерфейсы для failover и включить его):

  • pixfirewall> en
    Password:
    pixfirewall# conf t
    pixfirewall(config)# hostname FW2
    FW2(config)# enable password cisco
    FW2(config)# failover lan enable
    FW2(config)# failover lan interface failover ethernet2
    INFO: Non-failover interface config is cleared on Ethernet2 and its sub-interfaces
    FW2(config)# failover interface ip failover 192.168.1.1 255.255.255.0 standby 192.168.1.2
    FW2(config)# interface ethernet 2
    FW2(config-if)# no shutdown
    FW2(config-if)# exit
    FW2(config)# failover lan unit secondary
    FW2(config)# failover polltime interface 2 holdtime 10
    FW2(config)# failover polltime unit 2 holdtime 10
    FW2(config)# failover
    FW2(config)# wr
После ввода последней команды, через некоторое время вы должны увидеть вот такие сообщения:
  • FW1# Beginning configuration replication: Sending to mate.
  • FW1# End Configuration Replication to mate
Если этих сообщений нет, то перезапустите ваши устройства (в GNS3 «Stop» и «Start»). Первым запускайте primary.
Теперь посмотрим, что у нас получилось.
FW1:


    Где:
  • 1 – показано, что Failover включен;
  • 2 – это устройство является главным (Primary);
  • 3 – интерфейсом для failover является Ethernet2 и оно в состоянии UP;
  • 4 – настроенные интервалы;
  • 5 – primary устройство в состоянии Active;
  • 6 – интерфейсы находятся в рабочем состоянии;
  • 7 – secondary устройство находится в состоянии Standby Ready;
  • 8 – показывается обмен сообщениями для Stateful failover.
FW2:


    Где:
  • 1 – видно, что мы находимся на FW2, но название и остальная конфигурация устройства взята с primary unit;
  • 2 – данное устройство является secondary failover unit.
Ну что, всё готово, можно переходить к проверкам :). Переходим на нашу локальную машину Local_PC и посмотрим ее настройки и сетевую доступность:


    Где:
  • 1 – настройки IP на локальном компьютере;
  • 2 – успешный ping интерфейса inside на FW1 (так как он на данный момент активный);
  • 3 – успешный ping интерфейса Remote_Router, смотрящего на устройства FW1 и FW2;
  • 4 – успешный ping loopback – интерфейса на Remote_Router.
Для проверки отказоустойчивости будем запускать бесконечный ping на loopback – интерфейс Remote_Router и по очереди выключать сначала сам FW1, затем связь через outside интерфейс.
Итак, выключение самого FW1.
Запускаем бесконечный ping на Local_PC в сторону Remote_Router (2.2.2.2), затем выключаем FW1 и смотрим, сколько ping-ов у нас потерялось:




Видно, что после выключения FW1 пропало всего лишь 2 ping-а (рисунок 1). Вроде работает :). Посмотрим, что в это время творилось на secondary FW2:



    Где:
  • 1 – по истечении интервала «неответа» соседнего устройства, FW2 переключается в активное состояние (Active);
  • 2 – состояние secondary устройства Active;
  • 3 – состояние primary устройства помечено как Failed.
Итак, первая проверка прошла успешно. Для того, чтобы вернуть наш failover в прежнее состояние (primary – active, secondary – Standby Ready), необходимо на FW2 (на устройстве, которое сейчас в состоянии Active) выполнить команду FW1# no failover active.
Приступаем к проверке отказоустойчивости при пропадании сетевой доступности на интерфейсе outside. Для этого снова запустим бесконечный ping с Local_PC, зайдем на SW1 и выключим интерфейс в сторону FW1.





Видно, что произошло детектирование, что интерфейс outside не доступен на удаленной стороне (выключили на SW1, рисунок 1) и primary FW1 переходит в режим Standby (рисунок 3), то есть трафик пошел через FW2. В итоге видно, что потерялось 3 ping-а (рисунок 2), что очень даже неплохо.
Ну что, всё у нас получилось!!!! Поздравляю вас!!!!

Источник: go-to-easyit.com/2011/08/failover-cisco-pixasa.html

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

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