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に設定されています
次の設定を使用して問題を解決しました:
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つのネットワークインターフェイスを定義する必要があります。
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
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を有効にします。
また、これは上部に必要です
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