web-dev-qa-db-ja.com

サーバーで複数のIPアドレスを使用する利点は何ですか?

ifconfigを使用すると、 単一のネットワークインターフェイスカードに複数のIPアドレスを構成する を実行できます。なぜそれをしたいのか、後でいくつかのアドレスをどのように利用するのか。ソフトウェアはどの方法を使用するかをどのようにして知るのですか?

これまでは、単一のIPアドレスを持つネットワークインターフェイスのみを使用してきました。

17

いくつかの(すべてではない)理由:

  • すでに述べたように複数のSSLサイトをホストするため
  • 複数のホストからのサービスを統合していて、アドレスを保持する必要があるため
  • 後で別のホストに転送できるIPアドレスを使用するため
  • 別のホストにIPアドレスを追加して、その時点でダウンしているホストを補うため
  • 同じ物理/論理ネットワーク/ VLANに複数のIPネットワークがある場合は、ゲートウェイを介したトラフィックの交換が防止され、速度が向上し、負荷が軽減されます
  • デフォルトのIPアドレスを持つデバイスをセットアップするには、同じネットワーク上にアドレスを追加する必要があります
  • ファイアウォールを回避するため、またはSPAMフィルターでブラックリストに登録されることを回避するために異なるパブリックIPアドレスを使用するため
  • 物事を外部の人々にわかりにくくするため。例えば。 IPアドレス1.2.3.4でApacheを実行していて、1.2.3.5でのみSSHを許可している可能性があります。そうすれば、誰かがサイトの背後にあるIPアドレスを攻撃しようとしても、SSHは実行されていません。
  • 同じサービスを複数回実行するため
  • 逆DNSルックアップで異なるホスト名を使用するため。例えば。このホストから外部の何かに接続していて、2つの異なるドメイン/ホスト名として提示したい場合
  • サービス間の共通性を公開しないため。例えば。 site1.example.comとsite2.example.orgをホストしていて、CNAMEを使用する代わりに異なるIPにマッピングした場合、それらの間に明確なリンクはありません。
31
V13

Webサーバーの場合は、状況によって異なります。複数の仮想ホストがある場合、たとえばApacheでは、サーバーはVirtualHostブロックから使用するIPを認識しています。

 <VirtualHost 10.10.10.1:80>
   ...
 </VirtualHost>

また、Apacheが現在リッスンしているすべての利用可能なインターフェースでVirtualHostをリッスンすることもできます(Listenディレクティブを使用して、例:Listen *:80

 <VirtualHost *:80>
   ...
 </VirtualHost>

複数のサイトでSSLが有効になっているサーバーで複数のサイトを実行している場合は、サイトごとに個別のIPを設定することをお勧めします。これは、SSL証明書がHTTPヘッダーが送信される前に交換されるためです。 1つのIPに複数のvhostがある場合、ApacheはHostヘッダーなしで到達しようとしているサイトを認識しません。

他にも多くのユースケースがあると思いますが、これは一般的なものです。

4
ptierno

複数のIPアドレスを使用すると、サービスIPを使用できます。つまり、sendmailのように、IPを特定のサービスと一致させることができます。

DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=192.168.1.25')dnl

等々。高い可用性、テストおよびネットワークルーティングに使用できます^^

1
Hamza Jabbour

個別のサービスに個別のIPを設定することをお勧めします。その場合、サービスの1つを別のハードウェア/場所に移行する必要がある場合、他のコンポーネントは透過的になります。

一部のサービスは同じポート番号を使用するため、単一のサーバーでこのサービスを実行するにはいくつかのIPが必要です。

また、一時ポートよりも多くの同時接続を処理する場合は、より多くのIPが必要になります。

1
fazie