web-dev-qa-db-ja.com

ELBはAWSのアウトバウンド応答トラフィックもルーティングしますか

パブリック/プライベートサブネットを持つAWS VPCでルーティングがどのように機能するかを理解しようとしています。

ELBとNAT=パブリックサブネットとウェブサーバーのプライベートサブネットを使用して、Amazonが推奨するセットアップを行っています。セキュリティグループ(SG)を http: //blogs.aws.Amazon.com/security/blog/tag/NAT そしてすべて期待どおりに機能します。

Reference architecture with Amazon VPC configuration

私がまだ理解していないのは、上記のアーキテクチャでHTTP応答がWebサーバーインスタンスからどのように返されるかです。

したがって、HTTP経由でパブリックインターネットからWebリクエストが送信され、80がELBにヒットし、ELBはそれをWebサーバーのプライベートIPに転送します。これで、Webサーバーは応答する必要があります。私が理解していることから、応答は異なるより高いTCPポート(1024-65535)を経由します。NAT SGは、ポート80および443を介した送信トラフィックのみを許可します。では、この返信はどのようにしてパブリックインターネットに戻されるのでしょうか。NATを経由することはできません。これは、返信がELBを経由して戻ることを意味します。Amazonの図では、ELBトラフィックの方向を示す矢印は双方向ではなく、 ELBのドキュメントには、ELBがステートフルNATのように動作することが記載されています。

8
Ali

図の矢印は、トラフィックフローではなく、接続確立の方向のみを示しています。

はい、戻りトラフィックはELBを経由します。

しかし、それはステートフルではありませんNAT-これはTCP接続プロキシです。ELBマシンはTCP接続を受け入れます構成された待機ポートで、構成されている場合はSSLセッションを終了し、バックエンドサーバーへの新しいTCP接続を確立します。リスナーがHTTP用に構成されている場合、ELBはペイロードで動作します-awareモードの解析、ロギング、HTTPリクエストのバックエンドへの転送、それ以外の場合はペイロードに依存せず、着信接続ごとにバックエンドへの新しいTCP接続1:1を確立します。 「パイプを結びつける」(HTTPレベルの認識や変更は行いません)。

どちらの方法でも、アプリケーションへの着信接続のソースアドレスは、元のクライアントではなく、ELBノードのソースアドレスになります。これは、クライアントに戻るために応答トラフィックがELBに戻る方法です。

httpモードでは、ELBはX-Forwarded-Forヘッダーを追加 (または追加)して、アプリケーションが元のクライアントIPを識別できるようにするとともに、X-Forwarded-Proto: [ http | https ]がクライアント接続かどうかを示しますSSLおよびX-Forwarded-Portを使用して、フロントエンドポートを示します。


更新:上記は、現在「ELBクラシック」またはELB/1.0として知られているロードバランサーのタイプを指します(ユーザーエージェント文字列に含まれています) HTTPヘルスチェックで送信します)。

新しいレイヤー7バランサー、Application Load Balancer、またはELB/2.0は、トラフィックフローに関して同様に動作します。レイヤー4(「透過」TCP)機能がALBから削除され、レイヤー7機能が大幅に強化されました。

最新タイプのロードバランサーであるネットワークロードバランサーは、レイヤー3バランサーです。他の2つとは異なり、これは動的NATと非常によく似ており、インバウンド(外部発信)接続のみを処理し、EIP-addr + portを介してsource-addr + portをinstance-private-ip:adde + portにマッピングします-EIPを使用「バランサー」にバインドされています。他の2つのタイプのバランサーとは異なり、インスタンスはパブリックサブネット上にあり、独自のパブリックIPを使用する必要があります。

概念的に言えば、ネットワークロードバランサーはインターネットゲートウェイの動作を実際に変更しているようです。これは、それ自体、無効化、置換、または意味のある意味での障害が発生しない論理オブジェクトです。これは、「非表示」のEC2インスタンスで実際に動作するELBおよびALBとは対照的です。 NLBは、すべての外観でネットワークインフラストラクチャ自体で動作します。

11

NLBのAWSドキュメントによると、それはレイヤー3ではなくレイヤー4です。また、バックエンドまたはターゲットサーバーはパブリックサブネット上にある必要はありません。実際には、ターゲットグループのIPアドレス範囲は、次のいずれかである必要があります。可能なターゲットタイプは次のとおりです。

インスタンスターゲットはインスタンスIDで指定されます。

ipターゲットはIPアドレスで指定されます。

ターゲットタイプがipの場合、次のCIDRブロックのいずれかからIPアドレスを指定できます。

ターゲットグループのVPCのサブネット

10.0.0.0/8(RFC 1918)

100.64.0.0/10(RFC 6598)

172.16.0.0/12(RFC 1918)

192.168.0.0/16(RFC 1918)

重要

パブリックにルーティング可能なIPアドレスを指定することはできません。

これがお役に立てば幸いです。

1
RBP