דרישות לגבי יציאות

הצורך בניהול חומת האש לא מסתכם רק במארחים הווירטואליים. חומות האש של המכונות הווירטואליות ושל המארחים הפיזיים צריכות לאפשר תעבורה ליציאות שנדרשות לרכיבים כדי לתקשר זה עם זה.

תרשימי ניוד

בתמונות הבאות מוצגות דרישות הפורטים להגדרות של מרכז נתונים יחיד ושל כמה מרכזי נתונים:

מרכז נתונים יחיד

בתמונה הבאה מוצגות דרישות הפורטים לכל רכיב Edge בהגדרת מרכז נתונים יחיד:

דרישות ניוד לכל רכיב Edge בהגדרה של מרכז נתונים יחיד

הערות לגבי התרשים הזה:

  • היציאות שמופיע לפניהן האות M הן יציאות שמשמשות לניהול הרכיב, והן צריכות להיות פתוחות ברכיב כדי ששרת הניהול יוכל לגשת אליהן.
  • ממשק המשתמש של Edge דורש גישה לנתב, ביציאות שנחשפות על ידי שרתי Proxy של API, כדי לתמוך בלחצן Send בכלי המעקב.
  • אפשר להגדיר את הגישה ליציאות JMX כך שתידרש הזנת שם משתמש וסיסמה. מידע נוסף זמין במאמר איך עוקבים אחרי נתונים.
  • אפשר גם להגדיר גישה באמצעות TLS/SSL לחיבורים מסוימים, שיכולים להשתמש ביציאות שונות. מידע נוסף זמין במאמר בנושא TLS/SSL.
  • אפשר להגדיר את שרת הניהול ואת ממשק המשתמש של Edge לשליחת אימיילים דרך שרת SMTP חיצוני. אם כן, צריך לוודא שלשרת הניהול ולממשק המשתמש יש גישה ליציאה הנדרשת בשרת ה-SMTP (לא מוצג). ב-SMTP ללא TLS, מספר היציאה הוא בדרך כלל 25. ב-SMTP עם TLS, המספר הוא לרוב 465, אבל כדאי לבדוק את זה מול ספק ה-SMTP.

כמה מרכזי נתונים

אם מתקינים את התצורה המאגדתת של 12 צמתים עם שני מרכזי נתונים, צריך לוודא שהצמתים בשני מרכזי הנתונים יכולים לתקשר דרך היציאות שמוצגות בהמשך:

דרישות הניוד לכל צומת בהגדרת אשכול של 12 צמתים

הערה:

  • לכל שרתי הניהול צריכה להיות גישה לכל צמתי Cassandra בכל מרכזי הנתונים האחרים.
  • לכל מעבדי ההודעות בכל מרכזי הנתונים צריכה להיות גישה זה לזה דרך יציאה 4528.
  • לשרת הניהול צריכה להיות גישה לכל מעבדי ההודעות דרך יציאה 8082.
  • לכל שרתי הניהול ולכל צמתי Qpid צריכה להיות גישה ל-Postgres בכל מרכזי הנתונים האחרים.
  • מטעמי אבטחה, לא צריך לפתוח יציאות אחרות בין מרכזי נתונים, מלבד היציאות שמוצגות למעלה ויציאות אחרות שנדרשות על ידי דרישות הרשת שלכם.

כברירת מחדל, התקשורת בין הרכיבים לא מוצפנת. אפשר להוסיף הצפנה על ידי התקנת Apigee mTLS. מידע נוסף זמין במאמר מבוא ל-Apigee mTLS.

פרטי הניוד

בטבלה הבאה מפורטים הפורטים שצריך לפתוח בחומות אש, לפי רכיב Edge:

רכיב יציאה תיאור
יציאות HTTP סטנדרטיות 80, 443 ‫HTTP ועוד יציאות שבהן אתם משתמשים למארחים וירטואליים
Apigee SSO 9099 חיבורים מספקי זהויות חיצוניים, משרת הניהול ומדפדפנים לצורך אימות.
Cassandra 7000, 9042 יציאות של Apache Cassandra לתקשורת בין צמתי Cassandra ולגישה של רכיבי Edge אחרים.
7199 יציאת JMX. היציאה צריכה להיות פתוחה כדי ששרת הניהול יוכל לגשת אליה.
LDAP 10389 SymasLDAP
שרת ניהול ‫1099 יציאת JMX
4526 יציאה לזיכרון מטמון מבוזר ולשיחות ניהול. אפשר להגדיר את היציאה הזו.
5636 יציאה להתראות על אישור מונטיזציה.
8080 יציאה לקריאות ל-API לניהול Edge. הרכיבים האלה צריכים גישה ליציאה 8080 בשרת הניהול: נתב, מעבד הודעות, ממשק משתמש, Postgres,‏ Apigee SSO (אם הוא מופעל) ו-Qpid.
ממשק משתמש לניהול 9000 יציאה לגישה לדפדפן לממשק המשתמש לניהול
מעבד בקשות 1101 יציאת JMX
4528 לזיכרון מטמון מבוזר ולקריאות ניהול בין מעבדי הודעות, ולתקשורת מהנתב ומשרת הניהול.

מעבד הודעות צריך לפתוח את יציאה 4528 כיציאת הניהול שלו. אם יש לכם כמה מעבדי הודעות, כולם צריכים להיות מסוגלים לגשת זה לזה דרך יציאה 4528 (שמסומנת בחץ הלולאה בתרשים שלמעלה עבור יציאה 4528 במעבד ההודעות). אם יש לכם כמה מרכזי נתונים, צריך לוודא שהיציאה נגישה מכל מעבדי ההודעות בכל מרכזי הנתונים.

8082

יציאת הניהול שמוגדרת כברירת מחדל עבור Message Processor, והיא צריכה להיות פתוחה ברכיב כדי ששרת הניהול יוכל לגשת אליה.

אם מגדירים TLS/SSL בין הנתב למעבד ההודעות, הנתב משתמש בהם כדי לבצע בדיקות תקינות במעבד ההודעות.

היציאה 8082 ב-Message Processor צריכה להיות פתוחה לגישה של ה-Router רק כשמגדירים TLS/SSL בין ה-Router ל-Message Processor. אם לא מגדירים TLS/SSL בין הנתב למעבד ההודעות, ההגדרה שמוגדרת כברירת מחדל, יציאה 8082, עדיין צריכה להיות פתוחה במעבד ההודעות כדי לנהל את הרכיב, אבל הנתב לא צריך גישה אליה.

‫8443 כש-TLS מופעל בין הנתב למעבד ההודעות, צריך לפתוח את היציאה 8443 במעבד ההודעות כדי שהנתב יוכל לגשת אליו.
8998 יציאת מעבד ההודעות לתקשורת מהנתב
Postgres 22 אם מגדירים שני צמתי Postgres לשימוש בשכפול master-standby, צריך לפתוח את יציאה 22 בכל צומת לגישת SSH.
1103 יציאת JMX
4530 לזיכרון מטמון מבוזר ולשיחות ניהול
‫5432 משמש לתקשורת מ-Qpid/Management Server אל Postgres
8084 יציאת הניהול שמוגדרת כברירת מחדל בשרת Postgres. צריך לפתוח אותה ברכיב כדי ששרת הניהול יוכל לגשת אליו.
Qpid 1102 יציאת JMX
4529 לזיכרון מטמון מבוזר ולשיחות ניהול
5672
  • מרכז נתונים יחיד: משמש לשליחת ניתוח נתונים מנתב וממעבד הודעות אל Qpid.
  • מרכזי נתונים מרובים: משמש לתקשורת בין צמתי Qpid במרכזי נתונים שונים.

השפה הזו משמשת גם לתקשורת בין שרת Qpid לבין רכיבי המתווך באותו הצומת. בטופולוגיות עם כמה צמתי Qpid, השרת צריך להיות מסוגל להתחבר לכל הברוקרים ביציאה 5672.

8083 יציאת הניהול שמוגדרת כברירת מחדל בשרת Qpid, וצריכה להיות פתוחה ברכיב כדי ששרת הניהול יוכל לגשת אליה.
8090 יציאת ברירת המחדל של Qpid's Broker. צריך לפתוח אותה כדי לגשת למסוף הניהול או לממשקי ה-API לניהול של Broker למטרות מעקב.
נתב 4527 לשיחות ניהול ולמטמון מבוזר.

הנתב צריך לפתוח את יציאה 4527 כיציאת הניהול שלו. אם יש לכם כמה נתבים, כולם צריכים להיות מסוגלים לגשת זה לזה דרך יציאה 4527 (מסומנת בחץ הלולאה בתרשים שלמעלה עבור יציאה 4527 בנתב).

אפשר לפתוח את יציאה 4527 בנתב כדי לאפשר גישה לכל מעבד הודעות, אבל זה לא חובה. אחרת, יכול להיות שיופיעו הודעות שגיאה בקובצי היומן של Message Processor.

8081 יציאת הניהול שמוגדרת כברירת מחדל לנתב, והיא צריכה להיות פתוחה ברכיב כדי ששרת הניהול יוכל לגשת אליה.
15999

יציאה לבדיקת תקינות. מאזן העומסים משתמש ביציאה הזו כדי לקבוע אם הנתב זמין.

כדי לקבל את הסטטוס של נתב, מאזן העומסים שולח בקשה ליציאה 15999 בנתב:

curl -v http://routerIP:15999/v1/servers/self/reachable

אם אפשר להגיע לנתב, הבקשה מחזירה HTTP 200.

59001 היציאה שמשמשת לבדיקת ההתקנה של Edge באמצעות כלי השירות apigee-validate. כדי להשתמש בכלי הזה, צריך גישה ליציאה 59001 בנתב. מידע נוסף על יציאה 59001 זמין במאמר בנושא בדיקת ההתקנה.
SmartDocs 59002 היציאה בנתב Edge שאליה נשלחות בקשות לדף SmartDocs.
ZooKeeper 2181 משמש רכיבים אחרים כמו שרת ניהול, נתב, מעבד הודעות וכו'
2888, 3888 משמש באופן פנימי את ZooKeeper לתקשורת של אשכול ZooKeeper (שנקרא ZooKeeper ensemble)

בטבלה הבאה מוצגים אותם פורטים, ברשימה מספרית, עם רכיבי המקור והיעד:

מספר יציאה מטרה רכיב המקור רכיב היעד
virtual_host_port ‫HTTP ועוד יציאות שבהן אתם משתמשים לטראפיק של קריאות ל-API של מארח וירטואלי. היציאות 80 ו-443 הן הנפוצות ביותר. נתב ההודעות יכול לסיים חיבורי TLS/SSL. לקוח חיצוני (או מאזן עומסים) מאזין בנתב ההודעות
‫1099 עד 1103 ניהול JMX לקוח JMX שרת ניהול (1099)
מעבד הודעות (1101)
שרת Qpid‏ (1102)
שרת Postgres‏ (1103)
2181 תקשורת של לקוח Zookeeper שרת ניהול
נתב
מעבד הודעות
שרת Qpid
שרת Postgres
מטפל בבעלי חיים
‫2888 ו-3888 ניהול צמתים פנימיים ב-Zookeeper מטפל בבעלי חיים מטפל בבעלי חיים
4526 יציאת ניהול RPC שרת ניהול שרת ניהול
4527 יציאת ניהול של RPC למטמון מבוזר ולשיחות ניהול, ולתקשורת בין נתבים שרת ניהול
נתב
נתב
4528 לשיחות במטמון מבוזר בין מעבדי הודעות, ולתקשורת מהנתב שרת ניהול
נתב
מעבד הודעות
מעבד בקשות
4529 יציאת ניהול של RPC למטמון מבוזר ולשיחות ניהול שרת ניהול Qpid Server
4530 יציאת ניהול של RPC למטמון מבוזר ולשיחות ניהול שרת ניהול שרת Postgres
5432 לקוח Postgres Qpid Server Postgres
5636 מונטיזציה רכיב JMS חיצוני שרת ניהול
5672
  • מרכז נתונים יחיד: משמש לשליחת ניתוח נתונים מנתב וממעבד הודעות אל Qpid.
  • מרכזי נתונים מרובים: משמש לתקשורת בין צמתי Qpid במרכזי נתונים שונים.

השפה הזו משמשת גם לתקשורת בין שרת Qpid לבין רכיבי המתווך באותו הצומת. בטופולוגיות עם כמה צמתי Qpid, השרת צריך להיות מסוגל להתחבר לכל הברוקרים ביציאה 5672.

Qpid Server Qpid Server
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 יציאת הניהול שמוגדרת כברירת מחדל ב-Broker של Qpid לניהול תורים ולמעקב אחריהם. דפדפן או לקוח API Qpid Broker ‏ (apigee-qpidd)
8443 תקשורת בין Router לבין Message Processor כשהפרוטוקול TLS מופעל נתב מעבד בקשות
8998 תקשורת בין הנתב לבין מעבד ההודעות נתב מעבד בקשות
9000 יציאת ברירת המחדל של ממשק המשתמש לניהול Edge דפדפן שרת ממשק משתמש לניהול
9042 העברה מקורית של CQL נתב
מעבד הודעות
שרת ניהול
Cassandra
9099 אימות באמצעות ספק זהויות חיצוני ספק זהויות (IdP), דפדפן ושרת ניהול Apigee SSO
10389 יציאת LDAP שרת ניהול SymasLDAP
15999 יציאה לבדיקת תקינות. מאזן העומסים משתמש ביציאה הזו כדי לקבוע אם הנתב זמין. מאזן עומסים נתב
59001 היציאה שבה נעשה שימוש בכלי apigee-validate לבדיקת ההתקנה של Edge apigee-validate נתב
59002 יציאת הנתב שאליה נשלחות בקשות לדפי SmartDocs SmartDocs נתב

מעבד ההודעות שומר על מאגר חיבורים ייעודי פתוח ל-Cassandra, שמוגדר כך שאף פעם לא יפוג הזמן הקצוב לתפוגה. אם חומת אש נמצאת בין מעבד ההודעות לבין שרת Cassandra, יכול להיות שהחיבור יפסיק לפעול בגלל חומת האש. עם זאת, מעבד ההודעות לא מיועד ליצור מחדש חיבורים ל-Cassandra.

כדי למנוע את המצב הזה, Apigee ממליצה ששרת Cassandra, מעבד ההודעות והנתבים יהיו באותה תת-רשת, כך שחומת אש לא תהיה מעורבת בפריסה של הרכיבים האלה.

אם יש חומת אש בין הנתב לבין מעבדי ההודעות, והוגדר בה פסק זמן של TCP במצב המתנה, ההמלצות שלנו הן:

  1. מגדירים את net.ipv4.tcp_keepalive_time = 1800 בהגדרות sysctl במערכת ההפעלה Linux, כאשר הערך 1800 צריך להיות נמוך מהערך של הזמן הקצוב לתפוגה של TCP במצב לא פעיל בחומת האש. ההגדרה הזו אמורה לשמור על החיבור במצב מבוסס, כדי שחומת האש לא תנתק את החיבור.
  2. בכל מעבדי ההודעות, עורכים את /opt/apigee/customer/application/message-processor.properties כדי להוסיף את המאפיין הבא. אם הקובץ לא קיים, צריך ליצור אותו.
    conf_system_cassandra.maxconnecttimeinmillis=-1
  3. מפעילים מחדש את מעבד ההודעות:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  4. בכל הנתבים, עורכים את /opt/apigee/customer/application/router.properties כדי להוסיף את המאפיין הבא. אם הקובץ לא קיים, צריך ליצור אותו.
    conf_system_cassandra.maxconnecttimeinmillis=-1
  5. מפעילים מחדש את הנתב:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart