Juniper SRX 机箱群集(Chassis Cluster)配置详解(中文) - 夜莺博客

Juniper SRX 机箱群集(Chassis Cluster)配置详解(中文)

Juniper SRX系列防火墙的机箱群集(Chassis Cluster)功能可以将两台完全相同的设备组合成一个高可用集群:一台为主节点,另一台为备份节点,主节点故障时备份节点接管流量并同步会话,从而实现无缝切换。本文基于瞻博网络官方中文文档,系统讲解SRX机箱群集的配置前置条件、交换矩阵链路与控制链路规划、群集ID与节点ID设置、冗余组与reth接口配置、群集状态验证与手动故障切换演练,以及备份节点故障后的恢复流程和软件升级注意事项。

配置机箱群集的前置条件

  • 两台设备的硬件和软件版本必须相同。
  • 两台设备的许可证密钥必须相同。
  • 对于SRX300/320/340/345/380,GPIM、XGPIM、XPIM及小型PIM的位置和类型必须匹配。
  • 对于SRX5000系列,两台设备中SPC(服务处理卡)的位置和类型必须匹配。
  • SRX300/320/340/345/380需移除转换为fxp0管理端口和控制端口的接口上的现有配置。
  • 冗余组中承载reth接口的物理端口必须成对存在,例如节点0的ge-0/0/3与节点1的ge-0/0/3(在节点1上通常显示为带槽位偏移的编号)。

创建机箱群集的基本步骤

  1. 在群集的两个节点之间创建交换矩阵链路(Fabric Link)——连接任意一对千兆(或万兆)以太网接口。
  2. 配置群集ID标识群集,配置节点ID标识节点,然后重启系统。
  3. (SRX5000系列)配置控制端口(Control Port),并使用双控制链路功能时连接两对控制端口。
  4. 配置交换矩阵接口(fabric接口)。
  5. 设置主机名和管理IP地址。
  6. 配置冗余组(Redundancy Group)与reth接口。
  7. 验证并提交配置(commit)。

交换矩阵链路与控制链路的连接方式

群集内部共有两条逻辑通道,二者用途完全不同,接线时不能互换:

  • 控制链路(Control Link):承载主路由引擎与辅助路由引擎之间的心跳、配置同步和控制指令,接口名为fxp1。控制链路中断会导致两台设备无法感知对方状态,进而出现双主(split-brain)风险。
  • 交换矩阵链路(Fabric Link):承载数据平面流量的转发与会话同步,接口名为fab0(节点0)与fab1(节点1),其成员接口是普通业务端口。

控制链路使用的物理端口随平台不同而变化,接线前务必确认下表:

平台 节点0控制端口 节点1控制端口
SRX300 ge-0/0/1 ge-1/0/1
SRX320 ge-0/0/1 ge-3/0/1
SRX340 / SRX345 / SRX380 ge-0/0/1 ge-5/0/1
SRX1500 专用HA控制端口 专用HA控制端口
SRX5000系列 任意IOC上的控制端口 同槽位同端口的控制端口

交换矩阵链路的选口规则:SRX300/SRX320可用除ge-0/0/0、ge-0/0/1以外的任意接口;SRX340/345/380可用除fxp0、ge-0/0/1以外的任意接口;SRX5000系列要求两台设备上的交换矩阵端口位于相同槽位和端口号。建议至少用两个成员接口组成fab0/fab1形成链路冗余。

配置群集ID与节点ID

两台设备必须配置相同的群集ID,节点ID则分别为0和1,配置完成后需要重启才能生效。以下操作在两台设备上分别执行:

# 在将成为主节点的设备上执行
set chassis cluster cluster-id 1 node 0 reboot

# 在将成为备份节点的设备上执行
set chassis cluster cluster-id 1 node 1 reboot

注意:先完成节点0的配置并确认正常启动后,再给节点1上电,避免出现双主。

配置交换矩阵接口、主机名与管理IP

重启后两台设备已经形成群集,接下来只在主节点上配置即可,配置会自动同步到备份节点。交换矩阵接口需要把物理成员口绑定到fab0/fab1:

set interfaces fab0 fabric-options member-interfaces ge-0/0/2
set interfaces fab1 fabric-options member-interfaces ge-5/0/2

set system host-name SRX-CLUSTER
set system domain-name example.com
set interfaces fxp0 unit 0 family inet address 192.0.2.10/24

fab0的成员接口位于节点0,fab1的成员接口位于节点1。管理口fxp0不参与冗余组,两台设备需分别配置管理地址。

节点与冗余组工作机制

群集连接两个节点后,一个节点被选为主模式,其路由引擎作为主路由引擎运行;辅助节点的路由引擎作为客户端运行。群集中所有FPC(无论在主节点还是辅助节点)都连接到主路由引擎,辅助节点上的FPC通过HA控制链路与主路由引擎通信。如果群集出现两个主节点,IOC会收到来自不同主节点的消息并自动重启以恢复——因此在将辅助节点接入群集前必须先关闭其电源,避免影响主节点。

冗余组是群集的最小故障切换单位,每个reth接口必须隶属于某个冗余组,同一组的接口在故障时一起切换。通常的做法是:冗余组1承载数据面接口(reth0、reth1……),冗余组2承载控制面/RG0(rg0)相关功能,例如fxp1控制链路本身。当某个节点的冗余组失去所有被监控的接口时,该节点整体降级为备份角色。

配置冗余组与reth接口

配置分为三步:定义冗余组优先级与抢占,创建reth接口并把物理口挂到reth下作为冗余子接口,最后把reth接口加入安全区域并编写策略。例如把两个节点的ge-0/0/3作为一条冗余链路、ge-0/0/4与ge-5/0/4作为另一条:

# 冗余组优先级:数值大的为活动节点
set chassis cluster redundancy-group 1 node 0 priority 200
set chassis cluster redundancy-group 1 node 1 priority 100
set chassis cluster redundancy-group 1 preempt

# 接口监控:权重之和决定冗余组是否降级
set chassis cluster redundancy-group 1 interface-monitor ge-0/0/3 weight 255
set chassis cluster redundancy-group 1 interface-monitor ge-5/0/3 weight 255

# reth接口与冗余子接口
set interfaces ge-0/0/3 gigether-options redundant-parent reth0
set interfaces ge-5/0/3 gigether-options redundant-parent reth0
set interfaces reth0 redundant-ether-options redundancy-group 1
set interfaces reth0 unit 0 family inet address 203.0.113.1/29

# 把reth加入安全区域
set security zones security-zone untrust interfaces reth0.0

接口监控的权重规则需要特别理解:同一接口在两个节点上的权重之和必须为255,且某个节点上所有被监控接口权重之和超过254时,该节点上的冗余组会失效并切换到对端。因此单条链路故障时通常把它配置为255(即该链路一断就切换),而多条链路时可按比例分配,例如三条链路的权重分别为85、85、85。

冗余组与故障切换行为

SRX机箱群集提供RG0和RG1+两类冗余组,行为差异明显:

  • RG0:不承载reth接口,负责控制平面(路由引擎、控制链路)本身,切换时会触发路由引擎主备切换,所有RG1+接口同时切换。
  • RG1及以上:承载用户流量的reth接口,可独立切换。也就是说,可以让节点0承载互联网出口的reth0,同时让节点1承载内网接口的reth1,实现流量的负载分担。

验证与监控群集状态

群集形成后,务必用下列命令逐项确认状态,任何一项异常都不要急于上线:

show chassis cluster status
show chassis cluster interfaces
show chassis cluster statistics
show chassis cluster control-plane statistics
show chassis cluster data-plane statistics
show chassis cluster status redundancy-group 1
show chassis cluster information
show security flow session brief

重点检查Cluster ID、两个节点的冗余组状态是否为Primary/Secondary、控制链路心跳是否正常,以及reth接口在两侧是否都为up。如果看到Holdover或Loss of heartbeats字样,说明控制链路存在问题。

手动故障切换演练

上线前应执行一次手动切换演练,确认会话同步与流量恢复符合预期:

# 把冗余组1的流量强制切到节点1
request chassis cluster failover redundancy-group 1 node 1

# 恢复自动选举
request chassis cluster failover reset redundancy-group 1

备份节点故障后的恢复

当主节点仍在运行时恢复备份节点:通过CLI操作模式命令启用群集,设置与第一个节点相同的群集ID,配置节点ID后重启系统;关闭辅助节点电源,连接两个节点之间的HA控制端口,然后重新打开辅助节点电源。群集将重新形成,会话同步到辅助节点。

软件升级与维护注意事项

  • 升级必须使用与当前群集相同的Junos版本镜像,先升级备份节点,完成切换后再升级原主节点,可把业务中断控制在一次切换之内。
  • 升级前把配置备份到设备之外,并执行request system configuration rescue save保存救援配置。
  • 在群集环境下配置同步是自动的,但升级完成后仍应执行一次commit让两台设备重新对齐配置。

SRX5000系列控制端口槽位偏移

SRX5000系列的高端设备采用槽位偏移的方式来区分两个节点:节点1上的FPC编号等于节点0的编号加上偏移值。例如SRX5800的偏移为12,因此节点0的FPC3在节点1上对应FPC15。

设备 槽位偏移
SRX5800 12(例如 FPC3 与 FPC15)
SRX5600 6(例如 FPC3 与 FPC9)
SRX5400 3(例如 FPC3 与 FPC6)
SRX4600 7(例如 FPC1 与 FPC8)

常见问题排查

  • 群集无法形成:先确认两台设备版本与许可证一致,再确认控制链路物理连通、fxp1接口状态为up(show interfaces fxp1 terse)。
  • 两个节点都成为Primary:说明控制链路已经中断,应立即检查网线与光模块;必要时对其中一台设备执行手动切换或断电重启。
  • 切换后会话丢失:检查是否开启了会话同步,以及flow会话的冗余端口配置;同时确认reth接口两边都已up。

本站相关文章

本站相关文章:Juniper SRX防火墙配置中文教程、SRX接入互联网14步配置、Junos密码恢复指南,以及排障时常用的 SRX排障命令速查表。

原文链接:https://www.juniper.net/documentation/cn/zh/software/junos/chassis-cluster-security-devices/topics/task/chassis-cluster-srx-series-creating.html