10.3. 使用 nmstatectl 配置 MACsec 连接
您可以使用声明性 Nmstate API 将以太网接口配置为使用 MACsec。nmstate 可确保结果与配置文件匹配或回滚更改。
先决条件
- 服务器配置中存在一个物理或虚拟以太网网络接口控制器(NIC)。
 - 
						
nmstate软件包已安装。 
流程
在您配置 MACsec 的第一个主机上,为预共享密钥创建连接关联密钥(CAK)和连接关联密钥名称(CKN):
创建一个 16 字节的十六进制 CAK:
dd if=/dev/urandom count=16 bs=1 2> /dev/null | hexdump -e '1/2 "%04x"'
# dd if=/dev/urandom count=16 bs=1 2> /dev/null | hexdump -e '1/2 "%04x"' 50b71a8ef0bd5751ea76de6d6c98c03aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个 32 字节的十六进制 CKN:
dd if=/dev/urandom count=32 bs=1 2> /dev/null | hexdump -e '1/2 "%04x"'
# dd if=/dev/urandom count=32 bs=1 2> /dev/null | hexdump -e '1/2 "%04x"' f2b4297d39da7330910a74abc0449feb45b5c0b9fc23df1430e1898fcf1c4550Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
在您要通过 MACsec 连接连接的两个主机上,完成以下步骤:
使用以下设置创建一个 YAML 文件,如
create-macsec-connection.yml:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 
								在 
mka-cak和mka-ckn参数中使用上一步中生成的 CAK 和 CKN。在 MACsec-protected 网络的每个主机上,这些值必须相同。 可选:在同一 YAML 配置文件中,您还可以配置以下设置:
- 
										静态 IPv4 地址 - 
192.0.2.1,子网掩码为/32 - 
										静态 IPv6 地址 - 
2001:db8:1::1,子网掩码为/64 - 
										IPv4 默认网关 - 
192.0.2.2 - 
										IPv4 DNS 服务器 - 
192.0.2.200 - 
										IPv6 DNS 服务器 - 
2001:db8:1::ffbb - 
										DNS 搜索域 - 
example.com 
- 
										静态 IPv4 地址 - 
 
将设置应用到系统:
nmstatectl apply create-macsec-connection.yml
# nmstatectl apply create-macsec-connection.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
验证
以 YAML 格式显示当前状态:
nmstatectl show macsec0
# nmstatectl show macsec0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证流量是否加密:
tcpdump -nn -i enp0s1
# tcpdump -nn -i enp0s1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:显示未加密的流量:
tcpdump -nn -i macsec0
# tcpdump -nn -i macsec0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示 MACsec 统计信息:
ip macsec show
# ip macsec showCopy to Clipboard Copied! Toggle word wrap Toggle overflow 显示每种保护类型的单独的计数器:仅完整性(关闭加密)和加密(打开加密)
ip -s macsec show
# ip -s macsec showCopy to Clipboard Copied! Toggle word wrap Toggle overflow