הצורך בניהול חומת האש לא מסתכם רק במארחים הווירטואליים. חומות האש של המכונות הווירטואליות ושל המארחים הפיזיים צריכות לאפשר תעבורה ליציאות שנדרשות לרכיבים כדי לתקשר זה עם זה.
תרשימי ניוד
בתמונות הבאות מוצגות דרישות הפורטים להגדרות של מרכז נתונים יחיד ושל כמה מרכזי נתונים:
מרכז נתונים יחיד
בתמונה הבאה מוצגות דרישות הפורטים לכל רכיב Edge בהגדרת מרכז נתונים יחיד:
הערות לגבי התרשים הזה:
- היציאות שמופיע לפניהן האות M הן יציאות שמשמשות לניהול הרכיב, והן צריכות להיות פתוחות ברכיב כדי ששרת הניהול יוכל לגשת אליהן.
- ממשק המשתמש של Edge דורש גישה לנתב, ביציאות שנחשפות על ידי שרתי Proxy של API, כדי לתמוך בלחצן Send בכלי המעקב.
- אפשר להגדיר את הגישה ליציאות JMX כך שתידרש הזנת שם משתמש וסיסמה. מידע נוסף זמין במאמר איך עוקבים אחרי נתונים.
- אפשר גם להגדיר גישה באמצעות TLS/SSL לחיבורים מסוימים, שיכולים להשתמש ביציאות שונות. מידע נוסף זמין במאמר בנושא TLS/SSL.
- אפשר להגדיר את שרת הניהול ואת ממשק המשתמש של Edge לשליחת אימיילים דרך שרת SMTP חיצוני. אם כן, צריך לוודא שלשרת הניהול ולממשק המשתמש יש גישה ליציאה הנדרשת בשרת ה-SMTP (לא מוצג). ב-SMTP ללא TLS, מספר היציאה הוא בדרך כלל 25. ב-SMTP עם TLS, המספר הוא לרוב 465, אבל כדאי לבדוק את זה מול ספק ה-SMTP.
כמה מרכזי נתונים
אם מתקינים את התצורה המאגדתת של 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, השרת צריך להיות מסוגל להתחבר לכל הברוקרים ביציאה 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, השרת צריך להיות מסוגל להתחבר לכל הברוקרים ביציאה 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 במצב המתנה, ההמלצות שלנו הן:
- מגדירים את
net.ipv4.tcp_keepalive_time = 1800
בהגדרות sysctl במערכת ההפעלה Linux, כאשר הערך 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