This issue occurs after the device is rebooted when the source IP address is learned via DHCP with a delay. During initialization, the OpenNHRP script attempts to validate both the source and destination NBMA addresses. Because the required information is not available at that time, the script does not proceed with initiating the IKE_SA session and does not recheck or reinitiate it later.
opennhrp-script.py[5947]: Running script with arguments: ['/etc/opennhrp/opennhrp-script.py', 'peer-up'], environment: environ({'NHRP_TYPE': 'static'>
opennhrp-script.py[5947]: Peer UP event for spoke using IKE profile dmvpn-NHRPVPN-tun100
opennhrp-script.py[5947]: Can not get NHRP NBMA addresses: local None, remote 192.168.0.2
staticd[1640]: [S4MGP-4WQTA] route_notify_owner: Route 0.0.0.0/0 failed to install for table: 254
opennhrp-script.py: Can not get NHRP NBMA addresses: local None, remote 192.168.0.2
opennhrp-script.py: Can not get NHRP NBMA addresses: local None, remote 192.168.0.2
staticd[1636]: [S4MGP-4WQTA] route_notify_owner: Route 171.200.0.0/16 failed to install for table: 254IPSec messages:
systemd[1]: Starting strongSwan IPsec IKEv1/IKEv2 daemon using swanctl... charon[5408]: 00[DMN] Starting charon-systemd IKE daemon (strongSwan 5.9.11, Linux 6.6.117-amd64-vyos, x86_64) charon[5408]: 00[CFG] PKCS11 module '<name>' lacks library path charon[5408]: 00[PTS] TPM 2.0 - could not load "libtss2-tcti-tabrmd.so.0" charon[5408]: 00[LIB] plugin 'tpm': failed to load - tpm_plugin_create returned NULL systemd[1]: Started strongSwan IPsec IKEv1/IKEv2 daemon using swanctl. charon[5408]: 02[KNL] 203.0.113.1 disappeared from eth0 charon[5408]: 08[NET] using forecast interface eth3 charon[5408]: 08[CFG] joining forecast multicast groups: 224.0.0.1,224.0.0.22,224.0.0.251,224.0.0.252,239.255.255.250 haron[5408]: 07[KNL] 203.0.113.1 appeared on eth0 charon[5408]: 03[NET] using forecast interface eth3
Tunnel Status:
$ show nhrp tunnel Status: ok Interface Type Protocol-Address Alias-Address Flags NBMA-Address tun100 local 172.16.120.255/32 172.16.120.174 up
Spoke's configuration:
set interfaces ethernet eth0 address dhcp set interfaces tunnel tun100 address '172.16.120.174/24' set interfaces tunnel tun100 enable-multicast set interfaces tunnel tun100 encapsulation 'gre' set interfaces tunnel tun100 ip adjust-mss '1360' set interfaces tunnel tun100 mtu '1400' set interfaces tunnel tun100 parameters ip key '50120' set interfaces tunnel tun100 source-interface 'eth0' set protocols nhrp tunnel tun100 holding-time '10' set protocols nhrp tunnel tun100 map 172.16.120.1/24 nbma-address '192.0.2.2' set protocols nhrp tunnel tun100 map 172.16.120.1/24 register set protocols nhrp tunnel tun100 multicast 'nhs' set protocols nhrp tunnel tun100 redirect set protocols nhrp tunnel tun100 shortcut set vpn ipsec esp-group esp-spoke lifetime '1800' set vpn ipsec esp-group esp-spoke mode 'transport' set vpn ipsec esp-group esp-spoke pfs 'dh-group19' set vpn ipsec esp-group esp-spoke proposal 1 encryption 'aes256' set vpn ipsec esp-group esp-spoke proposal 1 hash 'sha256' set vpn ipsec ike-group ike-spoke close-action 'start' set vpn ipsec ike-group ike-spoke dead-peer-detection action 'restart' set vpn ipsec ike-group ike-spoke key-exchange 'ikev2' set vpn ipsec ike-group ike-spoke lifetime '1800' set vpn ipsec ike-group ike-spoke proposal 1 dh-group '19' set vpn ipsec ike-group ike-spoke proposal 1 encryption 'aes256' set vpn ipsec ike-group ike-spoke proposal 1 hash 'sha256' set vpn ipsec ike-group ike-spoke proposal 1 prf 'prfsha256' set vpn ipsec interface 'eth0' set vpn ipsec profile nhrvpn authentication mode 'pre-shared-secret' set vpn ipsec profile nhrvpn authentication pre-shared-secret 'secret' set vpn ipsec profile nhrvpn bind tunnel 'tun100' set vpn ipsec profile nhrvpn esp-group 'esp-spoke' set vpn ipsec profile nhrvpn ike-group 'ike-spoke'