11.3. nmstatectl을 사용하여 MACsec 연결 구성
선언적 Nmstate API를 사용하여 MACsec을 사용하도록 이더넷 인터페이스를 구성할 수 있습니다. NMState를 사용하면 결과가 구성 파일과 일치하거나 변경 사항을 롤백합니다.
사전 요구 사항
- 물리적 또는 가상 이더넷 NIC(네트워크 인터페이스 컨트롤러)가 서버 구성에 있습니다.
-
nmstate패키지가 설치되어 있습니다.
프로세스
첫 번째 호스트에서 사전 공유 키에 대한 연결 연결 키(CAK) 및 connectivity-association 키 이름(CKN)을 생성합니다.
16바이트 16진수 CAK를 생성합니다.
# dd if=/dev/urandom count=16 bs=1 2> /dev/null | hexdump -e '1/2 "%04x"' 50b71a8ef0bd5751ea76de6d6c98c03a32바이트 16진수 CKN을 만듭니다.
# dd if=/dev/urandom count=32 bs=1 2> /dev/null | hexdump -e '1/2 "%04x"' f2b4297d39da7330910a74abc0449feb45b5c0b9fc23df1430e1898fcf1c4550
MACsec 연결을 통해 연결하려는 두 호스트에서 다음 단계를 완료합니다.
다음 설정으로 YAML 파일(예:
create-macsec-connection.yml)을 생성합니다.--- routes: config: - destination: 0.0.0.0/0 next-hop-interface: macsec0 next-hop-address: 192.0.2.2 table-id: 254 - destination: 192.0.2.2/32 next-hop-interface: macsec0 next-hop-address: 0.0.0.0 table-id: 254 dns-resolver: config: search: - example.com server: - 192.0.2.200 - 2001:db8:1::ffbb interfaces: - name: macsec0 type: macsec state: up ipv4: enabled: true address: - ip: 192.0.2.1 prefix-length: 32 ipv6: enabled: true address: - ip: 2001:db8:1::1 prefix-length: 64 macsec: encrypt: true base-iface: enp0s1 mka-cak: 50b71a8ef0bd5751ea76de6d6c98c03a mka-ckn: f2b4297d39da7330910a74abc0449feb45b5c0b9fc23df1430e1898fcf1c4550 port: 0 validation: strict send-sci: truemka-cak및mka-ckn매개변수에서 1단계에서 생성된 CAK 및 CKN을 사용합니다. 이 값은 MACsec 보호 네트워크의 모든 호스트에서 동일해야 합니다.
시스템에 설정을 적용합니다.
# nmstatectl apply create-macsec-connection.yml
검증
MACsec 인터페이스가 활성화되어 올바르게 구성되었는지 확인합니다.
# nmstatectl show macsec0출력에는 암호화 상태를 포함하여 MACsec 인터페이스 구성이 표시됩니다.
상위 인터페이스의 트래픽이 암호화되었는지 확인합니다. 출력에는 암호화된 MACsec 프레임이 표시됩니다.
# tcpdump -nn -i enp0s1선택 사항: 암호화되지 않은 트래픽을 표시합니다.
# tcpdump -nn -i macsec0MACsec 통계를 표시합니다.
# ip macsec show각 유형의 보호에 대한 개별 카운터 표시: 무결성 전용(암호화 해제) 및 암호화(암호화)
# ip -s macsec show