對防火牆的管理需求不僅僅侷限於虛擬主機,VM 和實體主機防火牆都必須允許元件所需的通訊埠流量來彼此通訊。
通訊埠圖表
下圖顯示單一資料中心和多個資料中心設定的通訊埠需求:
單一資料中心
下圖顯示了單一資料中心設定中每個 Edge 元件的通訊埠需求:
下圖注意事項:
- 前置字串「M」的通訊埠是用來管理元件的通訊埠,必須在元件上開啟,以便管理伺服器存取。
- 邊緣 UI 需要在 API Proxy 公開的通訊埠上存取路由器,以支援追蹤記錄工具中的「傳送」按鈕。
- 將 JMX 通訊埠存取權設定為需要使用者名稱/密碼。詳情請參閱「監控方式」一文。
- 您可以選擇是否針對特定連線設定 TLS/SSL 存取權,讓這些連線使用不同的通訊埠。詳情請參閱「TLS/SSL」一節。
- 您可以將 Management Server 和 Edge UI 設為透過外部 SMTP 伺服器傳送電子郵件。這樣才能確認管理伺服器和 UI 可以存取 SMTP 伺服器上的必要通訊埠 (未顯示)。如果不是 TLS SMTP,通訊埠號碼通常為 25。如果是已啟用 TLS 的 SMTP,通常會是 465,但請洽詢您的 SMTP 供應商。
多個資料中心
如果您安裝具有兩個資料中心的 12 個節點叢集設定,請確保兩個資料中心中的節點可以透過下列通訊埠進行通訊:
注意事項:
- 所有管理伺服器必須能存取所有其他資料中心中的所有 Cassandra 節點。
- 所有資料中心中的所有訊息處理器都必須能夠透過通訊埠 4528 相互存取。
- 管理伺服器必須能夠透過通訊埠 8082 存取所有訊息處理器。
- 所有管理伺服器和所有 Qpid 節點都必須能夠存取所有其他資料中心的 Postgres。
- 基於安全性考量,除了上方顯示的通訊埠以及您自己的網路需求所需的任何其他通訊埠外,不應在資料中心之間開啟其他通訊埠。
根據預設,元件之間的通訊不會經過加密。您可以安裝 Apigee mTLS 來新增加密功能。詳情請參閱 Apigee mTLS 簡介。
通訊埠詳細資料
下表說明 Edge 元件必須在防火牆中開啟的通訊埠:
元件 | 通訊埠 | 說明 |
---|---|---|
標準 HTTP 通訊埠 | 80、443 | HTTP 加上用於虛擬主機的任何其他通訊埠 |
Apigee 單一登入 (SSO) | 9099 | 來自外部 IDP、管理伺服器和瀏覽器的連線以進行驗證。 |
Cassandra | 7000、9042、9160 | 用於 Cassandra 節點之間通訊,以及由其他 Edge 元件存取的 Apache Cassandra 通訊埠。 |
7199 | JMX 通訊埠。必須開放管理伺服器存取。 | |
LDAP | 10389 號 | OpenLDAP |
管理伺服器 | 1099 號 | JMX 通訊埠 |
4526 | 分散式快取和管理呼叫的通訊埠。這個通訊埠可進行設定。 | |
5636 | 營利修訂通知的通訊埠。 | |
8080 | Edge Management API 呼叫的通訊埠。這些元件需要管理伺服器中通訊埠 8080 的存取權:路由器、訊息處理器、UI、Postgres、Apigee SSO (如已啟用) 和 Qpid。 | |
管理 UI | 9,000 顆 | 瀏覽器存取權管理 UI 的通訊埠 |
訊息處理器 | 1,101 | JMX 通訊埠 |
4528 | 用於訊息處理者之間的分散式快取與管理呼叫,以及來自路由器和管理伺服器的通訊。
訊息處理器必須開啟通訊埠 4528 做為管理通訊埠。若您有多個訊息處理器,則這些訊息處理器必須都能透過通訊埠 4528 互相存取 (在上圖中,訊息處理器上通訊埠 4528 的迴圈箭頭所示)。如果您有多個資料中心,則所有資料中心中的所有訊息處理器都必須存取通訊埠。 |
|
8082 |
訊息處理器的預設管理通訊埠,必須在元件上開啟,以便管理伺服器存取。 如果在路由器和訊息處理器之間設定 TLS/SSL,路由器會使用路由器對訊息處理器進行健康狀態檢查。 當您在路由器和訊息處理器之間設定 TLS/SSL 時,郵件處理器上的通訊埠 8082 只需開放路由器存取,即可由路由器存取。如果您未在路由器和訊息處理者之間設定 TLS/SSL,則預設設定為訊息處理者仍須開啟通訊埠 8082 才能管理元件,但路由器不需要存取權。 |
|
8443 號 | 在路由器和訊息處理器之間啟用 TLS 後,您必須在訊息處理器上開啟通訊埠 8443,以便路由器存取。 | |
8998 | 用於從路由器通訊的訊息處理器通訊埠 | |
Postgres | 22 | 如要將兩個 Postgres 節點設為使用主要執行個體待命複製功能,您必須在每個節點上開啟通訊埠 22,以便存取 SSH。 |
1,103 | JMX 通訊埠 | |
4530 | 針對分散式快取和管理呼叫 | |
5432 | 用於從 Qpid/Management 伺服器傳送至 Postgres 的通訊 | |
8084 | Postgres 伺服器上的預設管理通訊埠;必須在元件上開啟,以便管理伺服器存取。 | |
Qpid | 1,102 | JMX 通訊埠 |
4,529 | 針對分散式快取和管理呼叫 | |
5672 |
也用於在同一個節點上 Qpid 伺服器和代理程式元件之間進行通訊。在具有多個 Qpid 節點的拓撲中,伺服器必須能夠連線至通訊埠 5672 上的所有代理程式。 |
|
8083 | Qpid 伺服器上的預設管理通訊埠,必須在元件上開啟,以便管理伺服器存取。 | |
8090 | Qpid 代理程式的預設通訊埠;必須開啟才能存取代理程式的管理主控台或管理 API,以便進行監控。 | |
路由器 | 4527 | 適用於分散式快取與管理呼叫。 路由器必須開啟通訊埠 4527 做為管理通訊埠。如果您有多個路由器,必須全都可透過通訊埠 4527 互相存取 (在上圖中,路由器 4527 上的通訊埠 4527 上的迴圈箭頭所示)。 您可以開啟路由器的通訊埠 4527,並由任何訊息處理器進行存取 (這並非必要動作)。否則,訊息處理器記錄檔中可能會顯示錯誤訊息。 |
8081 | 路由器的預設管理通訊埠,必須在元件上開啟,以便管理伺服器存取。 | |
1,5999 字 |
健康狀態檢查通訊埠。負載平衡器會使用這個通訊埠來判斷路由器是否可用。 如要取得路由器的狀態,負載平衡器會向路由器上的通訊埠 15999 發出要求: curl -v http://routerIP:15999/v1/servers/self/reachable 如果可以連上路由器,要求就會傳回 HTTP 200。 |
|
59001 | apigee-validate 公用程式用來測試 Edge 安裝作業的通訊埠。此公用程式需要存取路由器上的通訊埠 59001。如要進一步瞭解通訊埠 59001,請參閱測試安裝。 |
|
SmartDocs | 59002 | Edge 路由器上用於傳送 SmartDocs 頁面要求的通訊埠。 |
ZooKeeper | 2181 | 供管理伺服器、路由器、訊息處理器等元件使用 |
2888、3888 | 由 ZooKeeper 叢集 (稱為 ZooKeeper 整體) 內部使用 |
下表列出的相同通訊埠 (以數字形式列出) 以及來源和目的地元件:
通訊埠編號 | 目的 | 來源元件 | 目的地元件 |
---|---|---|---|
virtual_host_port | HTTP 加上您用於虛擬主機 API 呼叫流量的任何其他通訊埠。是最常用的通訊埠 80 和 443;訊息路由器可終止 TLS/SSL 連線。 | 外部用戶端 (或負載平衡器) | 訊息路由器的事件監聽器 |
1099 到 1103 | JMX 管理 | JMX 用戶端 | 管理伺服器 (1099) 訊息處理器 (1101) Qpid Server (1102) Postgres Server (1103) |
2181 | Zookeeper 用戶端通訊 | 管理伺服器 路由器 訊息處理器 Qpid Server Postgres 伺服器 |
Zookeeper |
2888 和 3888 | Zookeeper 節點間管理 | Zookeeper | Zookeeper |
4526 | RPC 管理通訊埠 | 管理伺服器 | 管理伺服器 |
4527 | 用於分散式快取與管理呼叫,以及路由器之間通訊的 RPC 管理通訊埠 | 管理伺服器 路由器 |
路由器 |
4528 | 用於訊息處理器之間的分散式快取呼叫,以及來自路由器的通訊 | Management Server Router 訊息處理器 |
訊息處理器 |
4529 | 分散式快取與管理呼叫的 RPC 管理通訊埠 | 管理伺服器 | Qpid 伺服器 |
4530 | 分散式快取與管理呼叫的 RPC 管理通訊埠 | 管理伺服器 | Postgres 伺服器 |
5432 | Postgres 用戶端 | Qpid 伺服器 | Postgres |
5636 | 營利 | 外部 JMS 元件 | 管理伺服器 |
5672 |
也用於在同一個節點上 Qpid 伺服器和代理程式元件之間進行通訊。在具有多個 Qpid 節點的拓撲中,伺服器必須能夠連線至通訊埠 5672 上的所有代理程式。 |
Qpid 伺服器 | Qpid 伺服器 |
7000 | Cassandra 節點間通訊 | Cassandra | 其他 Cassandra 節點 |
7199 | JMX 管理。必須開放管理伺服器在 Cassandra 節點上存取。 | JMX 用戶端 | Cassandra |
8080 | Management API 通訊埠 | Management API 用戶端 | 管理伺服器 |
8081 到 8084 |
元件 API 通訊埠,用於直接對個別元件發出 API 要求。每個元件會開啟不同的通訊埠;您使用的確切通訊埠取決於設定,但必須在元件上開啟,以便管理伺服器存取 |
Management API 用戶端 | 路由器 (8081) 訊息處理器 (8082) Qpid 伺服器 (8083) Postgres 伺服器 (8084) |
8090 | Qpid 代理程式的預設管理通訊埠可用來管理及監控佇列。 | 瀏覽器或 API 用戶端 | Qpid 代理程式 (apigee-qpidd) |
8443 | 啟用 TLS 時,路由器和訊息處理器之間的通訊 | 路由器 | 訊息處理器 |
8998 | 路由器和訊息處理器之間的通訊 | 路由器 | 訊息處理器 |
9000 | 預設邊緣管理 UI 通訊埠 | 瀏覽器 | 管理 UI 伺服器 |
9042 | CQL 原生傳輸 | 路由器 訊息處理器 管理伺服器 |
Cassandra |
9099 | 外部 IDP 驗證 | IdP、瀏覽器和管理伺服器 | Apigee 單一登入 (SSO) |
9160 | Cassandra 二手用戶端 | 路由器 訊息處理器 管理伺服器 |
Cassandra |
10389 | LDAP 通訊埠 | 管理伺服器 | OpenLDAP |
15999 | 健康狀態檢查通訊埠。負載平衡器會使用這個通訊埠來判斷路由器是否可用。 | 負載平衡器 | 路由器 |
59001 | apigee-validate 公用程式用來測試邊緣安裝作業的通訊埠 |
apigee-validate | 路由器 |
59002 | 傳送 SmartDoc 頁面要求的路由器通訊埠 | SmartDocs | 路由器 |
訊息處理器能將 Cassandra 的專屬連線集區保持開放,且該集區已設為永不逾時。當防火牆位於訊息處理器和 Cassandra 伺服器之間時,防火牆可能會逾時。不過,訊息處理器並非專為重新建立與 Cassandra 連線而設計。
為防止這種情況發生,Apigee 建議 Cassandra 伺服器、訊息處理器和路由器位於同一個子網路,讓防火牆不會參與這些元件的部署作業。
如果防火牆位於路由器和訊息處理器之間,且設定了閒置的 TCP 逾時,建議您執行以下操作:
- 在 Linux OS 的 sysctl 設定中,設定
net.ipv4.tcp_keepalive_time = 1800
,其中 1800 應低於防火牆的閒置 tcp 逾時時間。這項設定應保持連線維持已建立的狀態,以免防火牆不會中斷連線。 - 在所有訊息處理器上,編輯
/opt/apigee/customer/application/message-processor.properties
來新增下列屬性。如果檔案不存在,請建立檔案。conf_system_cassandra.maxconnecttimeinmillis=-1
- 重新啟動訊息處理器:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 在所有路由器上,編輯
/opt/apigee/customer/application/router.properties
來新增下列屬性。如果檔案不存在,請建立檔案。conf_system_cassandra.maxconnecttimeinmillis=-1
- 重新啟動路由器:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart