web-dev-qa-db-ja.com

proxmox KVM複数のパブリックIPを持つルーティングされたネットワーク

Hetznerとの専用ホスティングを利用しています。さらに、6IPサブネットを購入しました。

私のメインIPは148.111.111.200です。私のメインサブネットは255.255.255.224です。

追加のIPは148.222.222.1から148.222.222.6です。

私の使用シナリオは次のとおりです。いくつかのインスタンスにはパブリックIP(Webサーバーなど)があります。すべてのインスタンスに内部LANの2番目のNICセットアップがあるため、MySQLサーバー、memcachedなどをプライベートネットワーク上で外部からロックできます。

ウェブサーバーは148.222.222.1でオンラインになり、2番目のNIC with ip 10.10.10.10

現在、内部LANをセットアップしています。すべてのインスタンスは内部IP(10.10.10.X)を介して相互に接続およびpingできますが、Webサーバーがインターネットにアクセスできません。

Hetznerは同じ外部IPで複数のMACを許可しないため、ブリッジモードを使用できないため、ルーティングモードを使用する必要があります。これがホストの/ etc/network/interfacesファイルです。

# network interface settings
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static

    address  148.111.111.200
    netmask  255.255.255.255
    pointopoint 148.111.111.193
    gateway  148.111.111.193
    broadcast  148.111.111.223
    post-up echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
#commentedout
    #up route add -net 148.111.111.192 netmask 255.255.255.224 gw 148.111.111.193 eth0


    # default route to access subnet

auto vmbr0
iface vmbr0 inet static

    address  148.111.111.200
    netmask  255.255.255.255
    bridge_ports none
    bridge_stp off
    bridge_fd 0

    up ip route add 148.222.222.1/32 dev vmbr0
    up ip route add 148.222.222.2/32 dev vmbr0

auto vmbr1
iface vmbr1 inet static

    address 10.10.10.1
    netmask 255.255.255.0
    bridge_ports none
    bridge_stp off
    bridge_fd 0

    post-up echo 1 > /proc/sys/net/ipv4/ip_forward
    post-up   iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eth0 -j MASQUERADE
    post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eth0 -j MASQUERADE

auto vmbr2
iface vmbr2 inet static

    address  148.222.222.1
    netmask  255.255.255.248
    bridge_ports none
    bridge_stp off
    bridge_fd 0

そしてここに私のkvmインターフェースファイルがあります:

auto eth0
iface eth0 inet static
    address 148.222.222.1
    netmask 255.255.255.255
    pointopoint 148.111.111.200
    gateway 148.111.111.200
    dns-nameservers 8.8.8.8 8.8.4.4

auto eth1
    address 10.10.10.12
    netmask 255.255.255.0
    network 10.10.10.0
    broadcast 10.10.10.255

現在、KVMインスタンスは別のpingを実行できますが、他には何も機能しませんホストはインスタンスをpingできますが、他には何も実行できません。また、インスタンスでインターネットにアクセスできません。

これが機能するために、構成で何を変更する必要がありますか?.

追伸NIC typeはproxmoxでvirtioに設定されています

4
Sibin Grasic

次の設定を使用して問題を解決しました:

auto eth0
iface eth0 inet static
    address  148.111.111.200
    netmask  255.255.255.255
    pointopoint 148.111.111.193
    gateway  148.111.111.193
    broadcast  148.111.111.193

# default route to access subnet

auto vmbr0
iface vmbr0 inet static
    address  148.111.111.200
    netmask  255.255.255.255
    bridge_ports none
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0

    #subnet
    up ip route add 148.222.222.0/32 dev vmbr0
    up ip route add 148.222.222.1/32 dev vmbr0
    up ip route add 148.222.222.2/32 dev vmbr0
    up ip route add 148.222.222.3/32 dev vmbr0
    up ip route add 148.222.222.4/32 dev vmbr0
    up ip route add 148.222.222.5/32 dev vmbr0
    up ip route add 148.222.222.6/32 dev vmbr0
    up ip route add 148.222.222.7/32 dev vmbr0

auto vmbr1
iface vmbr1 inet static
    address 10.10.10.1
    netmask 255.255.255.0
    bridge_ports none
    bridge_stp off
    bridge_fd 0

    post-up echo 1 > /proc/sys/net/ipv4/ip_forward
    post-up   iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eth0 -j MASQUERADE
    post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eth0 -j MASQUERADE

クライアントマシンで、1つまたは2つのネットワークインターフェイスを定義する必要があります。

  • VMBR0(パブリックIP)用に1つ
  • VMBR1用に1つ(プライベートIP-10.10.10.X)

Ubuntuのサンプル設定/ etc/network/interfaces

#vmbr0
auto eth0
iface eth0 inet static
  address 148.222.222.1
  netmask 255.255.255.255
  pointopoint 148.111.111.200
  gateway 148.111.111.200 #public IP for the proxmox node
  dns-nameservers 8.8.8.8 8.8.4.4

#vmbr1
auto eth1
iface eth1 inet static
  address 10.10.10.20
  netmask 255.255.255.0
  network 10.10.10.0
  broadcast 10.10.10.255
3
Sibin Grasic

Vmbr0の構成を見ると、インターフェイスが到達できないデバイス(つまり、ネットマスクがインターフェイスのネットワーク到達範囲外に置くデバイス)にルーティングをポイントしているようです。

設定を深く掘り下げることなく、次の提案を行って、現在および将来のセットアップを簡素化します。

  • Create a VM that will act as your UTM(おそらくpfsense、vyatta、astaro、zentyal、clearos、untangleなどを実行しています)。これにより、ゲートウェイ(および冗長ゲートウェイ)の役割を果たす1つまたは2つのノードのみの接続について心配することができます。次に、すべてのルーティングとアクセスロジックがこのUTM VM内で発生します。私はこれをpfsenseとzentyalの両方で成功させました
  • Proxmox VE 3.2 now works with openvswitch、その上に配置してみてください。これにより、ebtablesルールとiptablesルールの内部を深く掘り下げることなく、ネットワークスタックの管理が容易になります。

また、eth {0,1}インターフェースとその上にあるブリッジの両方でネットワークを構成しています。通常、eth {0,1}インターフェースから構成を削除し、ブリッジインターフェースでのみネットワークを構成することをお勧めします。

ホストからインターフェース構成の詳細を取り除き、UTMへのネットワーク間のルーティングを制御する次の方法についてはどうですかVM ..:


auto eth0
iface eth0 inet manual

auto eth1
iface eth1 inet manual

auto vmbr0
iface vmbr0 inet manual
    bridge_ports eth0
    bridge_stp off
    bridge_fd 0

auto vmbr1
iface vmbr1 inet manual
    bridge_ports eth0
    bridge_stp off
    bridge_fd 0

auto vmbr2
iface vmbr2 inet static
    address  10.10.10.12
    netmask  255.255.255.0
    gateway  10.10.10.1
    bridge_ports eth1
    bridge_stp off
    bridge_fd 0

明らかに、ホストへの接続が問題である場合は、vmbr0またはvmbr1を変更して、ホストのIPを追加する必要があります。基本的な考え方は、VM間のネットワークルーティングでホストに負担をかけず、専用のVMこれらの詳細に注意してください

この設定を使用すると、UTM VMが強力になり、外部からアクセス可能なIPアドレスに対してホスト転送ルーティングを使用できるようになります。このシナリオでは、クラスターでproxmoxを実行することをお勧めします(2ノードのクラスターでも)、UTM VMのHAを有効にします。

0
Chux Uzoeto

また、これは上部に必要です

auto lo

iface lo inetループバック

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address  148.111.111.200
    netmask  255.255.255.255
    pointopoint 148.111.111.193
    gateway  148.111.111.193
    broadcast  148.111.111.193

# default route to access subnet

auto vmbr0
iface vmbr0 inet static
    address  148.111.111.200
    netmask  255.255.255.255
    bridge_ports none
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0

    #subnet
    up ip route add 148.222.222.0/32 dev vmbr0
    up ip route add 148.222.222.1/32 dev vmbr0
    up ip route add 148.222.222.2/32 dev vmbr0
    up ip route add 148.222.222.3/32 dev vmbr0
    up ip route add 148.222.222.4/32 dev vmbr0
    up ip route add 148.222.222.5/32 dev vmbr0
    up ip route add 148.222.222.6/32 dev vmbr0
    up ip route add 148.222.222.7/32 dev vmbr0

auto vmbr1
iface vmbr1 inet static
    address 10.10.10.1
    netmask 255.255.255.0
    bridge_ports none
    bridge_stp off
    bridge_fd 0

    post-up echo 1 > /proc/sys/net/ipv4/ip_forward
    post-up   iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eth0 -j MASQUERADE
    post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eth0 -j MASQUERADE
0
Bahaa Odeh