VyOS の VM を複数作る場合、インストール済みイメージをテンプレート化してクローンしたくなります。ただし、NIC の MAC アドレスが変わると、設定内の hw-id と実際の NIC がずれて、起動後のインターフェイス認識や接続に悩まされることがあります。
書籍
ルーティング、NAT、VPN、ネットワーク設計の基礎を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
この記事は、現在の主軸である VyOS 1.5 で読むことを前提に、過去記事の内容も整理しています。VM クローン時の hw-id 対応 はバージョン番号そのものより、ルーターとして管理しやすい状態をどう作るかが重要です。細かなコマンドや表示は利用している ISO で確認してください。
問題になる点
VyOS の設定にはインターフェイスごとに hw-id が入ることがあります。テンプレート VM をクローンすると、仮想 NIC の MAC アドレスは新しくなる一方で、設定内には元 VM の hw-id が残るため、期待したインターフェイスに設定が紐づかないことがあります。
テンプレート作成時の考え方
- 専用の管理インターフェイスを用意する。
- テンプレートには管理インターフェイスだけを付けておく。
- 管理インターフェイスにはテンプレート用の IP アドレスを設定しておく。
- SSH を有効化して、クローン後にシリアルコンソールへ依存しすぎないようにする。
- テンプレート化する前に、設定内の
hw-idを整理しておく。
hw-id を確認する
show configuration commands | match 'hw-id'
show interfaces ethernetconfig.boot を確認する
古い記事では vi /config/config.boot で直接編集する流れを書いていましたが、基本的には設定コマンドで対応できる範囲を優先し、どうしても必要な場合だけ設定ファイルを確認します。テンプレートとして残す場合は、起動後に自動で新しい hw-id が入ることを意識します。
sudo cp -a /config/config.boot /config/config.boot.backup.$(date +%Y%m%d%H%M%S)
sudo grep -n "hw-id" /config/config.bootクローン後に確認すること
- 管理 IP に SSH で接続できるか確認する。
show interfaces ethernetで NIC 名と MAC アドレスを確認する。- 必要に応じて管理 IP やホスト名を変更する。
- 問題がなければ
commitとsaveで保存する。
まとめ
VyOS のクローンでは、設定そのものよりも NIC と hw-id の対応が問題になりやすいです。テンプレートには最小限の管理インターフェイスだけを持たせ、クローン後に管理 IP、ホスト名、インターフェイス対応を確認する流れにすると扱いやすくなります。

