# L2スイッチング / MACsec

本製品は2台のスイッチ間でEthernet通信を暗号化するMACsecをサポートしています。
MACsecでは、Ethernetデータ（EtherTypeとペイロード）の暗号化とEthernetフレーム全体のメッセージ認証により、改ざん防止、機密性確保、送信元認証、などのセキュリティー機能をレイヤー2のレベルで提供します。
Note

本機能を使用するにはライセンスが必要です。
ライセンスのインストール方法については「運用・管理」/「システム」の「ライセンスキーのインストール」をご参照ください。

Note

本機能はAT-x240-52GTXm、AT-x240-52GHXmでのみ使用できます。

## 用語

本解説で使用する用語をまとめます。

用語 | 説明
MACsecピア | MACsecの接続相手を本解説ではMACsecピア、または単にピアと呼称します
CAK | (Secure) Connectivity Association Key | MACsecピアを認証し、暗号化キーを生成するためのマスターキー。実装では、暗号化を行う2台のスイッチに同一のマスターキーを手動設定しておく事前共有鍵方式のみをサポートする
SAK | Secure Association Key | 暗号化キー。実際にフレームを暗号化するときに用いられる情報で、定期的に更新される（各SAKが扱えるフレームの数は最大2の32乗＝約42億個）。更新時には、暗号化を行う2台のスイッチのどちらかが新しいSAKを生成し、もう一方のスイッチに配布する
MKA | MACsec Key Agreement (protocol) | 暗号化キー（SAK）などMACsecの動作に必要な情報の交換を行うためのプロトコル
PSK | Pre-Shared Key | 事前共有鍵（方式）。ここでは暗号化を行う2台のスイッチに対して、マスターキー（CAK）をあらかじめ手動設定しておくこと、および、手動設定したマスターキーそのものを指す

## 基本仕様

本製品のMACsec実装の基本仕様は次のとおりです。

- MACsecの接続相手（ピア）は1ポートあたり1台のみサポートします。
  同一ポート上に複数のピアが存在する場合、最初にネゴシエーションが完了したピアとの間でのみMACsecの暗号化が行われ、それ以外のピアとの接続は失敗となってログに記録されます。
- スイッチ間で暗号化を行う構成のみをサポートします。
- マスターキー（CAK）は事前共有鍵（PSK）方式のみをサポートします。
  暗号化アルゴリズムは以下をサポートします。
  - GCM-AES-128
  - GCM-AES-256
- LAGポート上でのMACsecは未サポートです。
- ポート認証とMACsecを同一ポートで使用することはできません。
- VCS構成ではマスター切り替え時にMACsecの再初期化が行われるため一時的に通信が停止します。

## 基本設定

MACsecを使用するための基本設定を示します。
ここではスイッチA、Bのポート1.0.5間において、MACsecを利用してEthernet通信を暗号化するものとします。
MACsecの動作はMKAポリシーで調整しますが、ここでは最初から用意されているMKAポリシー「default」を使うものとします。
本例ではスイッチA、Bとも同じ設定になりますので、両方のスイッチに同じ設定を行ってください。

1. システム全体でMACsecを有効にします。これにはplatform macsec enableコマンドを使います。
   同コマンドの設定はシステム起動時にスタートアップコンフィグから読み込まれたときだけ有効となりますので、同コマンド実行後は設定をスタートアップコンフィグに保存した上で、システムを再起動してください。
   再起動が完了したら、再度ログインし、グローバルコンフィグモードに移動してください。

       awplus(config)# platform macsec enable
       awplus(config)# end
       awplus# copy running-config startup-config
       Building configuration...
       [OK]
       awplus# reload
       reboot system? (y/n): y ↓
       ...

       awplus login: manager ↓
       Password: XXXXXX  ↓（実際には表示されません）

       AlliedWare Plus (TM) 5.5.6 xx/xx/xx xx:xx:xx

       awplus> enable
       awplus# configure terminal
       Enter configuration commands, one per line.  End with CNTL/Z.
       awplus(config)#

2. interfaceコマンドでMACsecを使用するポート（port1.0.5）を対象とするインターフェースモードに移動し、同ポートで使用するMACsecの事前共有鍵をmka pre-shared-keyコマンドで設定します。
   cknは鍵の名称、cakは鍵の本体（パスワード）で、ともに16進数（cknは2～64の偶数桁、cakは32桁）で指定します。
   ckn、cakとも両方のスイッチに同じ値を設定してください。

       awplus(config)# interface port1.0.5
       awplus(config-if)# mka pre-shared-key ckn 112233 cak EEEEEFFFFF0000011111222223333344

3. 同ポートでMACsecを有効にします。これにはmka policyコマンドを使います。
   同コマンドではMKAポリシーも指定しますが、ここでは最初から用意されているdefaultポリシーを使うものとします。

       awplus(config-if)# mka policy default

   設定は以上です。

## 詳細設定

最初から用意されているdefaultポリシーではなく、独自のMKAポリシーを作成してポートに適用することで、MACsecの動作を調整することができます。
独自のMKAポリシーを使用する場合は、前記「基本設定」の手順3を以下のように変更してください。

- MKAポリシーを作成し、同ポリシーの内容を編集するためのMKAポリシーモードに移動します。これには mka policyコマンド（グローバルコンフィグモード）を使います。

      awplus(config)# mka policy mypolicy
      awplus(config-mka-policy)#

- MKAポリシーモードのコマンドを実行して必要なパラメーターを変更します。
  変更可能な動作パラメーターと対応するコマンドは次のとおりです。
  - キーサーバー優先度（key-server priority）
  - リプレイ防止機能の有効・無効とウィンドウサイズ（macsec replay-protection window-size）
  - 暗号化アルゴリズム（macsec-cipher-suite）
  たとえば、リプレイ防止機能のウィンドウサイズを初期値の0から3に変更するには次のようにします。

      awplus(config-mka-policy)# macsec replay-protection window-size 3

- MKAポリシーの作成が終わったら、mka policyコマンド（インターフェースモード）でMACsecを有効にするときに、同ポートに適用するMKAポリシーを指定します。

      awplus(config-mka-policy)# exit
      awplus(config)# interface port1.0.5
      awplus(config-if)# mka policy mypolicy

## その他

MACsecの全体的な情報はshow macsecコマンドで確認できます。
MKAポリシーの情報はshow mka policyコマンドで確認できます。