Establish quantum-safe, point-to-point MACsec encryption by configuring SKS profiles with external QKD servers and mapping them to MACsec policies. This process enables automated, secure key provisioning across your physical interfaces to ensure robust, quantum-resistant data protection.
Establish secure, point-to-point MACsec encryption between two routers using the SKIP protocol and Quantum Key Distribution (QKD) for automated, quantum-safe key management.
Use this task when you need to configure MACsec in Pre-placed Key (PPK) mode with keys provided by external QKD devices and SKIP for secure key provisioning. This enhances security by leveraging quantum key exchange for MACsec.
Procedure
|
1. |
Configure the QKD profile.
-
On Router 1, enter global configuration mode, define the SKS profile, and specify the remote KME server:
Example:
Router# config
Router(config)# sks profile ProfileR1toR2 type remote
Router(config-sks-profile)# kme server ipv4 192.0.2.34 port 10001
Router(config-sks-profile)# commit
-
On Router 2, enter global configuration mode, define the SKS profile, and specify the remote KME server:
Example:
Router# config
Router(config)# sks profile ProfileR2toR1 type remote
Router(config-sks-profile)# kme server ipv4 192.0.2.35 port 10001
Router(config-sks-profile)# commit
|
|
2. |
Map the QKD profile to the MACsec policy.
-
On Router 1:
Example:
Router# config
Router(config)# macsec-policy R1toR2
Router(config-macsec-policy)# ppk sks-profile ProfileR1toR2
Router(config-macsec-policy)# commit
-
On Router 2:
Example:
Router# config
Router(config)# macsec-policy R2toR1
Router(config-macsec-policy)# ppk sks-profile ProfileR2toR1
Router(config-macsec-policy)# commit
|
|
3. |
Apply MACsec policy to the interfaces.
-
On Router 1:
Example:
Router# config
Router(config)# interface hundredGigE 0/1/0/10
Router(config-if)# ipv4 address 192.0.2.1 255.255.255.0
Router(config-if)# macsec psk-keychain mac_chain policy R1toR2
Router(config)# commit
Router(config)# interface hundredGigE 0/1/0/11
Router(config-if)# ipv4 address 192.0.3.1 255.255.255.0
Router(config-if)# macsec psk-keychain mac_chain policy R1toR2
Router(config)# commit
Router(config)# interface hundredGigE 0/1/0/12
Router(config-if)# ipv4 address 192.0.4.1 255.255.255.0
Router(config-if)# macsec psk-keychain mac_chain policy R1toR2
Router(config)# commit
Router(config)# interface hundredGigE 0/1/0/9
Router(config-if)# ipv4 address 192.0.5.1 255.255.255.0
Router(config-if)# macsec psk-keychain mac_chain policy R1toR2
Router(config)# commit
-
On Router 2:
Example:
Router# config
Router(config)# interface hundredGigE 0/1/0/10
Router(config-if)# ipv4 address 192.0.2.2 255.255.255.0
Router(config-if)# macsec psk-keychain mac_chain policy R2toR1
Router(config-if)# commit
Router(config)# interface hundredGigE 0/1/0/11
Router(config-if)# ipv4 address 192.0.3.2 255.255.255.0
Router(config-if)# macsec psk-keychain mac_chain policy R2toR1
Router(config-if)# commit
Router(config)# interface hundredGigE 0/1/0/12
Router(config-if)# ipv4 address 192.0.4.2 255.255.255.0
Router(config-if)# macsec psk-keychain mac_chain policy R2toR1
Router(config-if)# commit
Router(config)# interface hundredGigE 0/1/0/9
Router(config-if)# ipv4 address 192.0.5.2 255.255.255.0
Router(config-if)# macsec psk-keychain mac_chain policy R2toR1
Router(config-if)# commit
|
|
4. |
Verify the configurations in each router using the show running config command.
-
On Router 1:
Example:
sks profile ProfileR1toR2 type remote
kme server ipv4 192.0.2.34 port 10001
!
macsec-policy R1toR2
ppk
sks-profile ProfileR1toR2
!
!
interface hundredGigE 0/1/0/10
ipv4 address 192.0.2.1 255.255.255.0
macsec psk-keychain mac_chain policy R1toR2
!
interface hundredGigE 0/1/0/11
ipv4 address 192.0.3.1 255.255.255.0
macsec psk-keychain mac_chain policy R1toR2
!
interface hundredGigE 0/1/0/12
ipv4 address 192.0.4.1 255.255.255.0
macsec psk-keychain mac_chain policy R1toR2
!
interface hundredGigE 0/1/0/9
ipv4 address 192.0.5.1 255.255.255.0
macsec psk-keychain mac_chain policy R1toR2
!
-
On Router 2:
Example:
sks profile ProfileR2toR1 type remote
kme server ipv4 192.0.2.35 port 10001
!
macsec-policy R2toR1
ppk
sks-profile ProfileR2toR1
!
!
interface hundredGigE 0/1/0/10
ipv4 address 192.0.2.2 255.255.255.0
macsec psk-keychain mac_chain policy R2toR1
!
interface hundredGigE 0/1/0/11
ipv4 address 192.0.3.2 255.255.255.0
macsec psk-keychain mac_chain policy R2toR1
!
interface hundredGigE 0/1/0/12
ipv4 address 192.0.4.2 255.255.255.0
macsec psk-keychain mac_chain policy R2toR1
!
interface hundredGigE 0/1/0/9
ipv4 address 192.0.5.2 255.255.255.0
macsec psk-keychain mac_chain policy R2toR1
!
|
|
5. |
Verify the point-to-point MACsec encryption using SKIP on either router with the show crypto sks profile all and show crypto sks profile all commands.
Example:
Router(ios)# show crypto sks profile all
Profile Name :ProfileR1toR2
Myidentifier :Router1
Type :Remote
Reg Client Count :1
Server
IP :192.0.2.34
Port :10001
Vrf :Notconfigured
Source Interface :Notconfigured
Status :Connected
Entropy :true
Key :true
Algorithm :QKD
Local identifier :Alice
Remote identifier :Alice
Peerlist
QKD ID :Bob
State :Connected
Peerlist
QKD ID :Alice
State :Connected
Router(ios)# show crypto sks profile all stats
Profile Name : ProfileR1toR2
My identifier : Router1
Server
IP : 192.0.2.34
Port : 10001
Status : connected
Counters
Capability request : 1
Key request : 3
Key-id request : 0
Entropy request : 0
Capability response : 1
Key response : 3
Key-id response : 0
Entropy response : 0
Total request : 4
Request failed : 0
Request success : 4
Total response : 4
Response failed : 0
Response success : 4
Retry count : 0
Response Ignored : 0
Cancelled count : 0
Response time
Max Time : 100 ms
Avg Time : 10 ms
Min Time : 50 ms
Last transaction
Transaction Id : 9
Transaction type : Get key
Transaction status : Response data received, successfully
Http code : 200 OK (200)
|
What to do next
Monitor SKS profile status and key exchange statistics to confirm ongoing secure operation. Review logs and counters for negotiation failures or changes in link state.