ファイアウォールの管理は仮想ホストだけではありません。VM と物理ホストの両方のファイアウォールで、コンポーネントが相互に通信するために必要なポートのトラフィックを許可する必要があります。
ポートの図
次の図は、1 つのデータセンターと複数のデータセンターの両方のポート要件を示しています。
単一のデータセンター
次の図は、単一のデータセンター構成における各 Edge コンポーネントのポート要件を示しています。
この図に関する注記:
- 先頭に「M」が付いているポートは、コンポーネントの管理に使用されるポートです。Management Server がアクセスできるようにコンポーネント上で開いている必要があります。
- Edge UI は、Trace ツールの [Send] ボタンをサポートするために、API プロキシによって公開されているポートで Router にアクセスする必要があります。
- JMX ポートへのアクセスは、ユーザー名とパスワードを要求するように構成できます。詳細については、モニタリング方法をご覧ください。
- 必要に応じて、特定の接続に対する TLS/SSL アクセスを構成できます。この場合、異なるポートを使用できます。詳細については、TLS/SSL をご覧ください。
- 外部 SMTP サーバー経由でメールを送信するように、Management Server と Edge UI を構成できます。その場合は、Management Server と UI が SMTP サーバー上の必要なポートにアクセスできることを確認する必要があります(図示していません)。非 TLS SMTP の場合、ポート番号は通常 25 です。TLS 対応の SMTP の場合、通常は 465 ですが、SMTP プロバイダに確認してください。
複数のデータセンター
2 つのデータセンターを持つ 12 ノードのクラスタ構成をインストールする場合は、2 つのデータセンターのノードが以下に示すポートを介して通信できることを確認します。
次のことに注意してください。
- すべての Management Server は、他のすべてのデータセンターのすべての Cassandra ノードにアクセスできる必要があります。
- すべてのデータセンターのすべての Message Processor が、ポート 4528 を介して相互にアクセスできる必要があります。
- Management Server は、ポート 8082 を介してすべての Message Processor にアクセスできる必要があります。
- すべての Management Server とすべての Qpid ノードが、他のすべてのデータセンターの Postgres にアクセスできる必要があります。
- セキュリティ上の理由から、上記のポートと、独自のネットワーク要件で必要なポートを除き、データセンター間で他のポートを開くことはできません。
デフォルトでは、コンポーネント間の通信は暗号化されません。Apigee mTLS をインストールすることで、暗号化を追加できます。詳細については、Apigee mTLS の概要をご覧ください。
ポートの詳細
次の表に、Edge コンポーネントごとにファイアウォールで開く必要があるポートを示します。
コンポーネント | ポート | 説明 |
---|---|---|
標準 HTTP ポート | 80、443 | HTTP と仮想ホストに使用するその他のポート |
Apigee SSO | 9099 | 外部 IDP、Management Server、認証用のブラウザからの接続。 |
Cassandra | 7000、9042、9160 | Cassandra ノード間の通信用、および他の Edge コンポーネントによるアクセス用の Apache Cassandra ポート。 |
7199 | JMX ポート。Management Server によるアクセスのために開いている必要があります。 | |
LDAP | 10389 | OpenLDAP |
管理サーバー | 1099 | JMX ポート |
4526 | 分散キャッシュと管理呼び出し用のポート。このポートは構成可能です。 | |
5636 | Monetization commit 通知のポート。 | |
8080 | Edge 管理 API 呼び出し用のポート。これらのコンポーネント(Router、Message Processor、UI、Postgres、Apigee SSO(有効な場合)、Qpid)には、Management Server のポート 8080 へのアクセスが必要です。 | |
管理 UI | 9000 | 管理 UI へのブラウザ アクセス用のポート |
Message Processor | 1101 | JMX ポート |
4528 | Message Processor 間の分散キャッシュと管理呼び出し用、および Router と Management Server からの通信用。 Message Processor では、管理ポートとしてポート 4528 を開く必要があります。複数の Message Processor がある場合は、ポート 4528(Message Processor 上のポート 4528 についての上の図ではループ矢印で示されています)を介して、すべてが互いにアクセスできる必要があります。データセンターが複数ある場合は、すべてのデータセンターのすべての Message Processor からポートにアクセスできる必要があります。 |
|
8082 |
Message Processor のデフォルト管理ポート。Management Server によるアクセスのためにコンポーネント上で開いている必要があります。 Router と Message Processor の間に TLS/SSL を構成すると、Router はこれを使用して Message Processor のヘルスチェックを行います。 Router と Message Processor の間で TLS/SSL を構成する場合、Message Processor 上のポート 8082 は Router がアクセスのために開くだけで済みます。Router と Message Processor の間に TLS/SSL を構成しない場合、デフォルト構成では、コンポーネントを管理するためにポート 8082 を Message Processor 上で開いておく必要がありますが、Router が Message Processor にアクセスする必要はありません。 |
|
8443 | Router と Message Processor の間で TLS が有効になっている場合は、Router がアクセスできるように、Message Processor でポート 8443 を開く必要があります。 | |
8998 | Router からの通信用の Message Processor ポート | |
Postgres | 22 | マスター / スタンバイ レプリケーションを使用するように 2 つの Postgres ノードを構成する場合は、SSH アクセス用に各ノードでポート 22 を開く必要があります。 |
1103 | JMX ポート | |
4530 | 分散キャッシュと管理呼び出しの場合 | |
5432 | Qpid/Management Server から Postgres への通信に使用 | |
8084 | Postgres サーバーのデフォルト管理ポート。Management Server がアクセスできるようにコンポーネント上で開いている必要があります。 | |
Qpid | 1102 | JMX ポート |
4529 | 分散キャッシュと管理呼び出しの場合 | |
5672 |
同じノード上の Qpid サーバーとブローカー コンポーネント間の通信にも使用されます。複数の Qpid ノードがあるトポロジでは、サーバーがポート 5672 ですべてのブローカーに接続できる必要があります。 |
|
8083 | Qpid サーバーのデフォルト管理ポート。Management Server によるアクセスのためにコンポーネント上で開いている必要があります。 | |
8090 | Qpid のブローカーのデフォルト ポート。モニタリング目的でブローカーの管理コンソールまたは管理 API にアクセスするために開いている必要があります。 | |
ルーター | 4527 | 分散キャッシュと管理呼び出し向け。 Router は管理ポートとしてポート 4527 を開く必要があります。複数の Router がある場合は、ポート 4527(Router のポート 4527 について、上の図のループ矢印で示されています)を介して相互にアクセスできなければなりません。 必須ではありませんが、Message Processor からアクセスできるように Router でポート 4527 を開くことができます。そうしないと、Message Processor のログファイルにエラー メッセージが表示されることがあります。 |
8081 | Router のデフォルト管理ポート。Management Server によるアクセスのためにコンポーネント上で開いている必要があります。 | |
15999 |
ヘルスチェック ポート。ロードバランサは、このポートを使用して Router が使用可能かどうかを判断します。 Router のステータスを取得するために、ロードバランサは Router のポート 15999 にリクエストを送信します。 curl -v http://routerIP:15999/v1/servers/self/reachable Router に到達可能な場合、リクエストは HTTP 200 を返します。 |
|
59001 | apigee-validate ユーティリティによる Edge インストールのテストに使用されるポート。このユーティリティは、Router のポート 59001 へのアクセスを必要とします。ポート 59001 の詳細については、インストールをテストするをご覧ください。 |
|
SmartDocs | 59002 | SmartDocs ページ リクエストが送信される Edge Router のポート。 |
ZooKeeper | 2181 | Management Server、Router、Message Processor などの他のコンポーネントで使用 |
2888、3888 | ZooKeeper クラスタ(ZooKeeper アンサンブル)通信用に ZooKeeper が内部的に使用 |
次の表に、同じポートを数字で示し、送信元コンポーネントと宛先コンポーネントを示します。
ポート番号 | Purpose | ソース コンポーネント | 宛先コンポーネント |
---|---|---|---|
virtual_host_port | HTTP と、仮想ホスト API 呼び出しトラフィックに使用するその他のポート。ポート 80 と 443 が最も一般的に使用されます。Message Router は TLS/SSL 接続を終端できます。 | 外部クライアント(またはロードバランサ) | Message Router のリスナー |
1099 ~ 1103 | JMX 管理 | JMX クライアント | Management Server(1099) Message Processor(1101) Qpid Server(1102) Postgres Server(1103) |
2181 | Zookeeper クライアントの通信 | Management Server Router Message Processor Qpid Server Postgres Server |
Zookeeper |
2888、3888 | Zookeeper ノード間管理 | Zookeeper | Zookeeper |
4526 | RPC 管理ポート | 管理サーバー | 管理サーバー |
4527 | 分散キャッシュと管理呼び出し用、および Router 間の通信用の RPC Management ポート | 管理サーバー ルーター |
ルーター |
4528 | Message Processor 間の分散キャッシュ呼び出しと Router からの通信用 | Management Server Router Message Processor |
Message Processor |
4529 | 分散キャッシュと管理呼び出し用の RPC 管理ポート | 管理サーバー | Qpid サーバー |
4530 | 分散キャッシュと管理呼び出し用の RPC 管理ポート | 管理サーバー | Postgres サーバー |
5432 | Postgres クライアント | Qpid サーバー | Postgres |
5636 | 収益化 | 外部 JMS コンポーネント | 管理サーバー |
5672 |
同じノード上の Qpid サーバーとブローカー コンポーネント間の通信にも使用されます。複数の Qpid ノードがあるトポロジでは、サーバーがポート 5672 ですべてのブローカーに接続できる必要があります。 |
Qpid サーバー | Qpid サーバー |
7,000 | Cassandra のノード間通信 | Cassandra | その他の Cassandra ノード |
7199 | JMX の管理。Management Server による Cassandra ノードでアクセスするために開く必要があります。 | JMX クライアント | Cassandra |
8080 | Management API ポート | Management API クライアント | 管理サーバー |
8081 ~ 8084 |
コンポーネント API ポート。個々のコンポーネントに直接 API リクエストを発行するために使用されます。各コンポーネントは異なるポートを開きます。使用される正確なポートは構成によって異なりますが、Management Server がアクセスできるようにコンポーネント上で開いている必要があります。 |
Management API クライアント | Router(8081) Message Processor(8082) Qpid Server(8083) Postgres Server(8084) |
8090 | Qpid のブローカーがキューを管理、モニタリングするためのデフォルトの管理ポート。 | ブラウザまたは API クライアント | Qpid Broker(apigee-qpidd) |
8443 | TLS が有効になっている場合の Router と Message Processor 間の通信 | ルーター | Message Processor |
8998 | Router と Message Processor 間の通信 | ルーター | Message Processor |
9000 | デフォルトの Edge 管理 UI ポート | ブラウザ | 管理 UI サーバー |
9042 | CQL ネイティブ トランスポート | Router Message Processor Management Server |
Cassandra |
9099 | 外部 IDP 認証 | IDP、ブラウザ、Management Server | Apigee SSO |
9160 | Cassandra スリフト クライアント | Router Message Processor Management Server |
Cassandra |
10389 | LDAP ポート | 管理サーバー | OpenLDAP |
15999 | ヘルスチェック ポート。ロードバランサは、このポートを使用して Router が使用可能かどうかを判断します。 | ロードバランサ | ルーター |
59001 | apigee-validate ユーティリティが Edge インストールのテストに使用するポート |
apigee-validate | ルーター |
59002 | SmartDocs ページ リクエストが送信されるルーターポート | SmartDocs | ルーター |
Message Processor は、Cassandra に対して専用の接続プールを開いたままにしておき、タイムアウトが発生しないように構成されています。ファイアウォールが Message Processor と Cassandra サーバーの間にある場合、ファイアウォールは接続をタイムアウトできます。ただし、Message Processor は Cassandra への接続を確立するようには設計されていません。
このような状況を回避するため、Cassandra サーバー、Message Processor、Router を同じサブネットに配置して、これらのコンポーネントのデプロイにファイアウォールが発生しないようにすることをおすすめします。
ファイアウォールが Router と Message Processor の間にあり、アイドル TCP タイムアウトが設定されている場合は、次のことをおすすめします。
- Linux OS の sysctl 設定で
net.ipv4.tcp_keepalive_time = 1800
を設定します。1, 800 はファイアウォールのアイドル TCP タイムアウトよりも小さくする必要があります。この設定では、ファイアウォールが接続を切断しないように、接続を確立状態に維持する必要があります。 - すべての Message Processor で、
/opt/apigee/customer/application/message-processor.properties
を編集して次のプロパティを追加します。ファイルが存在しない場合は作成します。conf_system_cassandra.maxconnecttimeinmillis=-1
- Message Processor を再起動します。
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- すべての Router で、
/opt/apigee/customer/application/router.properties
を編集して次のプロパティを追加します。ファイルが存在しない場合は作成します。conf_system_cassandra.maxconnecttimeinmillis=-1
- Router を再起動します。
/opt/apigee/apigee-service/bin/apigee-service edge-router restart