במאמר הזה מוסבר איך להמיר משאבים של איזון עומסים ברשת פרוקסי ושרתי קצה עורפיים מ-IPv4 בלבד (סטאק יחיד) ל-IPv4 ו-IPv6 (סטאק כפול). היתרון העיקרי בשימוש ב-IPv6 הוא שאפשר להקצות למאזן העומסים מאגר גדול יותר של כתובות IP. אתם יכולים להגדיר את מאזן העומסים כך שיסיים תעבורת נתונים נכנסת של IPv6 וישלח את התעבורה הזו דרך חיבור IPv4 או IPv6 לשרתי הקצה העורפיים, בהתאם להעדפה שלכם. מידע נוסף זמין במאמר בנושא IPv6 למאזני עומסים של אפליקציות ולמאזני עומסי רשת של שרת proxy.
במסמך הזה, IPv4 בלבד (single-stack) מתייחס למשאבים שמשתמשים רק בכתובות IPv4, ו-IPv4 ו-IPv6 (dual-stack) מתייחס למשאבים שמשתמשים גם בכתובות IPv4 וגם בכתובות IPv6.
ההוראות במסמך הזה רלוונטיות גם למאזני עומסים של TCP וגם למאזני עומסים של שרת proxy של SSL.
לפני שמתחילים
לפני שמתחילים בתהליך ההמרה, חשוב לשים לב לתנאים הבאים:
אתם צריכים להשתמש באחד מסוגי מאזני העומסים הבאים לשרת proxy:
- מאזן עומסי רשת גלובלי חיצוני בשרת proxy
- מאזן עומסי רשת אזורי חיצוני בשרת proxy
- מאזן עומסי רשת פנימי בשרת proxy שפועל בכמה אזורים
- מאזן עומסי רשת אזורי פנימי בשרת proxy
מאזני עומסי רשת קלאסיים בשרת proxy לא תומכים בקצוות עורפיים או ברשתות משנה עם תמיכה כפולה ב-IPv4 וב-IPv6. מידע נוסף על תמיכה ב-IPv6 זמין במאמר IPv6 למאזני עומסים של אפליקציות ולמאזני עומסים של רשתות פרוקסי.
מאזן העומסים שלכם משתמש בקצה עורפי של קבוצת מופעי מכונה או בקבוצות של נקודות קצה (endpoint) ברשת אזורית (NEG) עם
GCE_VM_IP_PORTנקודות קצה. סוגי קצה עורפי אחרים לא תומכים ב-dual-stack.בכל מאזני העומסים הנתמכים של רשתות פרוקסי, צריך להמיר את השרתים העורפיים לדו-ערכיים וליצור כלל להעברת IPv6 שיכול לטפל בתנועת IPv6 נכנסת.
למידע על הגדרת מאזני עומסי רשת לשרת proxy, אפשר לעיין במסמכים הבאים:
- הגדרת מאזן עומסי רשת גלובלי חיצוני בשרת proxy: מערכות בק-אנד של קבוצת מופעי מכונה וירטואלית, מערכות בק-אנד של NEGs אזוריים
- הגדרת מאזן עומסי רשת אזורי חיצוני בשרת proxy: בקצה העורפי של קבוצת מכונות וירטואליות, בקצה העורפי של קבוצות אזוריות של נקודות קצה ברשת (NEG)
- הגדרת מאזן עומסי רשת פנימי לשרת proxy בין אזורים: בק-אנד של קבוצת מכונות וירטואליות, בק-אנד של קבוצות אזוריות של נקודות קצה ברשת (NEG)
- הגדרת מאזן עומסים אזורי פנימי לשרת proxy: בק-אנד של קבוצת מכונות וירטואליות, בק-אנד של NEGs אזוריים
זיהוי המשאבים להמרה
שימו לב לשמות של המשאבים שמאזן העומסים משויך אליהם. תצטרכו לספק את השמות האלה בהמשך.
כדי לראות את כל רשתות המשנה, משתמשים בפקודה
gcloud compute networks subnets list:gcloud compute networks subnets list
שימו לב לשם של רשת המשנה עם IPv4 בלבד כדי להמיר אותה ל-dual-stack. השם הזה יופיע בהמשך בתור
SUBNET. בהמשך המאמר, רשת ה-VPC נקראתNETWORK.כדי לראות את כל שירותי ה-Backend, משתמשים בפקודה
gcloud compute backend-services list:gcloud compute backend-services list
רושמים את השם של שירות הקצה העורפי שרוצים להמיר ל-dual-stack. השם הזה יופיע בהמשך בתור
BACKEND_SERVICE.אם כבר יש לכם מאזן עומסים, כדי לראות את סוג ערימת ה-IP של השרתים העורפיים, משתמשים בפקודה
gcloud compute instances list:gcloud compute instances list \ --format= \ "table( name, zone.basename(), networkInterfaces[].stackType.notnull().list(), networkInterfaces[].ipv6AccessConfigs[0].externalIpv6.notnull().list():label=EXTERNAL_IPV6, networkInterfaces[].ipv6Address.notnull().list():label=INTERNAL_IPV6)"כדי לראות את הרשימה של כל מכונות ה-VM ותבניות המכונות, משתמשים בפקודה
gcloud compute instances listובפקודהgcloud compute instance-templates list:gcloud compute instances list
gcloud compute instance-templates list
שימו לב לשמות של המכונות ושל תבניות המכונות שרוצים להמיר ל-dual-stack. השם הזה מוזכר בהמשך כ-
VM_INSTANCEוכ-INSTANCE_TEMPLATES.כדי לראות את רשימת כל קבוצות המכונות, משתמשים בפקודה
gcloud compute instance-groups list:gcloud compute instance-groups list
שימו לב לשם של קבוצות נקודות הקצה ברשת שרוצים להמיר ל-dual stack. השם הזה יופיע בהמשך בתור
INSTANCE_GROUP.כדי לראות את רשימת כל ה-NEGs האזוריים, משתמשים בפקודה
gcloud compute network-endpoint-groups list:gcloud compute network-endpoint-groups list
שימו לב לשם של קבוצות נקודות הקצה ברשת שרוצים להמיר ל-dual stack. השם הזה יופיע בהמשך בתור
ZONAL_NEG.כדי לראות את רשימת כל שרתי ה-proxy של SSL ביעד, משתמשים בפקודה
gcloud compute target-ssl-proxies list:gcloud compute target-ssl-proxies list
שימו לב לשם של שרת ה-proxy של היעד שמשויך למאזן העומסים. השם הזה יופיע בהמשך בתור
TARGET_PROXY.כדי לראות את הרשימה של כל שרתי ה-proxy של TCP ביעד, משתמשים בפקודה
gcloud compute target-tcp-proxies list:gcloud compute target-tcp-proxies list
שימו לב לשם של שרת ה-proxy של היעד שמשויך למאזן העומסים. השם הזה יופיע בהמשך בתור
TARGET_PROXY.
המרת עורפי קצה (backend) ממערך יחיד למערך כפול
בקטע הזה מוסבר איך להמיר את המשאבים ואת הקצה העורפי של מאזן העומסים מכתובות IPv4 בלבד (single-stack) לכתובות IPv4 ו-IPv6 (dual-stack).
עדכון רשת המשנה של ה-backend
תת-רשתות עם כתובות IPv4 ו-IPv6 נתמכות רק ברשתות VPC במצב מותאם אישית. אין תמיכה בתת-רשתות עם כתובות IPv4 ו-IPv6 ברשתות VPC במצב אוטומטי או ברשתות מדור קודם. רשתות במצב אוטומטי יכולות להיות שימושיות בשלב מוקדם של בדיקה, אבל רשתות VPC במצב מותאם אישית מתאימות יותר לרוב סביבות הייצור. מומלץ להשתמש ב-VPC במצב מותאם אישית.
כדי לעדכן את ה-VPC להגדרה של מחסנית כפולה, פועלים לפי השלבים הבאים:
אם אתם משתמשים ברשת VPC במצב אוטומטי, אתם צריכים קודם להמיר את רשת ה-VPC במצב אוטומטי למצב מותאם אישית.
אם אתם משתמשים ברשת
default, אתם צריכים להמיר אותה לרשת VPC במצב מותאם אישית.אם אתם משתמשים במאזן עומסים חוצה אזורים, חיצוני אזורי או פנימי אזורי, אתם צריכים להפעיל IPv6 פנימי ברשת ה-VPC לפני שתעדכנו את רשתות המשנה. מידע נוסף זמין במאמר בנושא יצירת רשת VPC במצב מותאם אישית עם תת-רשת בעלת מחסנית כפולה.
כדי להפעיל IPv6, אפשר לעיין במאמר בנושא שינוי סוג הערימה של רשת משנה לערימה כפולה.
גלובלי
למאזן עומסים גלובלי חיצוני, משתמשים בפקודה:
gcloud compute networks subnets update SUBNET \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=EXTERNAL \ --region=REGIONבין אזורים
למאזן עומסים פנימי חוצה אזורים, משתמשים בפקודה:
gcloud compute networks subnets update SUBNET \ --stack-type=IPV4_IPV6 \ --subnet-mode=custom \ --enable-ula-internal-ipv6 \ --ipv6-access-type=INTERNAL \ --region=REGIONאזורי
עבור מאזן עומסים חיצוני אזורי ומאזן עומסים פנימי אזורי, משתמשים בפקודה:
חיצוני
gcloud compute networks subnets update SUBNET \ --stack-type=IPV4_IPV6 \ --subnet-mode=custom \ --enable-ula-internal-ipv6 \ --ipv6-access-type=EXTERNAL \ --region=REGIONפנימי
gcloud compute networks subnets update SUBNET \ --stack-type=IPV4_IPV6 \ --subnet-mode=custom \ --enable-ula-internal-ipv6 \ --ipv6-access-type=INTERNAL \ --region=REGIONמחליפים את
REGIONבאזור של רשת המשנה.אופציונלי: אם רוצים להגדיר טווחי כתובות IPv6 פנימיות ברשתות משנה ברשת הזו, מבצעים את השלבים הבאים:
- בקטע VPC network ULA internal IPv6 range (טווח IPv6 פנימי של ULA ברשת VPC), בוחרים באפשרות Enabled (מופעל).
בקטע הקצאת טווח IPv6 פנימי, בוחרים באפשרות אוטומטית או ידנית.
אם בוחרים באפשרות Manually, צריך להזין טווח של
/48מתוך הטווח שלfd20::/20. אם הטווח נמצא בשימוש, תתבקשו לספק טווח אחר.
עדכון רשת המשנה של ה-proxy בלבד
אם אתם משתמשים במאזן עומסים מבוסס Envoy, מומלץ לשנות את סוג מחסנית המשנה של הפרוקסי בלבד למחסנית כפולה. עם זאת, במאזן עומסים פנימי בין אזורים, צריך להשתמש ברשת משנה עם פרוטוקול כפול ופרוקסי בלבד. מידע על מאזני עומסים שתומכים בתת-רשתות של שרת proxy בלבד זמין במאמר מאזני עומסים נתמכים.
אי אפשר לעדכן את סוג ה-stack של תת-רשת של שרת proxy בלבד (purpose=REGIONAL_MANAGED_PROXY) באותו אופן שבו מעדכנים תת-רשת רגילה (עם subnets update command). במקום זאת, צריך ליצור תת-רשת גיבוי של שרת proxy בלבד עם סוג ה-stack dual-stack, ואז להעביר אותה לתפקיד הפעיל. הסיבה לכך היא שרק רשת משנה אחת מסוג proxy-only יכולה להיות פעילה בכל אזור, בכל רשת VPC.
אחרי שמקצים טווח פנימי של IPv6 ברשת ה-VPC, מבצעים את הפעולות הבאות כדי לשנות את סוג הערימה של רשת המשנה מסוג proxy-only לערימה כפולה.
המסוף
יוצרים תת-רשת גיבוי של שרת proxy בלבד באותו אזור כמו תת-הרשת הפעילה של שרת proxy בלבד, ומציינים את סוג מחסנית ה-IP כ-dual-stack.
- נכנסים לדף VPC networks במסוף Google Cloud .
לדף VPC networks - לוחצים על השם של רשת ה-VPC שרוצים להוסיף לה רשת משנה מסוג proxy בלבד.
- לוחצים על הוספת רשת משנה.
- מזינים שם.
- בחירת אזור.
- בקטע Purpose (מטרה), בוחרים באפשרות Regional Managed Proxy (שרת proxy מנוהל אזורי).
- בקטע תפקיד, בוחרים באפשרות גיבוי.
- בשביל IP stack type, בוחרים באפשרות IPv4 and IPv6 (dual-stack).
- מזינים טווח כתובות IP.
- לוחצים על הוספה.
- נכנסים לדף VPC networks במסוף Google Cloud .
יוצרים או משנים כללי חומת אש שמאפשרים תעבורת נתונים נכנסת (ingress) שחלים על המכונות הווירטואליות או על נקודות הקצה של השרתים העורפיים (backend), כך שהם כוללים את טווח כתובות ה-IP הראשי של תת-הרשת של שרת ה-proxy לגיבוי בלבד.
קידום של רשת המשנה של שרת ה-proxy לגיבוי לתפקיד הפעיל. הפעולה הזו גם מורידה את הרמה של רשת המשנה הקודמת שהייתה פעילה רק כפרוקסי לתפקיד הגיבוי:
- נכנסים לדף VPC networks במסוף Google Cloud .
לדף VPC networks - לוחצים על השם של רשת ה-VPC שרוצים לשנות.
- בקטע Reserved proxy-only subnets for load balancing (רשתות משנה שמורות רק לשרתי proxy לצורך איזון עומסים), מאתרים את רשת המשנה לגיבוי שנוצרה בשלב הקודם.
- לוחצים על הפעלה.
- מציינים זמן קצוב לתפוגה של התרוקנות (אופציונלי).
- לוחצים על הפעלת רשת המשנה.
- נכנסים לדף VPC networks במסוף Google Cloud .
אחרי פסק הזמן של ניתוק החיבורים, או אחרי שאתם בטוחים שהחיבורים למכונות הווירטואליות או לנקודות הקצה של ה-Backend לא מגיעים משרתי proxy ברשת המשנה הקודמת שפעלה (עכשיו היא רשת משנה לגיבוי), אתם יכולים לבצע את הפעולות הבאות:
- משנים את כללי חומת האש שמאפשרים תעבורת נתונים נכנסת (ingress) שחלים על מכונות וירטואליות או על נקודות קצה של שרתים עורפיים (backend), כך שהם לא יכללו את טווח כתובות ה-IP הראשי של תת-הרשת של שרת proxy בלבד שהייתה פעילה קודם (ועכשיו היא לגיבוי).
- מוחקים את תת-הרשת הקודמת שהייתה פעילה (עכשיו היא גיבוי) של ה-proxy בלבד, כדי לשחרר את כתובות ה-IP שבהן השתמשה תת-הרשת לטווח כתובות ה-IP הראשי שלה.
gcloud
ההנחיות הבאות מניחות שכבר יש לכם רשת משנה פעילה קיימת של שרת proxy בלבד.
יוצרים רשת משנה לגיבוי של שרת proxy באותו אזור, ומציינים סוג מחסנית של מחסנית כפולה (
--stack-type=IPV4_IPV6), באמצעות הפקודה gcloud compute networks subnets create. רשת המשנה הזו מוקצית כגיבוי באמצעות הדגל--role=BACKUP.gcloud compute networks subnets create BACKUP_PROXY_ONLY_SUBNET_NAME \ --purpose=REGIONAL_MANAGED_PROXY \ --role=BACKUP \ --region=REGION \ --network=VPC_NETWORK_NAME \ --range=BACKUP_PROXY_ONLY_SUBNET_RANGE \ --stack-type=IPV4_IPV6מחליפים את מה שכתוב בשדות הבאים:
-
BACKUP_PROXY_ONLY_SUBNET_NAME: השם של תת-הרשת החדשה שנוצרה לגיבוי בלבד. -
REGION: האזור של תת-הרשת החדשה שנוצרה לגיבוי פרוקסי בלבד. האזור הזה צריך להיות זהה לאזור של רשת המשנה הפעילה הנוכחית של ה-proxy בלבד. -
VPC_NETWORK_NAME: הרשת של תת-הרשת החדשה שנוצרה לגיבוי פרוקסי בלבד. זו צריכה להיות אותה רשת כמו רשת המשנה הנוכחית הפעילה של ה-proxy בלבד. -
VPC_NETWORK_NAME: השם של רשת ה-VPC -
BACKUP_PROXY_ONLY_SUBNET_RANGE: טווח ה-CIDR של תת-הרשת החדשה שנוצרה לגיבוי פרוקסי בלבד
-
יוצרים או משנים כללי חומת אש שמאפשרים תעבורת נתונים נכנסת (ingress) שחלים על מכונות וירטואליות או נקודות קצה של שרתים עורפיים (backend), כך שהם יכללו עכשיו את טווח כתובות ה-IP הראשי של תת-הרשת של שרת proxy בלבד לגיבוי. כלל חומת האש כבר צריך לאשר חיבורים מרשת המשנה הפעילה.
gcloud compute firewall-rules update PROXY_ONLY_SUBNET_FIREWALL_RULE \ --source-ranges ACTIVE_PROXY_ONLY_SUBNET_RANGE,BACKUP_PROXY_ONLY_SUBNET_RANGEמחליפים את מה שכתוב בשדות הבאים:
-
PROXY_ONLY_SUBNET_FIREWALL_RULE: השם של כלל חומת האש שמאפשר לתנועה מרשת המשנה של ה-proxy בלבד להגיע למופעי ה-backend או לנקודות הקצה שלכם -
ACTIVE_PROXY_ONLY_SUBNET_RANGE: טווח ה-CIDR של תת-הרשת הנוכחית הפעילה מסוג proxy בלבד -
BACKUP_PROXY_ONLY_SUBNET_RANGE: טווח ה-CIDR של תת-הרשת לגיבוי של proxy בלבד
-
מעדכנים את תת-הרשת החדשה ומגדירים אותה כתת-הרשת של שרת proxy בלבד
ACTIVEבאזור, ומחכים עד שתת-הרשת הישנה תתרוקן. בנוסף, רשת המשנה הקודמת שהייתה פעילה רק כפרוקסי מועברת לתפקיד הגיבוי.כדי להקצות טווח של כתובות IP באופן מיידי, מגדירים את
--drain-timeoutל-0s. הפעולה הזו תסיים באופן מיידי את כל החיבורים לשרתי proxy שהוקצו להם כתובות ברשת המשנה שמתבצע בה ניקוי.gcloud compute networks subnets update BACKUP_PROXY_ONLY_SUBNET_NAME \ --region=REGION \ --role=ACTIVE \ --drain-timeout=CONNECTION_DRAINING_TIMEOUTמחליפים את מה שכתוב בשדות הבאים:
-
BACKUP_PROXY_ONLY_SUBNET_NAME: השם של תת-הרשת החדשה שנוצרה לגיבוי בלבד -
REGION: האזור של תת-הרשת החדשה שנוצרה לגיבוי פרוקסי בלבד. האזור הזה צריך להיות זהה לאזור של רשת המשנה הפעילה הנוכחית של ה-proxy בלבד. -
CONNECTION_DRAINING_TIMEOUT: משך הזמן, בשניות, שנדרש ל- Google Cloud כדי להעביר חיבורים קיימים משרתי proxy ברשת המשנה הקודמת שהייתה פעילה רק לשרתי proxy.
-
כדי לעקוב אחרי הסטטוס של הניקוז, משתמשים בפקודה
listאוdescribe. הסטטוס של רשת המשנה הואDRAININGבזמן הניקוז.gcloud compute networks subnets list
מחכים עד שהסוללה תתרוקן. כשמרוקנים את רשת המשנה הישנה שמוגדרת רק כפרוקסי, הסטטוס של רשת המשנה הוא
READY.מעדכנים את כלל חומת האש של תת-הרשת של שרת ה-Proxy כך שיאפשר חיבורים רק מתת-הרשת החדשה.
gcloud compute firewall-rules PROXY_ONLY_SUBNET_FIREWALL_RULE \ --source-ranges BACKUP_PROXY_ONLY_SUBNET_RANGEאחרי שמוודאים שהחיבורים למכונות הווירטואליות או לנקודות הקצה של הבק-אנד לא מגיעים משרתי proxy ברשת המשנה הקודמת שהייתה פעילה (עכשיו היא רשת משנה לגיבוי) של proxy בלבד, אפשר למחוק את רשת המשנה הישנה.
gcloud compute networks subnets delete ACTIVE_PROXY_ONLY_SUBNET_NAME \ --region=REGION
עדכון המכונה הווירטואלית או התבניות
אפשר להגדיר כתובות IPv6 במכונת VM אם הוגדר טווח IPv6 ברשת המשנה שאליה מכונת ה-VM מחוברת. רק בקצוות העורפיים הבאים יש תמיכה בכתובות IPv6:
- בקצה העורפי של קבוצת מופעים: קבוצת מופעים מנוהלת אחת או יותר, קבוצת מופעים לא מנוהלת אחת או יותר או שילוב של קבוצות מופעים מנוהלות ולא מנוהלות.
- NEGs אזוריים: אחד או יותר של NEGs אזוריים מסוג
GCE_VM_IP_PORT.
עדכון מכונות וירטואליות
אי אפשר לערוך מופעי מכונות וירטואליות ששייכים לקבוצת מופעים מנוהלת או לא מנוהלת. כדי לעדכן את מופעי מכונות ה-VM ל-dual stack, פועלים לפי השלבים הבאים:
- מחיקת מופעים ספציפיים מקבוצה
- יצירת מכונת VM עם תמיכה בשני פרוטוקולים
- יצירת מכונות עם שמות ספציפיים בקבוצות MIG
עדכון תבניות של מכונות וירטואליות
אי אפשר לעדכן תבנית קיימת של הגדרות מכונה. אם צריך לבצע שינויים, אפשר ליצור תבנית נוספת עם מאפיינים דומים. כדי לעדכן את תבניות המכונות הווירטואליות ל-Dual Stack, פועלים לפי השלבים הבאים:
המסוף
נכנסים לדף Instance templates במסוף Google Cloud .
- לוחצים על תבנית של הגדרות מכונה שרוצים להעתיק ולעדכן.
- לוחצים על יצירת תמונה דומה.
- מרחיבים את הקטע אפשרויות מתקדמות.
- בשדה Network tags (תגי רשת), מזינים
allow-health-check-ipv6. - בקטע Network interfaces לוחצים על Add a network interface.
- ברשימה Network בוחרים את רשת ה-VPC במצב בהתאמה אישית.
- ברשימה Subnetwork בוחרים באפשרות
SUBNET. - בשביל IP stack type, בוחרים באפשרות IPv4 and IPv6 (dual-stack).
- לוחצים על יצירה.
מתחילים עדכון בהדרגה בסיסי בקבוצת מופעי מכונה מנוהלים
MIGשמשויכת למאזן העומסים.
עדכון ה-NEG האזורי
אי אפשר לערוך נקודות קצה של NEG אזורי. צריך למחוק את נקודות הקצה של IPv4 וליצור נקודת קצה חדשה עם מחסנית כפולה, עם כתובות IPv4 ו-IPv6.
כדי להגדיר קצה נקודת NEG אזורי (עם נקודות קצה מסוג GCE_VM_IP_PORT) באזור REGION_A, צריך קודם ליצור את המכונות הווירטואליות באזור GCP_NEG_ZONE. לאחר מכן מוסיפים את נקודות הקצה ברשת של מכונת ה-VM ל-NEG האזורי.
יצירת מכונות וירטואליות
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
לוחצים על Create instance.
מגדירים את Name לערך
vm-a1.בשדה Region, בוחרים
REGION_A, ובשדה Zone בוחרים כל ערך. האזור הזה נקראGCP_NEG_ZONEבתהליך הזה.בקטע Boot disk מוודאים שהאפשרות Debian GNU/Linux 12 (bookworm) מסומנת באפשרויות של דיסק האתחול. לוחצים על בחירה כדי לשנות את התמונה, אם צריך.
מרחיבים את הקטע אפשרויות מתקדמות ומבצעים את השינויים הבאים:
- מרחיבים את הקטע Networking.
- בשדה Network tags (תגי רשת), מזינים את הערך
allow-health-check. - בקטע Network interfaces, מבצעים את השינויים הבאים:
- רשת:
NETWORK - Subnet (רשת משנה):
SUBNET - סוג מחסנית IP: IPv4 ו-IPv6 (מחסנית כפולה)
- רשת:
- לוחצים על סיום.
לוחצים על ניהול. בשדה Startup script (סקריפט לטעינה בזמן ההפעלה), מעתיקים ומדביקים את תוכן הסקריפט הבא.
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
לוחצים על יצירה.
חוזרים על השלבים הבאים כדי ליצור מכונה וירטואלית שנייה, באמצעות השילוב הבא של שם ואזור:
- שם:
vm-a2, אזור:GCP_NEG_ZONE
- שם:
gcloud
כדי ליצור את המכונות הווירטואליות, מריצים את הפקודה הבאה פעמיים, ומשתמשים בשילובים האלה לשם של המכונה הווירטואלית והאזור שלה. תוכן הסקריפט זהה בשתי המכונות הווירטואליות.
-
VM_NAMEמתוךvm-a1וכל אזורGCP_NEG_ZONEשתבחרו.
VM_NAMEשלvm-a2ובאותו אזורGCP_NEG_ZONE.gcloud compute instances create VM_NAME \ --zone=GCP_NEG_ZONE \ --stack-type=IPV4_IPV6 \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-health-check \ --subnet=SUBNET \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
הוספת נקודות קצה ל-NEG אזורי
המסוף
כדי להוסיף נקודות קצה ל-NEG אזורי:
נכנסים לדף Network endpoint groups במסוף Google Cloud .
ברשימה Name, לוחצים על השם של קבוצת נקודות הקצה ברשת (
ZONAL_NEG). מוצג הדף Network endpoint group details.בקטע Network endpoints in this group (נקודות קצה ברשת בקבוצה הזו), בוחרים את נקודת הקצה של ה-NEG שנוצרה קודם. לוחצים על הסרת נקודת קצה.
בקטע Network endpoints in this group (נקודות קצה ברשת בקבוצה הזו), לוחצים על Add network endpoint (הוספת נקודת קצה ברשת).
בוחרים את המכונה הווירטואלית.
בקטע Network interface (ממשק רשת), מוצגים השם, האזור ורשת המשנה של מכונת ה-VM.
בשדה כתובת IPv4, מזינים את כתובת ה-IPv4 של נקודת הקצה החדשה ברשת.
בשדה כתובת IPv6, מזינים את כתובת ה-IPv6 של נקודת הקצה החדשה ברשת.
בוחרים את סוג היציאה.
- אם בוחרים באפשרות ברירת מחדל, נקודת הקצה משתמשת ביציאת ברירת המחדל
80לכל נקודות הקצה בקבוצת נקודות הקצה ברשת. זה מספיק לדוגמה שלנו כי שרת Apache משרת בקשות ביציאה80. - אם בוחרים באפשרות בהתאמה אישית, מזינים את מספר היציאה של נקודת הקצה שבה רוצים להשתמש.
- אם בוחרים באפשרות ברירת מחדל, נקודת הקצה משתמשת ביציאת ברירת המחדל
כדי להוסיף עוד נקודות קצה, לוחצים על הוספת נקודת קצה ברשת וחוזרים על השלבים הקודמים.
אחרי שמוסיפים את כל נקודות הקצה, לוחצים על יצירה.
gcloud
מוסיפים נקודות קצה (נקודות קצה של
GCE_VM_IP_PORT) אלZONAL_NEG.gcloud compute network-endpoint-groups update ZONAL_NEG \ --zone=GCP_NEG_ZONE \ --add-endpoint='instance=vm-a1,ip=IPv4_ADDRESS, \ ipv6=IPv6_ADDRESS,port=80' \ --add-endpoint='instance=vm-a2,ip=IPv4_ADDRESS, \ ipv6=IPv6_ADDRESS,port=80'
מחליפים את מה שכתוב בשדות הבאים:
IPv4_ADDRESS:
כתובת IPv4 של נקודת הקצה ברשת. כתובת ה-IPv4 צריכה להיות שייכת למכונה וירטואלית ב-Compute Engine (או כתובת ה-IP הראשית או כחלק מטווח כתובות IP עם כינוי).
אם לא מציינים כתובת IP, המערכת משתמשת בכתובת ה-IP הראשית של מכונת ה-VM ברשת שאליה משתייכת קבוצת נקודות הקצה ברשת.
IPv6_ADDRESS:
כתובת ה-IPv6 של נקודת הקצה ברשת. כתובת ה-IPv6 צריכה להיות שייכת למכונה וירטואלית ברשת שאליה שייכת קבוצת נקודות הקצה ברשת (כתובת IPv6 חיצונית).
יצירת כלל לחומת האש לבדיקות תקינות (probes) של IPv6
צריך ליצור כלל של חומת אש כדי לאפשר בדיקות תקינות מטווחי כתובות ה-IP של Google Cloud מערכות הבדיקה. מידע נוסף זמין במאמר בנושא טווחים של כתובות IP של בדיקות.
מוודאים שכלל הכניסה חל על המופעים שמתבצע בהם איזון עומסים, ושהוא מאפשר תעבורת נתונים ממערכות בדיקת התקינות. Google Cloud
בדוגמה הזו נעשה שימוש בתג היעד allow-health-check-ipv6 כדי לזהות את מופעי המכונות הווירטואליות שהוא חל עליהם.
בלי כלל חומת האש הזה, כלל הדחייה כברירת מחדל של תעבורת נתונים נכנסת (ingress) חוסם תעבורת נתונים נכנסת של IPv6 לשרתים העורפיים (backend instance).
המסוף
נכנסים לדף Firewall policies במסוף Google Cloud .
כדי לאפשר תעבורה של רשת משנה IPv6, לוחצים שוב על יצירת כלל חומת אש ומזינים את הפרטים הבאים:
- Name (שם):
fw-allow-lb-access-ipv6 - רשת:
NETWORK - עדיפות:
1000 - כיוון התנועה: תנועה נכנסת
- יעדים: תגי יעד שצוינו
- תגי טירגוט:
allow-health-check-ipv6 - מסנן מקור: טווחים של IPv6
טווחי IPv6 של המקור:
במאזן עומסים גלובלי חיצוני של אפליקציות (ALB) ובמאזן עומסי רשת גלובלי חיצוני בשרת proxy, מזינים
2600:2d00:1:b029::/64,2600:2d00:1:1::/64למאזן עומסים פנימי של אפליקציות (ALB) בין אזורים, מאזן עומסים חיצוני אזורי של אפליקציות (ALB), מאזן עומסים פנימי אזורי של אפליקציות (ALB), מאזן עומסי רשת פנימי בשרת proxy בין אזורים, מאזן עומסי רשת חיצוני אזורי בשרת proxy ומאזן עומסי רשת פנימי אזורי בשרת proxy, מזינים
2600:2d00:1:b029::/64
Protocols and ports (פרוטוקולים ויציאות): Allow all (אישור הכול)
- Name (שם):
לוחצים על יצירה.
gcloud
יוצרים את כלל חומת האש
fw-allow-lb-access-ipv6כדי לאפשר תקשורת עם תת-הרשת.למאזן עומסים גלובלי חיצוני של אפליקציות (ALB) ולמאזן עומסי רשת גלובלי חיצוני לשרת proxy, משתמשים בפקודה הבאה:
gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check-ipv6 \ --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64 \ --rules=allכדי להשתמש במאזן עומסים פנימי של אפליקציות (ALB) בין אזורים, במאזן עומסים חיצוני אזורי של אפליקציות (ALB), במאזן עומסים פנימי אזורי של אפליקציות (ALB), במאזן עומסי רשת פנימי בשרת proxy בין אזורים, במאזן עומסי רשת חיצוני אזורי בשרת proxy ובמאזן עומסי רשת פנימי אזורי בשרת proxy, משתמשים בפקודה הבאה:
gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check-ipv6 \ --source-ranges=2600:2d00:1:b029::/64 \ --rules=all
יצירת כלל לחומת האש עבור תת-הרשת של שרת proxy בלבד
אם אתם משתמשים במאזן עומסי רשת אזורי חיצוני בשרת proxy או במאזן עומסי רשת פנימי בשרת proxy, אתם צריכים לעדכן את כלל חומת האש של תעבורת הכניסהfw-allow-lb-access-ipv6 כדי לאפשר תעבורה מרשת המשנה של שרת ה-proxy בלבד לקצה העורפי.
כדי לקבל את טווח כתובות ה-IPv6 של רשת המשנה מסוג proxy בלבד, מריצים את הפקודה הבאה:
gcloud compute networks subnets describe PROXY_ONLY_SUBNET \
--region=REGION \
--format="value(internalIpv6Prefix)"
שימו לב לטווח כתובות ה-IPv6 הפנימי. בהמשך המאמר נתייחס לטווח הזה כאל IPV6_PROXY_ONLY_SUBNET_RANGE.
כדי לעדכן את כלל חומת האש fw-allow-lb-access-ipv6 עבור תת-רשת של שרת proxy בלבד:
המסוף
נכנסים לדף Firewall policies במסוף Google Cloud .
בחלונית VPC firewall rules (כללים של חומת האש ב-VPC), לוחצים על
fw-allow-lb-access-ipv6.- טווחים של כתובות IPv6 של המקור:
2600:2d00:1:b029::/64, IPV6_PROXY_ONLY_SUBNET_RANGE
- טווחים של כתובות IPv6 של המקור:
לוחצים על Save.
gcloud
מעדכנים את כלל חומת האש
fw-allow-lb-access-ipv6כדי לאפשר תקשורת עם תת-הרשת של שרת ה-proxy בלבד:gcloud compute firewall-rules update fw-allow-lb-access-ipv6 \ --source-ranges=2600:2d00:1:b029::/64,IPV6_PROXY_ONLY_SUBNET_RANGE
עדכון שירות ה-Backend ויצירת כלל העברה של IPv6
בקטע הזה מוסבר איך לעדכן את שירות הקצה העורפי באמצעות קצה עורפי עם תמיכה ב-IPv4 ו-IPv6, ואיך ליצור כלל להעברת תנועה ב-IPv6.
המסוף
נכנסים לדף Load balancing במסוף Google Cloud .
לוחצים על השם של מאזן העומסים.
לוחצים על Edit.
הגדרת שירות הקצה העורפי ל-IPv6
- לוחצים על Backend configuration.
- בקטע Backend type (סוג קצה עורפי), בוחרים באפשרות Zonal network endpoint group (קבוצה של נקודות קצה ברשת לפי אזור).
- ברשימה IP address selection policy בוחרים באפשרות Prefer IPv6.
- בשדה פרוטוקול:
- לשרת proxy של TCP, בוחרים באפשרות TCP.
- בשביל שרת proxy ל-SSL, בוחרים באפשרות SSL.
- עבור NEGs אזוריים:
- בקטע Backends (שרתי קצה עורפי), לוחצים על Add a backend (הוספת שרת קצה עורפי).
- בחלונית New Backend (חדש):
- ברשימה network endpoint group בוחרים באפשרות
ZONAL_NEG. - בשדה מספר החיבורים המקסימלי מזינים 10.
- ברשימה network endpoint group בוחרים באפשרות
- לקבוצות של מכונות וירטואליות: אם כבר עדכנתם את המכונה הוירטואלית או את התבניות לשימוש ב-dual stack, אין צורך לעדכן אותן.
- לוחצים על סיום.
- ברשימה Health check, בוחרים בדיקת תקינות של HTTP.
הגדרת כלל העברה של IPv6
- לוחצים על Frontend configuration.
- לוחצים על Add frontend IP and port.
- בשדה Name, מזינים שם לכלל ההעברה.
- בשדה פרוטוקול:
- לשרת proxy של TCP, בוחרים באפשרות TCP.
- בשביל שרת proxy ל-SSL, בוחרים באפשרות SSL.
- מגדירים את IP version לערך
IPv6. - במקרה של פרוקסי SSL, בוחרים אישור מהרשימה Certificates.
- לוחצים על סיום.
- לוחצים על עדכון.
gcloud
מוסיפים את ה-NEGs האזוריים עם תמיכה ב-IPv4/IPv6 כקצה העורפי לשירות הקצה העורפי.
גלובלי
למאזן עומסי רשת גלובלי חיצוני בשרת proxy, משתמשים בפקודה:
gcloud compute backend-services add-backend BACKEND_SERVICE \ --network-endpoint-group=ZONAL_NEG \ --max-rate-per-endpoint=10 \ --globalבין אזורים
כדי ליצור מאזן עומסי רשת פנימי לשרת proxy בין אזורים, משתמשים בפקודה:
gcloud compute backend-services add-backend BACKEND_SERVICE \ --network-endpoint-group=ZONAL_NEG \ --max-rate-per-endpoint=10 \ --globalאזורי
למאזן עומסי רשת אזורי חיצוני בשרת proxy ולמאזן עומסי רשת אזורי פנימי בשרת proxy, משתמשים בפקודה:
gcloud compute backend-services add-backend BACKEND_SERVICE \ --network-endpoint-group=ZONAL_NEG \ --max-rate-per-endpoint=10 \ --region=REGIONמוסיפים את קבוצת המכונות עם כתובות IPv4 ו-IPv6 בתור הקצה העורפי לשירות הקצה העורפי. מכיוון שכבר עדכנת את מכונת ה-VM או את התבניות ל-dual stack, לא צריך לבצע פעולות נוספות.
יוצרים את כלל ההעברה של IPv6 למאזן עומסי רשת גלובלי חיצוני בשרת proxy עם שרת proxy של SSL ליעד:
gcloud compute forwarding-rules create FORWARDING_RULE_IPV6 \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=lb-ipv6-1 \ --global \ --target-ssl-proxy=TARGET_PROXY \ --ports=80
יוצרים את כלל ההעברה של IPv6 למאזן עומסי רשת גלובלי חיצוני בשרת proxy עם שרת proxy TCP ליעד:
גלובלי
למאזן עומסי רשת גלובלי חיצוני בשרת proxy, משתמשים בפקודה:
gcloud compute forwarding-rules create FORWARDING_RULE_IPV6 \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --global \ --target-tcp-proxy=TARGET_PROXY \ --ports=80
בין אזורים
כדי ליצור מאזן עומסי רשת פנימי לשרת proxy בין אזורים, משתמשים בפקודה:
gcloud compute forwarding-rules create FORWARDING_RULE_IPV6 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network-tier=PREMIUM \ --network=NETWORK --subnet=SUBNET --subnet-region=REGION --global \ --target-tcp-proxy=TARGET_PROXY \ --ports=443 \ --ip-version=IPV6אזורי
למאזן עומסי רשת אזורי חיצוני בשרת proxy ולמאזן עומסי רשת אזורי פנימי בשרת proxy, משתמשים בפקודה:
חיצוני אזורי
gcloud compute forwarding-rules create FORWARDING_RULE_IPV6 \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --network=NETWORK --subnet=SUBNET --subnet-region=REGION --global \ --target-tcp-proxy=TARGET_PROXY \ --ports=443 \ --ip-version=IPV6אזורי פנימי
gcloud compute forwarding-rules create FORWARDING_RULE_IPV6 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network-tier=PREMIUM \ --network=NETWORK --subnet=SUBNET --subnet-region=REGION --global \ --target-tcp-proxy=TARGET_PROXY \ --ports=443 \ --ip-version=IPV6
הגדרת מדיניות לבחירת כתובת IP
השלב הזה הוא אופציונלי. אחרי שממירים את המשאבים ואת השרתים העורפיים ל-dual-stack, אפשר להשתמש במדיניות לבחירת כתובות IP כדי לציין את סוג תעבורת הנתונים שנשלחת משירות לקצה העורפי לשרתים העורפיים.
מחליפים את IP_ADDRESS_SELECTION_POLICY באחד מהערכים הבאים:
| מדיניות בחירת כתובת IP | תיאור |
|---|---|
| IPv4 בלבד | הפניית תעבורת IPv4 רק לחלק האחורי של שירות הקצה העורפי, בלי קשר לתעבורה מהלקוח ל-GFE. בדיקות התקינות של IPv4 משמשות לבדיקת התקינות של השרתים העורפיים. |
| העדפה של IPv6 | העדפת חיבור IPv6 של ה-Backend על פני חיבור IPv4 (בתנאי שיש Backend תקין עם כתובות IPv6). בדיקות תקינות עוקבות מעת לעת אחרי חיבורי ה-IPv6 וה-IPv4 של השרתים העורפיים. ה-GFE מנסה קודם להתחבר ל-IPv6. אם החיבור ל-IPv6 נקטע או איטי, ה-GFE משתמש ב-happy eyeballs כדי לחזור אחורה ולהתחבר ל-IPv4. גם אם אחד מחיבורי IPv6 או IPv4 לא תקין, ה-backend עדיין נחשב תקין, ו-GFE יכול לנסות את שני החיבורים. בסופו של דבר, התכונה Happy Eyeballs בוחרת באיזה חיבור להשתמש. |
| IPv6 בלבד | הפניית תנועת IPv6 רק לחלק האחורי של שירות הקצה העורפי, בלי קשר לתנועה מהלקוח ל-proxy. בדיקות התקינות של IPv6 משמשות רק לבדיקת התקינות של השרתים העורפיים. אין אימות שבודק אם סוג התנועה בשרת העורפי תואם למדיניות לבחירת כתובות IP. לדוגמה, אם יש לכם קצה עורפי (backend) מסוג IPv4 בלבד
ואתם בוחרים באפשרות |
המסוף
נכנסים לדף Load balancing במסוף Google Cloud .
לוחצים על השם של מאזן העומסים.
לוחצים על Edit.
לוחצים על Backend configuration.
בשדה שירות לקצה העורפי, לוחצים על
BACKEND_SERVICE.סוג ה-Backend חייב להיות קבוצה של נקודות קצה ברשת אזורית או קבוצת מופעים.
ברשימה IP address selection policy בוחרים באפשרות
IP_ADDRESS_SELECTION_POLICY.לוחצים על סיום.
gcloud
מעדכנים את מדיניות הבחירה של כתובות ה-IP בשירות לקצה העורפי:
גלובלי
למאזן עומסי רשת גלובלי חיצוני בשרת proxy, משתמשים בפקודה:
gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
--load-balancing-scheme=EXTERNAL_MANAGED \
--protocol=SSL | TCP \
--ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
--global
בין אזורים
כדי ליצור מאזן עומסי רשת פנימי לשרת proxy בין אזורים, משתמשים בפקודה:
gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
--load-balancing-scheme=INTERNAL_MANAGED \
--protocol=TCP \
--ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
--global
אזורי
למאזן עומסי רשת אזורי חיצוני בשרת proxy, משתמשים בפקודה:
gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
--load-balancing-scheme=EXTERNAL_MANAGED \
--protocol=TCP \
--ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
--region=REGION
במאזן עומסי רשת אזורי פנימי בשרת proxy, משתמשים בפקודה:
gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
--load-balancing-scheme=INTERNAL_MANAGED \
--protocol=TCP \
--ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
--region=REGION
בדיקת מאזן העומסים
צריך לוודא שכל המשאבים הנדרשים מעודכנים לשימוש ב-Dual Stack. אחרי שתעדכנו את כל המשאבים, התנועה תזרום אוטומטית אל השרתים העורפיים. אפשר לבדוק את היומנים ולוודא שההמרה הושלמה.
בודקים את מאזן העומסים כדי לוודא שההמרה הצליחה ושהתעבורה הנכנסת מגיעה לקצוות העורפיים כמצופה.
חיפוש כתובות ה-IP של מאזן העומסים
המסוף
נכנסים לדף Load balancing במסוף Google Cloud .
לוחצים על השם של מאזן העומסים.
בקטע Frontend מוצגות שתי כתובות IP של איזון עומסים. בתהליך הזה, כתובת ה-IPv4 נקראת
IP_ADDRESS_IPV4וכתובת ה-IPv6 נקראתIP_ADDRESS_IPV6.בקטע Backends, אם מדיניות בחירת כתובות ה-IP היא
Prefer IPv6, מוצגים שני סטטוסים של בדיקות תקינות לשרתי הקצה.
הפניית תנועה למאזן העומסים
בדוגמה הזו, בקשות מהפקודה curl מופצות באופן אקראי לשרתי הקצה העורפי.
למאזני עומסים חיצוניים
חוזרים על הפקודות הבאות כמה פעמים עד שרואים שכל מכונות ה-VM של העורף מגיבות:
curl -m1 IP_ADDRESS_IPV4:PORT
curl -m1 IP_ADDRESS_IPV6:PORT
לדוגמה, אם כתובת ה-IPv6 היא
[fd20:1db0:b882:802:0:46:0:0]:80, הפקודה תיראה בערך כך:curl -m1 [fd20:1db0:b882:802:0:46:0:0]:80
למאזני עומסים פנימיים
יוצרים מכונה וירטואלית של לקוח לבדיקה באותה רשת VPC ואותו אזור כמו מאזן העומסים. היא לא צריכה להיות באותה רשת משנה או באותו אזור.
gcloud compute instances create client-vm \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=SUBNET \ --stack-type=IPV4_IPV6משתמשים ב-SSH כדי להתחבר למכונת הלקוח.
gcloud compute ssh client-vm \ --zone=ZONE
חוזרים על הפקודות הבאות כמה פעמים עד שרואים שכל מכונות ה-VM של העורף מגיבות:
curl -m1 IP_ADDRESS_IPV4:PORT
curl -m1 IP_ADDRESS_IPV6:PORT
לדוגמה, אם כתובת ה-IPv6 היא
[fd20:1db0:b882:802:0:46:0:0]:80, הפקודה תיראה בערך כך:curl -m1 [fd20:1db0:b882:802:0:46:0:0]:80
בדיקת היומנים
כל רשומה ביומן מתעדת את כתובות ה-IPv4 וה-IPv6 של היעד עבור ה-backend. אנחנו תומכים ב-dual stack, ולכן חשוב לשים לב לכתובת ה-IP שמשמשת את ה-backend.
כדי לבדוק אם התנועה מועברת ל-IPv6 או חוזרת ל-IPv4, אפשר לצפות ביומנים.
היומנים מכילים את כתובת backend_ip שמשויכת לחלק האחורי של האתר. אפשר לבדוק את היומנים ולהשוות את כתובת היעד של IPv4 או IPv6 של backend_ip כדי לראות איזו כתובת IP נמצאת בשימוש.