Настройка IPsec Over GRE: инкапсуляция мультикаста и динамической маршрутизации
При необходимости передачи широковещательного или мультикаст трафика через защищенные каналы возникают проблемы:
- Чистый IPsec (Native ESP) в режиме туннеля не поддерживает передачу мультикаста (224.0.0.0/4) и широковещательных пакетов.
- Невозможно установить соседство динамической маршрутизации OSPF/EIGRP через стандартный IPsec.
- Двойная фрагментация и падение производительности из-за огромного оверхеда инкапсуляции GRE + IPsec ESP.
- Сложность связывания access-list крипто-карт с динамическими IP-адресами.
1. Архитектура GRE over IPsec (Tunnel Protection)
GRE берет исходный пакет любого типа (Unicast, Multicast, Broadcast, non-IP), заворачивает его в стандартный IP-пакет (IP Protocol 47), после чего IPsec в режиме Transport шифрует полученный GRE-фрейм без добавления лишних заголовков IP.
2. Конфигурация Cisco IOS (Headend Router)
# 1. Настройка IKEv2 / ISAKMP
crypto ikev2 proposal PROP_GRE
encryption aes-gcm-256
prf sha256
group 19
crypto ikev2 policy POL_GRE
proposal PROP_GRE
crypto ikev2 profile PROF_GRE
match identity remote address 203.0.113.2
identity local address 198.51.100.1
authentication local pre-share
authentication remote pre-share
keyring local PSK_KEYS
# 2. IPsec Transform-set в режиме TRANSPORT (критично!):
crypto ipsec transform-set TS_GRE esp-gcm 256
mode transport
crypto ipsec profile IPSEC_PROF_GRE
set transform-set TS_GRE
set ikev2-profile PROF_GRE
# 3. Конфигурация GRE интерфейса с защитой:
interface Tunnel0
ip address 10.10.10.1 255.255.255.252
ip mtu 1400
ip tcp adjust-mss 1360
tunnel source GigabitEthernet0/0
tunnel destination 203.0.113.2
# Привязка IPsec к туннелю (GRE over IPsec):
tunnel protection ipsec profile IPSEC_PROF_GRE3. Включение протокола динамической маршрутизации OSPF
router ospf 1
router-id 10.10.10.1
network 10.10.10.0 0.0.0.3 area 0
network 192.168.10.0 0.0.0.255 area 04. Команды диагностики и проверки инкапсуляции
# Проверка инкапсуляции пакетов:
show interface Tunnel0
show crypto ipsec sa detail
# Проверка передачи мультикаста OSPF:
show ip ospf neighbor
show ip route ospf Частые вопросы (FAQ)
Почему для GRE over IPsec нужно использовать Transform-Set в режиме Transport, а не Tunnel?
В режиме Tunnel IPsec добавит свой собственный внешний IP-заголовок к уже существующему IP-заголовку GRE, что увеличит оверхед на 20 байт. Режим Transport шифрует полезную нагрузку GRE, сохраняя оригинальные внешние адреса.
В чем отличие IPsec over GRE от GRE over IPsec?
В GRE over IPsec сначала создается GRE-туннель, который затем шифруется IPsec (рекомендуемый подход). В IPsec over GRE сначала строится IPsec туннель, внутри которого передается трафик GRE (устаревшая и неэффективная схема).
Почему флапает OSPF neighbour поверх Tunnel Protection?
Основная причина — дропы пакетов Hello из-за фрагментации (не выставлен ip mtu 1400 на интерфейсе) либо срабатывание тайм-аута Dead Interval во время рекеинга (re-keying) IPsec ключей.
Поддерживает ли GRE over IPsec передачу IPv6 трафика внутри IPv4 сети?
Да, интерфейс GRE может инкапсулировать IPv6 (tunnel mode gre ip) и передавать его через публичные IPv4 сети с полным шифрованием IPsec.