この記事は、 VyOS Advent Calendar 2014 の16日目の記事です。
#VyOSについて
VyOSは Vyatta Core R6.6からForkして作成されたオープンソースの仮想ルータです。
#仮想化環境におけるVyOSの入れ替え
今回はbrctl コマンドを使用することによる論理的なインターフェイスの付け替えで2台のVyOSを物理マシンのEthernetケーブルを置き換えるかのように入れ替えを行います。
前準備
- bridgeを作る
$ sudo brctl addbr br0;sudo brctl addif br0 eth0
$ sudo brctl addbr br1;sudo brctl addif br1 eth1
- 確認
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.90e2ba016158 no eth0
vnet0
vnet2
br1 8000.001517168309 no eth1
vnet1
- bridge2,3の作成(入れ替え用)
$ sudo brctl addbr br2
$ sudo brctl addbr br3
- 確認
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.90e2ba016158 no eth0
vnet0
vnet2
br1 8000.001517168309 no eth1
vnet1
vnet3
br2 8000.fe5400e7dfa6 no vnet4
br3 8000.fe5400bef0ae no vnet5
VyOSインストール
higebuさんのVyOS Advent Calender 2日目の記事参照
- 移動元インスタンスを作成
qemu-img create -f qcow2 /var/lib/libvirt/images/vyos1.qcow2 4G
virt-install
--name=vyos2
--disk path=/var/lib/libvirt/images/vyos2.qcow2
--vcpus=2
--ram=4096
--cdrom=./vyos-1.1.1-amd64.iso
--network bridge=br0
--network bridge=br1
--os-type=linux
--os-variant=debiansqueeze
- 移動先インスタンスを作成
qemu-img create -f qcow2 /var/lib/libvirt/images/vyos1.qcow2 4G
virt-install
--name=vyos2
--disk path=/var/lib/libvirt/images/vyos2.qcow2
--vcpus=2
--ram=4096
--cdrom=./vyos-1.1.1-amd64.iso
--network bridge=br2
--network bridge=br3
--os-type=linux
--os-variant=debiansqueeze
- 起動を確認
$ virsh list
Id Name State4 vyatta5600 running
7 vyos1 running
8 vyos2 running
kikuchiy@ool-test:~$
インストール後、同じConfigもしくは新旧で変えた設定をいれておきます。
同じInterfaceに同じIPアドレスを入れておくことが注意点
##オペレーション
- 入れ替えの実施
$ sudo brctl delif br0 p4p1;sudo brctl addif br2 p4p1
$ sudo brctl delif br1 p1p2;sudo brctl addif br3 p1p2
- 確認
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.fe5400980ce5 no vnet0
vnet2
br1 8000.fe540038f4d7 no vnet1
vnet3
br2 8000.90e2ba016158 no eth0
vnet4
br3 8000.001517168309 no eth1
vnet5
これで、br0,br1で動いているvyos1からbr1,br2で動いているvyos2へ
物理インターフェイスの入れ替えが完了します。
#まとめ
今回はbrctl コマンドを使用することによる論理的なインターフェイスの付け替えで2台のVyOSの
入れ替えを行いました。アップデートをするときに、切り替え切り戻しを簡単にすることや、
別のOSに切り替えるというような応用をすることができます。