MACsec 完全卸载
MACsec 完全卸载仅在 Alpha 级别受支持。
MACsec 完全卸载功能,也称为 MACsec 内联完全卸载,使用户能够将 MACsec 加密和解密、MACsec 标头封装和解封装以及防重放操作卸载到硬件。
硬件实现支持 GCM-AES 和 GCM-AES-XPN 加密方案,并从 ConnectX-7 及更高版本开始支持。
MOFED v5.9 中引入的 MACsec 需要最低内核版本 6.1。
要启用此功能,内核和适配器固件都需要支持。
为了在内核中获得支持,请确保以下标志设置如下
CONFIG_MACSEC=y
CONFIG_MLX5_EN_MACSEC=y
为了在固件中获得支持,请使用 xx.34.0364 及更高版本。
IProute2 配置
配置物理接口
客户端
ip address flush <physical_device> ip address add <client_physical_device_ip> dev <physical
interface
> ip link set dev <physical_device> up
服务器端
ip address flush <physical_device> ip address add <server_physical_device_ip> dev <physical
interface
> ip link set dev <physical_device> up
添加 MACsec 设备
客户端
ip link add link <physical_device> <macsec_device> type macsec sci <client_sci> client on
服务器端
ip link add link <physical_device> <macsec_device> type macsec sci <server_sci> client on
卸载 MACsec 设备
客户端
ip macsec offload <macsec_device> mac
服务器端
ip macsec offload <macsec_device> mac
添加 MACsec 规则
客户端
ip macsec add <macsec_device> tx sa <sa_num>pn <inital_packet_number>on key <client_key_id> <client_key> ip macsec add <macsec_device> rx sci <server_sci> on ip macsec add <macsec_device> rx sci <server_sci>sa <sa_num> pn <inital_packet_number> on key <server_key_id> <server_key>
服务器端
ip macsec add <macsec_device> tx sa <sa_num>pn <inital_packet_number>on key <server_key_id> <server_key> ip macsec add <macsec_device> rx sci <client_sci> on ip macsec add <macsec_device> rx sci <client_sci>sa <sa_num> pn <inital_packet_number> on key <client_key_id> <client_key>
配置 MACsec 设备 IP
客户端
ip address flush <macsec_device> ip address add <client_macsec_device_ip> dev <macsec_device> ip link set dev <macsec_device> up
服务器端
ip address flush <macsec_device> ip address add <server_macsec_device_ip> dev <macsec_device> ip link set dev <macsec_device> up
配置示例
客户端
ip address flush enp8s0f0
ip address add 1.1
.1.1
/24
dev enp8s0f0
ip link set dev enp8s0f0 up
ip link add link enp8s0f0 macsec0 type macsec sci 1
encrypt on
ip macsec offload macsec0 mac
ip macsec add macsec0 tx sa 0
pn 1
on key 00
dffafc8d7b9a43d5b9a3dfbbf6a30c16
ip macsec add macsec0 rx sci 2
on
ip macsec add macsec0 rx sci 2
sa 0
pn 1
on key 00
ead3664f508eb06c40ac7104cdae4ce5
ip address flush macsec0
ip address add 2.2
.2.1
/24
dev macsec0
ip link set dev macsec0 up
服务器端
ip link del macsec0
ip address flush enp8s0f0
ip address add 1.1
.1.2
/24
dev enp8s0f0
ip link set dev enp8s0f0 up
ip link add link enp8s0f0 macsec0 type macsec sci 2
encrypt on
ip macsec offload macsec0 mac
ip macsec add macsec0 tx sa 0
pn 1
on key 00
ead3664f508eb06c40ac7104cdae4ce5
ip macsec add macsec0 rx sci 1
on
ip macsec add macsec0 rx sci 1
sa 0
pn 1
on key 00
dffafc8d7b9a43d5b9a3dfbbf6a30c16
ip address flush macsec0
ip address add 2.2
.2.2
/24
dev macsec0
ip link set dev macsec0 up
使用 ip macsec show
命令检查配置。
要验证流量是否已卸载,请运行 ethtool -S <physical_device> | grep macsec
来检查 MACsec 计数器。
有关更多信息,请参阅 Linux 手册页面。