ב-Datastream, קישור בין רשתות VPC שכנות (peering) מאפשר לכם ליצור חיבור ייעודי בין רשת הענן הווירטואלי הפרטי (VPC) לבין Datastream באמצעות כתובות IP פנימיות. לפני שיוצרים הגדרה של קישוריות פרטית, צריך לעיין בטופולוגיות הרשת הנתמכות ולעמוד בדרישות המוקדמות של VPC ושל VPC משותף. כדי להתחבר למכונה של Cloud SQL, אפשר גם להגדיר מכונה וירטואלית של NAT ברשת ה-VPC.
מידע על קישור בין רשתות VPC שכנות (peering) ב-Datastream
כשמשתמשים בקישוריות פרטית, נוצר חיבור ייעודי ברשת Datastream, כך שאף לקוח אחר לא יכול לשתף אותו.
הקישור בין רשת ה-VPC שלכם לרשת ה-VPC של Datastream מאפשר ל-Datastream להתחבר אל:
- משאבים כמו מכונות וירטואליות (VM) ומאזני עומסים פנימיים ברשת ה-VPC.
- משאבים ברשתות אחרות שמחוברות לרשת ה-VPC באמצעות מנהרות Cloud VPN, חיבורי VLAN של Dedicated Interconnect, חיבורי VLAN של Partner Interconnect ונתבי Cloud Router של Network Connectivity Center (NCC).
הקישור בין רשת ה-VPC שלכם לרשת ה-VPC של Datastream לא מאפשר ל-Datastream להתחבר אל:
- נקודות קצה (endpoints) של Private Service Connect שנמצאות ברשת ה-VPC שלכם.
- משאבים שנמצאים ברשת VPC אחרת שמקושרת לרשת ה-VPC שלכם, אבל לא מקושרת לרשת ה-VPC של Datastream, כי קישור בין רשתות VPC שכנות לא מספק ניתוב טרנזיטיבי.
כדי ליצור קישוריות בין Datastream לבין משאב שאפשר לגשת אליו רק מרשת ה-VPC, כמו מכונה של Cloud SQL, אתם יכולים להשתמש במכונה וירטואלית לתרגום כתובות רשת (NAT) ברשת ה-VPC. בתרשים הבא מוצגת דוגמה להגדרת VM של NAT, שמאפשרת ל-Datastream להתחבר באופן פרטי למכונה של Cloud SQL:

דרישות מוקדמות לקישור בין רשתות VPC שכנות (peering)
לפני שיוצרים הגדרת קישוריות פרטית, צריך לבצע את השלבים הבאים כדי ש-Datastream יוכל ליצור את החיבור בין רשתות שכנות (peering) ב-VPC לפרויקט שלכם:
- רשת VPC שיכולה להתחבר לרשת הפרטית של Datastream, ועומדת בדרישות שמפורטות בדף VPC Network Peering. מידע נוסף על יצירת רשת VPC זו זמין במאמר שימוש ב-VPC Network Peering.
- מזהים טווח כתובות IP זמין (עם בלוק CIDR של /29) ברשת ה-VPC. הטווח הזה לא יכול להיות טווח כתובות IP שכבר קיים כרשת משנה, טווח כתובות IP שהוקצה מראש לגישה לשירותים פרטיים, או כל נתיב (מלבד נתיב ברירת המחדל 0.0.0.0) שכולל את טווח כתובות ה-IP. טווח כתובות ה-IP גם לא יכול לחפוף לטווחי כתובות ה-IP הפנימיות ששמורים ל-Datastream (
10.1.0.0/16ו-10.2.2.0/24). Datastream משתמש בטווח כתובות ה-IP הזה כדי ליצור רשת משנה, כדי שיוכל לתקשר עם מסד הנתונים של המקור. בטבלה הבאה מתוארים טווחי כתובות IP חוקיים.
| טווח | תיאור |
|---|---|
10.0.0.0/8172.16.0.0/12192.168.0.0/16
|
כתובות IP פרטיות RFC 1918 |
100.64.0.0/10 |
מרחב כתובות משותף RFC 6598 |
192.0.0.0/24 |
הקצאות פרוטוקול של IETF RFC 6890 |
192.0.2.0/24 (TEST-NET-1)198.51.100.0/24 (TEST-NET-2)203.0.113.0/24 (TEST-NET-3) |
תיעוד RFC 5737 |
192.88.99.0/24 |
ממסר IPv6 ל-IPv4 (הוצא משימוש) RFC 7526 |
198.18.0.0/15 |
בדיקת השוואה לשוק RFC 2544 |
חשוב לוודא שכל המשאבים ברשת ה-VPC שמתקשרים עם Datastream (כמו מכונות וירטואליות של NAT, מאזני עומסים פנימיים או מסדי נתונים של מקור ויעד) לא משתמשים בכתובות IP בטווחים
10.1.0.0/16או10.2.2.0/24. הטווחים האלה שמורים לתשתית הפנימית של Datastream, ואם תשתמשו בהם למשאבים שלכם, עלולים להיווצר התנגשויות בניתוב וכשלים בלתי צפויים בקישוריות.מוודאים ש- Google Cloud וחומת האש המקומית מאפשרים תנועה מטווח כתובות ה-IP שנבחר. אם לא, יוצרים כלל של חומת אש לתעבורת נתונים נכנסת שמאפשר תעבורת נתונים ביציאה של מסד הנתונים במקור, ומוודאים שטווח כתובות ה-IPv4 בכלל של חומת האש זהה לטווח כתובות ה-IP שהוקצה כשנוצר המשאב של הקישוריות הפרטית:
gcloud compute firewall-rules create FIREWALL-RULE-NAME \ --direction=INGRESS \ --priority=PRIORITY \ --network=PRIVATE_CONNECTIVITY_VPC \ --project=VPC_PROJECT \ --action=ALLOW \ --rules=FIREWALL_RULES \ --source-ranges=IP-RANGE
מחליפים את מה שכתוב בשדות הבאים:
- FIREWALL-RULE-NAME: השם של כלל חומת האש שרוצים ליצור.
- PRIORITY: העדיפות של הכלל, מבוטאת כמספר שלם בין 0 ל-65,535, כולל. הערך צריך להיות נמוך מהערך שהוגדר לכלל חסימת התנועה, אם הוא קיים. ערכי עדיפות נמוכים יותר מציינים קדימות גבוהה יותר.
- PRIVATE_CONNECTIVITY_VPC: רשת ה-VPC שיכולה להתחבר לרשת הפרטית של Datastream, ועומדת בדרישות שמפורטות בדף קישור בין רשתות VPC שכנות (peering). זהו ה-VPC שאתם מציינים כשאתם יוצרים את הגדרת החיבור המבודד.
- VPC_PROJECT: הפרויקט של רשת ה-VPC.
- FIREWALL_RULES: רשימת הפרוטוקולים והיציאות שכלל חומת האש חל עליהם, לדוגמה
tcp:80. הכלל צריך לאפשר תנועת TCP לכתובת ה-IP וליציאה של מסד הנתונים של המקור או של שרת ה-proxy. מכיוון שקישוריות פרטית יכולה לתמוך בכמה מסדי נתונים, הכלל צריך להתחשב בשימוש בפועל בהגדרות האישיות שלכם. IP-RANGE: טווח כתובות ה-IP שבהן Datastream משתמש כדי לתקשר עם מסד הנתונים של המקור. זהו אותו טווח שאתם מציינים בשדה Allocate an IP range כשאתם יוצרים את הגדרת הקישוריות הפרטית.
יכול להיות שתצטרכו גם ליצור כלל זהה של חומת אש לתעבורת נתונים יוצאת, כדי לאפשר תעבורת נתונים בחזרה אל Datastream.
מוקצה להם תפקיד שכולל את ההרשאה
compute.networks.list. ההרשאה הזו נותנת לכם את הרשאות ה-IAM הנדרשות כדי להציג רשימה של רשתות VPC בפרויקט. כדי לראות אילו תפקידים מכילים את ההרשאה הזו, אפשר לעיין במאמר העזרה בנושא הרשאות IAM.
דרישות מוקדמות ל-VPC משותף
אם אתם משתמשים ב-VPC משותף, אתם צריכים לבצע את הפעולות הבאות בנוסף לשלבים שמתוארים בקטע דרישות מוקדמות ל-VPC:
בפרויקט השירות:
- מפעילים את Datastream API.
משיגים את כתובת האימייל שמשמשת את חשבון השירות של Datastream. חשבונות השירות של Datastream נוצרים כשמבצעים אחת מהפעולות הבאות:
- אתם יוצרים משאב Datastream, כמו פרופיל חיבור או מקור נתונים.
- יוצרים הגדרה של חיבור מבודד, בוחרים את ה-VPC המשותף ולוחצים על Create Datastream Service Account. חשבון השירות נוצר בפרויקט המארח.
כדי לקבל את כתובת האימייל שמשמשת את חשבון השירות של Datastream, מחפשים את מספר הפרויקט בדף הבית של מסוף Google Cloud . כתובת האימייל של חשבון השירות היא
service-[project_number]@gcp-sa-datastream.iam.gserviceaccount.com.
בפרויקט המארח:
מקצים לחשבון השירות של Datastream את ההרשאה לתפקיד
compute.networkAdminבניהול הזהויות והרשאות הגישה (IAM). התפקיד הזה נדרש רק כשיוצרים את ה-VPC Peering. אחרי שההתאמה בין רשתות שכנות (peering) נוצרת, אתם לא צריכים יותר את התפקיד.אם בארגון שלכם אי אפשר להקצות את התפקיד הזה, אתם יכולים ליצור תפקיד בהתאמה אישית עם ההרשאות המינימליות הבאות כדי ליצור ולמחוק משאבים של חיבורים פרטיים:
מידע נוסף על תפקידים בהתאמה אישית זמין במאמר יצירה וניהול של תפקידים בהתאמה אישית.
הגדרת מכונה וירטואלית ל-NAT
מזהים את כתובת ה-IP של מכונת Cloud SQL שאליה Datastream צריך להתחבר.
מזהים את רשת ה-VPC. זו רשת ה-VPC שמחוברת לרשת ה-VPC של Datastream באמצעות קישור בין רשתות VPC שכנות (peering).
אם עדיין לא עשיתם זאת, צרו הגדרת חיבור מבודד ב-Datastream. כך נוצר החיבור בין רשת ה-VPC שלכם לבין רשת ה-VPC של Datastream. שימו לב לטווח כתובות ה-IP שמשמש את הגדרת החיבור המבודד של Datastream.
בוחרים את סוג המכונה שרוצים להשתמש בה למכונת ה-NAT הווירטואלית שתיצרו בשלב הבא. Google Cloud אוכף מגבלה מקסימלית של רוחב פס לתעבורת נתונים יוצאת לכל מכונה, לחבילות שמנותבות על ידי הצעדים הבאים בתוך רשת VPC, בהתאם לסוג המכונה של המכונה הווירטואלית. למידע נוסף, קראו את המאמרים תעבורת נתונים יוצאת ליעדים שניתן לנתב בתוך רשת VPC ורוחב הפס המקסימלי לתעבורת נתונים יוצאת לכל מכונה.
יוצרים את ה-VM ל-NAT ברשת ה-VPC. כשיוצרים את ה-VM, צריך להפעיל העברת IP. מידע נוסף זמין במאמר הפעלת העברת IP למכונות.
אם רשת ה-VPC היא רשת VPC משותפת, אתם יכולים ליצור את ה-VM ל-NAT בפרויקט המארח או בכל פרויקט שירות, כל עוד ממשק הרשת של ה-VM ל-NAT נמצא ברשת ה-VPC המשותפת.
- כדי לצמצם את זמן הלוך ושוב ברשת, צריך ליצור את ה-VM של ה-NAT באותו אזור שבו נמצא Datastream.
- בדוגמה הזו, נקודת המוצא היא שלמכונה הווירטואלית של ה-NAT יש ממשק רשת אחד.
- מריצים את הסקריפט בהפצת Linux, למשל Debian 12.
- משתמשים בסקריפט הבא לטעינה בזמן ההפעלה. הסקריפט לטעינה בזמן ההפעלה מופעל על ידי root בכל פעם שה-VM מופעל. הסקריפט הזה כולל הערות שמסבירות מה כל שורה בסקריפט עושה. בסקריפט, מחליפים את CLOUD_SQL_INSTANCE_IP בכתובת ה-IP של המכונה של Cloud SQL ואת DATABASE_PORT ביציאת היעד שמשמשת את תוכנת מסד הנתונים.
#! /bin/bash export DB_ADDR=CLOUD_SQL_INSTANCE_IP export DB_PORT=DATABASE_PORT export SYSCTL_CONF_FILE="/etc/sysctl.d/99-sysctl.conf" # Ensure the VM can receive packets whose destinations do # not match any running process local to the VM if [ "$(sysctl net.ipv4.ip_forward)" != "net.ipv4.ip_forward = 1" ]; then echo "Enabling IP forwarding..." if [ ! -f "${SYSCTL_CONF_FILE}" ]; then # Create the kernel parameter config file if it doesn't exist. touch "${SYSCTL_CONF_FILE}" fi # Remove any lines with net.ipv4.ip_forward: sed -i '/net.ipv4.ip_forward/d' "${SYSCTL_CONF_FILE}" # Append net.ipv4.ip_forward=1: echo "net.ipv4.ip_forward=1" >> "${SYSCTL_CONF_FILE}" # Reload kernel parameters: sysctl --system fi # Ask the Metadata server for the IP address of the VM nic0 # network interface: md_url_prefix="http://169.254.169.254/computeMetadata/v1/instance" vm_nic_ip="$(curl -H "Metadata-Flavor: Google" ${md_url_prefix}/network-interfaces/0/ip)" # Clear any existing iptables NAT table entries (all chains): iptables -t nat -F # Create a NAT table entry in the prerouting chain, matching # any packets with destination database port, changing the destination # IP address of the packet to the SQL instance IP address: iptables -t nat -A PREROUTING \ -p tcp --dport $DB_PORT \ -j DNAT \ --to-destination $DB_ADDR # Create a NAT table entry in the postrouting chain, matching # any packets with destination database port, changing the source IP # address of the packet to the NAT VM's primary internal IPv4 address: iptables -t nat -A POSTROUTING \ -p tcp --dport $DB_PORT \ -j SNAT \ --to-source $vm_nic_ip # Save iptables configuration: iptables-save
יוצרים כלל של חומת אש (או כלל במדיניות חומת אש בין רשתות גלובליות, במדיניות חומת אש בין רשתות אזוריות או במדיניות היררכית של חומת אש) לאישור תעבורת נתונים נכנסת, עם המאפיינים הבאים:
- כיוון: תעבורת נתונים נכנסת (Ingress)
- פעולה: אישור
- פרמטר היעד: לפחות המכונה הווירטואלית של ה-NAT
- פרמטר המקור: טווח כתובות ה-IP שמשמש את הגדרת החיבור המבודד של Datastream
- פרוטוקול: TCP
- יציאה: חייבת לכלול לפחות את DATABASE_PORT
כלל ברירת המחדל של חומת האש לאישור תעבורה יוצאת מאפשר למכונה הווירטואלית של ה-NAT לשלוח חבילות לכל יעד. אם ברשת ה-VPC שלכם יש כללי חומת אש שחוסמים תעבורת נתונים יוצאת, יכול להיות שתצטרכו ליצור כלל חומת אש שמאפשר תעבורת נתונים יוצאת כדי לאפשר למכונה הווירטואלית של ה-NAT לשלוח חבילות למכונה של Cloud SQL. אם צריך כלל הרשאה לתעבורת נתונים יוצאת, משתמשים בפרמטרים הבאים:
- כיוון: תעבורת נתונים יוצאת (egress)
- פעולה: אישור
- פרמטר היעד: לפחות המכונה הווירטואלית של ה-NAT
- פרמטר היעד: כתובת ה-IP של המכונה של Cloud SQL
- פרוטוקול: TCP
- יציאה: חייבת לכלול לפחות את DATABASE_PORT
חשוב לוודא שהגדרתם את המכונה של Cloud SQL כך שתקבל חיבורים מכתובת ה-IPv4 הפנימית הראשית שמשמשת את ממשק הרשת של ה-VM של ה-NAT. הוראות מפורטות זמינות במאמר מתן הרשאה באמצעות רשתות מורשות במסמכי התיעוד של Cloud SQL.
יוצרים פרופיל חיבור ב-Datastream. בפרטי החיבור של הפרופיל, מציינים את כתובת ה-IPv4 הפנימית הראשית של המכונה הווירטואלית של ה-NAT שיצרתם. בשדה היציאה של פרופיל החיבור, מזינים את היציאה של מסד הנתונים של המקור.
הגדרה של זוג מכונות וירטואליות ל-NAT ומאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי
כדי לשפר את האמינות של פתרון ה-NAT VM, כדאי להשתמש בארכיטקטורה הבאה, שכוללת זוג מכונות NAT VM ומאזן עומסי רשת פנימי מסוג passthrough:
יוצרים שתי מכונות וירטואליות של NAT באזורים שונים באותו מחוז. כדי ליצור כל מכונה וירטואלית, פועלים לפי ההוראות במאמר הגדרת מכונה וירטואלית של NAT, וממקמים כל מכונה וירטואלית בקבוצת מכונות לא מנוהלת משלה באזור.
לחלופין, אפשר ליצור קבוצה אזורית של מופעי מכונה מנוהלים. בתבנית של קבוצת מופעי המכונה המנוהלים, צריך לכלול סקריפט לטעינה בזמן ההפעלה, כמו הסקריפט לדוגמה שמופיע בהוראות להגדרת מכונת VM ל-NAT.
יוצרים מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי, שהשירות שלו לקצה העורפי משתמש בקבוצת המכונות או בקבוצות מהשלב הקודם בתור הקצוות העורפיים שלו. דוגמה למאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי מופיעה במאמר הגדרת מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי עם קצוות עורפיים של קבוצות מכונות וירטואליות.
כשמגדירים את בדיקת התקינות של מאזן העומסים, אפשר להשתמש בבדיקת תקינות של TCP שמשתמשת ביציאת יעד של TCP שתואמת ל-DATABASE_PORT. חבילות של בדיקת תקינות מנותבות אל CLOUD_SQL_INSTANCE_IP בהתאם להגדרות של ה-VM ל-NAT. לחלופין, אפשר להריץ תהליך מקומי ב-NAT VM שעונה לבדיקת תקינות של TCP או HTTP ביציאה בהתאמה אישית.
יוצרים כללי חומת אש ומגדירים רשתות מורשות של Cloud SQL, כמו שמתואר בהוראות להגדרת מכונה וירטואלית של NAT. מוודאים שהרשתות המורשות של Cloud SQL כוללות את כתובת ה-IPv4 הפנימית הראשית של שתי המכונות הווירטואליות של ה-NAT.
כשיוצרים פרופיל חיבור ב-Datastream, מציינים את כתובת ה-IP של כלל ההעברה של מאזן העומסים הפנימי של רשת ה-Passthrough בפרטי החיבור של הפרופיל.