安全端口块分配
NAPT44 和 NAT64 的安全端口块分配概述
安全端口块分配可确保当用户首次要求分配端口时,系统会将端口块分配给特定用户。在此过程中,用户被唯一定义为专用 IP 地址和服务集 ID。由于用户分配了一个端口块,因此来自此订阅服务器的所有后续请求都使用已分配块中的端口。当当前活动块耗尽或活动端口块超时间隔到期后,将分配新的端口块。您可以配置分配给用户的最大块数。这种在块中分配NAT端口的行为不同于传统的NAT实用程序,在传统的实用程序中,端口请求分配单个端口,而不是块中的一组端口。
您可以使用安全端口块分配机制为 NAPT44(将 IPv4 地址转换为 IPv4 地址)和 NAT64(将 IPv6 地址转换为 IPv4 地址)类型分配端口。通过使用安全的端口块分配,端口使用效率可能会稍低,具体取决于流量模式。带有 MS-DPC 的 MX 系列路由器和带有 MS-100、MS-400 和 MS-500 多服务 PIC 的 M Series 路由器支持安全端口块分配。从 Junos OS 14.2R2 版开始,配备 MS-MPC 和 MS-MIC 的 MX 系列路由器支持安全端口块分配。
从 Junos OS 15.1 版开始,在采用 Junos Address Aware(运营商级 NAT)的环境中,服务提供商或运营商运营商可以使用为客户端分配端口而记录的系统日志消息,以更轻松、更有效的方式监控和跟踪订阅者或用户使用的资源和服务类型的消耗情况。通过使用 RADIUS 或 DHCP 日志中的 IP 地址,对日志进行评估,以分析并确定订阅者的服务使用情况和带宽消耗情况。使用运营商级 NAT,由于 IP 地址由多个订阅者共享,因此检查日志以跟踪属于系统日志的 IP 地址和端口可能既耗时又困难。此外,由于端口的分配和释放频率取决于用户会话的登录和关闭,因此每次端口分配和取消分配都会触发大量日志。因此,过多的系统日志使得存档和关联日志以识别订阅者变得很麻烦。您现在可以分块分配端口,从而显著减少系统日志的数量。
安全端口块分配的优势
减少将日志与订阅者相关联的工作量
减少日志数量
安全端口块分配配置准则
配置安全 PBA 时,请记住以下几点:
块大小不可在 NAT 规则级别配置。
配置安全 PBA 时,会话设置速率的提高不受影响。
如果特定大小的块不可用,则会显示端口不足消息,并且在这种情况下不会分配较小尺寸的块。
使用端口块分配方法的池中的地址不能在任何其他池中使用。
NAT 池中的端口范围必须是连续的。
端口块分配不支持保留奇偶校验(分配与原始端口具有相同奇偶校验的端口)。
当达到指定阈值时对打开的会话数的限制(对于入侵检测服务)以及可分配给为安全 PBA 配置的用户地址的最大块数是独立的功能。
不支持在转换后保留特权端口范围的功能。这些块是从非特权端口范围 (1024-65535) 分配的。对于权限范围内的端口,端口块分配方法不适用。
启用端口块分配时,端口使用效率会降低。PBA 不使用 NAT IP 地址的 0-1023 端口。
如果配置了启用端口顺序分配的自动端口分配方法,则 1024 到 65535 的端口范围可用于分配给用户。
端口块可以从您可以配置的任何起始端口开始。
使用的端口数量取决于块大小,不使用其余端口。
过载池表示在源池耗尽时可以使用的地址池,受保护的 PBA 不支持。
PBA 池的 NAT IP 地址不得与其他池重叠。尽管不执行验证以确定是否存在任何重叠池,但必须确保用于 PBA 的池的地址未在其他池中使用。这种情况是因为部分用户要求过载池使用与 NAT IP 地址相同的 IP 地址,但 PBA 池的端口范围不同,以支持地址池配对 (APP) 功能。
每个 NAT 池的块大小是固定的,可在 NAT 池级别进行配置。多个端口块可以分配给一个私有 IP 地址。
您可以通过在层次结构级别包含
[edit services nat pool pool-name port secured-port-block-allocation]该语句来max-blocks-per-user max-blocks配置每个订阅者每个池的最大块数。如果订阅者匹配两个池,则可以为该特定用户分配最大端口块数,该端口块数等于该订阅者每个池的最大端口块数之和。对 NAT 端口的新请求仅从当前活动块到达。可以从当前活动块中随机分配端口,该块指定端口是在端口块内按顺序还是随机分配。
块在超时间隔内处于活动状态,您可以通过在层次结构级别包含
[edit services nat pool pool-name port secured-port-block-allocation]来active-block-timeout timeout-seconds定义该间隔。超时期限过后,即使活动块中有端口可用,也会分配新块。活动块的默认超时为 120 秒。将其配置为 0(无限)时,只有当端口用完并且分配了新块时,活动块才会转换为非活动块。如果超过块的最大块数,并且收到新请求,则活动块将移动到包含可用端口的块。任何没有任何端口正在使用的非活动块都将释放到 NAT 池中。
除了跟踪分配给每个私有 IP 地址的端口块外,还会计算和维护实际使用的端口。此指标用于计算端口使用效率。
系统日志消息将为每个块分配和释放生成。消息的格式类似于为单个端口分配和发布而记录的消息。
会话设置速率与现有非块分配设置速率相同或略有提高。使用块端口分配方法的 NAT 池可以具有部分端口范围。如果该地址用于端口转发,则可以从池端口范围内移除这些端口。可以在层次结构级别使用
[edit services nat pool nat-pool-name]语句配置port range low minimum-value high maximum-value random-allocation部分端口范围。对于 TCP、UDP 和 ICMP 流量,端口块分配的工作方式与 NAPT44 相同。随机性可以通过在块内随机分配端口并定期更改活动块来实现。端口块不包含随机端口(块内的端口是连续的)。聚合多服务 (AMS) 接口支持此功能。
微内核和 Junos OS 扩展提供程序包中的起始端口号计算方式不同。在微内核中,起始端口或第一个端口是 1023 之后块大小的最接近的倍数。在该实施中,会浪费更多端口,因为根据块大小,端口会在端口范围的开头和结尾被浪费。在 Junos OS 扩展提供程序包中,块的起始端口不限于块大小的倍数。起始端口可以从所配置端口范围的下限开始。
也可以看看
配置安全端口块分配
带有 MS-DPC 的 MX 系列路由器和带有 MS-100、MS-400 和 MS-500 多服务 PIC 的 M Series 路由器支持安全端口块分配。从 Junos OS 14.2R2 版开始,配备 MS-MPC 和 MS-MIC 的 MX 系列路由器支持安全端口块分配。要配置安全端口块分配:
为了使 secured-port-block-allocation 配置更改生效,每当您更改以下 nat pool 任一选项时,都必须重新启动服务 PIC:
nat-pool-nameaddress或address-rangeport rangeport secured-port-block-allocation block-sizeport secured-port-block-allocation max-blocks-per-address.port secured-port-block-allocation active-block-timeout.from层次结构中的nat rule
如果对配置了安全端口块分配的 NAT 池进行任何配置更改,则必须删除现有 NAT 地址池,等待至少 5 秒钟,然后配置新的 NAT 地址池。如果对 NAT 池配置进行任何更改,即使未配置安全端口块分配,我们也强烈建议您执行此过程。
MS-MIC 和 MS-MPC 每个 NPU 最多支持 900 万个端口块。如果您的配置超过此支持的最大数量,那么可能不会在该 NPU 上激活一个或多个服务集。
也可以看看
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。