ラベル VLAN の投稿を表示しています。 すべての投稿を表示
ラベル VLAN の投稿を表示しています。 すべての投稿を表示

2017年6月13日火曜日

OpenvSwitch による VLAN 検証(その4)

さて続けて…。
今度はこちらの記事の6枚目~9枚目(最後)の画像部分に挑戦。

現在、leo / virgo ともに起動していると思う。
leo 側の設定を変更したいので、leo を停止するが、virgo から leo に向けて ping を打ち続けよう。
(virgo) $ ping 192.168.57.138

virgo → leo の ping を打ち続けたまま、leo を停止させる。
(leo) $ sudo systemctl poweroff
leo が停止されたら、virgo → leo の ping も通信出来なくなるはず。ping はそのまま置いておく。

vlan10 に接続していた leo を、vlan20 に接続し直す。
(gemini) $ virsh edit leo
--ココから
<interface type='network'>~</interface> の間の1行を修正。
<source network='vlan10'/>

<source network='vlan20'/>
--ココまで

更新が出来たら、leo を起動させよう。
(gemini) $ virsh start leo

leo が起動するまでの間、ping を打ち続けている virgo の方をチェック。
通信が回復しないはずだ。
異なる vlanスイッチなので、通信が回復しなくて当然、のはず。

今度は virgo を vlan20 のスイッチに繋ぎ替える。
leo から virgo へ ping を打ち続けよう。
(leo) $ ping 192.168.57.139
当然、通信は出来ていないはず。

このまま ping を放置して、virgo の接続先スイッチを切り替える。
virgo の停止
(virgo) $ sudo systemctl poweroff

virgo の接続先の切り替え
(cancer) $ virsh edit virgo
--ココから
<interface type='network'>~</interface> の間の1行を修正。
<source network='vlan10'/>

<source network='vlan20'/>
--ココまで

そしたら virgo を起動。
(cancer) $ virsh start virgo

起動中、virgo に ping を打ち続けている leo の画面をチェックしよう。
期待した通りなら、通信が復旧するはずだ。

う~む。今回は全て、期待した通りの動きになった。
おかげで検証もスムーズに進んだ。
VLAN は恐らく、OpenStack 等を使う時に意識しておく必要があると思うから、検証がスムーズに出来てよかった。

さて、OpenvSwitch を使った VLAN の構築検証はココまでにして、次は何に着手しようかな?

OpenvSwitch による VLAN 検証(その3)

やっと前回、vlan10 と vlan20 のスイッチが作られた。

今度は仮想マシン leo / virgo を vlan10 のスイッチに繋いでテストだ。
こちらの4枚目と5枚目の画像の作業になる。

まずは leo / virgo に追加した2枚目の NIC を、vlan10 のスイッチに繋ぎ替える。
virt-manager でもいいが、今回は virsh edit を使うことにする。
(gemini) $ virsh edit leo
(gemini) $ virsh edit virgo
--ココから
<interface type='network'>~</interface> が2セットある。この内の2つ目の方のセットを修正する。
<source network='ovsbridge'/>

<source network='vlan10'/>
--ココまで

gemini 側で修正したら、 cancer 側にも反映させる。
(cancer) $ virsh dumpxml leo
(cancer) $ virsh dumpxml virgo
(cancer) $ sudo systemctl reload libvirt-bin.service
(cancer) $ virsh dumpxml leo
(cancer) $ virsh dumpxml virgo

反映されたことが確認できたら、それぞれ仮想マシンを起動しよう。
(gemini) $ virsh start leo
(cancer) $ virsh start virgo

起動したらそれぞれにログイン。
さて、ping による疎通が出来るのだろうか…?
(leo) $ ip address show ens10
(virgo) $ ip address show ens10

(leo) $ ping 192.168.57.139
(virgo) $ ping 192.168.57.138

どうやら通信できるようだ。
でも、通信出来るから OK というわけではなく、コチラの残りの部分(画像6枚目以降)も出来ることが確認できて、始めて VLAN が作動していることになるわけで。
まだ楽観視出来ないな…。

OpenvSwitch による VLAN 検証(その2)

続いて、VLAN-ID を持った仮想スイッチってやつを作ってみたい。
このページの4枚目の図だ。

作成するのは gemini / cancer 上。
まずは、それぞれのネットワーク設定からだ。
(gemini) $ sudo vi /etc/network/interfaces.d/0020.vlan10
--ココから
auto vlan10
allow-extsw
iface vlan10 inet manual
ovs_bridge extsw
ovs_type OVSIntPort
ovs_options tag=10
--ココまで

(gemini) $ sudo vi /etc/network/interfaces.d/0030.vlan20
--ココから
auto vlan20
allow-extsw
iface vlan20 inet manual
ovs_bridge extsw
ovs_type OVSIntPort
ovs_options tag=20
--ココまで

(gemini) $ sudo vi /etc/network/interfaces.d/0010.extsw
--ovs_ports ens3 の下に2行追加
ovs_ports vlan10
ovs_ports vlan20
--ココまで

(gemini) $ sudo vi /etc/default/networking
--1行修正
EXCLUDE_INTERFACES=extsw

EXCLUDE_INTERFACES="extsw vlan10 vlan20"
--

cancer でも同じ設定を。
(cancer) $ sudo vi /etc/network/interfaces.d/0020.vlan10
--ココから
auto vlan10
allow-extsw
iface vlan10 inet manual
ovs_bridge extsw
ovs_type OVSIntPort
ovs_options tag=10
--ココまで

(cancer) $ sudo vi /etc/network/interfaces.d/0030.vlan20
--ココから
auto vlan20
allow-extsw
iface vlan20 inet manual
ovs_bridge extsw
ovs_type OVSIntPort
ovs_options tag=20
--ココまで

(cancer) $ sudo vi /etc/network/interfaces.d/0010.extsw
--ovs_ports ens3 の下に2行追加
ovs_ports vlan10
ovs_ports vlan20
--ココまで

(cancer) $ sudo vi /etc/default/networking
--1行修正
EXCLUDE_INTERFACES=extsw

EXCLUDE_INTERFACES="extsw vlan10 vlan20"
--

続いて、bridge の作成
(gemini) $ sudo ovs-vsctl show
(gemini) $ sudo ovs-vsctl add-br vlan10 extsw 10
(gemini) $ sudo ovs-vsctl add-br vlan20 extsw 20
(gemini) $ sudo ovs-vsctl show

(cancer) $ sudo ovs-vsctl show
(cancer) $ sudo ovs-vsctl add-br vlan10 extsw 10
(cancer) $ sudo ovs-vsctl add-br vlan20 extsw 20
(cancer) $ sudo ovs-vsctl show

これでいいのかな…?
leo / virgo を停止させ、gemini / cancer を再起動、反映されているか確認。
(leo) $ sudo systemctl poweroff
(virgo) $ sudo systemctl poweroff
(gemini) $ sudo systemctl reboot
(cancer) $ sudo systemctl reboot
(gemini) $ sudo ovs-vsctl show
(cancer) $ sudo ovs-vsctl show

これで、VLANタグ付きのスイッチが出来た…はず…。

作った VLANタグスイッチを、 libvirt に登録しよう。
(gemini) $ vi vlan10.xml
--ココから
<network>
<name>vlan10</name>
<forward mode='bridge'/>
<bridge name='vlan10'/>
<virtualport type='openvswitch'/>
</network>
--ココまで

(gemini) $ vi vlan20.xml
--ココから
<network>
<name>vlan20</name>
<forward mode='bridge'/>
<bridge name='vlan20'/>
<virtualport type='openvswitch'/>
</network>
--ココまで

(gemini) $ virsh net-list --all
(gemini) $ virsh net-define vlan10.xml
(gemini) $ virsh net-define vlan20.xml
(gemini) $ virsh net-list --all

(gemini) $ virsh net-autostart vlan10
(gemini) $ virsh net-autostart vlan20
(gemini) $ virsh net-start vlan10
(gemini) $ virsh net-start vlan20
(gemini) $ virsh net-list --all

cancer 側で取り込む。(libvirt 関連の情報は共有ディスク上にあるはずなので、cancer 側は再読込でOKのはず。)
(cancer) $ virsh net-list --all
(cancer) $ sudo systemctl reload libvirt-bin.service
(cancer) $ virsh net-list --all

これで VLAN付きスイッチの libvirt への登録も完了だ。
次は leo / virgo のネットワーク設定を変更して起動する流れだが、これは次回に。

OpenvSwitch による VLAN 検証(その1)

とりあえず、前述の図の3枚目までを実施してみる。

まずは leo / virgo を停止させよう。
(leo) $ sudo systemctl poweroff
(virgo) $ sudo systemctl poweroff

停止の確認が出来たら、gemini で virt-manager を起動し、leo / virgo に NIC を追加させる。
(gemini) $ virt-manager
NICを追加し、今まで使用していたものと
同じスイッチに繋ぐ

NIC追加したら、一度構成を見直してみよう。
(gemini) $ virsh edit leo
(gemini) $ virsh edit virgo
<interface type='network'>タグが2つあると思う。
2つ目の<interface ...>タグの<address ...>タグ、slot='0xNN'を見てみて欲しい。
0x0a になっていると思うけど、異なる値になっているかもしれない。
ココは leo / virgo で値を合わせておこう。(ここの値を 0x0a にした場合、ゲストOS leo / virgo の追加NICのデバイス名は ens10 になる)

仮想マシンの設定変更が完了したら、cancer 側にも反映させよう。
(cancer) $ sudo systemctl reload libvirt-bin.service
(cancer) $ virsh dumpxml leo
(cancer) $ virsh dumpxml virgo
(もし反映されてなかったら、 sudo systemctl restart libvirt-bin.service で再起動だ。)

設定反映が確認できたら、gemini 上で leo を、cancer 上で virgo をそれぞれ起動しよう。
(gemini) $ virsh start leo
(cancer) $ virsh start virgo

起動が完了したら、ネットワークインターフェースを確認。
(leo) $ ip link show
(virgo) $ ip link show
ens10 というネットワークインターフェース(NIC)が出来ているのが確認できるはずだ。

この NIC に IP アドレスを付与しよう。
今回は
leo : 192.168.57.138/24
virgo : 192.168.57.139/24
を充てる。
(普段使っている ens3 には、192.168.55.x/24 のIPアドレスが付与されている。ens10 には ens3 とは異なるネットワークアドレスを充てるように。)
(leo) $ sudo vi /etc/network/interfaces.d/ens10
--ココから
auto ens10
iface ens10 inet static
address 192.168.57.138
network 192.168.57.0
netmask 255.255.255.0
broadcast 192.168.57.255
--ココまで

(virgo) $ sudo vi /etc/network/interfaces.d/ens10
--ココから
auto ens10
iface ens10 inet static
address 192.168.57.139
network 192.168.57.0
netmask 255.255.255.0
broadcast 192.168.57.255
--ココまで

IPアドレスが付与されるか確認。(leo / virgo ともに同じ操作だ)
(leo) $ ip address show ens10
(leo) $ sudo ifup ens10
(leo) $ ip address show ens10

(virgo) $ ip address show ens10
(virgo) $ sudo ifup ens10
(virgo) $ ip address show ens10

OS 再起動して確認しよう。
(leo) $ sudo systemctl reboot
(virgo) $ sudo systemctl reboot
(leo) $ ip address show ens10
(virgo) $ ip address show ens10

IP アドレスの付与が出来たら、相互に ping を打って、疎通が取れることも確認しておく。
(leo) $ ping 192.168.57.139
(virgo) $ ping 192.168.57.138

今回はココまで。
次回は gemini / cancer に VLAN-ID 付きの仮想スイッチを作ってみる。

2017年6月12日月曜日

OpenvSwitch による VLAN 検証(概要)

さて、leo / virgo という仮想マシンが出来上がったところで、OpenvSwitch を用いた VLAN の検証をしてみたい。
と言っても、OpenvSwitch の癖がまだ掴めていないし、そもそも出来るのかどうかも不明。
イメージとしては、以下の図のように実装出来ると考えている。
スタート時の状態
(NIC は1つずつ)

仮想マシンに NIC を追加し、IPを付与。
これまで使っていた仮想スイッチにそのまま繋ぐ。

新しいIPアドレスで、仮想マシン同士の通信が可能

VLAN10 / VLAN20 のスイッチを作成し、既存スイッチへ接続
仮想マシンを VLAN10 経由に繋ぎ替える

同じ VLAN 同士なので通信できるはず

leo を VLAN10 から VLAN20 へ繋ぎ替える

異なる VLAN なので通信できないはず

virgo を VLAN20 へ繋ぎ替える

同じVLANになったので、また通信可能になる
はず

実は既に、最初の3枚分は実施している。
そんなに難しいことはやっていないので、次回から順番に書いていくことにする。