UMGUM.COM (лучше) 

Cisco Router IPSEC "point-to-multipoint" ( Шифрование группы каналов "точка-многоточка" с помощью IPSEC. )

16 октября 2010  (обновлено 31 января 2015)

OS: Cisco IOS 12.4/15.1.

Предположим, перед нами задача присоединения нескольких удалённых сегментов сети к центральной точке используя стороннего провайдера в качестве опоры для построения инфраструктуры. Провайдеру мы не доверяем; хотя бы и потому, что не доверяем никому. Нужно шифровать трафик. В применении туннелей и VPN нет необходимости, достаточно обойтись элементарным IPSEC.

Применимо к следующим маршрутизаторам:

Cisco 1000 / 1400 / 1600-R / 1700 / 1800 / 2600 / 2800 / 3600 / 3700 / 3800 / 4000 / 4700 / AS5300 / MC3810.

Протестировано на следующих маршрутизаторах:

Cisco 1800 / 2800 / 3800.


Примем за данность следующее:

Адресация центральной сети: 192.168.1.0/24;
Адресация первого сегмента: 192.168.2.0/24;
Адресация второго сегмента: 192.168.3.0/24;
Адресация третьего сегмента: 192.168.4.0/24;
Адресация сегмента провайдера: 10.10.1.0/24.

Дополняем конфигурацию центрального маршрутизатора следующими конструкциями:

!* Базовая конфигурация интерфейса, смотрящего в опорную сеть провайдера
interface FastEthernet0/1
  !* Используем адрес из опорной сети провайдера
  ip address 10.10.1.1 255.255.255.0
  no shutdown
  no ip route-cache
exit
!* Отключаем поддержку протокола "Spanning Tree" (на всякий случай, всё равно уходим в сеть провайдера)
no spanning-tree FastEthernet0/1

!* Включение и описание общих параметров политики шифрования: begin
crypto isakmp enable
crypto isakmp policy 1
  encryption des
  hash md5
  authentication pre-share
  group 2
exit
!* Включение и описание общих параметров политики шифрования: end

!* Описываем области допущения трафика для последующего распределения по направлениям ("пирам"): begin
access-list 2001 permit ip 192.168.0.0 0.0.255.255 192.168.2.0 0.0.0.255
access-list 2001 permit icmp 192.168.0.0 0.0.255.255 192.168.2.0 0.0.0.255
access-list 2001 permit icmp any host 10.10.1.1
access-list 2001 permit icmp any host 10.10.1.2
access-list 2002 permit ip 192.168.0.0 0.0.255.255 192.168.3.0 0.0.0.255
access-list 2002 permit icmp 192.168.0.0 0.0.255.255 192.168.3.0 0.0.0.255
access-list 2002 permit icmp any host 10.10.1.1
access-list 2002 permit icmp any host 10.10.1.3
access-list 2003 permit ip 192.168.0.0 0.0.255.255 192.168.4.0 0.0.0.255
access-list 2003 permit icmp 192.168.0.0 0.0.255.255 192.168.4.0 0.0.0.255
access-list 2003 permit icmp any host 10.10.1.1
access-list 2003 permit icmp any host 10.10.1.4
!* Описываем области допущения трафика для последующего распределения по направлениям ("пирам"): end

!* Создаём ключи для направлений ("пиров"): begin
crypto isakmp key strong.key.string1 address 10.10.1.2
crypto isakmp key strong.key.string2 address 10.10.1.3
crypto isakmp key strong.key.string3 address 10.10.1.4
!* Создаём ключи для направлений ("пиров"): end

!* Определение параметров туннелирования и протокола шифрования для направления: begin
!* В нашем случае ничего, кроме определения контекста как такового, мы не делаем
crypto ipsec transform-set CryptoPeer1 esp-des esp-md5-hmac
exit
crypto ipsec transform-set CryptoPeer2 esp-des esp-md5-hmac
exit
crypto ipsec transform-set CryptoPeer3 esp-des esp-md5-hmac
exit
!* Определение параметров туннелирования и протокола шифрования для направления: end

!* Описываем карту направлений шифрования потоков трафика проходящего через интерфейс: begin
!* Где число после имени "карты шифрования" - значение "Sequence to insert into crypto map entry", определяющее последовательность отработки блоков описания "пиров" внутри "карты шифрования", наложенной на интерфейс
crypto map CryptoMapName 1 ipsec-isakmp
  set peer 10.10.1.2
  set transform-set CryptoPeer1
  match address 2001
exit
crypto map CryptoMapName 2 ipsec-isakmp
  set peer 10.10.1.3
  set transform-set CryptoPeer2
  match address 2002
exit
crypto map CryptoMapName 3 ipsec-isakmp
  set peer 10.10.1.4
  set transform-set CryptoPeer3
  match address 2003
exit
!* Описываем карту направлений шифрования потоков трафика проходящего через интерфейс: end

!* Применяем к интерфейсу, смотрящего в опорную сеть провайдера, описанную выше карту шифрования
interface FastEthernet0/1
  !* Применяем к интерфейсу карту шифрования трафика
  crypto map CryptoMapName
exit

Теперь центральный маршрутизатор готов и будет шифровать на интерфейсе весь исходящий трафик удовлетворяющий описанию листов доступа и принимать только шифрованный трафик в соответствии с указанными "ключами".

На маршрутизаторах подключаемых сегментов сети конфигурацию приведём к ниже следующему виду.

Для маршрутизатора первого сегмента:

interface FastEthernet0/1
  ip address 10.10.1.2 255.255.255.0
  no shutdown
  no ip route-cache
exit
no spanning-tree FastEthernet0/1

crypto isakmp enable
crypto isakmp policy 1
  encryption des
  hash md5
  authentication pre-share
  group 2
exit
access-list 2001 permit ip any any
access-list 2001 permit icmp any any
crypto isakmp key strong.key.string1 address 10.10.1.1
crypto ipsec transform-set CryptoPeer1 esp-des esp-md5-hmac
crypto map CryptoMapName 1 ipsec-isakmp
  set peer 10.10.1.1
  set transform-set CryptoPeer1
  match address 2001
exit

interface FastEthernet0/1
  crypto map CryptoMapName
exit

Для маршрутизатора второго сегмента:

interface FastEthernet0/1
  ip address 10.10.1.3 255.255.255.0
  no shutdown
  no ip route-cache
exit
no spanning-tree FastEthernet0/1

crypto isakmp enable
crypto isakmp policy 1
  encryption des
  hash md5
  authentication pre-share
  group 2
exit
access-list 2002 permit ip any any
access-list 2002 permit icmp any any
crypto isakmp key strong.key.string2 address 10.10.1.1
crypto ipsec transform-set CryptoPeer2 esp-des esp-md5-hmac
crypto map CryptoMapName 2 ipsec-isakmp
  set peer 10.10.1.1
  set transform-set CryptoPeer2
  match address 2002
exit

interface FastEthernet0/1
  crypto map CryptoMapName
exit

Для маршрутизатора третьего сегмента:

interface FastEthernet0/1
  ip address 10.10.1.4 255.255.255.0
  no shutdown
  no ip route-cache
exit
no spanning-tree FastEthernet0/1

crypto isakmp enable
crypto isakmp policy 1
  encryption des
  hash md5
  authentication pre-share
  group 2
exit
access-list 2003 permit ip any any
access-list 2003 permit icmp any any
crypto isakmp key strong.key.string3 address 10.10.1.1
crypto ipsec transform-set CryptoPeer3 esp-des esp-md5-hmac
crypto map CryptoMapName 3 ipsec-isakmp
  set peer 10.10.1.1
  set transform-set CryptoPeer3
  match address 2003
exit

interface FastEthernet0/1
  crypto map CryptoMapName
exit

Соединение с шифрованием IPSEC инициализируется после того, как по нему попытаются передать данные. Нужно иметь это в виду и, после настройки, хотя бы послать серию ICMP пакетов в присоединённую подсеть.

Отслеживать состояние подсистемы шифрования можно с помощью следующих запросов с "говорящим" выводом:

# show crypto isakmp sa
# show crypto ipsec sa
# show crypto engine connections active


Заметки и комментарии к публикации:


Оставьте свой комментарий ( выразите мнение относительно публикации, поделитесь дополнительными сведениями или укажите на ошибку )