OpenNebula/ゲストOSのネットワークの設定
の編集
http://eucalyptus.linux4u.jp/wiki/index.php?OpenNebula%2F%E3%82%B2%E3%82%B9%E3%83%88OS%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AE%E8%A8%AD%E5%AE%9A
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
] [
リンク元
]
-- 雛形とするページ --
BracketName
Ceph/install
Ceph/memo
Ceph/mount
Ceph/概要
ChangeLog_v1.5.2
CloudStack
CloudStack/インストール方法
CloudStack/ネットワーク解説
CloudStack/ネットワーク設定
CloudStack/メモ
CloudStack/仮想マシン
CloudStack/初期設定
CloudStack/概要
Doc/EucalyptusImageManagement_v1.5.2
Documents
DynamicDNSGuide
Elasticfox
Euca2ools と EC2 Tools との違い
Euca2oolsCentosInstall
Euca2oolsGuide
Euca2oolsImageManagement
Euca2oolsInstallJaunty
Euca2oolsLennyInstall
Euca2oolsNetworking
Euca2oolsOpensuseInstall
Euca2oolsSourceInstall
Euca2oolsSqueezeInstall
Euca2oolsStorage
Euca2oolsUsing
Euca2oolsVmControl
Eucalyptus (OSS Elastic Computing) 日本語情報
Eucalyptus + Euca2ools + Elasticfox で作るプライベートクラウド環境
Eucalyptus - OSS Elastic Computing
Eucalyptus - Ubuntu 9.04 で作るプライベートクラウド環境
Eucalyptus 1.5.2
Eucalyptus 日本語情報 wiki - OSS Elastic Computing
Eucalyptus-Upgrade-1.6.1
Eucalyptus-Upgrade-1.6.2
EucalyptusAdministratorGuide_v1.5.2
EucalyptusAdministratorGuide_v1.6
EucalyptusAdvanced_v1.6
EucalyptusBlockStoreInteracting_v1.5.2
EucalyptusConfiguration_v1.5.2
EucalyptusFeatures_v1.5.2
EucalyptusGettingStarted_v1.5.2
EucalyptusImageManagement_v1.5.2
EucalyptusImageManagement_v1.6
EucalyptusInstall_v1.5.2
EucalyptusInstall_v1.6
EucalyptusInstallationCentos_v1.5.2
EucalyptusInstallationCentos_v1.6
EucalyptusInstallationDebianLenny_v1.5.2
EucalyptusInstallationDebianSqueeze_v1.5.2
EucalyptusInstallationDebianSqueeze_v1.6
EucalyptusInstallationOpensuse_v1.5.2
EucalyptusInstallationOpensuse_v1.6
EucalyptusInstallationUbuntuJaunty_v1.5.2
EucalyptusInstallationUbuntuJaunty_v1.6
EucalyptusKnownBugs_v1.5.2
EucalyptusKnownBugs_v1.5.2)
EucalyptusManagement_v1.5.2
EucalyptusManagement_v1.6
EucalyptusMonitoring_v1.6
EucalyptusNetworking_v1.5.2
EucalyptusNetworking_v1.6
EucalyptusOverview
EucalyptusPrerequisites_v1.5.2
EucalyptusRocksInstallation_v1.5.2
EucalyptusSourceCodeInstallation_v1.5.2
EucalyptusTroubleshooting_v1.5.2
EucalyptusTroubleshooting_v1.6
EucalyptusUpgrade_v1.5.2
EucalyptusUserGuide_v1.5.2
EucalyptusUserImageCreatorGuide_v1.5.2
EucalyptusWalrusInteracting_v1.5.2
FAQ
FormattingRules
FrontPage
Help
Hibari
Hibari/インストール
Hibari/データモデル
Hibari/データ操作
Hibari/特徴
InterWiki
InterWikiName
InterWikiSandBox
Links
MenuBar
OpenNebula/その他
OpenNebula/クラスタノードの構築
OpenNebula/ゲストOSのネットワークの設定
OpenNebula/ゲストOSの構築
OpenNebula/フロントエンドノードの構築
OpenNebula/仮想ネットワークの構築
OpenNebula/概要
OpenStack
PHP
Presentations
PressRelease/2010_Feb_9
PukiWiki
PukiWiki/1.4
PukiWiki/1.4/Manual
PukiWiki/1.4/Manual/Plugin
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/H-K
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/V-Z
RHEL5 にセットアップ(RPM)
RecentDeleted
RightScale
S3_Compatibility_1.5.2
SandBox
Scalaris/JSON APIの利用
Scalaris/Java-API用CLIツール
Scalaris/インストール方法
Scalaris/分散環境の設定
Scalaris/利用方法
Scalaris/概要
Sheepdog/インストール方法
Sheepdog/インストール方法(SL6)
Sheepdog/デザイン
Sheepdog/ユーザ会
Sheepdog/利用方法
Sheepdog/問題点
Sheepdog/概要
Swift/Rings
Swift/memo
Swift/インストール方法
Swift/サーバの起動とテスト
Swift/メッセージの流れ
Swift/使い方
Swift/概要
Swift/設定ファイルの作成
Swift/起動用スクリプトの作成
ToolsEcosystem
ToolsEcosystem_EC2Dream
ToolsEcosystem_Elasticfox
ToolsEcosystem_boto
ToolsEcosystem_cloud42
ToolsEcosystem_right_aws
ToolsEcosystem_s3cmd
ToolsEcosystem_s3fs
ToolsEcosystem_tAWS
ToolsEcosystem_typica
UEC/CDInstall
UEC/CreateYourImage
Ubuntu 9.04 Server Edition のダウンロード方法
Ubuntu Enterprise Cloud 入門
Ubuntu Enterprise Cloudで作るプライベートクラウド環境
Ubuntu/Eucalyptus
Ubuntu/Eucalyptus+bridge
Ubuntu/Eucalyptus+environment
Ubuntu/KVM
Ubuntu/libvirt
Ubuntu/ubuntu-vm-builder
UbuntuEnterpriseCloud
WikiEngines
WikiName
WikiWikiWeb
YukiWiki
backup-eucalyptus-16
configuration
first-time-setup-16
hypervisor-configuration
installation-distribution-specific-binary-packages
installing-eucalyptus-source-16
s3curl
sample-s3cmd-config
sample-s3cmd-config-s3
トラブル事例
*ゲストOSのネットワークの設定 [#mb382594] ゲストOSに、フロントエンドノードが割り当てたIPアドレスを設定するための方法を紹介します。~ ここでは新規に作成したイメージを使う場合を想定しています。 *イメージファイルの作成 [#w102190d] qemu-imgコマンドを使って空のイメージファイルを作成します。~ ここでは、ubuntu.imgという名前にしています。 # qemu-img create -f qcow2 ubuntu.img 30G 続いてqemuで起動し、イメージファイルにOSをインストールします。~ (Ubuntuインストーラのisoファイルは用意してあるものとします。) # qemu -boot d -cdrom ubuntu.iso ubuntu.img 後はインストーラに沿ってインストールを進めます。 *ネットワークの設定用スクリプト [#weee5d78] インストールの段階で静的にアドレスを設定しても良いですが、~ ゲストOSごとに違うイメージを毎回作るのも手間です。~ 同じイメージを使いまわせるように、 スクリプトを使ってMACアドレスから動的に設定します。~ このスクリプトはOpenNebulaが配布しているttylinuxで使われているものです。 #!/bin/bash # # chkconfig: 2345 10 90 # description: network reconfigure # # -------------------------------------------------------------------------- # # Copyright 2002-2009, Distributed Systems Architecture Group, Universidad # # Complutense de Madrid (dsa-research.org) # # # # Licensed under the Apache License, Version 2.0 (the "License"); you may # # not use this file except in compliance with the License. You may obtain # # a copy of the License at # # # # http://www.apache.org/licenses/LICENSE-2.0 # # # # Unless required by applicable law or agreed to in writing, software # # distributed under the License is distributed on an "AS IS" BASIS, # # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # # See the License for the specific language governing permissions and # # limitations under the License. # #--------------------------------------------------------------------------- # # Gets IP address from a given MAC mac2ip() { mac=$1 let ip_a=0x`echo $mac | cut -d: -f 3` let ip_b=0x`echo $mac | cut -d: -f 4` let ip_c=0x`echo $mac | cut -d: -f 5` let ip_d=0x`echo $mac | cut -d: -f 6` ip="$ip_a.$ip_b.$ip_c.$ip_d" echo $ip } # Gets the network part of an IP get_network() { IP=$1 echo $IP | cut -d'.' -f1,2,3 } get_interfaces() { IFCMD="/sbin/ifconfig -a" $IFCMD | grep ^eth | sed 's/ *Link encap:Ethernet.*HWaddr /-/g' } get_dev() { echo $1 | cut -d'-' -f 1 } get_mac() { echo $1 | cut -d'-' -f 2 } gen_hosts() { NETWORK=$1 echo "127.0.0.1 localhost" for n in `seq -w 01 99`; do n2=`echo $n | sed 's/^0*//'` echo ${NETWORK}.$n2 cluster${n} done } gen_exports() { NETWORK=$1 echo "/images ${NETWORK}.0/255.255.255.0(rw,async,no_subtree_check)" } gen_hostname() { MAC=$1 NUM=`mac2ip $MAC | cut -d'.' -f4` NUM2=`echo 000000$NUM | sed 's/.*\(..\)/\1/'` echo cluster$NUM2 } gen_interface() { DEV_MAC=$1 DEV=`get_dev $DEV_MAC` MAC=`get_mac $DEV_MAC` IP=`mac2ip $MAC` cat <<EOT DEVICE=$DEV BOOTPROTO=none HWADDR=$MAC ONBOOT=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=$IP EOT if [ $DEV == "eth0" ]; then echo " GATEWAY=$NETWORK.1" fi echo "" } IFACES=`get_interfaces` for i in $IFACES; do MASTER_DEV_MAC=$i DEV=`get_dev $i` MAC=`get_mac $i` IP=`mac2ip $MAC` NETWORK=`get_network $IP` done # gen_hosts $NETWORK > /etc/hosts # gen_exports $NETWORK > /etc/exports # gen_hostname $MAC > /etc/hostname ( cat <<EOT このスクリプトではMACアドレスの下位32bitからIPアドレスを生成しています。~ ルールとしては IPアドレスが10.0.0.1であればMACアドレスは00:03:0a:0:0:01のように、00:03以降にIPアドレスがそのまま入ります。~ (16進数で表示されるので10なら0aになる)~ OpenNebulaで割り当てられるゲストOSのMACアドレスも、 同様のルールでIPアドレスから生成されているため、~ このスクリプトを使用するとフロントエンドノードが割り当てた物と同じアドレスが使われます。 またnetmaskは255.255.255.0、デフォルトルートは同じネットワークの1番のアドレスが設定されます。~ こちらは使用する環境に合わせて、該当箇所を変える必要があります。 このスクリプトをゲストOS内の/etc/init.d/vmcontextttyとして保存し、 起動時に呼び出すように設定します。 *リンク [#h938071e] -[[ゲストOSの構築>OpenNebula/ゲストOSの構築]]~ -[[A VM with Context & Network 1.4>http://www.opennebula.org/documentation:rel1.4:vmg]]
タイムスタンプを変更しない
*ゲストOSのネットワークの設定 [#mb382594] ゲストOSに、フロントエンドノードが割り当てたIPアドレスを設定するための方法を紹介します。~ ここでは新規に作成したイメージを使う場合を想定しています。 *イメージファイルの作成 [#w102190d] qemu-imgコマンドを使って空のイメージファイルを作成します。~ ここでは、ubuntu.imgという名前にしています。 # qemu-img create -f qcow2 ubuntu.img 30G 続いてqemuで起動し、イメージファイルにOSをインストールします。~ (Ubuntuインストーラのisoファイルは用意してあるものとします。) # qemu -boot d -cdrom ubuntu.iso ubuntu.img 後はインストーラに沿ってインストールを進めます。 *ネットワークの設定用スクリプト [#weee5d78] インストールの段階で静的にアドレスを設定しても良いですが、~ ゲストOSごとに違うイメージを毎回作るのも手間です。~ 同じイメージを使いまわせるように、 スクリプトを使ってMACアドレスから動的に設定します。~ このスクリプトはOpenNebulaが配布しているttylinuxで使われているものです。 #!/bin/bash # # chkconfig: 2345 10 90 # description: network reconfigure # # -------------------------------------------------------------------------- # # Copyright 2002-2009, Distributed Systems Architecture Group, Universidad # # Complutense de Madrid (dsa-research.org) # # # # Licensed under the Apache License, Version 2.0 (the "License"); you may # # not use this file except in compliance with the License. You may obtain # # a copy of the License at # # # # http://www.apache.org/licenses/LICENSE-2.0 # # # # Unless required by applicable law or agreed to in writing, software # # distributed under the License is distributed on an "AS IS" BASIS, # # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # # See the License for the specific language governing permissions and # # limitations under the License. # #--------------------------------------------------------------------------- # # Gets IP address from a given MAC mac2ip() { mac=$1 let ip_a=0x`echo $mac | cut -d: -f 3` let ip_b=0x`echo $mac | cut -d: -f 4` let ip_c=0x`echo $mac | cut -d: -f 5` let ip_d=0x`echo $mac | cut -d: -f 6` ip="$ip_a.$ip_b.$ip_c.$ip_d" echo $ip } # Gets the network part of an IP get_network() { IP=$1 echo $IP | cut -d'.' -f1,2,3 } get_interfaces() { IFCMD="/sbin/ifconfig -a" $IFCMD | grep ^eth | sed 's/ *Link encap:Ethernet.*HWaddr /-/g' } get_dev() { echo $1 | cut -d'-' -f 1 } get_mac() { echo $1 | cut -d'-' -f 2 } gen_hosts() { NETWORK=$1 echo "127.0.0.1 localhost" for n in `seq -w 01 99`; do n2=`echo $n | sed 's/^0*//'` echo ${NETWORK}.$n2 cluster${n} done } gen_exports() { NETWORK=$1 echo "/images ${NETWORK}.0/255.255.255.0(rw,async,no_subtree_check)" } gen_hostname() { MAC=$1 NUM=`mac2ip $MAC | cut -d'.' -f4` NUM2=`echo 000000$NUM | sed 's/.*\(..\)/\1/'` echo cluster$NUM2 } gen_interface() { DEV_MAC=$1 DEV=`get_dev $DEV_MAC` MAC=`get_mac $DEV_MAC` IP=`mac2ip $MAC` cat <<EOT DEVICE=$DEV BOOTPROTO=none HWADDR=$MAC ONBOOT=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=$IP EOT if [ $DEV == "eth0" ]; then echo " GATEWAY=$NETWORK.1" fi echo "" } IFACES=`get_interfaces` for i in $IFACES; do MASTER_DEV_MAC=$i DEV=`get_dev $i` MAC=`get_mac $i` IP=`mac2ip $MAC` NETWORK=`get_network $IP` done # gen_hosts $NETWORK > /etc/hosts # gen_exports $NETWORK > /etc/exports # gen_hostname $MAC > /etc/hostname ( cat <<EOT このスクリプトではMACアドレスの下位32bitからIPアドレスを生成しています。~ ルールとしては IPアドレスが10.0.0.1であればMACアドレスは00:03:0a:0:0:01のように、00:03以降にIPアドレスがそのまま入ります。~ (16進数で表示されるので10なら0aになる)~ OpenNebulaで割り当てられるゲストOSのMACアドレスも、 同様のルールでIPアドレスから生成されているため、~ このスクリプトを使用するとフロントエンドノードが割り当てた物と同じアドレスが使われます。 またnetmaskは255.255.255.0、デフォルトルートは同じネットワークの1番のアドレスが設定されます。~ こちらは使用する環境に合わせて、該当箇所を変える必要があります。 このスクリプトをゲストOS内の/etc/init.d/vmcontextttyとして保存し、 起動時に呼び出すように設定します。 *リンク [#h938071e] -[[ゲストOSの構築>OpenNebula/ゲストOSの構築]]~ -[[A VM with Context & Network 1.4>http://www.opennebula.org/documentation:rel1.4:vmg]]
テキスト整形のルールを表示する