10.3. nmstatectl を使用した MACsec 接続の設定
宣言型の Nmstate API を使用して、MACsec を使用するようにイーサネットインターフェイスを設定できます。Nmstate を使用すると、結果が必ず設定ファイルと一致したものになります。一致しない場合は、変更がロールバックされます。
前提条件
- 物理または仮想イーサネットネットワークインターフェイスコントローラー (NIC) がサーバーに設定されている。
-
nmstateパッケージがインストールされている。
手順
MACsec を設定する最初のホストで、事前共有キー用の接続関連キー (CAK: connectivity association key) および接続関連キー名 (CKN: connectivity-association key name) を作成します。
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: true-
前の手順で生成された CAK および CKN を
mka-cakおよびmka-cknパラメーターで使用します。この値は、MACsec で保護されるネットワーク内のすべてのホストで同じである必要があります。 オプション: 同じ 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
検証
現在の状態を YAML 形式で表示します。
# nmstatectl show macsec0トラフィックが暗号化されていることを確認します。
# tcpdump -nn -i enp0s1オプション: 暗号化されていないトラフィックを表示します。
# tcpdump -nn -i macsec0MACsec の統計を表示します。
# ip macsec showintegrity-only (encrypt off) および encryption (encrypt on) の各タイプの保護に対して個々のカウンターを表示します。
# ip -s macsec show