Introduction:
When IKEv2 is used for negotiation of IPSec SA's between VPN endpoints, the protocol provides multiple ways to exchange local and remote subnets configured for the IPSec tunnel. The protocol defines Traffic Selector (TSi/TSr) payload to be used to specify local and remote subnets configured onboard each side. In one of the negotiation methods, the protocol allows multiple local and remote subnets to be specified in the Traffic Selector payload as part of a single exchange. This mechanism is not supported in NSX-T.
Condition:
Symptoms:
Vendor details:
VMware NSX
Workaround:
More Information:
Behaviour of Edge in different scenarios:
Following are different scenarios with ex. packet exchanges for N=2, M=2.
IKEv2 packet R(192.##.##.100:500 <- 20.##.##.101:500): len= 456, mID=0, HDR(SPI_i, SPI_r), SA, KE, Nonce, N(NAT_DETECTION_SOURCE_IP), N(NAT_DETECTION_DESTINATION_IP), N(FRAGMENTATION_SUPPORTED), unknown
IKEv2 packet S(192.##.##.100:500 -> 20.##.##.101:500): len= 462, mID=0, HDR(SPI_i, SPI_r), SA, KE, Nonce, N(NAT_DETECTION_SOURCE_IP), N(NAT_DETECTION_DESTINATION_IP), N(FRAGMENTATION_SUPPORTED), Vid
IKEv2 packet R(192.##.##.100:4500 <- 20.##.##.101:4500): len= 312, mID=1, HDR(SPI_i, SPI_r), IDi, N(INITIAL_CONTACT), IDr, AUTH, SA, TSi, TSr, N(EAP_ONLY_AUTHENTICATION)
IKEv2 packet S(192.##.##.100:4500 -> 20.##.##.101:4500): len= 228, mID=1, HDR(SPI_i, SPI_r), IDr, AUTH, SA, TSi, TSr, N(ESP_TFC_PADDING_NOT_SUPPORTED)
IKEv2 packet S(192.##.##.100:500 -> 20.##.##.101:500): len= 462, mID=0, HDR(SPI_i, 0000000000000000_r), SA, KE, Nonce, N(NAT_DETECTION_SOURCE_IP), N(NAT_DETECTION_DESTINATION_IP), N(FRAGMENTATION_SUPPORTED), Vid
IKEv2 packet R(192.##.##.100:500 <- 20.##.##.101:500): len= 448, mID=0, HDR(SPI_i, SPI_r), SA, KE, Nonce, N(NAT_DETECTION_SOURCE_IP), N(NAT_DETECTION_DESTINATION_IP), N(FRAGMENTATION_SUPPORTED), N(MULTIPLE_AUTH_SUPPORTED)
IKEv2 packet S(192.##.##.100:500 -> 20.##.##.101:500): len= 416, mID=1, HDR(SPI_i, SPI_r), IDi, IDr, AUTH, SA, TSi, TSr, N(INITIAL_CONTACT), N(ESP_TFC_PADDING_NOT_SUPPORTED)
IKEv2 packet R(192.##.##.100:500 <- 20.##.##.101:500): len= 192, mID=1, HDR(SPI_i, SPI_r), IDr, AUTH, SA, TSi, TSr
IKEv2 packet S(192.##.##.100:500 -> 20.##.##.101:500): len= 656, mID=2, HDR(SPI_i, SPI_r), SA, Nonce, KE, TSi, TSr, N(ESP_TFC_PADDING_NOT_SUPPORTED)
IKEv2 packet R(192.##.##.100:500 <- 20.##.##.101:500): len= 448, mID=2, HDR(SPI_i, SPI_r), SA, Nonce, KE, TSi, TSr
IKEv2 packet S(192.##.##.100:500 -> 20.##.##.101:500): len= 656, mID=3, HDR(SPI_i, SPI_r), SA, Nonce, KE, TSi, TSr, N(ESP_TFC_PADDING_NOT_SUPPORTED)
IKEv2 packet R(192.##.##.100:500 <- 20.##.##.101:500): len= 448, mID=3, HDR(SPI_i, SPI_r), SA, Nonce, KE, TSi, TSr
IKEv2 packet S(192.##.##.100:500 -> 20.##.##.101:500): len= 656, mID=4, HDR(SPI_i, SPI_r), SA, Nonce, KE, TSi, TSr, N(ESP_TFC_PADDING_NOT_SUPPORTED)
IKEv2 packet R(192.##.##.100:500 <- 20.##.##.101:500): len= 448, mID=4, HDR(SPI_i, SPI_r), SA, Nonce, KE, TSi, TSr
IKEv2 packet S(192.##.##.100:500 -> 20.##.##.101:500): len= 462, mID=0, HDR(SPI_i, 0000000000000000_r), SA, KE, Nonce, N(NAT_DETECTION_SOURCE_IP), N(NAT_DETECTION_DESTINATION_IP), N(FRAGMENTATION_SUPPORTED), Vid
IKEv2 packet S(192.##.##.100:500 -> 20.##.##.101:500): mID=0, (SPI_i, 0000000000000000_r)(retransmit count=1)
IKEv2 packet S(192.##.##.100:500 -> 20.##.##.101:500): mID=0, (SPI_i, 0000000000000000_r)(retransmit count=2)
IKEv2 packet R(192.##.##.100:500 <- 20.##.##.101:500): len= 456, mID=0, HDR(SPI_i, SPI_r), SA, KE, Nonce, N(NAT_DETECTION_SOURCE_IP), N(NAT_DETECTION_DESTINATION_IP), N(FRAGMENTATION_SUPPORTED), unknown
IKEv2 packet S(192.##.##.100:500 -> 20.##.##.101:500): len= 462, mID=0, HDR(SPI_i, SPI_r), SA, KE, Nonce, N(NAT_DETECTION_SOURCE_IP), N(NAT_DETECTION_DESTINATION_IP), N(FRAGMENTATION_SUPPORTED), Vid
IKEv2 packet R(192.##.##.100:4500 <- 20.##.##.101:4500): len= 312, mID=1, HDR(SPI_i, SPI_r), IDi, N(INITIAL_CONTACT), IDr, AUTH, SA, TSi, TSr, N(EAP_ONLY_AUTHENTICATION)
IKEv2 packet S(192.##.##.100:4500 -> 20.##.##.101:4500): len= 228, mID=1, HDR(SPI_i, SPI_r), IDr, AUTH, SA, TSi, TSr, N(ESP_TFC_PADDING_NOT_SUPPORTED)
IKEv2 packet S(192.##.##.100:500 -> 20.##.##.101:500): mID=0, (SPI_i, 0000000000000000_r)(retransmit count=3)
IKEv2 packet R(192.##.##.100:500 <- 20.##.##.101:500): len= 448, mID=0, HDR(SPI_i, SPI_r), SA, KE, Nonce, N(NAT_DETECTION_SOURCE_IP), N(NAT_DETECTION_DESTINATION_IP), N(FRAGMENTATION_SUPPORTED), N(MULTIPLE_AUTH_SUPPORTED)
IKEv2 packet S(192.##.##.100:500 -> 20.##.##.101:500): len= 416, mID=1, HDR(SPI_i, SPI_r), IDi, IDr, AUTH, SA, TSi, TSr, N(INITIAL_CONTACT), N(ESP_TFC_PADDING_NOT_SUPPORTED)
IKEv2 packet R(192.##.##.100:500 <- 20.##.##.101:500): len= 192, mID=1, HDR(SPI_i, SPI_r), IDr, AUTH, SA, TSi, TSr
IKEv2 packet S(192.##.##.100:500 -> 20.##.##.101:500): len= 656, mID=2, HDR(SPI_i, SPI_r), SA, Nonce, KE, TSi, TSr, N(ESP_TFC_PADDING_NOT_SUPPORTED)
IKEv2 packet R(192.##.##.100:500 <- 20.##.##.101:500): len= 448, mID=2, HDR(SPI_i, SPI_r), SA, Nonce, KE, TSi, TSr
IKEv2 packet S(192.##.##.100:500 -> 20.##.##.101:500): len= 656, mID=3, HDR(SPI_i, SPI_r), SA, Nonce, KE, TSi, TSr, N(ESP_TFC_PADDING_NOT_SUPPORTED)
IKEv2 packet R(192.##.##.100:500 <- 20.##.##.101:500): len= 448, mID=3, HDR(SPI_i, SPI_r), SA, Nonce, KE, TSi, TSr
Above packet exchanges can be extracted from syslog. Syslog file location: /var/log/syslog*
IKE component logs can be filtered first using following command, which can help further to get these packets.
<Edge root shell>$/opt/vmware/nsx-opsagent/bin/syslog_filter.sh iked