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

בדיקה אחת: היכן באמת נמצא נקודת הקצה?

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

ShapeWhat it meansPass condition
Software on your VMOrdinary subnet addressingRoute and security group permit the client
Attached to your VPCPrivate, but only inside that VPCEndpoint associated, source allowed, route present
Provider-hosted, public endpointOptional private link, not private by defaultA private endpoint exists and DNS points at it

רוב אחר הצהריים המבוזבזים נובעים מדילוג על הסיווג הזה ומעבר ישיר לטבלת המסלולים. שירות מתארח אצל הספק עם נקודת קצה ציבורית אינו מאחורי המנהור שלכם, יאמר התרשים מה שיאמר, ושירות המחובר ל-VPC לעולם לא יופיע בתשובת DNS ציבורית.

בדיקה שתיים: שירות המחובר ל-VPC כמו ElastiCache

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

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

בדיקה שלוש: נקודת קצה של PaaS עם שם ציבורי

Azure Database for PostgreSQL מציג שם שרת ציבורי. הוא אינו נותן לכם כתובת פרטית שתוכלו לנעוץ בקובץ hosts ולנתב דרך שער. נקודות קצה של שירות רשת וירטואלית מגבילות אילו רשתות משנה רשאיות להגיע למשאב; הן אינן מאשרות לקוח מקומי שמגיע דרך VPN.

השגת גישה פרטית פירושה הכנסת נקודת קצה פרטית או תכנון קישור פרטי, ואז הוספת אזור DNS פרטי כדי שהשם הציבורי יענה בנקודת הקצה הזו במקום באינטרנט. VPN בשילוב עם כלל נקודת קצה של שירות הוא ארכיטקטורה אחרת שנראית דומה רק בתרשים. App Service פועל לפי אותו היגיון מהכיוון ההפוך: שילוב VNet מאפשר לאפליקציה לבצע קריאות יוצאות אל VNet, והוא אינו יוצר נתיב פרטי נכנס מהמנהור שלכם. לכן גישה פרטית נכנסת מחייבת נקודת קצה פרטית, סביבת App Service או שער לפני האפליקציה, ומה מהם תוכלו להשתמש בו תלוי בתוכנית.

בדיקה ארבע: מוצרים עם דלת כניסה משלהם

לא ניתן לחבר את Firebase Hosting ל-Cloud VPN, כי שכבת האחסון היא חזית גלובלית ולא משהו בתוך VPC של פרויקט. החלופה המתועדת היא לבנות בעצמכם את נקודת הכניסה המבוקרת, עם מופע פרוקסי או מאזן עומסים שמגובה בדלי אחסון. כך או כך האתר מפסיק להיות מוצר אחסון טהור והופך לתשתית שאתם מפעילים כעת. כדאי לתת שם למסחר החליפין הזה לפני שמישהו מבטיח שהמנהור יכסה אותו.

Private API Gateway עומד קרוב יותר לצד שירותי ה-VPC: נקודת קצה של VPC מסוג interface מפרסמת שם מארח שתשובותיו כתובות פרטיות, והתעבורה מהחצרים שלכם מגיעה דרך המנהור או דרך חיבור ייעודי. נקודת הקצה חייבת להיות משויכת ל-API, והתעודה יחד עם שם המארח חייבים להתאים לדומיין המותאם שבו משתמשים הקוראים.

מנהרות Google Cloud VPN נקשרות לכתובות IP של עמיתים, לא לשמות. העברת DNS מוגדרת בנפרד, ולכן מנהור יכול להיות בריא לחלוטין בעוד שחיפושים באזור הפרטי המרוחק עדיין נכשלים.

ואז אתרו את הגבול

הריצו את אותו חיבור מ-VM בתוך ה-VPC. כשזה מצליח שם ונכשל מלקוח ה-VPN, הפער נמצא בין נתיב הלקוח לנקודת הקצה של השירות: מסלול, קבוצת אבטחה, מדיניות נקודת קצה או שם. כששתי הניסיונות נכשלים, דבר ברשת ההיא אינו יכול להגיע לשירות, וה-VPN מעולם לא היה המכשול.

getent hosts db.internal.example
nc -vz db.internal.example 5432

בצעו את חיפוש השם ואת בדיקת הפורט בנפרד, כי הם נכשלים מסיבות שונות והזוג אומר לכם איזה חצי מהנתיב שבור. שם שנפתר לכתובת ציבורית אומר לכם את הדבר הבא: אזור ה-DNS הפרטי אינו בפעולה.

מאמרים קשורים