Xen 4.6とUbuntu 16.04間のブリッジネットワークの問題

Xen 4.6とUbuntu 16.04間のブリッジネットワークの問題

Ubuntu 16.04およびXen 4.6でXen仮想化を設定しようとしています。

私の計画は、1つのプライベートネットワークと外部からアクセスでき、プライベートネットワークに接続する必要があるパブリックIPアドレスを持つ仮想サーバーを保持することです。私のホスティングプロバイダは4つの追加のパブリックIPを提供します。

これを行うために、2つのブリッジを設定しました。

# brctl show
bridge name     bridge id               STP enabled     interfaces
xenbr0          8000.0025907784d4       no              eth0
                                                        vif3.0
                                                        vif3.0-emu
xenbr1          8000.36829b44377f       no              dummy0
                                                        vif3.1
                                                        vif3.1-emu

xenbr0にはパブリック静的IPがあり、xenbr1にはプライベートIP(192.168.122.1)があります。

次に、次のように仮想マシンを構成しました。

vif=[
 'ip=<virtual server public ip>,mac=02:00:00:c1:fb:49,bridge=xenbr0',
 'ip=192.168.122.6,mac=00:16:3E:59:FC:39,bridge=xenbr1'
 ]

192.168.122.6アドレスに正しく接続でき、コンピュータは192.168.122.1ゲートウェイを介してインターネットにアクセスするように正しく設定されています。だからそこではすべてが大丈夫です。

その後、仮想サーバーの/etc/network/interfacesにパブリックIPを追加しました。

auto eth0
iface eth0 inet static
    address <public ip>
    netmask 255.255.255.255
    network <public ip substituting .0 at the end>
    broadcast <public ip>
    hwaddress ether 02:00:00:c1:fb:49

および内部ネットワーク(ゲートウェイを含む)

iface eth1 inet static
        address 192.168.122.6
        netmask 255.255.255.0
        network 192.168.122.0
        broadcast 192.168.122.255
        gateway 192.168.122.1

これでパスは次のようになります。

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.122.1   0.0.0.0         UG    0      0        0 eth1
192.168.122.0   *               255.255.255.0   U     0      0        0 eth1

明らかに、サーバー自体からIPをpingできますが、外部またはxenサーバー自体からは接続できません。

私は何が間違っていましたか?

答え1

私のエラーは、プライベートネットワークを介してすべてのトラフィックをルーティングし、eth1 - xenbr1 - dummy0を通過するようです。 eth1 はプライベートネットワークでのみ使用でき、eth0 は通常のトラフィックに使用されます。

したがって、仮想マシンの eth1 から /etc/network/interfaces のゲートウェイを削除します。

iface eth1 inet static
        address 192.168.122.6
        netmask 255.255.255.0
        network 192.168.122.0
        broadcast 192.168.122.255

そして、ホストとホストゲートウェイへの固定パスを含めるようにeth0を変更します(これを簡単にするために、個別に2つのIPではなくフルスコープに対してこれを行うことができると確信しています)。

iface eth0 inet static
    address 129.x.x.199
    netmask 255.255.255.0
    broadcast 129.x.x.199
    up route add 23.x.x.94 dev eth0
    up route add 23.x.x.254 dev eth0
    up route add default gw 23.x.x.94
    down route del default gw 23.x.x.254
    down route del 23.x.x.94 dev eth0
    down route del 23.x.x.254 dev eth0

また、この定義からゲートウェイ定義を削除しました。静的ルートが追加されるまでゲートウェイに接続できませんでした(これによりネットワークを起動できなくなりました)。

これで、すべてのインターネットトラフィックはeth0-xenbr0-eth0ブリッジを介してルーティングされ、プライベートトラフィックはeth1-xenbr1-dummy0を介してルーティングされます。

最終ルーティングテーブルは次のとおりです。

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         23.x.x.254 0.0.0.0         UG    0      0        0 eth0
23.x.x.94 *               255.255.255.255 UH    0      0        0 eth0
23.x.x.254 *               255.255.255.255 UH    0      0        0 eth0
129.0.0.0   *               255.255.255.0   U     0      0        0 eth0
192.168.122.0   *               255.255.255.0   U     0      0        0 eth1

助けてくれたgarethTheRedに感謝します!

関連情報