קישוריות לרשת בשירותים מנוהלים של Google Cloud
בדף הזה מוסבר איך להגדיר קישוריות פרטית מ-Integration Connectors לשירות לקצה העורפי שלכם, כמו CloudSQL ל-MySQL, CloudSQL ל-PostgreSQL ו-CloudSQL לשרת SQL. בדף הזה אנחנו מניחים שאתם מכירים את המושגים הבאים:
- קבצים מצורפים של נקודות קצה
- אזורים מנוהלים
- Private Service Connect (PSC)
- מאזן עומסים של Google Cloud
לתשומת ליבכם
כשיוצרים קובץ מצורף לשירות PSC, חשוב לשים לב לנקודות העיקריות הבאות:
- החיבור לשירות PSC ומאזן העומסים נוצרים בתתי-רשתות שונות באותו VPC. ובאופן ספציפי, קובץ ה-Service Attachment תמיד נוצר בתת-רשת NAT.
- שרתי SOCKS5 proxy צריכים להיות קשורים לכתובת ה-IP
0.0.0.0:<port>כי זה נדרש לתעבורה נכנסת ממאזן העומסים ולבדיקות של בדיקות תקינות. מידע נוסף זמין במאמר בנושא בדיקת תקינות. - התנועה ממאזן העומסים ומבקשה לבדיקת תקינות צריכה להישלח לאותה יציאה.
- מגדירים את כללי חומת האש כדי לאפשר את זרימת התנועה.
כללי תעבורה נכנסת
- תעבורת נתונים מרשת המשנה של צירוף ה-PSC צריכה להגיע לשירות לקצה העורפי.
- בתוך רשת המשנה של ILB, ל-ILB צריכה להיות אפשרות לשלוח תעבורה לשרתי ה-proxy של SOCKS5.
- הבדיקה צריכה להיות מסוגלת לגשת לשרתי ה-proxy של SOCKS5. לבודקי תקינות ב-Google Cloud יש טווח קבוע של כתובות IP (
35.191.0.0/16, 130.211.0.0/22). לכן אפשר לאשר לכתובות ה-IP האלה לשלוח תעבורה לשרתי ה-proxy של SOCKS.
כללים לתעבורת נתונים יוצאת (egress)
תעבורת נתונים יוצאת (egress) מופעלת כברירת מחדל בפרויקט בענן של Google, אלא אם מוגדרים כללי דחייה ספציפיים.
- כל הרכיבים של Google Cloud, כמו קובץ השירות של PSC ומאזן העומסים, צריכים להיות באותו אזור.
- חשוב לוודא ששרתי ה-proxy של SOCKS5 מקבלים תנועה בתרחישים הבאים:
- מאזני עומסים מסוג Pass-through (L4 TCP/UDP ILB): בקשות מ-PSC service attachment's NAT IPs צריכות להגיע לשרתי ה-proxy של SOCKS5. לכן, צריך לאפשר את טווח כתובות ה-IP של כל תת-הרשת של NAT לחיבור השירות. מידע נוסף זמין במאמר רשתות משנה של Private Service Connect.
- מאזני עומסים מבוססי-proxy/HTTP(s) (L4 proxy ILB, L7 ILB): כל הבקשות החדשות מגיעות ממאזן העומסים. לכן, שרתי ה-proxy של SOCKS5 צריכים לקבל בקשות מרשת המשנה של ה-proxy של רשת ה-VPC. מידע נוסף זמין במאמר רשתות משנה של פרוקסי בלבד למאזני עומסים מבוססי Envoy.
הגדרת קישוריות פרטית
חלק מהשירותים המנוהלים של Google Cloud, כמו CloudSQL MySQL, חושפים קובץ מצורף לשירות PSC לקישוריות פרטית. במקרים כאלה, אפשר לדלג על השלב הזה של יצירת קובץ מצורף לשירות PSC, ולהשתמש בקובץ המצורף לשירות PSC שסופק על ידי השירות המנוהל כדי ליצור את הקובץ המצורף של נקודת הקצה של Integration Connectors.
צריך ליצור קובץ מצורף חדש של שירות PSC בתרחישים הבאים:
- השירות המנוהל של Google Cloud לא חושף קובץ מצורף לשירות, אלא חושף כתובת IP באמצעות גישה פרטית לשירות.
- השירות המנוהל של Google Cloud חושף קובץ מצורף לשירות, אבל לא תומך בהוספת הפרויקט של Integration Connectors לרשימת ההיתרים כדי לצרוך את הקובץ המצורף לשירות.
בקטעים הבאים מוסבר בפירוט איך ליצור את קובץ השירות בשני התרחישים האלה. אחרי שיוצרים את קובץ השירות, צריך ליצור קובץ של נקודת קצה ולהגדיר חיבור כדי להשתמש בקובץ של נקודת הקצה.
יצירת קובץ מצורף לשירות בשביל שירות מנוהל שמגביל את הגישה
יכול להיות שהשירות המנוהל לא יאפשר להוסיף את פרויקט Integration Connectors לרשימת ההיתרים כדי להשתמש בחיבור השירות שהוא חושף. במקרה כזה, צריך ליצור מאזן עומסים שמשתמש בחיבור לשירות, ולחשוף את מאזן העומסים ל-Integration Connectors על ידי יצירת חיבור נוסף לשירות בפרויקט.
בתמונה הבאה מוצג שירות מנוהל שחושף קובץ מצורף לשירות:
דוגמה לשירות מנוהל שחושף קובץ מצורף לשירות מופיעה במאמר קישוריות פרטית לאשכול MongoDB Atlas.
יצירת מאזן עומסים עם קצה עורפי מסוג PSC NEG
- יוצרים NEG כדי להתחבר לשירות שפורסם.
- הוספת קצה עורפי למאזן עומסי רשת פנימי אזורי בשרת proxy.
מידע נוסף זמין במאמר יצירת Private Service Connect NEG.
יצירת קובץ מצורף לשירות
- יוצרים תת-רשת ל-PSC NAT.
- יצירת כלל חומת אש שמאפשר בקשה מ-PSC NAT למאזן העומסים
- יוצרים קובץ מצורף של שירות.
מידע נוסף זמין במאמר יצירת קובץ מצורף לשירות PSC
מתן הרשאה לחיבור Private Service Connect מפרויקט Integration Connectors
מידע על הוספת חיבור Private Service Connect מרשימת ההיתרים של פרויקט Integration Connectors זמין במאמר הוספת Integration Connectors לרשימת ההיתרים.
יצירת קובץ מצורף לשירות מנוהל שחושף כתובת IP
אם השירות המנוהל לא חושף קובץ מצורף לשירות, התנועה מ-Integration Connectors צריכה לעבור דרך הפרויקט שלכם.
בתמונה הבאה מוצג שירות מנוהל שלא חושף קובץ מצורף לשירות:
כדי להגדיר קישוריות פרטית, מבצעים את השלבים הבאים:
- יוצרים קובץ מצורף של שירות PSC.
- יוצרים מכונות וירטואליות ב-Compute Engine להרצת שרתי proxy של SOCKS5.
- יוצרים מכונת proxy מספר 1.
gcloud compute instances create PROXY_INSTANCE_1 \ --project=PROJECT_ID \ --network-interface=network-tier=PREMIUM,subnet=SUBNET_NAME_2,no-address
בהתאם לדרישות שלכם, אתם יכולים ליצור כמה מופעים של מכונות וירטואליות שאתם צריכים.
- יוצרים מכונת proxy מספר 1.
- יוצרים כלל חומת אש שמאפשר SSH למכונות הווירטואליות.
gcloud compute firewall-rules create FIREWALL_RULE_NAME_SSH \ --direction=INGRESS --priority=1000 --network=VPC_NETWORK --allow=tcp:22 - מתחברים למכונת ה-VM באמצעות SSH.
gcloud compute ssh \ --tunnel-through-iap \ PROXY_INSTANCE_1 - מתקינים את שרת ה-proxy של Dante SOCKS5.
sudo apt update sudo apt install dante-server - בודקים את ממשק השרת.
sudo ip a
- יוצרים גיבוי של הגדרות Dante.
sudo mv /etc/danted.conf /etc/danted.conf.bak
- יוצרים קובץ תצורה חדש של Dante.
sudo nano /etc/danted.conf
- מעתיקים את ההגדרה הבאה לקובץ התצורה:
logoutput: /var/log/socks.log # Bind the server to the 0.0.0.0 IP address to allow traffic # traffic from the load balancer and the health check probes. internal: 0.0.0.0 port = 1080 external: ens4 clientmethod: none socksmethod: none user.privileged: root user.notprivileged: nobody client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: error connect disconnect } client block { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect error } socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: error connect disconnect } socks block { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect error }
- מפעילים מחדש את שרת Dante ובודקים את הסטטוס.
sudo systemctl restart danted sudo systemctl status danted - יוצאים מהמופע של ה-VM.
exit
- יוצרים מאזן עומסים עם מופע ה-VM כקצה העורפי.
- יוצרים קבוצה של מופעי מכונה לא מנוהלים.
gcloud compute instance-groups unmanaged create INSTANCE_GROUP_NAME
- מוסיפים לקבוצה את המכונות הווירטואליות שנוצרו בשלב 3.
gcloud compute instance-groups unmanaged add-instances INSTANCE_GROUP_NAME \ --instances=PROXY_INSTANCE_1 - יוצרים בקשה לבדיקת תקינות ומאפשרים את התעבורה מהבקשה.
- יוצרים את בקשת בדיקת התקינות.
gcloud compute health-checks create tcp HEALTH_CHECK_NAME \ --port BACKEND_SERVER_PORT --region=REGION
בפקודה הזו, מגדירים את BACKEND_SERVER_PORT ל-1080, שהיא יציאת ברירת המחדל שבה פועלים שרתי ה-proxy של SOCKS5.
- יוצרים כלל של חומת אש שמאפשר תעבורת נתונים מהבדיקה.
gcloud compute firewall-rules create FIREWALL_RULE_NAME_HEALTHCHECK \ --direction=INGRESS --priority=1000 --network=VPC_NETWORK --allow=tcp:BACKEND_SERVER_PORT \ --source-ranges=35.191.0.0/16,130.211.0.0/22
- יוצרים את בקשת בדיקת התקינות.
- יוצרים מאזן עומסים פנימי ברמה 4 ומאפשרים תנועה ממאזן העומסים.
- יוצרים שירות לקצה העורפי.
gcloud compute backend-services create BACKEND_SERVICE \ --load-balancing-scheme=internal --protocol=tcp --health-checks=HEALTH_CHECK_NAME \ --health-checks-region=REGION
- הוספת קבוצת מכונות לשירות לקצה העורפי.
gcloud compute backend-services add-backend BACKEND_SERVICE \ --instance-group=INSTANCE_GROUP_NAME \ --instance-group-zone=ZONE
- יוצרים כלל העברה.
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=internal --network=VPC_NETWORK --subnet=SUBNET_NAME_2 \ --ip-protocol=TCP --ports=BACKEND_SERVER_PORT --backend-service=BACKEND_SERVICE \ --backend-service-region=REGION
-
יוצרים כלל חומת אש שמאפשר תעבורה פנימית ממאזן העומסים לקבוצת המופעים.
gcloud compute firewall-rules create FIREWALL_RULE_NAME_INTERNAL \ --direction=INGRESS --priority=1000 --network=VPC_NETWORK \ --action=ALLOW --rules=all --source-ranges=SUBNET_RANGE_2
- יוצרים שירות לקצה העורפי.
יצירת צירוף של נקודת קצה
אחרי שיוצרים קובץ מצורף של שירות לשירות מנוהל, צריך ליצור קובץ מצורף של נקודת קצה ואז להשתמש בו בחיבור.
צירוף נקודת קצה ככתובת IPהוראות ליצירת קובץ מצורף לנקודת קצה ככתובת IP זמינות במאמר יצירת קובץ מצורף לנקודת קצה ככתובת IP.
צירוף נקודת קצה כשם מארחבמקרים מסוימים, כמו קצה עורפי עם TLS מופעל, היעד מחייב שימוש בשמות מארחים במקום בכתובות IP פרטיות כדי לבצע אימות TLS. במקרים שבהם נעשה שימוש ב-DNS פרטי במקום בכתובת IP ליעד המארח, בנוסף ליצירת צירוף של נקודת קצה ככתובת IP, צריך גם להגדיר אזורים מנוהלים. הוראות ליצירת קובץ מצורף לנקודת קצה כשם מארח זמינות במאמר יצירת קובץ מצורף לנקודת קצה כשם מארח.
בהמשך, כשמגדירים את החיבור לשימוש בחיבור נקודת הקצה, אפשר לבחור את חיבור נקודת הקצה הזה.
הגדרת חיבור לשימוש בקובץ המצורף של נקודת הקצה
אחרי שיוצרים את נקודת הקצה המצורפת, משתמשים בה בחיבור. כשיוצרים חיבור חדש או מעדכנים חיבור קיים, בקטע 'יעדים', בוחרים באפשרות צירוף נקודת קצה בתור סוג היעד ובוחרים את צירוף נקודת הקצה שיצרתם מתוך הרשימה צירוף נקודת קצה.
אם יצרתם אזור מנוהל, בוחרים באפשרות כתובת המארח בתור סוג היעד ומשתמשים ברשומת A שיצרתם כשיצרתם את האזור המנוהל.
טיפים לפתרון בעיות
אם נתקלתם בבעיות בקישוריות פרטית, כדאי לפעול לפי ההנחיות שמפורטות בקטע הזה כדי למנוע בעיות נפוצות.
- מוודאים שפרויקט הדייר (tenant) של המחבר נמצא ברשימת ההיתרים בצירוף השירות.
- מוודאים שההגדרה הבאה נקבעה לכללים של חומת האש:
- צריך לאפשר לתעבורת נתונים מרשת המשנה של צירוף ה-PSC להגיע לשירות לקצה העורפי.
- הבקשה לבדיקת תקינות (probe) צריכה להיות מסוגלת לגשת למערכת הבק-אנד שלכם. למנגנוני בדיקת תקינות ב-Google Cloud יש טווח קבוע של כתובות IP (35.191.0.0/16, 130.211.0.0/22). לכן, צריך לאפשר לכתובות ה-IP האלה לשלוח תנועה לשרת העורפי.
- אפשר להשתמש בבדיקת הקישוריות של Google Cloud כדי לזהות פערים בתצורת הרשת. מידע נוסף זמין במאמר בנושא יצירה והרצה של בדיקות קישוריות.
- יוצרים קבוצה של מופעי מכונה לא מנוהלים.
המכונה הווירטואלית תשמש כשרת proxy לתעבורת הנתונים מ-Integration Connectors לשירות המנוהל. מתקינים שרת proxy מסוג SOCKS5 במכונה הווירטואלית. שרת proxy ל-Cloud SQL Auth תומך בשרשור דרך שרת proxy מסוג SOCKS5, שמאפשר להעביר תעבורה מוצפנת משרת proxy ל-Cloud SQL Auth למכונת היעד של Cloud SQL.
השלבים המפורטים להתקנה ולהגדרה של שרת Proxy מסוג SOCKS5 לא מופיעים במסמך הזה, ואפשר להתקין כל שרת Proxy מסוג SOCKS5 שתבחרו. בשלבים הבאים מוסבר איך להתקין ולהגדיר את שרת ה-proxy של Dante SOCKS5.
- יוצרים מכונות וירטואליות ב-Compute Engine להרצת שרתי proxy של SOCKS5.