事象内容
IOS-XR 7.5.1 以降において、 Class-map 中で参照する ACL に Deny 行が含まれている場合には、インタフェースにその class-map を参照する policy-map を適用できません。
もともと Class-map で参照する ACL では Permit 行のみが有効となるため、不要な設定を防ぐために設定時にエラーを出力するようになりました。
実機検証
下記は実行例となります。
機器: NCS560
version: 7.5.1
以下の設定例では、Class-map test で参照する access-list ACL-test に deny 行が含まれています。
この Class-map test を参照する policy-map POLICY-test を Te0/1/0/0 に適用して commit すると、以下のようなエラーが発生し commit に失敗します。
#show run class-map match-any test
class-map match-any test
match access-group ipv4 ACL-test
end-class-map
#show run ipv4 access-list ACL-test
ipv4 access-list ACL-test
10 permit udp any any
10000 deny ipv4 any any <<<<ACL に deny が含む
#show run policy-map POLICY-test
policy-map POLICY-test
class test
set dscp cs7
!
class class-default
!
end-policy-map
(config)#interface TenGigE0/1/0/0
(config-if)#service-policy input POLICY-test
(config-if)#commit
% Failed to commit one or more configuration items during a pseudo-atomic operation. All changes made have been reverted. Please issue 'show configuration failed [inheritance]' from this session to view the errors
(config-if)#show configuration failed
!! SEMANTIC ERRORS: This configuration was rejected by
!! the system due to semantic errors. The individual
!! errors with each failed configuration command can be
!! found below.
interface TenGigE0/1/0/0
service-policy input POLICY-test
!!% 'dpa_feat_mgr' detected the 'warning' condition 'Invalid ACL operation'
!
End
解決策
ACL から Deny 行を削除すると、インターフェースに適用が可能になります。
#show run ipv4 access-list ACL-test
ipv4 access-list ACL-test
10 permit udp any any
#show run interface TenGigE0/1/0/0
interface TenGigE0/1/0/0
service-policy input POLICY-test