ASR9000 や CRS において、QoS に使用する ACL には、deny entry は使用することができません。
以下の例では、IOS XR 4.3.2 でログを取得しています。
例えば、以下のような deny entry を含んだ ACL を設定します。
RP/0/RSP0/CPU0:Router#show run ipv4 access-list QOS-ACL
ipv4 access-list QOS-ACL
10 deny udp any any
20 permit ipv4 any any
!
この ACL を class-map で指定、その class-map を policy-map で指定します。
RP/0/RSP0/CPU0:Router#show run class-map QOS-CLASS
class-map match-any QOS-CLASS
match access-group ipv4 QOS-ACL
end-class-map
!
RP/0/RSP0/CPU0:Router#show run policy-map QOS-POLICY
policy-map QOS-POLICY
class QOS-CLASS
set precedence critical
!
class class-default
!
end-policy-map
!
この policy-map を interface に適用しようとしても、config が fail し適用することができません。
RP/0/RSP0/CPU0:Router(config)#int g0/2/1/5
RP/0/RSP0/CPU0:Router(config-if)#service-policy input QOS-POLICY
RP/0/RSP0/CPU0:Router(config-if)#commit
Tue Sep 23 23:59:23.277 UTC
% Failed to commit one or more configuration items during a pseudo-atomic operation. All changes made have been reverted. Please issue 'show configuration failed' from this session to view the errors
RP/0/RSP0/CPU0:Router(config-if)#
RP/0/RSP0/CPU0:Router(config-if)#show config fail
Tue Sep 23 23:59:27.506 UTC
!! 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 GigabitEthernet0/2/1/5
service-policy input QOS-POLICY
!!% 'km' detected the 'warning' condition 'Deny ace not supported in access-list'
!
end
同 version (IOS XR 4.3.2) の CRS では、同様の設定を行った場合に、反映されるものの、設定が無視される旨のメッセージが出力されます。
RP/0/RP0/CPU0:Router(config)#int te0/6/0/6
RP/0/RP0/CPU0:Router(config-if)#service-policy input QOS-POLICY
RP/0/RP0/CPU0:Router(config-if)#commit
LC/0/6/CPU0:Sep 23 08:05:49.104 : qos_ea[291]: %PKT_INFRA-FMGR-3-DENY_IN_ACL_NOT_SUPPORTED : Deny action is not supported and will be ignored in ipv4 ACL: QOS-ACL, ACE: 10
RP/0/RP0/CPU0:Sep 23 08:05:50.692 : config[65740]: %MGBL-CONFIG-6-DB_COMMIT : Configuration committed by user 'cisco'. Use 'show configuration commit changes 1000000044' to view the changes.
XR12000 では、CSCtc30846 により機能追加が行われたため、以下のコマンドにより、deny entry を含む ACL を QoS に使用することができるようになります。
hw-module qos acl-deny enable [location node-id]