Introduction
Este documento descreve os resultados esperados da configuração de APNs L2TP corporativos com a autenticação imsi-auth ou autenticação msisdn-auth.
Problema: As opções de configuração de APN msisdn-auth e imsi-auth têm um resultado específico (não óbvio) para APNs baseados em L2TP
A documentação oficial (para a versão 19) indica:
imsi-auth - Configura o APN para tentar autenticar o assinante com base em seu número IMSI (International Mobile Subscriber Identification).
msisdn-auth - Configura o APN para tentar autenticar o assinante com base em seu número MSISDN (Mobile Station International Integrated Services Digital Network) conforme descrito na seção Uso deste comando.
Exemplo de configuração:
apn ecs-apn
ims-auth-service IMSA
dns primary 192.168.1.128
dns secondary 192.168.1.129
ip access-group CSS_ACL in
ip access-group CSS_ACL out
authentication imsi-auth username-strip-apn prefer-chap-pco <<<<<<<<<<<<<<<<<<<<<<<<<<<
ip context-name Gi
tunnel l2tp peer-address 2.2.2.2 encrypted secret +A3oxne9nnyqmuz16dddqucwcqz92p2hi4t8z21nx3hmmpcgvh4ida preference 1 <<<<<<<<<<<<<<<<<<<<<<<<<<<
tunnel l2tp peer-address 3.3.3.3 encrypted secret +A2dbz9joxajmv80jxmr5aycl1ka2s6nzmu7s2bte3nnz4o2hgkqxn preference 2 <<<<<<<<<<<<<<<<<<<<<<<<<<<
loadbalance-tunnel-peers prioritized <<<<<<<<<<<<<<<<<<<<<<<<<<<
exit
lac-service LAC-SVC <<<<<<<<<<<<<<<<<<<<<<<<<<<
max-retransmission 1
retransmission-timeout-max 1
load-balancing prioritized
allow aaa-assigned-hostname
keepalive-interval 30
peer-lns 2.2.2.2 encrypted secret +A2q4fv7h5tum1a06vc2wblk9l7k3ma98myremkew1552c2vosy2h1
peer-lns 3.3.3.3 encrypted secret +A16gnydsddbqqx3okh7ln6jrwxz3s3u3lzvzo5bz0ccc0ztr0cvsh
bind address 1.1.1.1
#exit
Um comportamento esperado é que, se uma das opções acima estiver configurada para um APN baseado em L2TP, o Gateway GPRS Support Node/
O Gateway de Rede de Dados de Pacotes (PDN - Packet Data Network) (GGSN/PGW) usa IMSI ou MSISDN para autenticação PPP com Servidor de Rede L2TP (LNS - L2TP Network Server).
A opção funciona como esperado caso não haja nenhum nome de usuário fornecido pelo equipamento do usuário (UE).
ii
Friday April 07 2017
INBOUND>>>>> 09:57:08:270 Eventid:141004(3)
[PGW-S5/S2a/S2b]GTPv2C Rx PDU, from 213.151.233.172:35664 to 213.151.233.230:2123 (271)
TEID: 0x00000000, Message type: EGTP_CREATE_SESSION_REQUEST (0x20)
Sequence Number: 0x317962 (3242338)
GTP HEADER
Version number: 2
TEID flag: Present
Piggybacking flag: Not present
Message Length: 0x010B (267)
INFORMATION ELEMENTS
IMSI:
Type: 1 Length: 8 Inst: 0
Value: 231014450903030
Hex: 0100 0800 3201 4154 9030 30F0
MSISDN:
Type: 76 Length: 6 Inst: 0
Value: 421917667546
Hex: 4C00 0600 2491 7166 5764
MOBILE EQUIPMENT IDENTITY:
Type: 75 Length: 8 Inst: 0
Value: 3594050557927001
Hex: 4B00 0800 5349 5050 7529 0710
[…]
ACCESS POINT NAME:
Type: 71 Length: 38 Inst: 0
Value: ltpipsec.corp.test.mnc001.mcc231.gprs
Hex: 4700 2600 086C 7470 6970 7365 6304 636F
7270 0474 6573 7406 6D6E 6330 3031 066D
6363 3233 3104 6770 7273
SELECTION MODE:
Type: 128 Length: 1 Inst: 0
Value: MS provided APN,subscr not verified (0x01)
Hex: 8000 0100 01
PDN TYPE:
Type: 99 Length: 1 Inst: 0
Value: IPV4
Hex: 6300 0100 01
[…]
PCO:
Type: 78 Length: 32 Inst: 0
Container id: 0xC023 (PAP)
Container length: 0x06 (6)
Container content:
Auth-Req(0), Name=, Passwd=
Container id: 0x8021 (IPCP)
Container length: 0x10 (16)
Container content:
Conf-Req(0), Pri-DNS=0.0.0.0, Sec-DNS=0.0.0.0
Container id: 0x000D (IPv4-DNS-Server)
Container length: 0x00 (0)
Container content:
DNS Address: Request for IPv4 DNS Address allocation
Hex: 4E00 2000 80C0 2306 0100 0006 0000 8021
1001 0000 1081 0600 0000 0083 0600 0000
0000 0D00
[…]
Friday April 07 2017
<<<<OUTBOUND 09:57:08:295 Eventid:25001(0)
PPP Tx PDU (20)
PAP 20: Auth-Req(1), Name=421917667546, Passwd= <-- username is replaced with MSISDN as the APN is configured with “msisdn-auth”
A opção não funciona se houver um nome de usuário fornecido pela UE. Nesse caso, GGSN/PGW envia o nome de usuário e a senha configurados dentro do APN.
Se nada estiver configurado lá
Friday April 07 2017
INBOUND>>>>> 09:47:51:254 Eventid:141004(3)
[PGW-S5/S2a/S2b]GTPv2C Rx PDU, from 213.151.233.172:35824 to 213.151.233.230:2123 (279)
TEID: 0x00000000, Message type: EGTP_CREATE_SESSION_REQUEST (0x20)
Sequence Number: 0x5C4D6C (6049132)
GTP HEADER
Version number: 2
TEID flag: Present
Piggybacking flag: Not present
Message Length: 0x0113 (275)
INFORMATION ELEMENTS
IMSI:
Type: 1 Length: 8 Inst: 0
Value: 231014450903030
Hex: 0100 0800 3201 4154 9030 30F0
MSISDN:
Type: 76 Length: 6 Inst: 0
Value: 421917667546
Hex: 4C00 0600 2491 7166 5764
MOBILE EQUIPMENT IDENTITY:
Type: 75 Length: 8 Inst: 0
Value: 3594050557927001
Hex: 4B00 0800 5349 5050 7529 0710
[..]
PCO:
Type: 78 Length: 40 Inst: 0
Container id: 0xC023 (PAP)
Container length: 0x0E (14)
Container content:
Auth-Req(0), Name=null, Passwd=null
Container id: 0x8021 (IPCP)
Container length: 0x10 (16)
Container content:
Conf-Req(0), Pri-DNS=0.0.0.0, Sec-DNS=0.0.0.0
Container id: 0x000D (IPv4-DNS-Server)
Container length: 0x00 (0)
Container content:
DNS Address: Request for IPv4 DNS Address allocation
Hex: 4E00 2800 80C0 230E 0100 000E 046E 756C
6C04 6E75 6C6C 8021 1001 0000 1081 0600
0000 0083 0600 0000 0000 0D00
[…]
Friday April 07 2017
<<<<OUTBOUND 09:47:51:334 Eventid:25001(0)
PPP Tx PDU (16)
PAP 16: Auth-Req(1), Name=null, Passwd=null <-- username is the same as in the APN
Solução
O comportamento observado é esperado conforme o projeto.
A configuração authentication imsi-auth username-strip-apn prefer-chap-pco (ou authentication msisdn-auth username-strip-apn prefer-chap-pco) é usada quando não há nome de usuário de Opções de Configuração de Protocolo (PCO) entrando.
Esta é a ordem de precedência para a configuração de construção do Network Access Identifier (NAI):
- Se outbound username <1-128 char string> estiver configurado dentro do APN, isso substituirá todas as outras configurações/IEs e será enviado na solicitação PAP/CHAP.
- Se o UE enviar o nome de usuário/senha do PCO que ele é enviado do UE, ele é enviado para o LNS na solicitação PAP/CHAP (Password Authentication Protocol/Challenge Handshake Authentication Protocol).
- Se nenhum nome de usuário for enviado de UE, msisdn/imsi@APN será enviado por padrão como nome de usuário na solicitação PAP/CHAP.
- Além disso, esta CLI - authentication msisdn/imsi-auth username-strip-apn pode ser usada para remover o APN e enviar somente o msisdn/imsi na solicitação PAP/CHAP.
Observe que, caso a autenticação seja feita por Radius (local), o IMSI (ou MSISDN) será enviado em mensagens de solicitação de acesso, conforme esperado.
Além disso, no cenário do L2TP, se a autenticação for feita por RADIUS (no lado do LAC), o nome de usuário esperado (IMSI ou MSISDN) será visto em mensagens de solicitação de acesso, mas não em Auth-Req em direção ao LNS.