בעזרת אבחון הקישוריות של Cloud SQL, אתם יכולים לבודד ולפתור בעיות בחיבורים למסדי נתונים שנכשלו, כולל בעיות בנגישות לרשת, בהרשאות של לקוחות ובאימות משתמשים. כדי לזהות את שורש הבעיה, אתם יכולים להעריך את ההגדרה שלכם באמצעות רשימות משימות ממוקדות לפתרון בעיות, ולבדוק את התנועה באמצעות בדיקות קישוריות, Cloud Logging או כלים כמו tcpdump.
רשימת משימות לפתרון בעיות בחיבור
- מתבצעת התחברות
- כתובת IP פרטית
- האם הפעלתם את
Service Networking APIבפרויקט? - האם אתם משתמשים ב-VPC משותף?
- האם לחשבון המשתמש או לחשבון השירות יש את הרשאות ה-IAM הנדרשות כדי לנהל חיבור גישה לשירותים פרטיים?
- האם החיבור לגישה לשירותים פרטיים מוגדר בפרויקט?
- האם הקציתם טווח כתובות IP לחיבור הפרטי?
- האם טווחי כתובות ה-IP שהוקצו הכילו לפחות מרחב של /24 לכל אזור שבו אתם מתכננים ליצור מכונות MySQL?
- אם אתם מציינים טווח כתובות IP שהוקצה למכונות MySQL, האם הטווח מכיל לפחות מרחב /24 לכל אזור שבו אתם מתכננים ליצור מכונות MySQL בטווח הזה?
- האם נוצר חיבור פרטי?
- אם החיבור הפרטי השתנה, האם ה-vpc-peerings עודכנו?
- האם מופיעות שגיאות ביומני ה-VPC?
- האם כתובת ה-IP של מכונת המקור היא כתובת שאינה RFC 1918?
- האם הרצתם בדיקת קישוריות כדי לעקוב אחרי נתיב המנות ולבדוק אם יש מנות שהושמטו?
- כתובת IP ציבורית
- האם כתובת ה-IP של המקור מופיעה כרשת מורשית?
- האם חובה להשתמש באישורי SSL או TLS?
- האם למשתמש או לחשבון השירות יש את הרשאות ה-IAM הנדרשות כדי להתחבר למכונה של Cloud SQL?
- אישור
- Cloud SQL Auth Proxy
- האם Cloud SQL Auth Proxy מעודכן?
- האם Cloud SQL Auth Proxy פועל?
- האם שם החיבור של המכונה נוצר בצורה נכונה בפקודת החיבור של Cloud SQL Auth Proxy?
- בדקתם את הפלט של Cloud SQL Auth Proxy? מעבירים את הפלט לקובץ או צופים בטרמינל של Cloud Shell שבו הפעלתם את Cloud SQL Auth Proxy.
- האם למשתמש או לחשבון השירות יש את הרשאות ה-IAM הנדרשות כדי להתחבר למכונה של Cloud SQL?
- האם הפעלתם את
Cloud SQL Admin APIבפרויקט? - אם יש לכם מדיניות חומת אש לתעבורת נתונים יוצאת, ודאו שהיא מאפשרת חיבורים ליציאה 3307 במכונה של Cloud SQL.
- אם אתם מתחברים באמצעות שקעי דומיין של UNIX, ודאו שהשקעים נוצרו על ידי הצגת הספרייה שצוינה באמצעות -dir כשהפעלתם את Cloud SQL Auth Proxy.
- מחברים של Cloud SQL וקוד ספציפי לשפה
- האם מחרוזת החיבור נוצרה בצורה נכונה?
- האם השוויתם את הקוד שלכם לקוד לדוגמה בשפת התכנות שלכם?
- האם אתם משתמשים בסביבת זמן ריצה או במסגרת שאין לנו קוד לדוגמה בשבילה?
- אם כן, האם חיפשתם בקהילה חומר עזר רלוונטי?
- אישורי SSL/TLS בניהול עצמי
- האם אישור הלקוח מותקן במכונת המקור?
- האם אישור הלקוח מאוית נכון בארגומנטים של החיבור?
- האם אישור הלקוח עדיין בתוקף?
- האם מופיעות שגיאות כשאתם מתחברים באמצעות SSL?
- האם אישור השרת עדיין בתוקף?
- רשתות מורשות
- האם כתובת ה-IP של המקור כלולה?
- האם אתם משתמשים בכתובת IP שהיא לא RFC 1918?
- האם אתם משתמשים בכתובת IP לא נתמכת?
- כשלים בחיבור
- האם יש לכם הרשאה לקשר?
- האם מופיעות שגיאות שקשורות למגבלת החיבורים?
- האם האפליקציה סוגרת חיבורים כמו שצריך?
- אימות
- אימות מקורי של מסד נתונים (שם משתמש/סיסמה)
- מופיעות שגיאות מסוג
access denied? - האם שם המשתמש והסיסמה נכונים?
- אימות מסד נתונים ב-IAM
- האם הפעלתם את הדגל
cloudsql.iam_authenticationבמכונה שלכם? - האם הוספתם קישור מדיניות לחשבון?
- האם אתם משתמשים ב-Cloud SQL Auth Proxy עם
-enable_iam_loginאו עם אסימון Oauth 2.0 בתור הסיסמה למסד הנתונים? - אם אתם משתמשים בחשבון שירות, האם אתם משתמשים בשם האימייל המקוצר?
- מידע נוסף על אימות מסד נתונים של IAM ב-PostgreSQL
הודעות שגיאה
לגבי הודעות שגיאה ספציפיות של API, אפשר לעיין בדף העזרה בנושא הודעות שגיאה.
פתרונות נוספים לבעיות בקישוריות
אם נתקלתם בבעיות אחרות, עיינו בקטע קישוריות בדף פתרון הבעיות.
בעיות נפוצות בחיבור
איך מוודאים שהאפליקציה סוגרת את החיבורים כמו שצריך
אם מופיעות שגיאות שמכילות את הטקסט "Aborted connection nnnn to db:", בדרך כלל זה אומר שהאפליקציה לא מפסיקה את החיבורים כמו שצריך. גם בעיות ברשת יכולות לגרום לשגיאה הזו. השגיאה לא אומרת שיש בעיות במכונה של Cloud SQL. מומלץ גם להריץ את tcpdump כדי לבדוק את החבילות ולאתר את מקור הבעיה.
במאמר ניהול חיבורים למסדי נתונים תוכלו לקרוא דוגמאות לשיטות מומלצות לניהול חיבורים.
מוודאים שהאישורים בתוקף
אם המכונה מוגדרת לשימוש ב-SSL, נכנסים לדף Cloud SQL Instances במסוף Google Cloud ופותחים את המכונה. פותחים את הדף Connections, בוחרים בכרטיסייה Security ומוודאים שאישור השרת תקף. אם התוקף שלו פג, צריך להוסיף אישור חדש ולהחליף אליו.
מוודאים שיש לכם הרשאה להתחבר
אם החיבורים נכשלים, צריך לבדוק שיש לכם הרשאה להתחבר:
- אם אתם לא מצליחים להתחבר באמצעות כתובת IP, למשל אם אתם מתחברים מהסביבה המקומית באמצעות לקוח mysql, ודאו שכתובת ה-IP שממנה אתם מתחברים מורשית להתחבר למכונה של Cloud SQL.
חיבורים למכונה של Cloud SQL באמצעות כתובת IP פרטית מאושרים באופן אוטומטי לטווחי כתובות RFC 1918. כך כל הלקוחות הפרטיים יכולים לגשת למסד הנתונים בלי לעבור דרך Cloud SQL Auth Proxy. צריך להגדיר טווחי כתובות שהם לא RFC 1918 כרשתות מורשות.
כברירת מחדל, Cloud SQL לא לומד נתיבים של תת-רשתות שאינן RFC 1918 מה-VPC. כדי לייצא נתיבים שאינם RFC 1918, צריך לעדכן את קישור הרשתות (peering) ל-Cloud SQL. לדוגמה:
gcloud compute networks peerings update cloudsql-mysql-googleapis-com \ --network=NETWORK \ --export-subnet-routes-with-public-ip \ --project=PROJECT_ID
כתובת ה-IP הנוכחית שלכם.
- מנסים להריץ את הפקודה
gcloud sql connectכדי להתחבר למכונה. הפקודה הזו מאשרת את כתובת ה-IP שלכם לזמן קצר. אפשר להריץ את הפקודה הזו בסביבה שבה מותקנים ה-CLI של gcloud ולקוח mysql. אפשר גם להריץ את הפקודה הזו ב-Cloud Shell, שזמין במסוףGoogle Cloud וכולל את ה-CLI של gcloud ואת לקוח mysql מותקנים מראש. ב-Cloud Shell יש מכונה של Compute Engine שאפשר להשתמש בה כדי להתחבר ל-Cloud SQL. - לאפשר באופן זמני לכל כתובות ה-IP להתחבר למכונה. ב-IPv4, צריך לאשר את
0.0.0.0/0(ב-IPv6, צריך לאשר את::/0.
אימות אופן החיבור
אם מופיעה הודעת שגיאה כמו:ERROR 1045 (28000): Access denied for user 'root'@'1.2.3.4' (using password: NO)
כשאתם מתחברים, ודאו שאתם מזינים סיסמה.
אם מופיעה הודעת שגיאה כמו:
ERROR 1045 (28000): Access denied for user 'root'@'1.2.3.4' (using password: YES)
כשאתם מתחברים, ודאו שאתם משתמשים בסיסמה הנכונה ומתחברים באמצעות SSL אם המכונה דורשת זאת.
איך החיבורים נוצרים
כדי לראות מידע על החיבורים הנוכחיים, מתחברים למסד הנתונים ומריצים את הפקודה הבאה:
SHOW PROCESSLIST;
חיבורים שמוצגת בהם כתובת IP, כמו 1.2.3.4, מתחברים באמצעות IP.
חיבורים עם cloudsqlproxy~1.2.3.4 משתמשים ב-Cloud SQL Auth Proxy, או שהם מגיעים מ-App Engine. יכול להיות שחלק מהתהליכים הפנימיים של Cloud SQL ישתמשו בחיבורים מ-localhost.
מגבלות על החיבורים
אין מגבלות QPS למכונות של Cloud SQL. עם זאת, יש מגבלות ספציפיות לחיבור, לגודל ול-App Engine. מידע נוסף זמין במאמר מכסות ומגבלות.
חיבורים למסד נתונים צורכים משאבים בשרת ובאפליקציה שמחוברת אליו. תמיד כדאי להשתמש בשיטות טובות לניהול החיבורים כדי לצמצם את טביעת הרגל של האפליקציה ולהפחית את הסבירות לחריגה ממגבלות החיבור של Cloud SQL. מידע נוסף זמין במאמר ניהול החיבורים למסדי נתונים.
הצגת החיבורים והשרשורים
אם מופיעה הודעת השגיאה "יותר מדי חיבורים", או שאתם רוצים לברר מה קורה במכונה, אתם יכולים להציג את מספר החיבורים והשרשורים באמצעות SHOW PROCESSLIST.
מלקוח MySQL, מריצים את הפקודה:
mysql> SHOW PROCESSLIST;
הפלט אמור להיראות כך:
+----+-----------+--------------+-----------+---------+------+-------+----------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-----------+--------------+-----------+---------+------+-------+----------------------+ | 3 | user-name | client-IP | NULL | Query | 0 | NULL | SHOW processlist | | 5 | user-name | client-IP | guestbook | Sleep | 1 | | SELECT * from titles | | 17 | user-name | client-IP | employees | Query | 0 | NULL | SHOW processlist | +----+-----------+--------------+-----------+---------+------+-------+----------------------+ 3 rows in set (0.09 sec)
במאמרי העזרה של MySQL מוסבר איך לפרש את העמודות שמוחזרות מ-PROCESSLIST.
כדי לקבל את מספר השרשורים, אפשר להשתמש ב:
mysql> SHOW STATUS WHERE Variable_name = 'Threads_connected';
הפלט אמור להיראות כך:
+-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | Threads_connected | 7 | +-------------------+-------+ 1 row in set (0.08 sec)
הזמן הקצוב לתפוגה של החיבורים (מ-Compute Engine)
החיבורים למכונה של Compute Engine נסגרים אחרי 10 דקות של חוסר פעילות, מה שיכול להשפיע על חיבורים ארוכי טווח שלא בשימוש בין המכונה של Compute Engine למכונה של Cloud SQL. למידע נוסף, קראו את המאמר רשתות וחומות אש במרכז העזרה של Compute Engine.
כדי לשמור על חיבורים לטווח ארוך שלא נמצאים בשימוש, אפשר להגדיר את TCP keepalive. הפקודות הבאות מגדירות את ערך ה-keepalive של TCP לדקה אחת, והופכות את ההגדרה לקבועה בכל הפעלה מחדש של המכונה.
מציגים את הערך הנוכחי של tcp_keepalive_time.
cat /proc/sys/net/ipv4/tcp_keepalive_timeמגדירים את tcp_keepalive_time ל-60 שניות וקובעים שההגדרה תהיה קבועה בכל ההפעלות מחדש.
echo 'net.ipv4.tcp_keepalive_time = 60' | sudo tee -a /etc/sysctl.conf
מחילים את השינוי.
sudo /sbin/sysctl --load=/etc/sysctl.conf
מציגים את הערך של tcp_keepalive_time כדי לוודא שהשינוי בוצע.
cat /proc/sys/net/ipv4/tcp_keepalive_timeחיבור באמצעות IPv6
אם מופיעה אחת מהודעות השגיאה הבאות
Can't connect to MySQL server on '2001:1234::4321' (10051) Can't connect to MySQL server on '2001:1234::4321' (101)
כשאתם מתחברים, סביר להניח שאתם מנסים להתחבר לכתובת ה-IPv6 של המכונה, אבל אין לכם IPv6 זמין בתחנת העבודה. כדי לבדוק אם IPv6 פועל בתחנת העבודה, נכנסים לכתובת ipv6.google.com. אם הדף לא נטען, סימן ש-IPv6 לא זמין. במקום זאת, צריך להתחבר לכתובת ה-IPv4 או למכונה של Cloud SQL. יכול להיות שתצטרכו קודם להוסיף כתובת IPv4 למכונה.
כשלים בחיבור מדי פעם (HA מדור קודם)
כשמערכת Cloud SQL מפעילה מחדש מכונה בגלל אירועי תחזוקה, יכול להיות שהחיבורים ינותבו לרפליקה של יתירות כשל. כשמתחברים לרפליקה של יתירות כשל:
- בקשות קריאה מלקוחות שמשתמשים בחיבורים לא מוצפנים מצליחות כרגיל. עם זאת, בקשות כתיבה נכשלות ומוחזרת הודעת שגיאה, כמו "Error 1290: The MySQL server is running with the --read-only option so it cannot execute this statement".
- בקשות קריאה וכתיבה מלקוחות שמשתמשים בחיבורים מוצפנים נכשלות ומוחזרת הודעת שגיאה, כמו "x509: certificate is valid for master-instance, not failover-instance".
אחרי שהאירוע מסתיים, Cloud SQL מאפס את החיבור. מנסים להתחבר שוב. מומלץ לתכנן את האפליקציות כך שיטפלו בכשלים אקראיים בחיבור, על ידי הטמעה של אסטרטגיית טיפול בשגיאות כמו השהיה מעריכית לפני ניסיון חוזר (exponential backoff). מידע נוסף זמין במאמר הטמעה באפליקציה.
כלים לניפוי באגים בקישוריות
tcpdump
tcpdump הוא כלי ללכידת חבילות. מומלץ מאוד להריץ את tcpdump כדי לתעד ולבדוק את החבילות בין המארח לבין המכונות של Cloud SQL כשמנסים לפתור בעיות בקישוריות.
איתור כתובת ה-IP המקומית
אם אתם לא יודעים את הכתובת המקומית של המארח, הריצו את הפקודה ip -br address show. ב-Linux, הפקודה הזו מציגה את ממשק הרשת, את הסטטוס של הממשק, את כתובת ה-IP המקומית ואת כתובות ה-MAC. לדוגמה:
eth0 UP 10.128.0.7/32 fe80::4001:aff:fe80:7/64.
אפשר גם להריץ את ipconfig או את ifconfig כדי לראות את הסטטוס של ממשקי הרשת.
בדיקה באמצעות Connectivity Test
בדיקת קישוריות היא כלי אבחון שמאפשר לבדוק את הקישוריות בין נקודות קצה ברשת. הוא מנתח את ההגדרות ובמקרים מסוימים מבצע אימות בזמן הריצה. עכשיו הוא תומך ב-Cloud SQL. כדי להריץ בדיקות במכונות Cloud SQL, פועלים לפי ההוראות האלה.
בדיקת החיבור
אתם יכולים להשתמש בלקוח mysql כדי לבדוק את היכולת להתחבר מהסביבה המקומית. מידע נוסף זמין במאמרים חיבור לקוח mysql באמצעות כתובות IP וחיבור לקוח mysql באמצעות Cloud SQL Auth Proxy.
מציאת כתובת ה-IP של האפליקציה
כדי לזהות את כתובת ה-IP של המחשב שבו פועלת האפליקציה, כדי שתוכלו לאשר גישה למכונה של Cloud SQL מהכתובת הזו, אתם יכולים להשתמש באחת מהאפשרויות הבאות:
- אם המחשב לא נמצא מאחורי שרת proxy או חומת אש, מתחברים למחשב ומשתמשים בכלי What is my IP? כדי לקבוע את כתובת ה-IP שלו.
- אם המחשב נמצא מאחורי שרת proxy או חומת אש, צריך להתחבר למחשב ולהשתמש בכלי או בשירות כמו whatismyipaddress.com כדי לזהות את כתובת ה-IP האמיתית שלו.
פתיחת יציאות מקומיות
כדי לוודא שהמארח מאזין ליציאות שאתם חושבים שהוא מאזין להן, מריצים את הפקודה ss -tunlp4. כך אפשר לדעת אילו יציאות פתוחות ומאזינות.
לדוגמה, אם יש לכם מסד נתונים של MySQL שפועל, יציאה 3306 צריכה להיות פעילה ולהאזין. ל-SSH, אמורה להופיע יציאה 22.
כל הפעילות ביציאה המקומית
משתמשים בפקודה netstat כדי לראות את כל הפעילות ביציאה המקומית. לדוגמה, הפקודה netstat -lt מציגה את כל היציאות הפעילות כרגע.
התחברות למכונה של Cloud SQL באמצעות telnet
כדי לוודא שאפשר להתחבר למכונה של Cloud SQL באמצעות TCP, מריצים את הפקודה telnet. Telnet מנסה להתחבר לכתובת ה-IP וליציאה שציינתם.
telnet 35.193.198.159 3306.
אם הפעולה הצליחה, תראו את ההודעה הבאה:
Trying 35.193.198.159...
Connected to 35.193.198.159.
.
אם הפעולה נכשלת, telnet נתקע עד שסוגרים אותו באופן ידני:
Trying 35.193.198.159...
^C.
.
Cloud Logging
ב-Cloud SQL משתמשים ב-Cloud Logging, שמאפשר לאחסן, לחפש, לנתח, לעקוב ולקבל התראות על נתוני רישום ביומן. מידע נוסף זמין במאמרי העזרה של Cloud Logging. במאמר שאילתות לדוגמה ב-Cloud SQL יש רשימה של שאילתות לניתוח יומני Cloud SQL.
צפייה ביומנים
אפשר לראות את היומנים של מכונות Cloud SQL ושל פרויקטים אחרים ב- Google Cloud, כמו מכונות של Cloud VPN או של Compute Engine. כדי לראות את רשומות היומן של המכונה ב-Cloud SQL:
המסוף
-
נכנסים לדף Cloud Logging במסוף Google Cloud .
- בוחרים פרויקט קיים ב-Cloud SQL בחלק העליון של הדף.
- בכלי ליצירת שאילתות, מוסיפים את הפרטים הבאים:
- Resource: בוחרים באפשרות Cloud SQL Database. בתיבת הדו-שיח, בוחרים מכונה של Cloud SQL.
- שמות של יומנים: גוללים לקטע Cloud SQL ובוחרים את קובצי היומן המתאימים למכונה. לדוגמה:
- cloudsql.googlapis.com/mysql-general.log
- cloudsql.googleapis.com/mysql.err
- חומרה: בוחרים רמת יומן.
- טווח תאריכים: בוחרים טווח מוגדר מראש או יוצרים טווח בהתאמה אישית.
gcloud
משתמשים בפקודה gcloud logging כדי להציג רשומות ביומן. בדוגמה הבאה, מחליפים את PROJECT_ID.
הדגל limit הוא פרמטר אופציונלי שמציין את המספר המקסימלי של רשומות שיוחזרו.
gcloud logging read "projects/PROJECT_ID/logs/cloudsql.googleapis.com/mysql-general.log" \ --limit=10
כתובות IP פרטיות
חיבורים למכונה של Cloud SQL באמצעות כתובת IP פרטית מאושרים באופן אוטומטי לטווחי כתובות RFC 1918. צריך להגדיר טווחי כתובות שהם לא RFC 1918 ב-Cloud SQL כרשתות מורשות. צריך גם לעדכן את קישור הרשתות השכנות (peering) ל-Cloud SQL כדי לייצא נתיבים שאינם RFC 1918. לדוגמה:
gcloud compute networks peerings update cloudsql-mysql-googleapis-com
--network=NETWORK
--export-subnet-routes-with-public-ip
--project=PROJECT_ID
אבחון של כשלים בחיבור לרשת VPC ולכתובת IP פרטית
כשמתחברים למכונה של Cloud SQL או ממנה דרך רשת VPC (למשל, באמצעות גישה לשירותים פרטיים או קישור רשת VPC), כשלים בחיבור בדרך כלל מייצרים שגיאות כלליות כמו "תם הזמן הקצוב לחיבור" או "החיבור נדחה" בלי לציין את שורש הבעיה.
כדי לאבחן למה החיבור נכשל (לדוגמה, אם תעבורת הנתונים נחסמת על ידי כלל של חומת אש, נתיב חסר או קישור לא פעיל), משתמשים בבדיקות הקישוריות של Network Intelligence Center.
הרצת בדיקת קישוריות
אתם יכולים לבדוק את הקישוריות ממכונה וירטואלית של לקוח למכונה של Cloud SQL (או בכיוון ההפוך, למשל כשמתחברים מ-Cloud SQL למסד נתונים של מקור במהלך העברה):
המסוף
- במסוף Google Cloud , נכנסים לדף בדיקות קישוריות:
- לוחצים על Create connectivity test.
- בקטע מקור:
- מציינים את נקודת הקצה של המקור (לדוגמה, כתובת ה-IP ורשת ה-VPC או המכונה הווירטואלית של הלקוח ב-Compute Engine).
- בקטע יעד:
- מציינים את נקודת הקצה (endpoint) של היעד:
- כתובת IP: מזינים את כתובת ה-IP הפרטית של המכונה של Cloud SQL.
- Network: בוחרים את רשת ה-VPC.
- יציאה: מזינים את היציאה של מסד הנתונים (
3306ל-MySQL,5432ל-PostgreSQL או1433ל-SQL Server). - פרוטוקול: בוחרים באפשרות
TCP.
- מציינים את נקודת הקצה (endpoint) של היעד:
- לוחצים על יצירה.
- בודקים את תוצאות הבדיקה:
- ניתן להגעה: נתיב הרשת בין המקור ליעד פתוח. אם עדיין לא הצלחתם להתחבר, ודאו שפרטי הכניסה של המשתמש למסד הנתונים נכונים ושתהליך מסד הנתונים פועל.
- Unreachable / Dropped: מרחיבים את פרטי המעקב כדי לראות את הדילוג המדויק שבו התנועה נפסקה:
- Dropped by firewall: בודקים את הכלל של חומת האש שמוצג במעקב ומוסיפים כלל שמאפשר תעבורת נתונים נכנסת (ingress) ברשת היעד של יציאת מסד הנתונים.
- אין מסלול: צריך לוודא שהמסלולים בהתאמה אישית מיוצאים ומיוצאים דרך החיבור של VPC Network Peering.
- קישור לא פעיל בין רשתות שכנות (peering): ודאו שהחיבור של קישור בין רשתות VPC שכנות (peering) נמצא במצב
ACTIVEבשתי הרשתות.
gcloud
- מפעילים את Network Management API:
gcloud services enable networkmanagement.googleapis.com --project=PROJECT_ID
- יוצרים ומריצים בדיקת קישוריות מה-VM או מכתובת ה-IP של המקור למכונה של Cloud SQL:
gcloud network-management connectivity-tests create TEST_NAME \ --project=PROJECT_ID \ --source-network=projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME \ --source-ip=SOURCE_IP \ --destination-ip=INSTANCE_PRIVATE_IP \ --destination-port=DB_PORT \ --protocol=TCP \ --round-trip
מחליפים את מה שכתוב בשדות הבאים:
-
TEST_NAME: שם לבדיקה, למשלcloudsql-vpc-test. -
SOURCE_IP: כתובת ה-IP הפנימית של ה-VM של הלקוח. -
INSTANCE_PRIVATE_IP: כתובת ה-IP הפרטית של המכונה ב-Cloud SQL. -
DB_PORT: היציאה של מסד הנתונים (3306ל-MySQL,5432ל-PostgreSQL או1433ל-SQL Server).
-
- כדי לראות את המעקב לאבחון ואת הסיבה לביטול:
gcloud network-management connectivity-tests describe TEST_NAME \ --project=PROJECT_ID
הפלט מציין אם החבילות מגיעות ליעד או איפה הן נמחקות (למשל, כלל ספציפי של חומת אש או מסלול חסר).
אימות של קישור בין רשתות VPC שכנות (peering) וכללי חומת אש
אם בדיקת הקישוריות מצביעה על אובדן מנות או שאתם לא מצליחים ליצור את החיבור, ודאו את הדברים הבאים:
- מצב קישור בין רשתות VPC שכנות (peering): מוודאים שמצב החיבור של הקישור הוא
ACTIVE:gcloud compute networks peerings list \ --network=VPC_NETWORK_NAME \ --project=PROJECT_ID
- מסלולים שהוחלפו: בודקים את המסלולים שהוחלפו בחיבור ה-peering:
gcloud compute networks peerings list-routes PEERING_NAME \ --network=VPC_NETWORK_NAME \ --region=REGION \ --direction=OUTGOING \ --project=PROJECT_ID
- כללים של חומת אש לתעבורת נתונים נכנסת (ingress): ודאו שברשת ה-VPC יש כלל לתעבורת נתונים נכנסת שמאפשר תעבורת נתונים ביציאה של מסד הנתונים מטווח ה-IP של הלקוח:
gcloud compute firewall-rules list \ --project=PROJECT_ID \ --filter="network:VPC_NETWORK_NAME AND allowed[].ports:DB_PORT"
פתרון בעיות ב-VPN
אפשר לעיין בדף פתרון בעיות ב-Cloud VPN.