При активации подключения клиентов на Android к L2TP серверу, настроенному на ESR, получаем сообщение "Сбой".
Для поиска локализации проблемы включим вывод сообщений debug ipsec в консоль.
esr# debug
esr(debug)# show debug ipsec
ipsec
CONFIGURATION: = 0
IKE: = 0
IKEMANAGER: = 0
NETWORK: = 0
ENCODING: = 0
esr(debug)# debug ipsec configuration 3
esr(debug)# debug ipsec ike 3
esr(debug)# debug ipsec ikemanager 2
esr(debug)# debug ipsec network 2
esr(debug)# debug ipsec encoding 1
esr(debug)# show debug ipsec
ipsec
CONFIGURATION: = 3
IKE: = 3
IKEMANAGER: = 2
NETWORK: = 2
ENCODING: = 1
esr(debug)# exit
esr# configure
esr(config)# syslog console debug
esr(config)# do commit
esr(config)# do confirm
Теперь при подключении клиентов будут видны сообщения в консоли. Нас интересуют следующие строки:
received proposals: IKE:AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024, IKE:AES_CBC_256/HMAC_MD5_96/PRF_HMAC_MD5/MODP_1024, IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_254
configured proposals: IKE:3DES_CBC/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_2048
no proposal found
queueing INFORMATIONAL task
activating new tasks
activating INFORMATIONAL task
IKE_SA (unnamed)[16] state change: CONNECTING => DESTROYING
Сбой происходит по следующей причине — клиент и сервер не могут договориться о общем профиле шифрования.
Нет пересечений между принятыми от клиента методами шифрования и сконфигурированными на ESR.
Для решения этой проблемы необходимо создать дополнительно профили шифрования
Для пользователей на Android
esr# configure
esr(config)# security ike proposal new
esr(config-ike-proposal)# encryption algorithm aes128
esr(config-ike-proposal)# dh-group 2
esr(config-ike-proposal)# exit
И для пользователей Windows
esr(config)# security ike proposal new1
esr(config-ike-proposal)# dh-group 14
esr(config-ike-proposal)# exit
esr(config)# do commit
esr(config)# do confirm
После того, как добавили профили, оборудование успешно их применяет и соединение устанавливается.
Для клиентов Android
received proposals: IKE:AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024, IKE:AES_CBC_256/HMAC_MD5_96/PRF_HMAC_MD5/MODP_1024, IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_254
configured proposals: IKE:3DES_CBC/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_2048, IKE:AES_CBC_128/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
selected proposal: IKE:AES_CBC_128/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
Для клиентов Windows
received proposals: IKE:AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/ECP_384, IKE:AES_CBC_128/HMAC_SHA1_96/PRF_HMAC_SHA1/ECP_256, IKE:AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_20484
configured proposals: IKE:3DES_CBC/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_2048, IKE:AES_CBC_128/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
selected proposal: IKE:3DES_CBC/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_2048
Итоговая конфигурация на ESR:
hostname esr
object-group network pptp_dns
ip address-range 8.8.8.8
ip address-range 8.8.4.4
exit
security zone VPN
exit
interface gigabitethernet 1/0/1
ip firewall disable
ip address 198.51.100.1/24
exit
security ike proposal new
encryption algorithm aes128
dh-group 2
exit
security ike proposal new1
dh-group 14
exit
remote-access l2tp L2TP
authentication mode local
authentication method mschap-v2
local-address ip-address 192.0.2.1
remote-address address-range 192.0.2.10-192.0.2.30
outside-address ip-address 198.51.100.1
dns-servers object-group pptp_dns
security-zone VPN
ipsec authentication method pre-shared-key
ipsec authentication pre-shared-key ascii-text encrypted 8CB5107EA7005AFF
ipsec ike proposal new
ipsec ike proposal new1
username user
password ascii-text encrypted 89A7067F
enable
exit
enable
exit
В результате такой настройки сообщение "Сбой" больше не появляется.
Для клиентов на Android 10 и Android 11 дополнительно необходимо проверить чтобы
был прописан маршрут пересылки. Если он отсутствует, то необходимо его добавить.