העברת פרוטוקול משתמשת בכלל העברה אזורי כדי להעביר חבילות של פרוטוקול ספציפי למכונה וירטואלית (VM) אחת. כלל ההעברה יכול לכלול כתובת IP פנימית או כתובת 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 .
בתרשים הבא מוצגת דוגמה לארכיטקטורה של העברת פרוטוקולים פנימית. במאמר הגדרת העברה של פרוטוקול פנימי מוסבר איך מגדירים את מה שדרוש לצורך ההפעלה.
ארכיטקטורה של העברת פרוטוקול פנימי (אפשר ללחוץ כדי להגדיל). בעזרת העברת פרוטוקולים פנימית, אפשר לשנות את היעד של כלל העברה כדי לעבור בין מופע יעד לבין שירות קצה עורפי של מאזן עומסים מסוג העברה. פרטים נוספים זמינים במאמר מעבר בין מופע יעד לבין שירות backend.
כללי העברה
כל כלל העברה יוצר התאמה בין כתובת IP, פרוטוקול ופרטי יציאה (אם מציינים אותם ואם הפרוטוקול תומך ביציאות). כשכלל העברה מפנה למכונת יעד, הוא מעביר מנות שתואמות לכתובת, לפרוטוקול ולמפרט היציאה של כלל ההעברה אל המכונה הווירטואלית שאליה מפנה מכונת היעד. Google Cloud
העברת פרוטוקולים פנימית:
תמיכה בכתובות IPv4. כתובת IPv4 פנימית אזורית מטווח ה-IPv4 הראשי של תת-רשת. אפשר לציין כתובת IPv4 סטטית שמורה או כתובת IPv4 זמנית בהתאמה אישית. אם לא מציינים כתובת, Google Cloud המערכת מקצה באופן אוטומטי כתובת IPv4 זמנית.
תמיכה בכתובות IPv6. כלל ההעברה מפנה לטווח של כתובות IP
/96מתוך טווח כתובות ה-IPv6 הפנימיות של תת-הרשת/64. רשת המשנה (subnet) צריכה להיות אחת מהאפשרויות הבאות:- רשת משנה עם תמיכה כפולה (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.
- אפשרות הפרוטוקול של כלל ההעברה
אפשרויות למפרט של יציאות. טווח יציאות רציף או כל היציאות.
כשעובדים עם כללי העברה, חשוב לזכור את הנקודות הבאות:
בהעברת פרוטוקול, כלל העברה יכול להפנות רק למופע יעד אחד.
במאזני עומסי רשת פנימיים להעברת סיגנל ללא שינוי ובמאזני עומסי רשת חיצוניים להעברת סיגנל ללא שינוי שמבוססים על שירותים לקצה עורפי, כלל העברה יכול להפנות רק לשירות קצה עורפי אחד.
אפשר לעבור בין העברת פרוטוקול פנימית לבין מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי בלי למחוק את כלל ההעברה וליצור אותו מחדש. כדי לעבור מהעברת פרוטוקול חיצונית למאזן עומסי רשת חיצוני להעברת סיגנל ללא שינוי שמבוסס על שירות backend, צריך למחוק את כלל ההעברה וליצור אותו מחדש. פרטים נוספים זמינים במאמר מעבר בין מופע יעד לשירות לקצה העורפי.
אפשר לציין מידע על יציאה רק עבור פרוטוקולים שיש להם מושג של יציאה:
TCP,UDPאוSCTP.אם אתם מצפים לחבילות UDP מקוטעות, אתם צריכים לבצע אחת מהפעולות הבאות כדי לוודא שכל הפרגמנטים (כולל אלה ללא פרטי יציאה) מועברים למופע:
- להשתמש בכלל העברה יחיד
L3_DEFAULT, או - משתמשים בכלל העברה אחד של
UDPשהוגדר להעברת כל היציאות.
- להשתמש בכלל העברה יחיד
מופעי יעד
מכונת יעד היא משאב של תחום מוגדר שמפנה למכונת VM אחת באותו תחום. כלל ההעברה שמפנה למכונת היעד צריך להיות באזור שמכיל את האזור של מכונת היעד. מכיוון שלא מוחלת על מופע היעד מדיניות Cloud NAT, אפשר להשתמש בו לתעבורת IPsec שלא יכולה לעבור דרך NAT.
תמיכה בכרטיסי רשת מרובים
העברת פרוטוקולים באמצעות מכונות יעד תומכת במכונות וירטואליות עם ממשקי רשת שאינם nic0 (vNICs או ממשקי רשת דינמיים) באמצעות הדגל --network כשיוצרים את מכונת היעד:
- אם משמיטים את הדגל
--networkכשיוצרים מופע יעד,Google Cloud מעביר מנות לnic0ממשק של מכונה וירטואלית שמפנים אליה. - אם כוללים את הדגל
--networkכשיוצרים מכונת יעד, מערכתGoogle Cloud מעבירה חבילות ל-NIC של המכונה הווירטואלית שאליה יש הפניה, שנמצאת ברשת ה-VPC שצוינה בדגל--network.- למכונה הווירטואלית שאליה יש הפניה חייב להיות כרטיס רשת וירטואלי ברשת ה-VPC שצוינה באמצעות הדגל
--network. - כדי להעביר מנות לממשקים שאינם
nic0, כל ממשק רשת של מופע צריך להיות ברשת VPC נפרדת. שימוש בהעברת פרוטוקולים כדי להעביר חבילות לכמה ממשקי רשת שנמצאים באותה רשת VPC אינו נתמך.
- למכונה הווירטואלית שאליה יש הפניה חייב להיות כרטיס רשת וירטואלי ברשת ה-VPC שצוינה באמצעות הדגל
- להעברת פרוטוקול פנימית ולהעברת פרוטוקול חיצונית ב-IPv6 יש דרישה נוספת, כי כללי ההעברה שלהן משתמשים ברשתות משנה: כשמגדירים כלל העברה להפניה למכונת יעד, כלל ההעברה צריך להשתמש ברשת משנה של רשת ה-VPC של מכונת היעד. כלל ההעברה ומופע היעד לא יכולים להשתמש ברשתות VPC שונות, גם אם הרשתות האלה מקושרות בצורה כלשהי.
תמיכה ב-IPv6 למכונות וירטואליות
אם רוצים שפריסת העברת הפרוטוקול תתמוך בתנועת IPv6, צריך להגדיר את המכונה הווירטואלית באחד מהאפשרויות הבאות: רשת משנה (subnet) עם תמיכה כפולה (dual-stack) או רשת משנה עם תמיכה יחידה (single-stack) ב-IPv6 בלבד שנמצאת באותו אזור כמו כלל ההעברה של IPv6.
שימו לב: אפשר ליצור מכונות וירטואליות עם IPv6 בלבד גם ברשתות משנה עם IPv6 בלבד וגם ברשתות משנה עם מחסנית כפולה, אבל אי אפשר ליצור מכונות וירטואליות עם מחסנית כפולה ברשתות משנה עם 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 הפנימית הראשית של כרטיס הרשת של המכונה הווירטואלית, לכתובת IPv6 או לטווח כתובות IP של כינוי. אם במכונה וירטואלית מופעלת העברת IP, היא יכולה להשתמש בכתובת IP שרירותית כמקור למנות שהיא שולחת ליעדים שמופנים ברשת VPC. שימוש בכתובת ה-IP של כלל ההעברה כמקור הוא תרחיש מתקדם, כי הלקוח מקבל חבילת תגובה מכתובת IP פנימית שלא תואמת לכתובת ה-IP שאליה הוא שלח חבילת בקשה.
קישוריות לאינטרנט יוצאת ממופעי היעד
מכונות וירטואליות שמפנות למכונות יעד יכולות ליזום חיבורים לאינטרנט באמצעות כתובת ה-IP של כלל ההעברה המשויך ככתובת ה-IP של המקור של החיבור היוצא.
בדרך כלל, מכונה וירטואלית תמיד משתמשת בכתובת ה-IP החיצונית שלה או ב-Cloud NAT כדי ליזום חיבורים. משתמשים בכתובת ה-IP של כלל ההעברה כדי ליזום חיבורים ממכונות וירטואליות יעד רק בתרחישים מיוחדים, למשל כשצריך שמכונות וירטואליות יעד יתחילו חיבורים ויקבלו חיבורים באותה כתובת IP חיצונית.
למנות יוצאות שנשלחות ממכונות וירטואליות של מופעי יעד ישירות לאינטרנט אין הגבלות על פרוטוקולי תעבורה ועל יציאות. גם אם חבילה יוצאת משתמשת בכתובת ה-IP של כלל ההעברה כמקור, הפרוטוקול ויציאת המקור של החבילה לא צריכים להיות זהים לפרוטוקול ולמפרט היציאה של כלל ההעברה. עם זאת, חבילות תגובה נכנסות חייבות להתאים לכתובת ה-IP, לפרוטוקול וליציאת היעד של כלל ההעברה. מידע נוסף זמין במאמר בנושא נתיבים למאזנים חיצוניים של עומסי רשת להעברת סיגנל ללא שינוי ולהעברת פרוטוקולים חיצוניים.
הנתיב הזה לקישוריות לאינטרנט ממכונה וירטואלית של יעד הוא התנהגות ברירת המחדל המיועדת לפי כללי חומת האש המשתמעים של Google Cloud. עם זאת, אם יש לכם חששות לגבי אבטחה בגלל שהנתיב הזה פתוח, אתם יכולים להשתמש בכללים ממוקדים בחומת האש ליציאה כדי לחסום תנועה יוצאת לא רצויה לאינטרנט.
מגבלות
- כלל העברה לא יכול להפנות ליותר ממכונת יעד אחת.
- אין תמיכה בבדיקות תקינות עם מופעי יעד. צריך לוודא שהתוכנה הנדרשת פועלת במכונה הווירטואלית שאליה מתייחס מופע היעד.
- העברת פרוטוקולים פנימית לתעבורת IPv6 לא תומכת בפרוטוקול
L3_DEFAULT. אפשר להשתמש ב-TCPאו ב-UDP. - במקרה של כרטיסי NIC דינמיים, צריך להוסיף ידנית נתיבים מקומיים לכתובות IP של כללי העברה, כמו שמתואר בבעיה הידועה הבאה: מנות שנשמטו כשמשתמשים בכרטיסי NIC דינמיים עם טווחי IP של כינויים, העברת פרוטוקולים או מאזני עומסים של רשת להעברת סיגנל ללא שינוי.
מאמרי עזרה על API ו-gcloud
למידע על כללי העברה, קראו את המאמרים הבאים:
לגבי מקרים של טירגוט, אפשר לעיין במאמרים הבאים:
תמחור
החיוב על העברת פרוטוקולים זהה לחיוב על איזון עומסים. יש חיוב על כלל ההעברה וחיוב על הנתונים הנכנסים שעובדו על ידי מופע היעד.
למידע על התמחור, אפשר לעיין במאמר תמחור.
מכסות ומגבלות
למידע על המכסות של כללי העברה להעברת פרוטוקולים, אפשר לעיין במאמר מכסות ומגבלות: כללי העברה.