特定のIPへのトラフィックをKVMゲストに転送する


2

5つのパブリックIPアドレスを持つDebian 7サーバーがあります。サーバーには、いくつかのKVMゲスト(すべてDebian 8)があります。ゲストの1人は、パブリックIPの1つを使用してパブリックにアクセスできる必要があります。これにはIPアドレスが192.168.122.133あり、他のすべてのゲストには範囲内のIPがあります192.168.122.50/28

現在、ゲストが相互に通信できるように設定していますが、外部からの着信接続と発信接続は、パブリックにアクセスする必要があるゲストとは失敗します(ローカルネットワークからの接続のみ)。

これらは、このゲストとの間で送受信されるすべてのトラフィックを転送することになっていると私が信じているルールですが、それはすべきことをしていないようです:

/sbin/iptables -t nat -I PREROUTING -d 111.111.111.133 -j DNAT --to 192.168.122.133
/sbin/iptables -t nat -I POSTROUTING -s 192.168.122.133 -j SNAT --to 111.111.111.133
/sbin/iptables -t filter -I FORWARD -d 192.168.122.133 -j ACCEPT
/sbin/iptables -t filter -I FORWARD -s 192.168.122.133 -j ACCEPT

以前はこれを設定していて、ある時点で正常に動作していたと思いますが、何かを変更したか、何らかのシステム更新が何かを変更した可能性があり、現在は動作していません。

詳細:

KVMネットワークが構成されます。

<network>
  <name>default</name>
  <uuid>261764e8-ef0c-dc57-90b5-4c356ae12bf1</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0' />
  <mac address='52:54:00:77:D9:2B'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254' />
    </dhcp>
  </ip>
</network>

また、ゲストネットワークの構成は次のようになります。

<interface type='network'>
  <mac address='52:54:00:61:d9:ba'/>
  <source network='default'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

ホストサーバー上の/ etc / network / interfacesは次のとおりです。

# The loopback network interface
auto lo

auto eth3
auto eth3:0
auto eth3:1
auto eth3:2
auto eth3:3

iface lo inet loopback

# The primary network interface
allow-hotplug eth3
iface eth3 inet static
        address 111.111.111.130
        netmask 255.255.255.248
        network 111.111.111.128
        broadcast 111.111.111.135
        gateway 111.111.111.129
        dns-nameservers 8.8.8.8 8.8.4.4 127.0.0.1

iface eth3:0 inet static
    address 111.111.111.131
    netmask 255.255.255.248

iface eth3:1 inet static
    address 111.111.111.132
    netmask 255.255.255.248

iface eth3:2 inet static
    address 111.111.111.133
    netmask 255.255.255.248

iface eth3:3 inet static
    address 111.111.111.134
    netmask 255.255.255.248

ゲストには静的IPが設定されています。例えば:

iface eth0 inet static
    address 192.168.122.133
    netmask 255.255.255.0
    network 192.168.122.0
    broadcast 192.168.122.255
    gateway 192.168.122.1
    dns-nameservers 192.168.122.1

これが、インターネットからアクセスできないはずのゲストがインターネットにアクセスできるようにするものだと思います(ここから適応)-注意してください、彼らはわずかに異なるIP範囲にあります:

/sbin/iptables -t nat -A POSTROUTING -s 192.168.122.50/28 ! -d 192.168.122.50/28 -p tcp -j MASQUERADE --to-ports 1024-65535
/sbin/iptables -t nat -A POSTROUTING -s 192.168.122.50/28 ! -d 192.168.122.50/28 -p udp -j MASQUERADE --to-ports 1024-65535
/sbin/iptables -t nat -A POSTROUTING -s 192.168.122.50/28 ! -d 192.168.122.50/28 -j MASQUERADE
/sbin/iptables -t filter -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -t filter -A FORWARD -s 192.168.122.50/28 -i virbr0 -j ACCEPT
/sbin/iptables -t filter -A INPUT -s 192.168.122.50/28 -i virbr0 -j ACCEPT

回答:


0

解決策は、ブリッジインターフェイスを追加する/etc/networking/interfacesことでした。以下を追加しました:

auto br0 
iface br0 inet static
    address 111.111.111.133
    netmask 255.255.255.248
    bridge_ports eth3
    bridge_stp on
    bridge_fd 0
    bridge_maxwait 0

そして、実行ifup br0してインターフェースを起動しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.