Ensure MACsec FIPS line cards on routers conduct Power-on Self-Test Known Answer Tests (KAT) to verify cryptographic integrity and support FIPS compliance.
This task is essential when deploying or maintaining routers with MACsec FIPS line cards to confirm hardware cryptographic integrity.
KAT is not enabled by default. You can configure the `hw-module macsec-fips-post` command to enable POST KAT for the MACsec-enabled hardware. With this configuration, the KAT always runs as a self-test during power on. The cryptographic algorithm tests are performed on every physical layer chip (PHY) with hardware crypto once it is powered up.
-
Pass criteria for KAT: Any change in the FIPS mode configuration requires a line card reload. On reload, the FIPS POST is run as part of the line card boot sequence. The subsequent boot (based on the FIPS mode) state re-triggers the KAT. If there are multiple PHYs hardware in a module, the system performs the KAT on each PHY and returns the KAT results. If all PHYs pass the KAT, the system brings up the line card for regular usage.
-
Fail criteria for KAT: Traffic does not pass through a MACsec-enabled PID that failed KAT. If any PHY registers a KAT failure, the module enters an ERROR state and the system displays a critical ERROR SYSLOG output: KAT Test Failed. The system does not allow any traffic or data flow through the interfaces on that line card. Although the interfaces are present, they do not come up or allow traffic to flow through them on a line card that failed KAT. In a modular chassis, all other line cards, except the one that failed the KAT, will be up and running.
Before you begin
Follow these steps to enable and verify Power-on Self-Test KAT for MACsec FIPS cards:
Procedure
|
1. |
Use the hw-module macsec-fips-post command to configure the Power-on Self-Test KAT on the desired line card.
Example:
Router#config
Router(config)#hw-module macsec-fips-post location 0/4/CPU0
Router(config)#commit
|
|
2. |
Use the show hw-module macsec-fips-post command to verify the Power-on Self-Test KAT on a line card.
Example:
Before configuring POST KAT:
Router#show hw-module macsec-fips-post
Wed Jun 17 09:29:18.780 UTC
Location Configured Applied Action
-------------------------------------------------------------
0/0/CPU0 NO NO NONE >>> LC36
0/11/CPU0 NO NO NONE >>> LC48
After configuring the command for POST KAT, and before the line card reload:
Router#show hw-module macsec-fips-post
Wed Jun 17 09:36:31.932 UTC
Location Configured Applied Action
-------------------------------------------------------------
0/0/CPU0 NO NO NONE
0/11/CPU0 YES NO RELOAD
After the line card reload:
Router#show hw-module macsec-fips-post
Wed Jun 17 10:03:57.263 UTC
Location Configured Applied Action
-------------------------------------------------------------
0/0/CPU0 NO NO NONE
0/11/CPU0 YES YES NONE
|
|
3. |
Review system logs to verify results for KAT execution on each port.
Example:
These are sample logs displayed after a successful KAT. The system performs KAT on each port, but the ports may not be in order in the display output.
Router#show logging | inc KAT
Wed Jun 10 12:07:29.849 UTC
LC/0/4/CPU0:Jun 9 10:37:37.521 UTC: optics_driver[159]: %L2-SECY_DRIVER-6-KAT_PASS : KAT Test PASSED for Port No: 0
LC/0/4/CPU0:Jun 9 10:37:37.522 UTC: optics_driver[159]: %L2-SECY_DRIVER-6-KAT_PASS : KAT Test PASSED for Port No: 28
LC/0/4/CPU0:Jun 9 10:37:37.522 UTC: optics_driver[159]: %L2-SECY_DRIVER-6-KAT_PASS : KAT Test PASSED for Port No: 27
LC/0/4/CPU0:Jun 9 10:37:37.522 UTC: optics_driver[159]: %L2-SECY_DRIVER-6-KAT_PASS : KAT Test PASSED for Port No: 1
LC/0/4/CPU0:Jun 9 10:39:10.393 UTC: optics_driver[159]: %L2-SECY_DRIVER-6-KAT_PASS : KAT Test PASSED for Port No: 2
LC/0/4/CPU0:Jun 9 10:39:10.393 UTC: optics_driver[159]: %L2-SECY_DRIVER-6-KAT_PASS : KAT Test PASSED for Port No: 6
LC/0/4/CPU0:Jun 9 10:39:10.393 UTC: optics_driver[159]: %L2-SECY_DRIVER-6-KAT_PASS : KAT Test PASSED for Port No: 7
LC/0/4/CPU0:Jun 9 10:39:10.393 UTC: optics_driver[159]: %L2-SECY_DRIVER-6-KAT_PASS : KAT Test PASSED for Port No: 8
These are sample logs displayed in KAT failure scenarios:
Router#show logging | inc SECY
Thu Jul 16 09:13:29.217 UTC
LC/0/7/CPU0:Jul 16 08:41:30.709 UTC: optics_driver[152]: %L2-SECY_DRIVER-0-KAT_FAIL_DETECTED : KAT Test FAILED for Port No: 0
LC/0/7/CPU0:Jul 16 08:41:30.709 UTC: optics_driver[152]: %L2-SECY_DRIVER-0-KAT_FAIL_DETECTED : KAT Test FAILED for Port No: 47
LC/0/7/CPU0:Jul 16 08:41:30.709 UTC: optics_driver[152]: %L2-SECY_DRIVER-0-KAT_FAIL_DETECTED : KAT Test FAILED for Port No: 7
LC/0/7/CPU0:Jul 16 08:41:30.709 UTC: optics_driver[152]: %L2-SECY_DRIVER-0-KAT_FAIL_DETECTED : KAT Test FAILED for Port No: 6
|
MACsec FIPS line cards run Power-on Self-Test KAT upon reload. Successful PASS results are logged for each port; failures are flagged for further troubleshooting.
What to do next
If any port reports KAT FAIL, investigate and resolve hardware or configuration issues before continuing with production use.