デュアルNICホストのブリッジネットワークモデル
仮想サーバは、プライベートLAN上の独立したデバイスとして表示され、ホストサーバのIPアドレスを使用して、パブリックインターネットからアクセス可能でなければなりません.
私は自分のサーバーのほとんどで、このネットワークモデルを使用. これは、効率的にIPアドレスを使用, パブリックインターフェイス上の仮想サーバを保護します (eth1の) と専用インタフェースを介して直接アクセスすることができます (eth0の).
ホストインターフェイス
ホストには、少なくとも2つのネットワークインタフェースを持っている. 私の規則では、公共のインターネットへの接続のためのローカルネットワークとeth1への信頼関係接続のためにeth0を使用しています.
ホストパッケージ
のProxmox VEは OpenVZのとKVMコンテナおよび仮想マシンを管理するために使用されている. これは、ホストサーバに有用なインタフェースを提供する. のProxmoxクラスタリングが構成されている場合、同じインターフェイスは、複数のホストにアクセスするために使用できる.
高度なポリシーファイアウォール (APF) ファイアウォールとしてのiptablesを設定し、維持するための便利な方法を提供しています. APFは、ネットワークアドレス変換を提供するように構成されている (NAT) パブリックIPから容器へ, 出口フィルタリングやマスカレード. マスカレードは、ホストのIPアドレスにコンテナのeth1のIPアドレスを変更するために使用されている.
アパッチ ルートポートへのリバースプロキシとして使用されている 80 と 443 適当な容器に要求.
パブリックインターフェイスの設定
コンテナを接続するために作成されvmbr1ゲストブリッジ. この橋は、ホストサーバ上でアクセスできるだけ. APFとnginxのは、このゲストブリッジを介してコンテナへのパブリックインターフェイスeth1からトラフィックをルーティングするように構成されている.
ネットワーク·インターフェース
WANインターフェイスは、ネットワーク·インターフェース·ファイルで定義され. 下からの抜粋です。 /など/ network / interfacesを Debianシステム用のファイル:
1 |
# WAN Public Interface |
1 2 |
# See Also: APF Configurationauto eth1 iface eth1 inet static |
1 |
address 12.23.45.67 |
1 |
netmask 255.255.255.0 |
1 |
broadcast 12.23.45.255 |
1 |
network 12.23.45.0 |
1 |
gateway 12.23.45.1# GUEST Private Network |
1 |
# Routable to eth1 via APF Configuration |
1 2 3 4 5 6 7 |
auto vmbr1 iface vmbr1 inet static address 192.168.80.1 netmask 255.255.255.0 bridge_ports none bridge_stp off bridge_fd 0 |
APF Prerouteルール (NAT)
APFは、コンテナに、パブリックインターフェイスからルート特定のポートに使用されている. 下記preroute.rules例では、SSHアクセスは、コンテナにルーティングされる方法を示しています。. 宛先アドレスはvmbr1にあり.
$IPT-T NAT-PREROUTING-D 12.23.45.67 -p個のTCP-I eth1の - dportsはXXX-JのDNAT - ツーDEST 192.168.80.XXX:YYY
APF Postrouteルール (仮面舞踏会)
下記postroute.rulesの例は、APFがiptablesの上でマスカレードを設定するために使用される方法を示しています。. vmbr1ネットワークからソースIPアドレスは、ホストの公開IPアドレスに変更される, これは 12.23.45.67 この例では.
$IPT-T NAT-POSTROUTING-S 192.168.80.0/24 -O eth1に-JのSNAT - ソース間 12.23.45.67
ポートのnginxのリバースプロキシ 80 と 443
仮想ホストのnginxの設定ファイルは、Webリクエストのルーティングを定義する. ここに1つの仮想ホストのlocationディレクティブを示す抜粋です.
1 |
server { |
1 2 |
server_name jaroker.com; listen 443; |
1 |
location / { |
1 2 3 4 |
# Redefine request headers that are transferred to proxied server proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
1 2 3 4 5 |
proxy_pass http://192.168.80.YY; proxy_redirect off; proxy_read_timeout 90; } } |
プライベートインターフェイスの設定
プライベートLANは、信頼できるネットワークである. 私たちは、ファイアウォールルールは、信頼できるeth0のインタフェースを介して、LAN上のトラフィックに干渉したくない. トラフィックは、ネットワーク·インタフェース·ファイルで設定されたポリシーベースのルーティングを使用して容器からルーティングされます. 以下の例は、Debianに固有のものです.
IPルートテーブル
ルートテーブル名が/ etc/iproute2/rt_tablesファイルの便宜のために作成されている. 以下の例では, この表が呼び出されます T0 のために "eth0のテーブル".
501 T0
ポリシーベースルーティングは、ネットワーク·インタフェース·ファイルに設定されている. Debianベースのシステム用, このルーティングは、内に作成されている /など/ network / interfacesを ファイル.
# LAN上の目に見えるのゲスト
# APFによって管理されていない -- この設定Fileiface eth0のINETマニュアルに設定されているルーティング
オートvmbr0
ifaceをvmbr0 INET静的
アドレス192.168.10.YY
ネットマスク 255.255.255.0
ブロードキャスト 192.168.10.255
bridge_ports eth0の
オフbridge_stp
bridge_fd 0
ポストアップIPルートのフラッシュテーブルT0
ポストアップIPルートを経由して、デフォルトを追加 192.168.10.1 DEV vmbr0テーブルT0
ポストアップIPルールは192.168.10.YYテーブルT0の優先順位から、追加 501
コメントする最初の人になる. コメントを残す