0. Вводная
Думаю не нужно объяснять зачем это нужно и где применяется. Всё просто - если для вас потеря vpn соединения критична и работа останавливается, возможно стоит подумать о конфигурировании некоторой избыточности. Основных подходов в данном случае два:- отказоустойчивый узел из двух или более устройств при этом активным является только одно устройство и данные о сессиях протокола более высокого уровня не синхронизируются между устройствами (stateless);
- отказоустойчивый узел из двух или более устройств, активно только одно, данные о сессиях синхронизированы (stateful).
Как очевидно основное отличие между двумя подходами в том, что при переключении с основного на резервное устройство и наборот текущие сессии ipsec сбрасываются. Конечно ситуация отрабатывается протоколами инкапсулироваными в ipsec пакеты, как tcp/udp, и скорее всего произойдет только некоторое "замораживание" соединения. Из опыта могу сказать, что задержка обычно немногим больше задержки возникающей при создании нового туннеля. Для большинства приложений этого достаточно.
1. Схема
Шифрации подлежит трафик
10.10.200.0/24 <-> 10.10.1.0/24
10.10.100.0/24 <-> 10.10.1.0/24
2. Конфигурация
Удивительно, но процесс настройки оказался достаточно простым. Основой всего является протокол HSRP (если словосочетание незнакомо, крайне рекомендую пройтись по ссылке) и ipsec собственно. Я не буду вдаваться в нюансы настройки HSRP или ipsec, для этого были написаны специальные заметки - HSRP, static ipsec . :)
По сути изменяется всего две команды.
В первую очередь необходимо добавить имя в конфигурацию hsrp
//конфигурация hsrp, добавлено имя
vpn0(config-if)#standby version 2
vpn0(config-if)#standby 100 ip 10.10.11.1
vpn0(config-if)#standby 100 priority 150
vpn0(config-if)#standby 100 preempt
vpn0(config-if)#standby 100 name vpn
Вторая команда - при применении crypto map к интерфейсу указывается имя hsrp группы которая будет обеспечивать отказоустойчивость.
//применение отказоустойчивого vpn
vpn0(config-if)#crypto map cr_outside redundancy vpn
В качестве дополнения приведу полную конфигурацию.
vpn0
Базовая конфигурация
crypto isakmp policy 200
encr aes
authentication pre-share
group 2
crypto isakmp key MyKey address 10.10.10.10
!
crypto ipsec transform-set ts-aes-sha esp-aes 256 esp-sha-hmac
!
crypto map cr_outside 200 ipsec-isakmp
set peer 10.10.10.10
set transform-set ts-aes-sha
match address 120
!
interface FastEthernet0/0
ip address 10.10.11.10 255.255.255.0
duplex auto
speed auto
standby version 2
standby 100 ip 10.10.11.1
standby 100 priority 150
standby 100 preempt
standby 100 name vpn
crypto map cr_outside redundancy vpn
!
access-list 120 permit ip 10.10.200.0 0.0.0.255 10.10.1.0 0.0.0.255
access-list 120 permit ip 10.10.1.0 0.0.0.255 10.10.200.0 0.0.0.255
access-list 120 permit ip 10.10.100.0 0.0.0.255 10.10.1.0 0.0.0.255
access-list 120 permit ip 10.10.1.0 0.0.0.255 10.10.100.0 0.0.0.255
encr aes
authentication pre-share
group 2
crypto isakmp key MyKey address 10.10.10.10
!
crypto ipsec transform-set ts-aes-sha esp-aes 256 esp-sha-hmac
!
crypto map cr_outside 200 ipsec-isakmp
set peer 10.10.10.10
set transform-set ts-aes-sha
match address 120
!
interface FastEthernet0/0
ip address 10.10.11.10 255.255.255.0
duplex auto
speed auto
standby version 2
standby 100 ip 10.10.11.1
standby 100 priority 150
standby 100 preempt
standby 100 name vpn
crypto map cr_outside redundancy vpn
!
access-list 120 permit ip 10.10.200.0 0.0.0.255 10.10.1.0 0.0.0.255
access-list 120 permit ip 10.10.1.0 0.0.0.255 10.10.200.0 0.0.0.255
access-list 120 permit ip 10.10.100.0 0.0.0.255 10.10.1.0 0.0.0.255
access-list 120 permit ip 10.10.1.0 0.0.0.255 10.10.100.0 0.0.0.255
Совершенна идентична vpn0 за исключением адреса интерфейса и приоритета hsrp
crypto isakmp policy 200
encr aes
authentication pre-share
group 2
crypto isakmp key MyKey address 10.10.10.10
!
crypto ipsec transform-set ts-aes-sha esp-aes 256 esp-sha-hmac
!
crypto map cr_outside 200 ipsec-isakmp
set peer 10.10.10.10
set transform-set ts-aes-sha
match address 120
interface FastEthernet0/0
ip address 10.10.11.20 255.255.255.0
duplex auto
speed auto
standby version 2
standby 100 ip 10.10.11.1
standby 100 priority 101
standby 100 preempt
standby 100 name vpn
crypto map cr_outside redundancy vpn
access-list 120 permit ip 10.10.200.0 0.0.0.255 10.10.1.0 0.0.0.255
access-list 120 permit ip 10.10.1.0 0.0.0.255 10.10.200.0 0.0.0.255
access-list 120 permit ip 10.10.100.0 0.0.0.255 10.10.1.0 0.0.0.255
access-list 120 permit ip 10.10.1.0 0.0.0.255 10.10.100.0 0.0.0.255
client1
Простейшее из возможного
crypto isakmp policy 200
encr aes
authentication pre-share
group 2
crypto isakmp key MyKey address 10.10.11.1
!
crypto ipsec transform-set ts-aes-sha esp-aes 256 esp-sha-hmac
!
crypto map cr_outside 200 ipsec-isakmp
set peer 10.10.11.1
set transform-set ts-aes-sha
match address 120
interface FastEthernet0/0
ip address 10.10.10.10 255.255.255.0
duplex auto
speed auto
crypto map cr_outside
access-list 120 permit ip 10.10.200.0 0.0.0.255 10.10.1.0 0.0.0.255
access-list 120 permit ip 10.10.1.0 0.0.0.255 10.10.200.0 0.0.0.255
access-list 120 permit ip 10.10.100.0 0.0.0.255 10.10.1.0 0.0.0.255
access-list 120 permit ip 10.10.1.0 0.0.0.255 10.10.100.0 0.0.0.255
3. Проверка
Проверялось всё это хозяйство путем установки telnet сессии с маршрутизатора srv на client1 и принудительной остановкой интерфейса FastEthernet0/0 на vpn0. Показательно, что сессия telnet при этом не разорвалась хотя "замерла" на примерно 10-15 секунд.
Также необходимо обратить внимание на правильную маршрутизацию внутри vpn рутеров, в моём случае это сделано с помощью простейшей конфигурации ospf, подобной описанной в одной из прошлых заметок, однако можно использовать тот же hsrp с опцией трекинга outside интерфейса.
7 comments:
Тут указано, что требуется 2 маршрутизатора, а как быть с ситуацией, если маршрутизатор один, но есть 2 канала, от 2-х разных провайдеров, и нужно обеспечить переподключение vpn при обрыве одного из 2-х?
Клиент имеет только один канал.
Зависит от того с какой стороны мы находимся. :)
Если речь идет о клиентской стороне, то можно попробовать посмотреть на ip sla, об этом последнее время только ленивый не писал (то есть я). :)
Если же задача в резервировании с серверной стороны, то здесь, боюсь, решений кроме BGP нет.
ладно, тогда такой вопрос:
а если есть роутер Cisco 857 и резервный канал через gprs маршрутизатор (который сам устанавливает шифрованный gre туннель с основным офисом) как быть в этом случае?
Спасибо, за ответ. Уточняю.
В центре 2 канала, от 2-х разных провайдеров. В филиале один канал.
В центре cisco2811 и настроена sla только, для работы локалки при отключении основного канала. Сейчас хочется поставить в Филиал тоже что-то похожее на cisco871. Настроить VPN по одному каналу у вас написанно как, а вот что делать, если основной канал откажет, а нужно что бы vpn был всегда?
2m0ps:
Не уверен, что правильно понял вопрос, но думаю стоит посмотреть на ip sla как у товарища в соседнем треде. :)
2v0-v0:
То есть задача в резервировании серверной стороны у которой два канала в интернет. В таком случае, думаю, Dead Peer Detection (DPD) это то что вам нужно.
Честно говоря руками не трогал, но по описанию очень похоже. :)
2pablo
спасибо, почитал - действительно нужно ip sla копать
Post a Comment