Help us understand the problem. What is going on with this article?

VirtualBoxとCentOSでOpenVNetのテスト環境をつくったときのまとめ

More than 3 years have passed since last update.

今回行うこと

  • NATに対しポートフォワーディングの設定によりWindowsからSSHで接続できるようする。
  • ホストオンリーネットワークを各マシンに追加する。
  • ホストオンリーネットワーク間でルーティングがされるようにする。
  • OpenVNetを動かすために必要な設定を行う。

背景

OpenVNetとは仮想ネットワークを構築するソフトウェアです。このOpenVNetではマシン間の通信に同一ネットワーク上のマシン間で使うMAC2MACとL3スイッチをまたいでつながる二つのネットワーク間で使うGREトンネルの2種類の方法を使います。そのために、CentOS3台のマシンとMAC2MAC、GREトンネルの二つの通信を試すことのできるネットワークを無料で用意できる環境を探し、その結果VirtualBoxを使用することにしました。

概要

VirtualBoxでCentOS6.7の仮想マシン4台を用意し、下図のようにOpenVNetを動作させるために必要となるネットワークをホストオンリーネットワークで3つ(黒線)、CentOSがインターネットに接続する&ホストマシンのWindowsからSSHで接続するためにつかうNAT接続を1つ(緑線)の計4つのネットワークを設定していきます。

VB.png

準備

Windows(64bit) 32bit環境ではOpenVNetは2015/9/29現在は動きません
VirtualBoxをダウンロード・インストール
CentOS-6.7-x86_64-bin-DVD1.iso & CentOS-6.7-x86_64-bin-DVD2.iso または CentOS-6.7-x86_64-minimal.isoをダウンロード

VirtualBox

ネットワークの生成

VirtualBoxを立ち上げると出てくるOracle VM VirtualBoxマネージャーで
1. ファイル→環境設定をクリック
2. ネットワーク→ホストオンリーネットワーク→プラスマークのついているアイコンをクリック
3. VirtualBox Host-Only Ethernet Adapter #2が作られたことを確認
4. 同じようにプラスマークをクリックしVirtualBox Host-Only Ethernet Adapter #3が作成されたことを確認
5. それぞれのネットワークを選択してドライバーアイコンをクリックしIPアドレスを確認

私の設定ではそれぞれのIPアドレスが
VirtualBox Host-Only Ethernet Adapter  :192.168.56.1
VirtualBox Host-Only Ethernet Adapter #2:192.168.125.1
VirtualBox Host-Only Ethernet Adapter #3:192.168.198.1
になっています。

仮想マシンの作成

Oracle VM VirtualBoxマネージャーで仮想マシン4台を作ります。
1. 新規をクリック
2. 名前をVM0~3で作成(任意のものでよい)
3. タイプをLinux、バージョンをRed Hat(64bit)を選択
4. 残りの項目はすべて次へをクリックして問題ありません。

仮想マシンへのネットワークの設定

各仮想マシンのネットワークの設定を上図のようになるよう構築していきます。

以下の作業を各マシンで行います。
1. 仮想マシンを右クリックし設定をクリックします。
2. ネットワークを選択し、アダプタ1~3を選択で以下の作業を行います。
3. ネットワークアダプタを有効化にチェックを入れて、割り当て名前を以下のように設定していきます。

マシン アダプター 割り当て 名前
VM0 アダプター1 NAT
VM0 アダプター2 ホストオンリーアダプター VirtualBox Host-Only Ethernet Adapter
VM0 アダプター3 ホストオンリーアダプター VirtualBox Host-Only Ethernet Adapter #2
VM1 アダプター1 NAT
VM1 アダプター2 ホストオンリーアダプター VirtualBox Host-Only Ethernet Adapter
VM1 アダプター3 ホストオンリーアダプター VirtualBox Host-Only Ethernet Adapter #3
VM2 アダプター1 NAT
VM2 アダプター2 ホストオンリーアダプター VirtualBox Host-Only Ethernet Adapter   
VM2 アダプター3 ホストオンリーアダプター VirtualBox Host-Only Ethernet Adapter #3
VM3 アダプター1 NAT
VM3 アダプター2 ホストオンリーアダプター VirtualBox Host-Only Ethernet Adapter #2
VM3 アダプター3 ホストオンリーアダプター VirtualBox Host-Only Ethernet Adapter #3
  1. アダプター1の高度→ポートフォワーディングをクリック
  2. SSH接続のため、各マシンでホストポートの値が被らないよう以下のように設定をしていきます マシン0
名前 プロトコル ホストIP ホストポート ゲストIP ゲストポート
Rule 1 TCP   2220   22

VM1

名前 プロトコル ホストIP ホストポート ゲストIP ゲストポート
Rule 1 TCP   2221   22

VM2

名前 プロトコル ホストIP ホストポート ゲストIP ゲストポート
Rule 1 TCP   2222   22

VM3

名前 プロトコル ホストIP ホストポート ゲストIP ゲストポート
Rule 1 TCP   2223   22

これでWindowsからSSHもできるようになったと思います。

ssh -p <2220~2223> root@localhost

各マシンに入ったらSELINUXを切ります。

vi /etc/selinux/config

SELINUX=disabled

OpenVNet

ルーター

VM0を192.168.56.0と192.168.125.0間のルーターとして動作するよう設定します。
eth1の設定

vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1
HWADDR=<既に設定されている値>
TYPE=Ethernet
#UUID=<既に設定されている値>
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.56.254
NETMASK=255.255.255.0

eth2の設定

vi /etc/sysconfig/network-scripts/ifcfg-eth2

DEVICE=eth2
HWADDR=<既に設定されている値>
TYPE=Ethernet
#UUID=<既に設定されている値>
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.125.254
NETMASK=255.255.255.0

ルータの機能を有効にします

echo 1 >/proc/sys/net/ipv4/ip_forward
vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

仮想マシン

VM1~VM3の設定を行っていきます。
各マシンのeth0の設定を行います。

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=<既に設定されている値>
TYPE=Ethernet
UUID=<既に設定されている値>
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

各マシンのeth1の設定を行います。

vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1
HWADDR=<既に設定されている値>
DEVICETYPE=ovs
TYPE=OVSPort
#UUID=<既に設定されている値>
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
OVS_BRIDGE=br0

各マシンのeth2の設定を行います。

vi /etc/sysconfig/network-scripts/ifcfg-eth2

DEVICE=eth2
HWADDR=<既に設定されている値>
TYPE=Ethernet
#UUID=<既に設定されている値>
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=<各マシンのIPアドレス>
NETMASK=255.255.255.0

各マシンのIPアドレスは

マシン名 eth2
VM1 192.168.198.10
VM2 192.168.198.11
VM3 192.168.198.12

各マシンでbr0を作成します

vi /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
DEVICETYPE=ovs
TYPE=OVSBridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=<各マシンのIPアドレス>
NETMASK=255.255.255.0
HOTPLUG=no
OVS_EXTRA="
 set bridge     ${DEVICE} protocols=OpenFlow10,OpenFlow12,OpenFlow13 --
 set bridge     ${DEVICE} other_config:disable-in-band=true --
 set bridge     ${DEVICE} other-config:datapath-id=<各マシンのdatapath-id> --
 set bridge     ${DEVICE} other-config:hwaddr=<各マシンのMACアドレス> --
 set-fail-mode  ${DEVICE} standalone --
 set-controller ${DEVICE} tcp:127.0.0.1:6633
"

各マシンのIPアドレスは

マシン名 IPアドレス datapath-id MACアドレス IPアドレス
VM1 192.168.198.10 0000020100000001 02:01:00:00:00:01 192.168.56.10
VM2 192.168.198.11 0000020100000002 02:01:00:00:00:02 192.168.56.11
VM3 192.168.198.12 0000020100000003 02:01:00:00:00:03 192.168.125.10

を設定します。
datapath-idとMACアドレスはマシン間で被らなければ任意の値で問題ありません。

OpenVNetインストール

インストールマニュアルを参考に必要なもののインストールを行っていきます。
http://openvnet.org/installation/

curl -o /etc/yum.repos.d/openvnet.repo -R https://raw.githubusercontent.com/axsh/openvnet/master/deployment/yum_repositories/stable/openvnet.repo

curl -o /etc/yum.repos.d/openvnet-third-party.repo -R https://raw.githubusercontent.com/axsh/openvnet/master/deployment/yum_repositories/stable/openvnet-third-party.repo

yum install -y epel-release

さらに

yum install -y openvnet

Error: Package: kmod-openvswitch-2.3.1-1.el6.x86_64 (openvnet-third-party)
           Requires: kernel(openvswitch_handle_frame_hook) = 0xbe03eb4d

とでて失敗します。
ここはCentOS6.6ではマニュアルのままで成功する環境もありました。
そこで、こちら
https://github.com/mao172/ovs-installer
のovs-installerをお借りしてみます。

curl -L https://raw.githubusercontent.com/mao172/ovs-installer/master/install.sh | bash -s -- -v 2.3.1

そこでもう一回

yum install -y openvnet

をすると成功します。

続いて、

yum install -y mysql-server redis

これでインストールは終了です。

ルーティング

ネットワークの再起動を行います。

service network restart

VM1~VM3のルーティングテーブルに設定を追加します。

# VM1、VM2
route add -net 192.168.125.0/24 gw 192.168.56.254 br0

# VM3
route add -net 192.168.56.0/24 gw 192.168.125.254 br0

iptables

本当は適切なポートを開けるべきなのでしょうがとりあえずVM0~VM3のiptables を停止させておきます。

iptables -F

動作確認

VM1-VM3間及びVM2-VM3間でpingを打って届くか確認しましょう。

VM1からpingを打つ場合

ping 192.168.125.10

そしてルーター上を通過しているか確認しましょう

ルーターマシン上で

tcpdump -i eth1

これでpingが飛んで行ってることを確認できれば成功です。

DBへの作るネットワークの設定の登録とLXCの設定を行えばOpenVNetが動作するようになります。

GREトンネルとMAC2MACを使ったOpenVNetの設定はこっちに書きました

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした