跳到主要内容

IP 地址管理 (DHCP / DHCPv6 / IPv6 RA / PCO)

概述

OmniTWAG 为每个 UE 分配一个 IP 地址及其相关的网络参数。该子系统涵盖 DHCPv4、DHCPv6、IPv6 路由器广告 (SLAAC) 以及 DNS 和 P-CSCF 地址的传递。该子系统不会随机生成地址。它提供的地址是系统其他部分已经选择的。源地址取决于每个 AP 模式。

  • 隧道(家庭路由)模式 下,PGW 通过 S2a GTP 分配地址,OmniTWAG 将相同的地址传递给 UE。该设计遵循 3GPP TS 23.402 第 16.2 节
  • NSWO(本地突破)模式 下,没有 PGW。OmniTWAG 从运营商定义的本地 IP 池 中自行分配地址。请参见 IP 池

模式、地址源和池都来自与 RADIUS 源匹配的 AP 凭证。有关 AP 如何映射到 breakout_typeaddress_sourceip_pool_id 的信息,请参见 RADIUS 凭证

有关操作模式和 GRE 数据路径的信息,请参见 用户平面 参考。有关承载 PAA 和 PCO 的 GTP-C 控制平面的信息,请参见 S2a GTP-C。有关驱动分配的每个 UE 状态机的信息,请参见 会话

目录

概述:谁分配地址

OmniTWAG 运行一个轻量级的 DHCPv4 服务器、一个无状态和有状态的 DHCPv6 服务器,以及一个 IPv6 路由器广告服务器。这些服务器在隧道情况下不会扫描范围以寻找可用地址。它们提供 PGW 已经分配的地址。在 NSWO 模式下,同一个 DHCPv4 服务器提供 OmniTWAG 从本地 IP 池中获取的地址。

地址流在 UE 认证时开始。在 Access-Accept 后,每个 UE 会话过程运行一个后接受建立步骤。该步骤读取 AP 凭证以决定模式,然后通过正确的路径分配地址。

地址源

AP 凭证通过两个字段设置地址源:

  • breakout_type: :tunneled:nswo:local
  • address_source: :pool:dhcp。这仅在 breakout_type:nswo 时适用。
模式凭证谁选择 UE 地址如何到达 UE
隧道(家庭路由)breakout_type: :tunneledPGW,在 GTP-C 创建会话响应 PAA 中。预分配的 DHCPv4 租约、DHCPv6 或 IPv6 RA。
NSWO,固定breakout_type: :nswo, address_source: :poolOmniTWAG,从 ip_pool_id 池中,在建立时。预分配的 DHCPv4 租约。
NSWO,分配breakout_type: :nswo, address_source: :dhcpOmniTWAG,从 ip_pool_id 池中,在 DHCP DISCOVER 时。在 DISCOVER 时从 DHCPv4 池中分配。
AP-本地breakout_type: :localAP 后面的本地网络。OmniTWAG 不分配地址。

有关凭证字段以及 RADIUS 源如何映射到凭证的信息,请参见 RADIUS 凭证。有关池存储的信息,请参见 IP 池

隧道会话:PGW 分配的地址

对于隧道会话,OmniTWAG 通过 GTP-C 创建会话请求与 PGW 建立 S2a 会话。PGW 以创建会话响应进行回复。该响应携带该子系统使用的两个内容:

  • PDN 地址分配 (PAA)。这是 UE 的 IP 地址。
  • 协议配置选项 (PCO)。这携带 DNS 服务器、P-CSCF 地址和链路 MTU。

OmniTWAG 从响应中读取 PAA 和 PCO。然后,OmniTWAG 为 UE MAC 地址预分配一个 DHCP 租约。当 UE 发送 DHCP 请求时,OmniTWAG 用这个预分配的地址进行回复。UE 永远不会收到 PGW 未分配的地址。有关创建会话交换的信息,请参见 S2a GTP-C

PAA 类型设置 OmniTWAG 交付的地址。

PAA 类型交付给 UE 的地址
ipv4来自 PAA 的 IPv4 地址。
ipv6来自 PAA 的 IPv6 地址。
ipv4v6来自 PAA 的 IPv4 地址。

如果创建会话响应没有 PAA,OmniTWAG 不会预分配租约。在这种情况下,UE 不会收到地址。

NSWO 会话:池和 DHCP

NSWO 会话没有 PGW,因此 OmniTWAG 拥有地址空间。地址来自凭证 ip_pool_id 指定的 IP 池。一个池包含一个 IPv4 CIDR、一个网关、一个 DNS 服务器列表和一个租约时间。请参见 IP 池

凭证的 address_source 字段选择池地址如何到达 UE。

address_source: :pool (固定)

在后接受建立时,OmniTWAG 从池中分配一个地址,以订阅者身份为键。该分配是幂等的,因此相同的身份在重新建立期间保持相同的地址。OmniTWAG 为 UE MAC 预分配一个 DHCPv4 租约,使用该地址、池网关、池 DNS 服务器和从池 CIDR 派生的子网掩码。此时,它还在 GRE 数据路径中注册 UE。当 UE 发送 DISCOVER 时,服务器提供预分配的地址。

address_source: :dhcp (在 DISCOVER 时分配)

在建立时,OmniTWAG 尚未分配地址。它 绑定 UE MAC 到池。在该 MAC 的第一次 DHCP DISCOVER 时,DHCPv4 服务器从池范围中分配下一个可用地址,记录租约并提供它。这是新的动态分配路径。地址是在 DISCOVER 时选择的,而不是在建立时选择的。

在会话拆除时,OmniTWAG 释放池分配,并且对于 :dhcp,移除池绑定和动态租约。如果池缺失或耗尽,或者 AP 没有 ip_pool_id,OmniTWAG 不分配地址,UE 自行寻址。

DHCPv4

DHCPv4 服务器监听 UDP 端口 67。它将每个租约存储在一个内存中的 ETS 表中,以 UE MAC 地址为键。租约通过两条路径之一到达表中。

  • 预分配。 当 PGW 分配地址(隧道)或 OmniTWAG 分配固定池地址(NSWO address_source: :pool)时,会话过程插入租约。
  • 在 DISCOVER 时分配。 对于 NSWO address_source: :dhcp,会话过程将 UE MAC 绑定到池。服务器在内存中持有每个 MAC 的绑定。在没有租约的绑定 MAC 的第一次 DISCOVER 时,服务器从池中分配下一个可用地址,记录租约并提供它。

租约生命周期

对于预分配的租约,服务��提供请求 MAC 已经存在于表中的地址。对于绑定的 MAC,服务器在 DISCOVER 时通过从池中分配来创建租约。

OmniTWAG 处理这些 DHCP 消息类型。

消息类型代码OmniTWAG 行为
DISCOVER1如果 MAC 有租约,OmniTWAG 发送 OFFER。如果没有租约但 MAC 绑定到池,OmniTWAG 分配下一个可用池地址,记录租约并发送 OFFER。如果没有租约且没有绑定,OmniTWAG 记录警告并不发送任何内容。
REQUEST3如果租约存在且请求的 IP (选项 50) 与租约匹配,或者请求没有请求的 IP,OmniTWAG 发送 ACK。如果请求的 IP 不匹配,OmniTWAG 发送 NAK。如果没有租约,OmniTWAG 发送 NAK。
RELEASE7OmniTWAG 将租约标记为 released���OmniTWAG 保留租约记录。PDN 连接保持开启,遵循 TS 23.402 §16.1.5.2 NOTE 2
DECLINE4OmniTWAG 记录警告。OmniTWAG 保留租约记录。
INFORM8OmniTWAG 发送仅包含配置的 ACK。ACK 携带网关、子网掩码和 DNS,但不包含地址 (yiaddr0.0.0.0)。

对于 INFORM,OmniTWAG 使用配置中的 default_gatewaydefault_subnet_mask。OmniTWAG 在 INFORM 回复中使用 8.8.8.8 作为 DNS 服务器。

租约内容

每个租约包含 UE IP、子网掩码、网关、DNS 服务器和租约时间。对于隧道会话,会话过程从 PGW 响应中设置 UE IP 和 DNS 服务器,从 DHCP 配置中设置子网掩码、网关和租约时间。对于 NSWO 会话,这些值来自 IP 池:来自池范围的 IP、来自池 CIDR 前缀的子网掩码,以及来自池记录的网关、DNS 服务器和租约时间。请参见 IP 池配置

租约记录还具有 allocated_at 时间和 expires_at 时间。expires_at 时间为 allocated_at 加上租约时间。OmniTWAG 使用这些值报告租约状态。后台清理程序每 60 秒运行一次,删除任何 expires_at 已过期的租约。租约时间为零的租约没有 expires_at,且永远不会过期。当会话拆除时,���约也会被移除。

回复中的 DHCP 选项

OmniTWAG 使用以下 DHCP 选项构建每个 OFFER 和 ACK。

选项代码内容
消息类型53OFFER 或 ACK。
服务器标识符54DHCP server_ip
子网掩码1租约子网掩码。
路由器3租约网关。
域名服务器6租约 DNS 服务器。如果列表为空,则省略。
IP 地址租约时间51租约时间(以秒为单位)。如果租约时间为零,则省略。
广播地址28从 IP 和子网掩码计算得出。仅在 UE 在其参数请求列表(选项 55)中列出此选项时发送。

通过 GRE 的 DHCP 传输

使用 GRE 隧道的接入点在 GRE 封装的以太网帧中转发 UE DHCP 请求。GRE 服务器提取 DHCP 有效负载并将其传递给 DHCPv4 服务器。OmniTWAG 用源 AP 地址标记数据包。当 OmniTWAG 构建回复时,它将 DHCP 有效负载封装在 UDP/IP/以太网帧中,并通过 GRE 隧道将帧发送回同一 AP。源为 10.0.0.1:67,目标为客户端端口 68 的广播地址。

直接到达 UDP 套接字的 DHCP 请求(而不是通过 GRE)在 UDP 套接字上进行回复。如果源端口不是标准客户端端口 68,OmniTWAG 会回复源地址和端口。此路径支持测试工具和��继。否则,OmniTWAG 遵循 RFC 2131:如果广播标志被设置或 ciaddr 为零,则使用广播地址;如果该地址被设置,则使用 ciaddr

DHCPv6

DHCPv6 服务器在 IPv6 上监听 UDP 端口 547。它支持无状态模式和有状态模式。

  • 无状态模式 通过信息请求 (类型 11) 回复信息回复 (类型 12)。回复携带 DNS 服务器。这遵循 RFC 3736RFC 3646。当 UE 从其 RA 处理设置其他配置 (O) 标志时,它使用此模式。
  • 有状态模式 通过请求 (类型 1) 回复广告 (类型 2),并通过请求 (类型 3) 回复 (类型 7)。此模式在 IA_NA 选项中提供预分配的 IPv6 地址。这遵循 RFC 3315

服务器为每个客户端 DUID 预分配一个有状态地址。GTP 控制平面插入分配。服务器在内存表中保存这些分配,以客户端 DUID 为键。

DHCPv6 消息处理

消息类型OmniTWAG 行为
信息请求11OmniTWAG 发送信息回复,包含服务器 DUID、回显的客户端 ID 和 DNS 服务器。
请求1OmniTWAG 发送广告。如果客户�� DUID 有分配,广告携带 IA_NA 地址。如果没有,广告携带 NoAddrsAvail 状态(代码 2)。
请求3OmniTWAG 发送回复。回复确认客户端 DUID 的 IA_NA 地址。
其他类型-OmniTWAG 忽略该消息。

每个回复回显客户端事务 ID,遵循 RFC 3315 §15。每个包含分配地址的回复根据租约时间设置 DHCPv6 定时器。T1 为租约时间的一半。T2 为租约时间的四分之五。

服务器 DUID

OmniTWAG 构建类型为 DUID-EN(企业编号)的服务器 DUID。它使用 3GPP 企业编号 10415。标识符源自节点名称,因此对于给定节点是稳定的。

回复中的 DHCPv6 选项

选项代码内容
客户端标识符1从请求中回显的客户端 ID(如果存在)。
服务器标识符2服务器 DUID。
非临时地址的身份关联 (IA_NA)3分配的 IPv6 地址,或 NoAddrsAvail 状态。仅限有状态模式。
DNS 递归名称服务器23配置的 DNS 服务器。如果列表为空,则省略。
域搜索列表24配置的搜索列表。仅在设置了 dhcpv6_domain_list 时发送。

IPv6 路由器广告 (SLAAC)

IPv6 RA 服务器通过无状态地址自配置 (SLAAC) 向 UE 传递 PGW 分配的 IPv6 前缀。它根据 RFC 4861 实现 ICMPv6 路由器广告。

GTP 控制平面为每个接口添加一个前缀。服务器将前缀保存在内存中,按接口名称分组。服务器在两种情况下发送路由器广告:

  1. 在周期性定时器上。默认间隔为 30 秒。
  2. 按需,当控制平面请求在接口上进行 RA 时。

服务器还解析路由器请求 (ICMPv6 类型 133) 消息。

路由器广告内容

每个路由器广告携带这些字段和选项。

字段或选项
当前跳数限制来自 hop_limit。默认 64
路由器生命周期来自 router_lifetime。默认 1800 秒。
M 和 O 标志均为 0。RA 不会信号管理地址配置或其他配置。
源链路层地址(选项 1)源 MAC(如果是 6 字节值)。
MTU(选项 5)仅在提供 MTU 时包含。
前缀信息(选项 3)每个前缀一个。L(链路)和 A(自主)标志均被设置。
递归 DNS 服务器,RDNSS(选项 25)来自前缀的 DNS 服务器,遵循 RFC 8106。如果没有 DNS 服务器,则省略。

每个前缀信息选项携带前缀、前缀长度��有效生命周期(默认 86400 秒)和首选生命周期(默认 14400 秒)。由于 A 标志被设置,UE 从前缀形成自己的 IPv6 地址。RDNSS 生命周期是所有前缀中最大的有效生命周期。

DNS 和 PCO 传递

OmniTWAG 通过多种方式传递 DNS 和 P-CSCF 信息。源是 PGW PCO(如果可能),否则为配置。

PGW 的 PCO

PCO 解析器从创建会话响应中读取协议配置选项,遵循 3GPP TS 24.008。解析器返回以下字段。

字段PCO 协议 ID含义
dns_ipv40x000DIPv4 DNS 服务器地址。
dns_ipv60x0003IPv6 DNS 服务器地址。
pcscf_ipv40x000CIPv4 P-CSCF 地址。
pcscf_ipv60x0001IPv6 P-CSCF 地址。
mtu0x0010IPv4 链路 MTU。
ip_alloc_nas0x000A一个标志。如果 PGW 通过 NAS 信令信号 IP 分配,则为 true

解析器还将每个解析的选项保存在 raw 列表中。如果 PCO 二进制在某个地方损坏,解析器将返回它已读取的字段。它不会使整个解析失败。

OmniTWAG 还可以为创建会话请求构建 PCO 请求。该请求列出 OmniTWAG 希望 PGW 返回的选项,例如 IPv4 DNS 服务器和链路 MTU。

DNS 传递��� UE

DNS 服务器通过 UE 使用的传输到达 UE。

传输DNS 源备注
DHCPv4 (选项 6)来自 PCO 的 IPv4 DNS 服务器。如果 PCO 没有 IPv4 DNS 服务器,OmniTWAG 使用 8.8.8.8
DHCPv6 (选项 23)DHCPv6 DNS 服务器列表。从 PGW PCO 或 dhcpv6_dns_servers 设置。如果未设置,则默认为 Google 公共 DNS IPv6。
IPv6 RA (RDNSS,选项 25)附加到广告前缀的 IPv6 DNS 服务器。随前缀一起传递。

DHCPv4 租约从 PCO dns_ipv4 列表中获取 IPv4 DNS 服务器。如果该列表为空,OmniTWAG 将回退到 8.8.8.8 作为租约。

关于 P-CSCF 的说明。 PCO 解析器从 PGW 读取 P-CSCF 地址。当前的 DHCP、DHCPv6 和 RA 传递路径不添加 P-CSCF DHCP 选项或 RA 选项。P-CSCF 值被解析并可用,但它们不会通过审计代码中的此子系统传递给 UE。

地址池和耗尽

耗尽行为取决于模式。

  • 隧道(家庭路由)。 没有本地地址池。PGW 拥有地址空间。OmniTWAG 精确传递 PGW 为每个会话分配的地址。没有本地范围可供耗尽。如果 PGW 不返回 PAA,UE 将不接收地址,OmniTWAG 记录该情况。
  • NSWO。 OmniTWAG 从本地 IP 池中分配,因此池可能耗尽。池是最多为 /30 的 IPv4 CIDR��分配器跳过网络和广播地址,并分配第一个可用主机。当每个主机都在使用时,分配器返回 pool_exhausted。对于 address_source: :pool,UE 然后自我寻址。对于 address_source: :dhcp,DISCOVER 不会得到回复,OmniTWAG 记录耗尽。分配在内存中,并在会话重新建立时重建,类似于 DHCP 租约。有关池定义和容量的信息,请参见 IP 池

Twag.Cidr 帮助程序为平台执行子网数学。它解析 IPv4 和 IPv6 CIDR 字符串,并测试地址是否在子网内。RADIUS 子系统使用此帮助程序进行源 IP 授权。IP 池存储使用它来推导池子网掩码、可用主机范围和默认网关。

配置

IP 管理服务器从 :omnitwag 应用程序配置中读取其配置。主要块为 dhcpipv6_ra。DHCPv6 读取一小组顶级键。

config :omnitwag,
# DHCPv4 服务器
dhcp: %{
enabled: true,
interface: "wlan0",
server_ip: "10.0.0.1",
default_lease_time: 3600,
default_subnet_mask: "255.255.255.0",
default_gateway: "10.0.0.1"
},

# IPv6 路由器广告
ipv6_ra: %{
enabled: true,
interface: "wlan0",
ra_interval: 30,
hop_limit: 64,
router_lifetime: 1800
},

# DHCPv6(可选顶级键)
dhcpv6_dns_servers: ["2001:4860:4860::8888", "2001:4860:4860::8844"],
dhcpv6_domain_list: ["example.com"]

DHCPv4 参数 (dhcp)

参数类型必需默认描述
enabled布尔值true启用 DHCPv4 服务器。设置为 false 以禁用它,例如在测试环境中。
interface字符串wlan0DHCP 服务的网络接口。对于 GRE 隧道模式使用 gre
server_ip字符串10.0.0.1DHCP 服务器标识符。OmniTWAG 在 DHCP 选项 54 中发送此值,并作为 GRE 隧道回复的源。
default_lease_time整数3600租约时间(以秒为单位)。OmniTWAG 将此值应用于每个预分配的租约。
default_subnet_mask字符串255.255.255.0租约的子网掩码,以及 RFC 2131 广播计算的子网掩码。
default_gateway字符串10.0.0.1租约的默认网关(DHCP 选项 3)。

IPv6 RA 参数 (ipv6_ra)

参数类型必需默认描述
enabled布尔值true启用 IPv6 RA 服务器。设置为 false 以禁用它。
interface字符串wlan0路由器广告的网络接口。
ra_interval整数30定期路由器广告之间的间隔(以秒为单位)。
hop_limit整数64路由器广告中的当前跳数限制字段。
router_lifetime整数1800路由器广告中的路由器生命周期(以秒为单位)。

DHCPv6 参数(顶级)

参数类型必需默认描述
dhcpv6_dns_servers字符串列表Google 公共 DNS IPv6 (2001:4860:4860::8888, 2001:4860:4860::8844)DHCPv6 回复的 IPv6 DNS 服务器。PGW PCO 也可以在运行时设置此列表。
dhcpv6_domain_list字符串列表(未设置)DHCPv6 回复的 DNS 搜索列表(选项 24)。如果未设置,OmniTWAG 将省略该选项。

可观察性

Web 界面

控制面板在 /dhcp 处有一个 DHCP 池 页面。该页面列出了每个 DHCPv4 租约,包括 UE MAC 地址、IP 地址、租约开始时间、租约到期时间和状态。状态为 ActiveExpired。该页面显示每个活动租约的实时倒计时。选择租约行以查看完整的租约详细信息:子网掩码、网关、DNS 服务器、租约持续时间和时间戳。该页面每秒刷新一次。如果 DHCPv4 服务器未运行,该页面将显示 Server Not Running

REST API

REST API 在 DHCP 标签下提供 DHCPv4 租约数据。

方法路径描述
GET/dhcp (索引)列出所有 DHCPv4 租约及其摘要计数。
GET/dhcp/{id} (显示)通过 MAC 地址获取一个租约。id 是以冒号分隔的 MAC。

索引响应具有 enabled 标志、leases 列表、总 countactive 计数和 expired 计数。如果 DHCPv4 服务器未运行,索引返回 enabled: false 和一个空列表。显示端点返回 404 如果没有租约与 MAC 匹配,以及 503 如果服务器未运行。

每个租约对象具有以下字段。

字段描述
macUE MAC 地址,以冒号分隔。
ip分配的 IPv4 地址。
subnet_mask租约子网掩码。
gateway租约网关。
dns_serversDNS 服务器列表。
lease_time租约持续时间(以秒为单位)。
allocated_at租约开始时间,自 Unix 纪元以来的秒数。
expires_at租约到期时间,自 Unix 纪元以来的秒数。
statusactiveexpired
time_remaining距到期的秒数,或 0 如果已过期。

监测事件

IP 管理服务器会发出监测事件。操作员可以将这些事件附加到指标导出器。有关 Prometheus 端点的信息,请参见 指标参考

事件含义
[:dhcp, :lease, :allocate]DHCPv4为一个 MAC 预分配了一个租约。
[:dhcp, :lease, :deallocate]DHCPv4在拆除时移除了一个租约。
[:dhcp, :lease, :reap]DHCPv4一个过期的租约被后台清理程序移除。
[:dhcp, :discover]DHCPv4一个 DISCOVER 被现有租约的 OFFER 回复。
[:dhcp, :discover, :pool_allocated]DHCPv4从池绑定的 MAC 的 DISCOVER 被分配了一个新的池地址(NSWO :dhcp)。
[:dhcp, :discover, :no_allocation]DHCPv4一个没有租约且没有池绑定的 MAC 收到的 DISCOVER。
[:dhcp, :ack]DHCPv4一个 REQUEST 被回复为 ACK。
[:dhcp, :nak]DHCPv4一个 REQUEST 被回复为 NAK。
[:dhcp, :release]DHCPv4一个客户端释放了其租约。
[:dhcp, :decline]DHCPv4一个客户端拒绝了其租约。
[:dhcp, :inform]DHCPv4一个 INFORM 被回复。
[:dhcp, :packet, :malformed]DHCPv4收到一个格式错误的 DHCP 数据包。
[:dhcpv6, :info_request, :received]DHCPv6收到一个信息请求。
[:dhcpv6, :solicit, :received]DHCPv6收到一个请求。
[:dhcpv6, :request, :received]DHCPv6收到一个请求。
[:dhcpv6, :info_reply, :sent]DHCPv6发送了一个信息回复。
[:dhcpv6, :advertise, :sent]DHCPv6发送了一个广告。
[:dhcpv6, :reply, :sent]DHCPv6发送了一个回复。
[:ipv6_ra, :prefix, :add]IPv6 RA一个前缀被添加到一个接口。
[:ipv6_ra, :prefix, :remove]IPv6 RA一个前缀从一个接口中移除。
[:ipv6_ra, :advertisement, :sent]IPv6 RA发送了一个路由器广告。

故障排除

UE 未获得 IP 地址

症状: UE 认证成功,但未获得 IPv4 地址。DHCP 池页面未显示 UE MAC 的租约。触发了 [:dhcp, :discover, :no_allocation] 事件。

可能的原因(隧道):

  • GTP 创建会话响应没有 PAA,因此 OmniTWAG 未预分配租约。
  • GTP-C 会话未建立,因此未创建租约。

可能的原因(NSWO):

  • AP 凭证没有 ip_pool_id,因此 OmniTWAG 不分配地址。
  • 池已耗尽,因此无法分配可用地址。
  • 对于 address_source: :dhcp,DISCOVER 在 MAC 绑定到池之前到达,或者绑定未运行,因为会话尚未有 MAC。

常见原因:

  • DHCPv4 服务器未运行。

解决方案:

  1. 检查 OmniTWAG 日志以获取建立路径(隧道与 NSWO)和 UE IP。
  2. 对于隧道会话,确认 PGW 为 APN 返回 PAA。
  3. 对于 NSWO 会话,确认 AP 凭证命名有效的 ip_pool_id,并且池有可用容量。请参见 IP 池RADIUS 凭证
  4. 确认 DHCP 池页面显示 DHCPv4 服务器正在运行。

UE 获得地址但没有 DNS

症状: UE 有一个 IPv4 地址,但无法解析名称。

可能的原因:

  • PGW PCO 未返回 IPv4 DNS 服务器。在这种情况下,OmniTWAG 使用 8.8.8.8
  • UE 无法访问 PGW 提供的 DNS 服务器。

解决方案:

  1. 在 DHCP 池页面或通过 REST API 阅读租约 DNS 服务器。
  2. 确认 PGW PCO 返回预期的 DNS 服务器。
  3. 确认 DNS 服务器可以从 UE 数据路径访问。

UE 收到 NAK

症状: UE 发送 REQUEST 并收到 NAK。触发了 [:dhcp, :nak] 事件。

可能的原因:

  • UE 请求的 IP(选项 50)与其预分配的租约不匹配。
  • 租约已被移除,例如在会话拆除后。

解决方案:

  1. 确认 UE MAC 有租约。
  2. 确认 UE 请求的 IP 与 PGW 或池分配的 IP 相同。
  3. 如果会话已拆除,让 UE 在重新认证后重新启动 DHCP 交换。

相关页面

概述