了解Juniper产品的都知道,不管是防火墙、交换机还是路由器,Junos操作系统上RE(路由引擎)和PFE(数据转发引擎)是分离的。策略不同步主要是对于低中高端防火墙来说的,像SRX100-SRX300、到最近才出来的SRX1500,及SRX4K,以及史上顶级一二的防火墙SRX5800都有可能出现策略不同步的情况(Note:Chassis-cluster-双机环境中,防火墙几乎都是双机部署,特殊情况除外)。RE通过由单独的SCB或SFB去承载,而PFE则是在单独的业务接口板卡上(不同的型号需要单独对待)。


         根据最近半年的Case处理,发现在SRX1500、SRX4K平面出现策略不同步的情况比较频繁,虽然这事吧,不算大,但在客户方也是蛮重要的,对于大客户来说,基本都是通过Netconf下发配置的,一下发出现提交报错,这很容易影响运维操作。但RE和PFE配置同步失败,最终的Root-Case还是要再等等……并不是什么问题都有解决方案的,大部分都是Workaround来处理的。

      

 案例日志如下:

      

edit security]

'policies'

Policy is out of sync between RE and PFE .

Please resync before commit.

error: configuration check-out failed


Note:这个问题可以在低端和高端防火墙单机和双机上看到。错误日志千千万,不变的是需要处理的进程-NSD;


出现策略不同步的原因有以下几点:

1. 从RE到PFE的policy消息丢失

2. RE上出现问题,例如:使用重复的策略ID;


排查的基本细路如下:


1. 如果同步异常的话,先对比RE和PFE的checksum值,通过以下命令:


RE上使用命令“show security policies checksum ” (Note:隐藏命令,需输入完全)

示例:

root@vsrx-a> show security policies checksum

Logical system: root-logical-system

From zone                To zone                  Checksum

trust                    untrust                  0x66b85abb-ca868ed9-a025220e-ca14f609


每个PFE上(Branch防火墙是FWDD, HE防火墙是XLR)


root@vsrx-a% vty fwdd

BSD platform (VMWare virtual processor, 428MB memory, 8192KB flash)

FLOWD_VSRX(vsrx-a vty)# show usp policy checksum

Logical system: root-logical-system

From zone                       To zone                         checksum

trust                           untrust                         0x66b85abb-ca868ed9-a025220e-ca14f609


Note:  RE和PFE的Checksum值必须一致。



执行以下步骤解决问题:


1. 执行命令 > request security policies resync (隐藏命令)后,查看Commit是可以正常同步。


root@vsrx-a> request security policies resync

node0:

--------------------------------------------------------------------------

Start sending policies ...

Succeeds.

Total sent 2 policies.

{primary:node0}


2. 如果步骤1还未恢复,尝试执行#commit synchronize  【隐藏命令】,如果commit synchronize 从执行失败,则使用commit synchronize  force 命令


3. 如果步骤2还是没有恢复Commit问题,重启nsd进程

root@vsrx-a# run restart network-security

Network security daemon started, pid 1293


4. 如果操作完步骤3还未恢复,则重启设备(如果是Chassis-cluster则重启两台,如果是生产环境中,则根据评估进行相关操作,不要做重启动作)


后话:很多时候,都是重启NSD进程恢复的,因为在客户生产环境不太可能因为重启设备,这毕竟是大动作,涉及到业务,又是一级变更,备件、现场工程师都要到场。