web-dev-qa-db-ja.com

Xenのインターフェース(eth0からpeth0)の仮想化を構成するにはどうすればよいですか?

しばらく前にXenをインストールしましたが、まだハイパーバイザーで起動していませんでした。さて私は昨日やった、そしてすべての地獄は解き放たれた。 Xenが原因で、サーバーのインターネット接続が完全に失われました。

サーバーを起動し、eth0br0の内部にない場合、Xenはサーバーの名前をpeth0(物理的なeth0)に変更して仮想化しようとします。 veth0(仮想eth0)を作成し、少なくとも Xenドキュメント に従って、名前をeth0に変更します。

問題は、それがeth0を表示せず、インターネット接続がまったくないままになっていることです。サーバーにeth1があり、そのインターフェースを仮想化したいと思います代わりにeth0。これを行うために、eth1br0内に配置しました。br0virbr0に仮想化されています。 Xenによるeth0の仮想化を停止し、代わりにbr0/eth1を使用するにはどうすればよいですか?

これが私がsystemctl -o cat status network.serviceから得たものです:

Bringing up lookback interface:  [  OK  ]
Bringing up interface eth0:  Error: either "dev" is a duplicate, or "virbr0" is a garbage.
ERROR    : [/etc/sysconfig/network-scripts/ifup-eth] Failed to bring up peth0 virbr0.
[FAILED]
Bringing up interface eth1:  [  OK  ]
Bringing up interface br0:  [  OK  ]

2行目のその文法が大好きです(これは間隔まで逐語的です)。

virbr0はlibvirtによって直接処理されます。これは、 このメッセージ への応答のいずれかから/etc/libvirt/qemu/networksから構成されていることがわかります。

2
NobleUplift

これを修正するために、私はこれらを変更しました:

(network-script 'network-bridge bridge=virbr0')
(vif-script vif-bridge)

これらに:

(network-script 'network-bridge bridge=virbr0 netdev=eth1')
(vif-script     vif-nat)

/etc/xen/xend-config.sxpをそのままにして、eth0の名前をeth1に変更するだけの、peth1では、veth1/eth1内にあるため、br0は表示されないと思います。次に、ifcfg-em1/ifcfg-em2の名前をifcfg-eth0/ifcfg-eth1に変更し、次のように変更しました。

IPADDR0=xxx.xxx.xxx.xxx
PREFIX0=xx
GATEWAY0=xxx.xxx.xxx.xxx
DNS1=xxx.xxx.xxx.xxx

に:

IPADDR=xxx.xxx.xxx.xxx
PREFIX=xx
GATEWAY=xxx.xxx.xxx.xxx
DNS=xxx.xxx.xxx.xxx

これにより、インターネットとローカルホストが返されました。

この経験の最も良い部分が何であったか知っていますか? NetworkManagerを永続的に無効のままにしておくことができます。

1
NobleUplift

答えはあなたが提供したリンクに含まれています: ブリッジネットワークの設定

XEN 4.1より前は、ネットワークブリッジングを設定するXENの役割がありました。

その後、対応するブリッジをOS手段でセットアップする必要があります。

ただし、XEN-Startup中にブリッジが定義されていない場合は、デフォルトのブリッジが作成されます(以前の動作と比較して)。

Default-scriptsではカバーできない非常に複雑なボンディング/ VLANの組み合わせがあるため、これをXEN-controlの外に置くのには十分な理由があります。また、ネットワークスタックはOSごとに異なります。

SLES10SP4でも同様の問題が発生しました。非常に複雑なネットワーク設定が必要でした。

そこで、/ etc/init.d /に独自のinit-scriptを設定して、ブリッジング/ボンディング/ VLANを設定しました。

SLES11 SP2では、それは簡単なことであり、OSでセットアップすることで可能でした-yast2-コマンド。

これにより、XENDが開始する前にブリッジが稼働します。

このような何かがあなたのために働くかもしれません:

XENBRIDGE=/etc/xen/scripts/network-bridge
$XENBRIDGE bridge=br0 netdev=eth1 start

FedoraはRHEL6に匹敵するはずです-したがって、おそらく network-setup-document を使用して、代わりにブリッジ構成を通常のnetwork-setupに統合することができます(これはこれを行うためのより良い方法です)。

2
Nils