序文
昔々、Xenハイパーバイザーサーバーがあり、仮想マシンを回転させ、ネットワークを介してトラフィックを駆動していましたが、何も考えていませんでした。
ネットワークは、eth0と仮想インターフェイスを組み合わせたxenbr0を介して生きていました。
eth0に加えて、サーバー上に別のインターフェースeth1がありました。 不要なものとして使用されませんでした。
そして、ルーターの死に関連して-管理者はeth1ネットワークを介してLANを開始することにしました。
考え直すことなく、彼はeth1を上げ、プロバイダーのコードを貼り付け、バイトが流れました-よく...
しかし、ひどいことが起こりました-再起動します。 再起動後、xenbr0は立ち上がりを完全に拒否し、ppp0インターフェイスがビジーであることを説明しました...
「ppp0が何に関係しているのか」とあなたは考え、あなたは正しいでしょう。
管理者も同じことを考えました。 そして、彼はマナを読み始め、Xenovの台本を読みました。
それは周りをうろついているものです
Xenのネットワークレイアウトはドアと同じくらい簡単です。
起動時に、xendはスクリプト(デフォルトでは-/ etc / xen / scripts / network-bridge)をプルします。これは次のことを行います。
1. xenbr0ブリッジを作成します
2.物理的なeth0を消滅させます
3.物理eth0のIPとMACをveth0仮想インターフェイスにコピーします
4.物理eth0の名前をpeth0に変更します
5.仮想veth0はeth0の名前を変更します
6. peth0とvif0.0はxenbr0にしがみついています
7. xenbr0、peth0、eth0、vif0.0を発生させます
これは理論上です。 実際には、何らかの理由で、スクリプトはppp0ですべてのアクションを実行しようとしました。
これは、デフォルトでスクリプトがデフォルトルートを持つインターフェイスで動作するために発生します。
良い開発者はこれを構想しています-/ etc / xen / scripts / network-bridgeはパラメータで開始できます。
このようなもの:
/etc/xen/scripts/network-bridge start bridge=xenbr0 netdev=eth0
つまり、作業に使用するインターフェイスを設定するのは困難です。 そして、何らかの理由で私のスクリプトは自分でeth0を消すことを拒否しました-私は手で彼を助けなければなりませんでした...
上記に基づいて、問題の解決策は非常に簡単でした。
練習する
煮るeth0
ifconfig eth0 down
構成可能なブリッジ
/etc/xen/scripts/network-bridge start bridge=xenbr0 netdev=eth0
橋を上げる(何らかの理由でスクリプトがそうしなかった)
ifconfig xenbr0 up
すべて、仮想マシンからのバイトはローカルネットワークとインターネットに送られました。