web-dev-qa-db-ja.com

KVM 2つのNICを備えたネットワークブリッジ

ご挨拶、

KVMでブリッジネットワークをセットアップしようとしていますが、どこにも行きません。このテーマに関するドキュメントとチュートリアルはありますが、すべて競合しているようです。または十分な情報が提供されていません。誰かが私にこれを機能させる方法の高レベルの概要を教えてくれるかどうか疑問に思っています。おそらく自分で詳細を確認できます(インターフェースの構成、ルートの追加など)。全体像についてヘルプが必要です:すべてがどのように相互接続されているか。

KVMがインストールされ、実行されているRHEL5サーバーがあります。同じVLANにeth0とeth1の2つの物理NICがあります。ゲストと残りのトラフィックの間のすべてのトラフィックにeth1を使用したいと思います。ネットワークと、可能であればホスト管理、ゲスト移行などのためにeth0を予約します。デフォルトルートを取得するのはどれかはわかりませんが、eth0にできればいいのですが、すべてのゲストに静的IPが割り当てられます。新しいゲストが追加されたとき、ネットワーク構成はゲスト自体からのみ設定する必要があることを望みます。

eth0:すべてのホストトラフィック
eth1:すべてのゲストトラフィック

これが不可能な場合、または扱いにくい/難しい場合は、他の提案を開いてください。既存のドキュメントへのポインタは役に立たない可能性があります。

助けてくれてありがとう。

更新

わかりました、ここに私がこれまでに持っているものがあります:

  • eth0は通常どおりに静的IPアドレスで構成されます。そこに驚きはありません。
  • br0はIPアドレスのないブリッジとして起動されます
  • eth1はIPアドレスなしで起動されます。 br0ブリッジに追加されます。
  • VMインスタンスはbr0を使用するように構成されており、静的IPアドレスが構成されています

この構成を使用すると、ゲストの内部から外部のマシンに接続できますが、ゲスト宛てのパケットは接続できません。これまでの私の設定は次のようになります。

# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=none
ONBOOT=YES

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Host-only interface
DEVICE=eth0
TYPE=Ethernet
HWADDR=00:23:7D:E1:1F:22
IPADDR=10.8.91.18
NETMASK=255.255.252.0
GATEWAY=10.8.91.254
BOOTPROTO=none
ONBOOT=yes

# cat /etc/sysconfig/network-scripts/ifcfg-eth1
# guest-only interface
DEVICE=eth1
TYPE=Ethernet
BRIDGE=br0
HWADDR=00:23:7d:e1:1f:26
BOOTPROTO=NONE
ONBOOT=YES

(virbr0 is the default kvm/libvirt NAT bridge, it's not being used here)
# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.00237de11f26       no              vnet0
                                                        eth1
virbr0          8000.000000000000       yes

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.122.0   *               255.255.255.0   U     0      0        0 virbr0
10.8.88.0       *               255.255.252.0   U     0      0        0 eth0
169.254.0.0     *               255.255.0.0     U     0      0        0 eth0
default         10.8.91.254     0.0.0.0         UG    0      0        0 eth0

ゲストのlibvirt XML定義の関連セクションは次のとおりです。

<interface type='bridge'>
  <mac address='54:52:00:76:94:73'/>
  <source bridge='br0'/>
</interface>

アップデート2

さて、私はすべて準備ができていると思います。私のゲストOS(私が慣れていないSLES 11)にはデフォルトでかなり制限されたファイアウォールルールのセットがあるという事実に私はつまずきました。ファイアウォールが空になったら、接続を出し入れできます。

5
Eil

NICの上にブリッジを設定する方法を知っていると思います。基本的に必要なのは、2つのNIC上に2つのブリッジを設定し、VMを起動して適切なブリッジに接続することだけです。考えてみてください。NICの1つは、ゲストが使用する必要がないため、ブリッジなしで残すことができます。

それは私がそれを見る方法の問題の一般的な説明でした。あなたが今までにやったことを見せていただけますか。もちろん、間違いがあれば、私たちはあなたが犯した間違いを見つけて見つけることができます。

0
dyasny

サーバーOSとしてubuntu 12.04.02を使用した同様のシナリオがあります。
現在1人のゲストがCentOSを実行しています。
サーバーには4つのNICがあり、サーバーに対してのみeth0を実行し、ストレージへのiSCSIにはeth1を使用し、ゲストにはeth2とeth3を使用します。
Eth0、eth2、eth3は同じLANに接続します。

しかし、インターフェイスの設定方法を正しく理解したかどうかはわかりません。
これまでに見つけた説明は、サーバー内の1 NIC)のみを扱っています。

現在、dhcpサーバーで固定予約を使用しているため、eth0をdhcpIPで構成しました。
私のeth2へのブリッジの名前はbr2です

Eth2とbr2を次のように構成しました

auto  eth2  
iface eth2 inet manual  

auto  br2  
iface br2 inet manual  
  bridge_ports   eth2  
  netmask   255.255.255.0  
  network   192.168.168.0  
  gateway   192.168.168.1  
  broadcast 192.168.168.255  
  bridge_stp     off  
  bridge_fd      0  
  bridge_maxwait 0  

そして

 brctl addif br2 eth2  

インターフェイスeth2とbr2は、期待どおりIPなしで起動されます。
その後、ゲストはdhcpを使用してアドレスも要求します。

1
user167328