Soporte de PDN IPv6 / Dual-Stack (IPv4v6)
Guía completa para operar conexiones PDN compatibles con IPv6 a través del OmniPGW (plano de control) y OmniUPF (plano de usuario). Esta página cubre cómo se negocia y señala el tipo de PDN, la configuración requerida en ambos nodos y cómo se logra la conectividad IPv6 del UE con enrutamiento dinámico.
Para el modelo detallado de grupo de direcciones UE (coincidencia de APN, asignación, manejo de colisiones), consulte Asignación de IP de UE. Para las interfaces PFCP y Gx en general, consulte PFCP/Sxb y Diameter Gx.
Tabla de Contenidos
- Descripción General
- Tipos de PDN
- Flujo de Fin a Fin
- Configuración de PGW-C
- Plano de Usuario (OmniUPF)
- Tablas de Referencia
- Solución de Problemas
Descripción General
Una conexión PDN puede ser IPv4, IPv6 o IPv4v6 (dual-stack). El tipo de PDN es solicitado por el UE/SGW en la Solicitud de Creación de Sesión GTPv2 y confirmado por el PGW-C en la respuesta. Proporcionar un PDN IPv6 de extremo a extremo requiere un comportamiento coordinado a través de tres interfaces y ambos nodos:
| Nodo / Interfaz | Responsabilidad por IPv6 |
|---|---|
| OmniPGW — S5/S8 | Negociar tipo de PDN; asignar dirección(es) de UE; devolver la Asignación de Dirección de PDN (PAA) |
| OmniPGW — Gx | Transmitir la dirección UE al PCRF: Framed-IP-Address (IPv4) para PDNs IPv4/IPv4v6, Framed-IPv6-Prefix para PDNs solo IPv6 |
| OmniPGW — Sxb | Señalar la dirección IPv6 del UE y el tipo de PDN al UPF a través de PFCP |
| OmniUPF — plano de datos | Programar la búsqueda de enlace descendente IPv6; reenviar/encapsular tráfico de usuario IPv6 |
| OmniUPF — FRR | Anunciar cada ruta de host IPv6 /128 del UE al enrutador de borde a través de OSPFv3 |
Referencias: 3GPP TS 29.274 (GTPv2-C), 3GPP TS 29.212 (Gx), 3GPP TS 29.244 (PFCP).
Tipos de PDN
| Valor | Tipo de PDN | UE recibe | Contenido de PAA (TS 29.274 §8.14) |
|---|---|---|---|
| 1 | IPv4 | Dirección IPv4 | Dirección IPv4 de 4 bytes |
| 2 | IPv6 | Prefijo IPv6 (/64) | octeto de longitud de prefijo + dirección de 16 bytes |
| 3 | IPv4v6 | Dirección IPv4 + prefijo IPv6 | octeto de longitud de prefijo + 16 bytes IPv6 + 4 bytes IPv4 |
El PGW-C deriva el tipo de PDN efectivo del IE de Tipo de PDN, recurriendo al tipo del IE de PAA si el IE de Tipo de PDN está ausente. El mismo tipo negociado impulsa el PAA devuelto al SGW, el IE de Tipo de PDN PFCP enviado al UPF, y qué familia/familias de direcciones son asignadas.
IPv4v6 sin grupo IPv6. Si se solicita un PDN IPv4v6 pero el APN coincidente no tiene un rango IPv6 configurado, el PGW-C no falla; degrada el PDN a solo IPv4 o lo rechaza, dependiendo de si el APN es un APN de emergencia (SOS). Consulte Solicitud IPv4v6 cuando el APN no tiene grupo IPv6.
Flujo de Fin a Fin
Una Solicitud de Creación de Sesión retransmitida (mismo número de secuencia) se maneja de manera idempotente y produce la misma respuesta.
Configuración de PGW-C
Grupo de Direcciones IPv6 de UE
Las direcciones de UE se extraen de grupos por APN bajo la clave ue.subnet_map en
runtime.exs. Agregue un CIDR IPv6 junto al CIDR IPv4 para cualquier APN que deba
ofrecer IPv6 o dual-stack. El grupo se analiza automáticamente por familia de direcciones.
config :pgw_c,
ue: %{
subnet_map: %{
# Nombre de APN => lista de cadenas CIDR (IPv4 y/o IPv6)
default: [
"100.64.16.0/24",
"2001:db8:6f85:70::/64"
]
}
}
| Parámetro | Tipo | Requerido | Predeterminado | Descripción |
|---|---|---|---|---|
ue.subnet_map | Mapa | Sí | - | Mapea un nombre de APN (o :default) a una lista de cadenas CIDR. :default es el respaldo cuando no hay una entrada específica de APN que coincida. |
| (entradas de lista) | Cadena (CIDR) | Sí | - | Un prefijo IPv4 (por ejemplo, 100.64.16.0/24) o IPv6 (por ejemplo, 2001:db8:6f85:70::/64). La familia de direcciones se detecta a partir de la cadena. Las direcciones IPv6 de UE se extraen del prefijo configurado y se señala un /64 al UE. |
Para coincidencia de expresiones regulares de APN, múltiples subredes por APN, direcciones estáticas y el algoritmo de asignación, consulte Asignación de IP de UE.
Un APN con ambos un CIDR IPv4 y un CIDR IPv6 admite PDNs IPv4, IPv6 y IPv4v6; el PGW-C asigna de la familia/familias que el tipo de PDN negociado requiere (para IPv4v6, una dirección de cada uno).
Gx (Framed-IPv6-Prefix)
No se requiere configuración adicional para Gx. El PGW-C establece el AVP de dirección enmarcada Gx a partir de la dirección UE por familia:
- PDN solo IPv6 — el prefijo IPv6 del UE se transmite utilizando el
Framed-IPv6-PrefixAVP (RFC 3162 §2.3), noFramed-IP-Address(que solo transporta IPv4). - PDNs IPv4 e IPv4v6 — la dirección IPv4 del UE se transmite en
Framed-IP-Address. Para IPv4v6, el prefijo IPv6 no se transporta en Gx (los AVPs de dirección enmarcada del CCR se derivan de la dirección IPv4); el prefijo IPv6 aún se señala al UPF a través de PFCP y al UE en el PAA.
Para un suscriptor solo IPv6, el PCRF debe estar provisionado y ser capaz de procesar
Framed-IPv6-Prefix; de lo contrario, la Solicitud de Control de Crédito se descarta
y la sesión falla — consulte Solución de Problemas.
Plano de Usuario (OmniUPF)
Para que un PDN IPv6 transporte tráfico, el OmniUPF debe estar habilitado para IPv6,
programar la búsqueda de enlace descendente IPv6 desde la sesión PFCP que envía el PGW-C,
y anunciar cada ruta de host IPv6 /128 del UE al enrutador de borde (a través de OSPFv3)
para que el tráfico de enlace descendente sea atraído al UPF.
Esas son preocupaciones del plano de usuario configuradas en el OmniUPF, no en el PGW-C. Consulte la guía de IPv6 / Dual-Stack de OmniUPF para configuraciones del kernel, el grupo de UE del UPF y la publicidad de rutas OSPFv3. Desde la perspectiva del PGW-C, el único requisito es que el UPF seleccionado soporte IPv6 — el PGW-C señala la dirección IPv6 del UE y el tipo de PDN a través de PFCP (consulte PFCP/Sxb).
Tablas de Referencia
Asignación de Dirección de PDN (PAA) — TS 29.274 §8.14
| Tipo de PDN | Diseño del campo de dirección |
|---|---|
| IPv4 | 4 octetos: dirección IPv4 |
| IPv6 | 1 octeto de longitud de prefijo + 16 octetos de prefijo/dirección IPv6 |
| IPv4v6 | 1 octeto de longitud de prefijo + 16 octetos IPv6 + 4 octetos IPv4 |
AVPs de Dirección Enmarcada Gx
| AVP | Código | Familia | Formato | Referencia |
|---|---|---|---|---|
Framed-IP-Address | 8 | IPv4 | dirección de 4 bytes | RFC 4005 |
Framed-IPv6-Prefix | 97 | IPv6 | octeto reservado + longitud de prefijo + prefijo | RFC 3162 §2.3 |
IE de Tipo de PDN PFCP — TS 29.244
| Valor | Significado |
|---|---|
| 1 | IPv4 |
| 2 | IPv6 |
| 3 | IPv4v6 |
Solución de Problemas
El CCR de Gx se agota para sesiones IPv6
Síntomas: Las sesiones IPv4 para un suscriptor tienen éxito, pero las sesiones
IPv6/IPv4v6 devuelven la causa remote_peer_not_responding; la Solicitud de Control de Crédito Gx se agota.
Causas posibles:
- El PCRF no puede procesar el AVP
Framed-IPv6-Prefixy descarta silenciosamente la solicitud. - El suscriptor no está provisionado para IPv6 en el PCRF/HSS.
Resolución:
- Confirme que el suscriptor esté provisionado y habilitado en el PCRF/HSS.
- Verifique que el PCRF acepte
Framed-IPv6-Prefixpara Gx CCR-I. - Compare con una sesión IPv4 para el mismo suscriptor para aislar el comportamiento específico de IPv6.
La sesión IPv6 es aceptada pero el tráfico de enlace descendente no llega al UE
Síntomas: La Respuesta de Creación de Sesión lleva un PAA IPv6, el enlace ascendente funciona, pero el tráfico de la red hacia el UE se pierde.
Esta es una preocupación del plano de usuario (OmniUPF) — el PGW-C ya ha asignado la
dirección y la ha señalado a través de PFCP. La causa habitual es que la ruta de host /128 del UE
no está llegando al enrutador de borde (OSPFv3 no está ejecutándose/adyacente en el UPF, o
retraso de convergencia). Consulte la guía de IPv6 / Dual-Stack de OmniUPF para la configuración
de publicidad de rutas y solución de problemas.
No se asigna ninguna dirección IPv6
Síntomas: Se rechaza una solicitud de PDN IPv6, o no se devuelve ningún PAA IPv6.
Causas posibles:
- El APN coincidente (o
:default) no tiene un CIDR IPv6 enue.subnet_map. - El grupo IPv6 configurado está agotado.
Resolución:
- Agregue un CIDR IPv6 a la entrada del APN en
ue.subnet_map(consulte Configuración de PGW-C). - Confirme que el grupo tenga direcciones libres.
Solicitud IPv4v6 cuando el APN no tiene grupo IPv6
Síntomas: Un UE solicita un PDN IPv4v6 contra un APN que solo tiene un CIDR IPv4
configurado en ue.subnet_map (sin rango IPv6). Dependiendo del APN, la
sesión se establece solo en IPv4 o es rechazada.
Comportamiento: El asignador de IPv6 (AddressRegistry.register_new_ipv6/1) devuelve
{:error, :no_ipv6_pool} cuando el APN coincidente tiene una lista IPv6 vacía, en lugar de
hacer que el proceso de sesión falle. El procedimiento de sesión luego elige por tipo de APN
(según TS 29.274 / manejo de portadora de dirección única / degradación de tipo de PDN):
| Tipo de APN | Resultado | Lo que ve el UE / PCRF / UPF |
|---|---|---|
| APN de Emergencia (SOS) | Degradar a solo IPv4 — asignar la dirección IPv4, limpiar la dirección IPv6, establecer el tipo de PDN negociado a IPv4. | PAA, Tipo de PDN PFCP y IP de UE PFCP son solo IPv4; Gx lleva Framed-IP-Address. El P-CSCF aún se devuelve en el PCO para que el registro IMS de emergencia pueda proceder. Se registra una advertencia. |
| APN Regular | Rechazar — la sesión no se degrada silenciosamente; {:error, :no_ipv6_pool} se muestra para que la mala configuración (o solicitud genuinamente no soportada) sea visible. Se registra un error. | La Creación de Sesión falla con una causa no exitosa. |
Un APN de emergencia se identifica por su nombre: el APN contiene "sos"
(por ejemplo, sos, sos.mnc410.mcc310.gprs). Las solicitudes solo IPv6 contra un APN sin
grupo IPv6 también son rechazadas.
En la práctica, el MME normalmente degrada la solicitud IPv4v6 de un suscriptor regular a su IPv4 suscrito antes de que la solicitud llegue al PGW-C, por lo que la ruta de rechazo es un respaldo para una solicitud IPv4v6 que realmente llega sin un grupo IPv6. La ruta de degradación SOS mantiene las llamadas de emergencia (por ejemplo, 911/112) conectadas en un despliegue solo IPv4.
Resolución:
- Para un APN regular que debe ofrecer dual-stack, agregue un CIDR IPv6 a la entrada del APN
en
ue.subnet_map(consulte Configuración de PGW-C). - Para un APN de emergencia (SOS) en un despliegue solo IPv4, no se requiere ninguna acción — la degradación solo IPv4 es intencionada. Agregue un CIDR IPv6 solo si tiene la intención de que los PDNs SOS sean dual-stack.