העברת פרוטוקולים משתמשת בכלל העברה אזורי כדי להעביר חבילות של פרוטוקול ספציפי למכונה וירטואלית (VM) אחת. כלל ההעברה יכול לכלול כתובת IP פנימית או חיצונית. העברת פרוטוקולים מעבירה מנות תוך שמירה על כתובת ה-IP של היעד של כלל ההעברה. כלל ההעברה מפנה לאובייקט שנקרא מכונת יעד, שבתורה מפנה למכונת VM יחידה.
אפשר להשתמש בהעברת פרוטוקולים כדי:
- צריך לספק כתובת IP שאפשר להעביר ממכונה אחת לאחרת על ידי שינוי המכונה הווירטואלית שאליה מתייחס אובייקט מכונת היעד, או על ידי שינוי מכונת היעד שאליה מתייחס כלל ההעברה.
- העברת מנות למכונות וירטואליות שונות על סמך פרוטוקול ויציאה. שני כללי העברה יכולים לשתף את אותה כתובת IP, כל עוד פרטי היציאה והפרוטוקול שלהם ייחודיים.
- (הגדרה רלוונטית רק להעברת פרוטוקולים חיצוניים) מגדירים כתובות IP חיצוניות נוספות לממשק רשת נתון. בניגוד לממשק רשת עם הגדרת NAT של 1:1 לכתובת ה-IPv4 החיצונית שלו, העברת פרוטוקולים שומרת על כתובת ה-IP של היעד של כלל ההעברה.
- שליחת חבילות שכתובות ה-IP של המקור שלהן תואמות לכתובת ה-IP של כלל ההעברה.
העברת פרוטוקול שונה ממאזן עומסים מסוג pass-through מהסיבות הבאות:
- ללא איזון עומסים. מופע יעד מחלק מנות רק למכונה וירטואלית אחת.
- אין בדיקת תקינות. בניגוד לשירות לקצה העורפי, מופע יעד לא תומך בבדיקת תקינות. צריך להשתמש באמצעים אחרים כדי לוודא שהתוכנה הנדרשת פועלת במכונה הווירטואלית שאליה מתייחסת מכונת היעד.
ארכיטקטורה
העברת פרוטוקולים משתמשת בכללי העברה חיצוניים אזוריים או בכללי העברה פנימיים אזוריים ובאובייקט של מכונת יעד אזורית. מופע היעד והמכונה הווירטואלית שהוא מפנה אליהם צריכים להיות ממוקמים בתחום באזור של כלל ההעברה.
העברת פרוטוקולים חיצוניים. אתם יכולים להגדיר כמה כללי העברה שיצביעו על מופע יעד יחיד, וכך להשתמש בכמה כתובות IP חיצוניות עם מופע VM אחד. אפשר להשתמש בזה בתרחישים שבהם רוצים להציג נתונים רק ממופע אחד של מכונה וירטואלית, אבל דרך כתובות IP חיצוניות שונות או פרוטוקולים ויציאות שונים. האפשרות הזו שימושית במיוחד כשמגדירים אירוח וירטואלי של SSL. העברת פרוטוקול חיצונית יכולה לטפל בחיבורים מלקוחות IPv6.
העברת פרוטוקולים חיצוניים תומכת בפרוטוקולים הבאים: AH, ESP, GRE, ICMP, ICMPv6, SCTP, TCP ו-UDP .
התרשים הבא מציג דוגמה לארכיטקטורה של העברת פרוטוקולים חיצוניים. איך מגדירים העברה של פרוטוקול חיצוני
ארכיטקטורה של העברת פרוטוקול חיצוני (אפשר ללחוץ כדי להגדיל). העברת פרוטוקולים פנימית. העברת פרוטוקולים פנימית משתמשת בכתובת IPv4 פנימית אזורית (מטווח כתובות ה-IPv4 הראשי של רשת משנה) או בטווח כתובות IPv6 פנימי אזורי (מטווח כתובות ה-IPv6 של רשת משנה).
העברת פרוטוקולים פנימית תומכת בפרוטוקולים הבאים: TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH ו-GRE .
בתרשים הבא מוצגת דוגמה לארכיטקטורה של העברת פרוטוקולים פנימית. במאמר הגדרת העברה של פרוטוקול פנימי מוסבר איך מגדירים את מה שדרוש לצורך ההפעלה.
ארכיטקטורה של העברת פרוטוקול פנימי (אפשר ללחוץ כדי להגדיל). באמצעות העברת פרוטוקול פנימית, אפשר לשנות את היעד של כלל העברה כדי לעבור בין מופע יעד לבין שירות קצה עורפי של מאזן עומסים מסוג pass-through. פרטים נוספים מופיעים במאמר מעבר בין מופע יעד לבין שירות backend.
כללי העברה
כל כלל העברה יוצר התאמה בין כתובת IP, פרוטוקול ופרטי יציאה (אם מציינים אותם ואם הפרוטוקול תומך ביציאות). כשכלל העברה מפנה למכונת יעד, Google Cloud הוא מעביר מנות שתואמות לכתובת, לפרוטוקול ולמפרט היציאה של כלל ההעברה אל המכונה הווירטואלית שאליה מפנה מכונת היעד.
העברת פרוטוקול פנימית:
תמיכה בכתובות IPv4. כתובת IPv4 פנימית אזורית מטווח ה-IPv4 הראשי של תת-רשת. אתם יכולים לציין כתובת IPv4 סטטית שמורה או כתובת IPv4 זמנית בהתאמה אישית. אם לא מציינים כתובת,מערכת Google Cloudמקצה באופן אוטומטי כתובת IPv4 זמנית.
תמיכה בכתובות IPv6. כלל ההעברה מפנה לטווח של כתובות IP
/96מתוך טווח כתובות ה-IPv6 הפנימיות של תת-הרשת/64. רשת המשנה צריכה להיות אחת מהאפשרויות הבאות:- רשת משנה עם תמיכה כפולה (IPv4 ו-IPv6)
- רשת משנה עם פרוטוקול יחיד (IPv6 בלבד)
ההגדרה
ipv6-access-typeשל רשת המשנה צריכה להיותINTERNAL.כתובות IPv6 פנימיות זמינות רק במסלול הפרימיום. אפשר לציין כתובת IPv6 סטטית שמורה או כתובת IPv6 ארעית בהתאמה אישית. אם לא מציינים כתובת, Google Cloud המערכת מקצה אוטומטית כתובת IPv6 זמנית.
כדי לציין כתובת IPv6 זמנית מותאמת אישית, צריך להשתמש ב-CLI של gcloud או ב-API. במסוף Google Cloud אין תמיכה בהגדרת כתובות IPv6 זמניות מותאמות אישית לכללי העברה.
אפשרויות פרוטוקול.
TCP(ברירת מחדל),UDPו-L3_DEFAULT.- אפשרות הפרוטוקול של כלל ההעברה
L3_DEFAULTמעבירה את כל התנועה מסוג TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH ו-GRE. בפרוטוקולים TCP, UDP ו-SCTP,L3_DEFAULTמעביר גם את כל היציאות.
- אפשרות הפרוטוקול של כלל ההעברה
אפשרויות של מפרט יציאה. רשימה של עד חמש יציאות סמוכות או לא סמוכות, או כל היציאות.
העברת פרוטוקול חיצוני:
תמיכה בכתובות IPv4. כלל ההעברה מפנה לכתובת IPv4 חיצונית אזורית אחת. כתובות IPv4 חיצוניות אזוריות מגיעות ממאגר ייחודי לכל אזור. Google Cloud אפשר לציין כתובת IPv4 סטטית שמורה. אם לא מציינים כתובת, Google Cloud המערכת מקצה כתובת IPv4 באופן אוטומטי.
תמיכה בכתובות IPv6. כלל ההעברה מפנה לטווח
/96של כתובות IP מהחצי השני (/65) של טווח כתובות ה-IPv6 החיצוניות/64של רשת המשנה, כפי שמתואר במאמר מפרטים של כתובות IPv6 חיצוניות. תת-הרשת צריכה להיות אחת מהאפשרויות הבאות:- רשת משנה עם תמיכה כפולה (IPv4 ו-IPv6)
- רשת משנה עם פרוטוקול יחיד (IPv6 בלבד)
תת-הרשת
ipv6-access-typeחייבת להיות מוגדרת כ-EXTERNAL.כתובות IPv6 חיצוניות זמינות רק במסלול פרימיום. אפשר לציין כתובת IPv6 סטטית שמורה או כתובת IPv6 ארעית בהתאמה אישית. אם לא מציינים כתובת, Google Cloud המערכת מקצה אוטומטית כתובת IPv6 זמנית.
כדי לציין כתובת IPv6 זמנית מותאמת אישית, צריך להשתמש ב-CLI של gcloud או ב-API. במסוף Google Cloud אין תמיכה בהגדרת כתובות IPv6 זמניות מותאמות אישית לכללי העברה.
אפשרויות פרוטוקול.
AH,ESP,ICMP,SCTP,TCP(ברירת מחדל),UDPוגםL3_DEFAULT:- אפשרות הפרוטוקול של כלל ההעברה
L3_DEFAULTמעבירה את כל התנועה מסוג AH, ESP, GRE, ICMP, ICMPv6, SCTP, TCP ו-UDP. בפרוטוקולים TCP, UDP ו-SCTP,L3_DEFAULTמעביר גם את כל היציאות. - כללי העברה של IPv6 לא תומכים בהגדרת הפרוטוקול
ICMPכי פרוטוקול ICMP תומך רק בכתובות IPv4. כדי להעביר תנועה של ICMPv6 ו-GRE, צריך להגדיר את הפרוטוקול של כלל ההעברה ל-L3_DEFAULT.
- אפשרות הפרוטוקול של כלל ההעברה
אפשרויות של מפרט יציאה. טווח יציאות רציף או כל היציאות.
כשעובדים עם כללי העברה, חשוב לזכור את הנקודות הבאות:
בהעברת פרוטוקולים, כלל העברה יכול להפנות רק למופע יעד אחד.
במאזני עומסי רשת פנימיים להעברת סיגנל ללא שינוי ובמאזני עומסי רשת חיצוניים אזוריים להעברת סיגנל ללא שינוי שמבוססים על שירותים לקצה העורפי, כלל העברה יכול להפנות רק לשירות קצה עורפי אחד.
אפשר לעבור בין העברת פרוטוקול פנימית לבין מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי בלי למחוק את כלל ההעברה וליצור אותו מחדש. כדי לעבור מהעברת פרוטוקול חיצונית למאזן עומסי רשת אזורי חיצוני להעברת סיגנל ללא שינוי שמבוסס על שירות קצה עורפי, צריך למחוק את כלל ההעברה וליצור אותו מחדש. פרטים נוספים מופיעים במאמר בנושא מעבר בין מופע יעד לשירות לקצה העורפי.
אפשר לציין מידע על יציאה רק בפרוטוקולים שיש בהם מושג של יציאה:
TCP,UDPאוSCTP.אם אתם מצפים לחבילות UDP מקוטעות, אתם צריכים לבצע אחת מהפעולות הבאות כדי לוודא שכל הפרגמנטים (כולל אלה ללא פרטי יציאה) מועברים למופע:
- להשתמש בכלל העברה יחיד
L3_DEFAULT, או - משתמשים בכלל העברה אחד
UDPשמוגדר להעברת כל היציאות.
- להשתמש בכלל העברה יחיד
מופעי יעד
מכונת יעד היא משאב של תחום מוגדר שמפנה למכונת VM אחת באותו תחום. כלל ההעברה שמפנה למכונת היעד צריך להיות באזור שמכיל את האזור של מכונת היעד. מכיוון שלא חלה על מופע היעד מדיניות Cloud NAT, אפשר להשתמש בו לתעבורת IPsec שלא יכולה לעבור דרך NAT.
תמיכה בכמה מתאמי NIC
העברת פרוטוקול באמצעות מכונות יעד תומכת במכונות וירטואליות עם ממשקי רשת שאינם של nic0 (vNIC או ממשקי רשת דינמיים) באמצעות הדגל --network כשיוצרים את מכונת היעד:
- אם משמיטים את הדגל
--networkכשיוצרים מופע יעד,Google Cloud מעביר מנות ל-interfacenic0של מכונת ה-VM שאליה מתבצעת ההפניה. - אם כוללים את הדגל
--networkכשיוצרים מכונת יעד, מערכתGoogle Cloud מעבירה חבילות ל-NIC של המכונה הווירטואלית שאליה יש הפניה, שנמצאת ברשת ה-VPC שצוינה באמצעות הדגל--network.- למכונה הווירטואלית שאליה יש הפניה חייב להיות כרטיס רשת וירטואלי ברשת ה-VPC שצוינה באמצעות הדגל
--network. - כדי להעביר מנות לממשקים שאינם
nic0, כל ממשק רשת של מופע צריך להיות ברשת VPC נפרדת. אי אפשר להשתמש בהעברת פרוטוקולים כדי להעביר חבילות לכמה ממשקי רשת שנמצאים באותה רשת VPC.
- למכונה הווירטואלית שאליה יש הפניה חייב להיות כרטיס רשת וירטואלי ברשת ה-VPC שצוינה באמצעות הדגל
- להעברת פרוטוקול פנימית ולהעברת פרוטוקול חיצונית של IPv6 יש דרישה נוספת, כי כללי ההעברה שלהן משתמשים ברשתות משנה: כשמגדירים כלל העברה להפניה למכונת יעד, כלל ההעברה חייב להשתמש ברשת משנה של רשת ה-VPC של מכונת היעד. כלל ההעברה ומופע היעד לא יכולים להשתמש ברשתות VPC שונות, גם אם הרשתות האלה מקושרות בצורה כלשהי.
תמיכה ב-IPv6 למכונות וירטואליות
אם רוצים שפריסת העברת הפרוטוקול תתמוך בתנועת IPv6, צריך להגדיר את המכונה הווירטואלית באחד מהאפשרויות הבאות: dual-stack או single-stack IPv6-only subnet שנמצא באותו אזור כמו כלל העברת ה-IPv6.
שימו לב: אפשר ליצור מכונות וירטואליות עם IPv6 בלבד גם ברשתות משנה עם IPv4 ו-IPv6 (dual-stack) וגם ברשתות משנה עם IPv6 בלבד, אבל אי אפשר ליצור מכונות וירטואליות עם dual-stack ברשתות משנה עם IPv6 בלבד.
אפשר ליצור את מופע ה-VM ברשת משנה עם ipv6-access-type שמוגדר ל-EXTERNAL או ל-INTERNAL. המכונה הווירטואלית מקבלת בירושה את ההגדרה ipv6-access-type (EXTERNAL או INTERNAL) מרשת המשנה.
הוראות מפורטות זמינות במאמר בנושא יצירת מכונה שמשתמשת בכתובות IPv6. אם רוצים להשתמש ב-VM קיים, אפשר לעדכן את ה-VM כך שיהיה לו תמיכה ב-dual-stack באמצעות הפקודה gcloud compute instances network-interfaces update.
אי אפשר לעדכן מכונות וירטואליות קיימות ל-IPv6 בלבד.
כתובות IP של חבילות בקשה וחבילות החזרה
כשמופע יעד מקבל חבילה מלקוח, כתובות ה-IP של המקור והיעד של חבילת הבקשה הן כמו שמופיע בטבלה הזו.
| סוג העברת פרוטוקול | כתובת ה-IP של המקור | כתובת ה-IP של היעד |
|---|---|---|
| העברת פרוטוקול חיצוני | כתובת ה-IP החיצונית שמשויכת למכונה וירטואלית או לכתובת IP חיצונית של לקוח באינטרנט. Google Cloud | כתובת ה-IP של כלל ההעברה. |
| העברת פרוטוקולים פנימית | כתובת IP פנימית של לקוח; עבור Google Cloud לקוחות, כתובת IPv4 או IPv6 פנימית ראשית או כתובת IPv4 מטווח כתובות IP של כינוי של ממשק רשת של מכונה וירטואלית. | כתובת ה-IP של כלל ההעברה. |
התוכנה שפועלת במכונות הווירטואליות של מופעי היעד צריכה להיות מוגדרת כך שתבצע את הפעולות הבאות:
- האזנה (קישור) לכתובת ה-IP של כלל ההעברה או לכל כתובת IP
(
0.0.0.0או::). - אם הפרוטוקול של כלל ההעברה תומך ביציאות, המערכת מאזינה (נקשרת) ליציאה שכלולה בכלל ההעברה.
חבילות ההחזרה נשלחות ישירות ממופע היעד ללקוח. כתובות ה-IP של המקור והיעד של חבילת התגובה תלויות בפרוטוקול:
- פרוטוקול TCP הוא פרוטוקול מוכוון-חיבור. מופעי היעד צריכים להשיב עם מנות נתונים שכתובות ה-IP של המקור שלהן תואמות לכתובת ה-IP של כלל ההעברה. כך הלקוח יכול לשייך את מנות התגובה לחיבור ה-TCP המתאים.
- הפרוטוקולים AH, ESP, GRE, ICMP, ICMPv6 ו-UDP הם פרוטוקולים לא מחוברים. ממכונות וירטואליות שהוגדרו כיעדים יכולים להישלח מנות תגובה עם כתובות IP של מקור שתואמות לכתובת ה-IP של כלל ההעברה, או לכל כתובת IP שהוקצתה לכרטיס ה-NIC של המכונה הווירטואלית באותה רשת VPC שבה מוגדר כלל ההעברה. מבחינה מעשית, רוב הלקוחות מצפים שהתשובה תגיע מאותה כתובת IP שאליה הם שלחו חבילות.
בטבלה הבאה מפורטים מקורות ויעדים של מנות החזרה:
| סוג תעבורה | כתובת ה-IP של המקור | כתובת ה-IP של היעד |
|---|---|---|
| TCP | כתובת ה-IP של כלל ההעברה. | כתובת ה-IP של המקור של חבילת הבקשה. |
| AH, ESP, GRE, ICMP, ICMPv6 ו-UDP | ברוב תרחישי השימוש, כתובת ה-IP של כלל ההעברה.1 | כתובת ה-IP של המקור של חבילת הבקשה. |
1 באמצעות העברת פרוטוקולים פנימית, אפשר להגדיר את המקור של חבילת התגובה לכתובת ה-IPv4 הפנימית הראשית של כרטיס ה-NIC של המכונה הווירטואלית, לכתובת IPv6 או לטווח כתובות IP של כינוי. אם במכונה וירטואלית מופעלת העברת IP, היא יכולה להשתמש בכתובת IP שרירותית כמקור למנות שהיא שולחת ליעדים שמופנים ברשת VPC. שימוש בכתובת ה-IP של כלל ההעברה כמקור הוא תרחיש מתקדם, כי הלקוח מקבל חבילת תגובה מכתובת IP פנימית שלא תואמת לכתובת ה-IP שאליה הוא שלח חבילת בקשה.
קישוריות לאינטרנט יוצאת ממופעי היעד
מכונות וירטואליות שמפנות למכונות יעד יכולות ליזום חיבורים לאינטרנט באמצעות כתובת ה-IP של כלל ההעברה המשויך ככתובת ה-IP של המקור של החיבור היוצא.
בדרך כלל, מכונה וירטואלית תמיד משתמשת בכתובת ה-IP החיצונית שלה או ב-Cloud NAT כדי ליזום חיבורים. משתמשים בכתובת ה-IP של כלל ההעברה כדי ליזום חיבורים ממכונות יעד רק בתרחישים מיוחדים, למשל כשצריך שמכונות וירטואליות יתחילו ויקבלו חיבורים באותה כתובת IP חיצונית.
למנות יוצאות שנשלחות ממכונות וירטואליות של מופעי יעד ישירות לאינטרנט אין הגבלות על פרוטוקולי תעבורה ופורטים. גם אם חבילה יוצאת משתמשת בכתובת ה-IP של כלל ההעברה כמקור, הפרוטוקול ויציאת המקור של החבילה לא צריכים להיות זהים לפרוטוקול ולמפרט היציאה של כלל ההעברה. עם זאת, חבילות תגובה נכנסות צריכות להתאים לכתובת ה-IP, לפרוטוקול ולנמל היעד של כלל ההעברה. מידע נוסף זמין במאמר נתיבים למאזני עומסי רשת אזוריים חיצוניים להעברת סיגנל ללא שינוי ולהעברת פרוטוקולים חיצוניים.
הנתיב הזה לקישוריות לאינטרנט ממכונת VM של יעד הוא התנהגות ברירת המחדל המיועדת לפי כללי חומת האש המשתמעים של Google Cloud. עם זאת, אם יש לכם חששות לגבי האבטחה של השארת הנתיב הזה פתוח, אתם יכולים להשתמש בכללים ממוקדים של חומת אש ליציאה כדי לחסום תנועה יוצאת לא רצויה לאינטרנט.
מגבלות
- כלל העברה לא יכול להפנות ליותר ממכונת יעד אחת.
- במקרים של מופעי יעד, לא ניתן לבצע בדיקות תקינות. צריך לוודא שהתוכנה הנדרשת פועלת במכונה הווירטואלית שאליה מתייחסת מופע היעד.
- העברת פרוטוקול פנימית לתעבורת IPv6 לא תומכת בפרוטוקול
L3_DEFAULT. אפשר להשתמש ב-TCPאו ב-UDP. - במקרה של כרטיסי NIC דינמיים, צריך להוסיף באופן ידני נתיבים מקומיים לכתובות ה-IP של כלל ההעברה, כמו שמתואר בבעיה הידועה הבאה: מנות שנשמטו כשמשתמשים בכרטיסי NIC דינמיים עם טווחי IP של כינויים, העברת פרוטוקולים או מאזני עומסים חיצוניים של רשת להעברת סיגנל ללא שינוי.
הפניית API ו-gcloud
למידע על כללי העברה, קראו את המאמרים הבאים:
לגבי מקרים של טירגוט, אפשר לעיין במאמרים הבאים:
תמחור
למידע על תמחור, אפשר לעיין במאמר בנושא תמחור רשת: איזון עומסים ב-Cloud.
מכסות ומגבלות
למידע על המכסות של כללי העברה להעברת פרוטוקולים, אפשר לעיין במאמר מכסות ומגבלות: כללי העברה.