Автор: Сгибнев Михаил
В данной статье мы рассмотрим пример создания GRE туннеля в случае, когда один из маршрутизаторов
получает внешний IP-адрес по DHCP. В этом случае поднять обычный IPsec VPN не представляется возможным, 
так как для этого необходимо точно знать адреса обоих концов туннеля. 
В этом случае нам на помощь приходит протокол 
NHRP.
NHRP - клиент/серверный протокол, где 
hub выступает в роли сервера, а 
spokes - в роли
клиента. 
Hub обслуживает базу данных NHRP, в которой содержатся публичные адреса
каждого 
spoke. Каждый 
spoke регистрирует свой реальный адрес после начальной загрузки,
после чего этот адрес используется для создания туннеля.
В качестве примера из жизни мы рассмотрим файлы конфигурации Cisco 871, подключенной к провайдеру "Стрим", при этом ADSL-модем
выставлен в режим моста.
Хотел бы отметить одну странность - хотя Cisco 871 поддерживает OSPF, настрока его в данной конфигурации вызывала перерезагрузку
маршрутизатора и создание файла crashinfo. 
!
version 12.4
no service pad
service timestamps debug uptime
service timestamps log uptime
service password-encryption
!
hostname stream-gw
!
boot-start-marker
boot-end-marker
!
enable secret cisco
!
no aaa new-model
!
resource policy
!
clock timezone MSK 3
clock summer-time MSD recurring last Sun Mar 2:00 last Sun Oct 3:00
ip cef
!
!
no ip dhcp use vrf connected
!
!
no ip domain lookup
ip domain name dreamcatcher.ru
ip host vpngate.dreamcatcher.ru 213.85.152.244
vpdn enable
!
!
!
!
username cisco secret cisco
!
!
!
crypto isakmp policy 50
 encr 3des
 hash md5
 authentication pre-share
 group 2
crypto isakmp key my_secret_key address 213.85.152.244
crypto isakmp identity hostname
crypto isakmp invalid-spi-recovery
crypto isakmp keepalive 120 20
crypto isakmp nat keepalive 20
!
!
crypto ipsec transform-set dmvpnset esp-3des esp-sha-hmac
!
crypto ipsec profile dmvpnprof
 set transform-set dmvpnset
!
!
!
!
!
interface Tunnel0
 description --- To VpnGate ---
 bandwidth 246
 ip address 192.168.246.210 255.255.255.252
 no ip redirects
 ip mtu 1380
 ip nhrp authentication dmvpn
 ip nhrp map multicast dynamic
 ip nhrp map 192.168.246.209 213.85.152.244
 ip nhrp map multicast 213.85.152.244
 ip nhrp network-id 99
 ip nhrp holdtime 300
 ip nhrp nhs 192.168.246.209
 delay 1000
 tunnel source Dialer1
 tunnel mode gre multipoint
 tunnel key 100000
 tunnel protection ipsec profile dmvpnprof
!
interface FastEthernet0
!
interface FastEthernet1
!
interface FastEthernet2
!
interface FastEthernet3
!
interface FastEthernet4
 description --- To INET ---
 ip address dhcp
 duplex auto
 speed auto
 pppoe enable
 pppoe-client dial-pool-number 1
!
interface Vlan1
 description --- To LAN ---
 ip address 10.2.255.1 255.255.255.0
 ip nat inside
 ip virtual-reassembly
!
interface Dialer1
 mtu 1492
 ip address negotiated
 ip nat outside
 ip virtual-reassembly
 encapsulation ppp
 ip tcp adjust-mss 1452
 dialer pool 1
 dialer-group 1
 no cdp enable
 ppp chap hostname user@mtu
 ppp chap password password
!
ip route 0.0.0.0 0.0.0.0 Dialer1
ip route 10.1.2.88 255.255.255.255 Tunnel0 permanent
!
!
no ip http server
no ip http secure-server
ip nat inside source list 101 interface Dialer1 overload
!
access-list 101 permit ip 10.2.255.0 0.0.0.255 any
dialer-list 1 protocol ip list 101
!
!
!
!
control-plane
!
!
line con 0
 no modem enable
line aux 0
line vty 0 4
 password cisco
 login local
!
scheduler max-task-time 5000
!
webvpn context Default_context
 ssl authenticate verify all
 !
 no inservice
!
end
Конфигурация 
hub выглядит следующим образом:
!
crypto isakmp policy 50
 encr 3des
 hash md5
 authentication pre-share
 group 2
crypto isakmp key my_secret_key address 0.0.0.0 0.0.0.0
crypto isakmp identity hostname
crypto isakmp invalid-spi-recovery
crypto isakmp keepalive 120 20
crypto isakmp nat keepalive 20
!
!
crypto ipsec profile dmvpnprof
 set transform-set dmvpnset
!
!
!
interface Tunnel55
 description --- To Cisco-strim ---
 bandwidth 256
 ip address 192.168.246.209 255.255.255.252
 no ip redirects
 ip mtu 1380
 ip nhrp authentication dmvpn
 ip nhrp map multicast dynamic
 ip nhrp network-id 99
 ip nhrp holdtime 300
 delay 1000
 tunnel source FastEthernet0
 tunnel mode gre multipoint
 tunnel key 100000
 tunnel protection ipsec profile dmvpnprof
!
!
interface FastEthernet0
 description --- OUTER_INET ---
 ip address 213.85.152.244 255.255.255.248
 no ip redirects
 no ip proxy-arp
 duplex auto
 speed auto
!
Список литературы, для желающих узнать побольше:
Dynamic Multipoint IPsec VPNs (Using Multipoint GRE/NHRP to Scale IPsec VPNs)
Configuring NHRP