הגדרת מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי עם קצה עורפי פנימי של IPv6 בלבד

במסמך הזה מוסבר איך להגדיר ולבדוק מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי, שתומך בתנועה פנימית של IPv6 בלבד. בהגדרת הדוגמה הזו, מתקינים שרת אינטרנט של Apache במכונות וירטואליות (VM) פנימיות של קצה עורפי עם IPv6 בלבד, כדי להציג תוכן בתגובה לתעבורה שמתקבלת דרך כתובת ה-IP הווירטואלית (VIP) של מאזן העומסים.

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

כדי לאפשר גישה לאינטרנט, בדוגמה הזו נעשה שימוש במכונת VM נפרדת, שהוגדרה באמצעות כתובת IPv6 חיצונית, ומשמשת כשער NAT. המכונה הווירטואלית הזו מבצעת תרגום כתובות ברמת ליבת Linux. בפרט, השרשרת POSTROUTING בטבלת ה-NAT משמשת להסתרת כתובת המקור של מנות יוצאות – כתובת ה-IPv6 הפנימית של כל מכונת קצה עורפית מוחלפת בכתובת ה-IPv6 החיצונית של מכונת ה-VM של שער ה-NAT בממשק הרשת שצוין.

דוגמה להגדרה של מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי עם קצוות עורפיים פנימיים מסוג IPv6 בלבד.
דוגמה להגדרה של מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי עם קצה עורפי פנימי מסוג IPv6 בלבד (לוחצים כדי להגדיל).

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

הרשאות

כדי לפעול לפי המדריך הזה, צריך ליצור מופעים ולשנות רשת בפרויקט. צריכות להיות לכם הרשאות בעלים או עריכה בפרויקט, או שיוקצו לכם כל תפקידי ה-IAM הבאים ב-Compute Engine:

משימה התפקיד הנדרש
יצירת רשתות, רשתות משנה ורכיבים של מאזן עומסים אדמין ברשת Compute
(roles/compute.networkAdmin)
הוספה והסרה של כללים לחומת האש אדמין לענייני אבטחה ב-Compute
(roles/compute.securityAdmin)
יצירת מופעים אדמין מכונות של Compute
(roles/compute.instanceAdmin)

מידע נוסף זמין במדריכים הבאים:

הגדרת רשת ורשת משנה עם כתובות IPv6 פנימיות בלבד

מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי שמתואר בדף הזה נוצר ברשת VPC במצב מותאם אישית בשם lb-network-ipv6-only.

כדי להגדיר רשתות משנה עם טווחי IPv6 פנימיים, צריך להפעיל טווח IPv6 פנימי של ULA ברשת VPC. טווחים של רשתות משנה פנימיות של IPv6 מוקצים מתוך הטווח הזה.

המסוף

  1. נכנסים לדף VPC networks במסוף Cloud de Confiance .

    מעבר לרשתות VPC

  2. לוחצים על יצירת רשת VPC.

  3. בשדה Name (שם), מזינים lb-network-ipv6-only.

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

    1. בקטע Private IPv6 address settings (הגדרות של כתובות IPv6 פרטיות), בוחרים באפשרות Configure a ULA internal IPv6 range for this VPC Network (הגדרת טווח פנימי של כתובות IPv6 מסוג ULA לרשת ה-VPC הזו).
    2. בקטע הקצאת טווח פנימי של IPv6, בוחרים באפשרות אוטומטית או ידנית. אם בוחרים באפשרות Manually, צריך להזין טווח של /48 מתוך הטווח fd20::/20. אם הטווח כבר בשימוש, תתבקשו לספק טווח אחר.
  5. בקטע Subnet creation mode (מצב יצירת רשת משנה), בוחרים באפשרות Custom (בהתאמה אישית).

  6. בקטע New subnet (רשת משנה חדשה), מציינים את פרמטרי ההגדרה הבאים של רשת המשנה:

    • Name (שם): lb-subnet-ipv6-only
    • אזור: us-west1
    • סוג מחסנית IP: IPv6 (single-stack)
    • סוג הגישה ל-IPv6: פנימי
  7. לוחצים על סיום.

  8. לוחצים על יצירה.

gcloud

  1. כדי ליצור רשת VPC חדשה במצב מותאם אישית, מריצים את הפקודה gcloud compute networks create.

    כדי להגדיר טווחים פנימיים של IPv6 בכל רשת משנה ברשת הזו, משתמשים בדגל --enable-ula-internal-ipv6.

    gcloud compute networks create lb-network-ipv6-only \
        --subnet-mode=custom \
        --enable-ula-internal-ipv6 \
        --bgp-routing-mode=regional
    
  2. מגדירים רשת משנה עם ipv6-access-type שמוגדר ל-INTERNAL. המשמעות היא שלמכונות הווירטואליות ברשת המשנה הזו יכולות להיות רק כתובות IPv6 פנימיות. בדוגמה הזו, שם רשת המשנה הוא lb-subnet-ipv6-only-internal.

    כדי ליצור את רשת המשנה, מריצים את הפקודה gcloud compute networks subnets create.

    gcloud compute networks subnets create lb-subnet-ipv6-only-internal \
        --network=lb-network-ipv6-only \
        --region=us-west1 \
        --stack-type=IPV6_ONLY \
        --ipv6-access-type=INTERNAL
    

הגדרת רשת משנה עם כתובות IPv6 חיצוניות בלבד

רשת משנה עם כתובות IPv6 חיצוניות בלבד משמשת ליצירת מכונה וירטואלית שמשמשת כשער NAT.

המסוף

  1. נכנסים לדף VPC networks במסוף Cloud de Confiance .

    מעבר לרשתות VPC

  2. כדי לראות את הדף VPC network details, לוחצים על השם של רשת ה-VPC שיצרתם.

  3. בכרטיסייה Subnets (רשתות משנה), לוחצים על Add subnet (הוספת רשת משנה). בחלונית שמופיעה, מציינים את פרמטרי ההגדרה הבאים עבור רשת המשנה:

    • Name (שם): lb-subnet-ipv6-only-external
    • אזור: us-west1
    • סוג מחסנית IP: IPv6 (single-stack)
    • סוג הגישה ל-IPv6: חיצוני
  4. לוחצים על הוספה.

gcloud

מגדירים רשת משנה עם ipv6-access-type שמוגדר ל-EXTERNAL. המשמעות היא שלמכונות הווירטואליות ברשת המשנה הזו יכולות להיות כתובות IPv6 חיצוניות. בדוגמה הזו, שם רשת המשנה הוא lb-subnet-ipv6-only-external.

כדי ליצור את רשת המשנה, מריצים את הפקודה gcloud compute networks subnets create.

gcloud compute networks subnets create  lb-subnet-ipv6-only-external \
    --network=lb-network-ipv6-only \
    --region=us-west1 \
    --stack-type=IPV6_ONLY \
    --ipv6-access-type=EXTERNAL

הגדרת כללי חומת אש ברשת ה-VPC

בדוגמה הזו נעשה שימוש בכללים הבאים של חומת האש:

  • fw-allow-lb-access-ipv6-only: כלל כניסה שחל על כל היעדים ברשת ה-VPC, שמאפשר תנועה מכל מקורות ה-IPv6.

  • fw-allow-ssh: כלל תעבורת נתונים נכנסת שמאפשר קישוריות SSH נכנסת ביציאת TCP‏ 22 מכל כתובת. אתם יכולים לבחור טווח IP של מקור מגביל יותר לכלל הזה. לדוגמה, אתם יכולים לציין רק את טווחי ה-IP של המערכת שממנה אתם מפעילים סשנים של SSH. בדוגמה הזו נעשה שימוש בתג היעד allow-ssh כדי לזהות את מכונות ה-VM שצריך להחיל עליהן את התג.

  • fw-allow-health-check-ipv6-only: כלל כניסה שחל על המופעים שעוברים איזון עומסים, שמאפשר תעבורת נתונים ממערכות בדיקת תקינות (2600:2d00:1:b029::/64). בדוגמה הזו נעשה שימוש בתג היעד allow-health-check-ipv6 כדי לזהות את המופעים שצריך להחיל עליהם את הכלל. Cloud de Confiance

בלי כללי חומת האש האלה, הכלל default deny ingress חוסם תנועה נכנסת למופעי ה-Backend.

המסוף

  1. נכנסים לדף Firewall policies במסוף Cloud de Confiance .

    לדף Firewall policies

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

    • Name (שם): fw-allow-lb-access-ipv6-only
    • רשת: lb-network-ipv6-only
    • עדיפות: 1000
    • כיוון התנועה: כניסה
    • פעולה במקרה של התאמה: אישור
    • יעדים: כל המופעים ברשת
    • מסנן מקור: טווחים של IPv6
    • טווחים של כתובות IPv6 של המקור: ::/0
    • פרוטוקולים ויציאות: אישור הכול
  3. לוחצים על יצירה.

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

    • Name (שם): fw-allow-ssh
    • רשת: lb-network-ipv6-only
    • עדיפות: 1000
    • כיוון התנועה: כניסה
    • פעולה במקרה של התאמה: אישור
    • יעדים: תגי יעד שצוינו
    • תגי טירגוט: allow-ssh
    • מסנן מקור: טווחים של IPv6
    • טווחים של כתובות IPv6 של המקור: ::/0
    • פרוטוקולים ויציאות: בוחרים באפשרות פרוטוקולים ויציאות שצוינו, מסמנים את תיבת הסימון TCP ומזינים 22 ביציאות.
  5. לוחצים על יצירה.

  6. כדי לאפשר בדיקות תקינות של IPv6, לוחצים שוב על יצירת כלל חומת אש ומזינים את הפרטים הבאים: Cloud de Confiance

    • Name (שם): fw-allow-health-check-ipv6-only
    • רשת: lb-network-ipv6-only
    • עדיפות: 1000
    • כיוון התנועה: כניסה
    • פעולה במקרה של התאמה: אישור
    • יעדים: תגי יעד שצוינו
    • תגי טירגוט: allow-health-check-ipv6
    • מסנן מקור: טווחים של IPv6
    • טווחים של כתובות IPv6 של המקור: 2600:2d00:1:b029::/64
    • פרוטוקולים ויציאות: אישור הכול
  7. לוחצים על יצירה.

gcloud

  1. יוצרים את כלל חומת האש fw-allow-lb-access-ipv6-only כדי לאפשר את כל תעבורת הנתונים הנכנסת ב-IPv6 לכל המכונות הווירטואליות ברשת ה-VPC:

    gcloud compute firewall-rules create fw-allow-lb-access-ipv6-only \
        --network=lb-network-ipv6-only \
        --action=allow \
        --direction=ingress \
        --source-ranges=::/0 \
        --rules=all
    
  2. יוצרים את כלל חומת האש fw-allow-ssh כדי לאפשר קישוריות SSH למכונות וירטואליות עם תג הרשת allow-ssh. אם לא מציינים את source-ranges,‏Cloud de Confiance מפרש את הכלל כאילו הוא מתייחס לכל מקור.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=lb-network-ipv6-only \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --source-ranges=::/0 \
        --rules=tcp:22
    
  3. יוצרים את כלל fw-allow-health-check-ipv6 כדי לאפשר בדיקות תקינות שלCloud de Confiance IPv6.

    gcloud compute firewall-rules create fw-allow-health-check-ipv6-only \
        --network=lb-network-ipv6-only \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64 \
        --rules=tcp,udp
    

יצירת מופע של מכונה וירטואלית שמשמשת כשער NAT

בדוגמה הזו, נעשה שימוש בסקריפט Bash כדי ליצור שער NAT שמשמש לשינוי מנות IPv6 ברמת ליבת Linux.

סקריפט Bash משנה את כתובת המקור של כל מנות ה-IPv6 היוצאות בשרשרת POSTROUTING, ומחליף אותה בכתובת ה-IPv6 החיצונית של ממשק המכונה הווירטואלית.

סקריפט Bash משנה את שרשרת POSTROUTING ב-iptables כדי להסתיר את כתובת ה-IPv6 של המקור של כל המנות היוצאות, ומחליף אותה בכתובת ה-IPv6 החיצונית של ממשק הרשת של ה-VM.

צריך גם להפעיל העברת IP למופע הזה.

כדי ליצור מכונה וירטואלית שמשמשת כשער NAT:

המסוף

  1. נכנסים לדף VM instances במסוף Cloud de Confiance .

    כניסה לדף VM instances

  2. לוחצים על Create instance.

  3. בשדה Name (שם), מזינים nat-gateway-instance.

  4. בשדה Region, בוחרים us-west1, ובשדה Zone, בוחרים us-west1-a.

  5. בקטע Boot disk מוודאים שהאפשרות Debian GNU/Linux 12 (bookworm)‎ מסומנת באפשרויות של דיסק האתחול. אם צריך, לוחצים על שינוי כדי לשנות את התמונה.

  6. לוחצים על Networking ומגדירים את השדות הבאים:

    1. בשדה Network tags (תגי רשת), מזינים allow-ssh.
    2. בקטע העברת כתובות IP, מסמנים את תיבת הסימון הפעלה.
    3. בקטע Network interfaces (ממשקי רשת), בוחרים באפשרויות הבאות:
      • רשת: lb-network-ipv6-only
      • Subnet: lb-subnet-ipv6-only-external
      • סוג מחסנית IP: IPv6 (single-stack)
      • כתובת IPv6 חיצונית: הקצאה אוטומטית
  7. לוחצים על מתקדם ובשדה סקריפט לטעינה בזמן ההפעלה מזינים את הסקריפט הבא:

    #!/bin/bash
    
    set -e
    
    echo "Starting GCE startup script..."
    
    # --- IPv6 NAT table configuration ---
    echo "Modifying the source IPv6 address using the NAT table"
    
    # Enable IPv6 forwarding
    sysctl -w net.ipv6.conf.all.forwarding=1
    
    # Determine the primary network interface (assuming it's the last one listed)
    IFACE=$(ip -brief link | tail -1 | awk '{print $1}')
    
    echo "Using interface: $IFACE for IPv6 NAT"
    
    # Flush existing IPv6 NAT rules
    ip6tables -F -t nat
    ip6tables -X -t nat
    
    # Masquerade all outgoing IPv6 traffic on the determined interface
    ip6tables -t nat -A POSTROUTING -o "$IFACE" -j MASQUERADE
    
    echo "IPv6 masquerading configured successfully."
    
    echo "GCE startup script finished."
    

  8. לוחצים על יצירה.

gcloud

  1. יוצרים סקריפט לטעינה בזמן ההפעלה.

    nano startup.sh
    
  2. מוסיפים את הסקריפט הבא ושומרים את הקובץ.

    #!/bin/bash
    
    set -e
    
    echo "Starting GCE startup script..."
    
    # --- IPv6 NAT table configuration ---
    echo "Modifying the source IPv6 address using the NAT table"
    
    # Enable IPv6 forwarding
    sysctl -w net.ipv6.conf.all.forwarding=1
    
    # Determine the primary network interface (assuming it's the last one listed)
    IFACE=$(ip -brief link | tail -1 | awk '{print $1}')
    
    echo "Using interface: $IFACE for IPv6 NAT"
    
    # Flush existing IPv6 NAT rules
    ip6tables -F -t nat
    ip6tables -X -t nat
    
    # Masquerade all outgoing IPv6 traffic on the determined interface
    ip6tables -t nat -A POSTROUTING -o "$IFACE" -j MASQUERADE
    
    echo "IPv6 masquerading configured successfully."
    
    echo "GCE startup script finished."
    
  3. יוצרים מכונה וירטואלית ומוסיפים את קובץ המטא-נתונים למכונה הווירטואלית. כדי להשתמש במכונה הווירטואלית הזו כנקודת מעבר הבאה במסלול, צריך להשתמש בדגל --can-ip-forward כדי להפעיל העברת IP עבור המופע הזה.

    gcloud compute instances create nat-gateway-instance \
        --zone=us-west1-a \
        --tags=allow-ssh \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --subnet=lb-subnet-ipv6-only-external \
        --stack-type=IPV6_ONLY \
        --can-ip-forward \
        --metadata-from-file=startup-script=startup.sh
    

יצירת נתיב סטטי חדש ברשת ה-VPC

בדוגמה הזו, נוצר נתיב בהתאמה אישית שמפנה את כל תעבורת הנתונים באינטרנט ב-IPv6 ‏ (::/0) ממכונות וירטואליות שתויגו ב-nat-gw-tag אל המכונה הווירטואלית nat-gateway-instance, שמשמשת כשער NAT.

כדי ליצור מסלול:

המסוף

  1. נכנסים לדף Routes במסוף Cloud de Confiance .

    לדף Routes

  2. לוחצים על הכרטיסייה ניהול נתיבים.

  3. לוחצים על יצירת מסלול.

  4. מציינים שם ותיאור לנתיב.

  5. ברשימה Network בוחרים את רשת ה-VPC‏ lb-network-ipv6-only.

  6. ברשימה IP version בוחרים באפשרות IPv6.

  7. מציינים טווח יעד של כתובות IPv6. היעד הרחב ביותר האפשרי הוא ::/0 עבור IPv6.

  8. כדי שהניתוב יחול רק על מקרים נבחרים עם תגי רשת תואמים, מציינים את התגים האלה בשדה תגי מופעים. משאירים את השדה ריק כדי שהנתיב יחול על כל המופעים ברשת. בדוגמה הזו, מזינים nat-gw-tag.

  9. בקטע הניתוב הבא, בוחרים באפשרות ציון מופע.

  10. בוחרים את השם של מופע שיצרתם כדי שישמש כשער NAT. בדוגמה הזו, בוחרים באפשרות nat-gateway-instance.

  11. לוחצים על יצירה.

gcloud

משתמשים בפקודה gcloud compute routes create כדי ליצור מסלול חדש. המנה מועברת למופע של מכונה וירטואלית nat-gateway-instance כפי שצוין ב---next-hop-instance של המסלול.

gcloud compute routes create route-1 \
    --network=lb-network-ipv6-only \
    --priority=1000 \
    --tags=nat-gw-tag \
    --destination-range=::/0 \
    --next-hop-instance=nat-gateway-instance \
    --next-hop-instance-zone=us-west1-a

יצירת מכונות וירטואליות בעורף וקבוצות של מופעים

בדוגמה הזו אנחנו משתמשים בשתי קבוצות של מופעי מכונה לא מנוהלים, שלכל אחת מהן יש שתי מכונות וירטואליות של קצה עורפי. כדי להדגים את האופי האזורי של מאזני עומסי רשת פנימיים להעברת סיגנל ללא שינוי, שתי קבוצות המופעים ממוקמות באזורים נפרדים, us-west1-a ו-us-west1-c.

  • קבוצת המופעים ig-a מכילה את שתי המכונות הווירטואליות האלה:
    • vm-a1
    • vm-a2
  • קבוצת המופעים ig-c מכילה את שתי המכונות הווירטואליות האלה:
    • vm-c1
    • vm-c2

התנועה לכל ארבעת מכונות ה-VM בקצה העורפי מאוזנת.

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

המסוף

יצירת מכונות וירטואליות של קצה עורפי

  1. נכנסים לדף VM instances במסוף Cloud de Confiance .

    כניסה לדף VM instances

  2. חוזרים על השלבים האלה לכל מכונה וירטואלית, באמצעות השילובים הבאים של שם ואזור.

    • שם: vm-a1, אזור: us-west1-a
    • שם: vm-a2, אזור: us-west1-a
    • שם: vm-c1, אזור: us-west1-c
    • שם: vm-c2, אזור: us-west1-c
  3. לוחצים על Create instance.

  4. מגדירים את השם כמו שמופיע בשלב 2.

  5. בשדה Region, בוחרים באפשרות us-west1 ובוחרים Zone כמו שמוסבר בשלב 2.

  6. בקטע Boot disk מוודאים שהאפשרות Debian GNU/Linux 12 (bookworm)‎ מסומנת באפשרויות של דיסק האתחול. אם צריך, לוחצים על שינוי כדי לשנות את התמונה.

  7. לוחצים על אפשרויות מתקדמות.

  8. לוחצים על Networking ומגדירים את השדות הבאים:

    1. בשדה Network tags (תגי רשת), מזינים allow-ssh, allow-health-check-ipv6, ו-nat-gw-tag.
    2. בקטע Network interfaces (ממשקי רשת), בוחרים באפשרויות הבאות:
      • רשת: lb-network-ipv6-only
      • Subnet: lb-subnet-ipv6-only-internal
      • סוג מחסנית IP: IPv6 (single-stack)
      • כתובת IPv6 פנימית ראשית: זמנית (אוטומטית)
  9. לוחצים על מתקדם, ואז בשדה סקריפט לטעינה בזמן ההפעלה מזינים את הסקריפט הבא. התוכן של הסקריפט זהה בכל ארבע המכונות הווירטואליות.

    #! /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
    
  10. לוחצים על יצירה.

יצירת קבוצות של מופעי מכונה

  1. נכנסים לדף Instance groups במסוף Cloud de Confiance .

    כניסה לדף Instance groups

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

    • שם קבוצת המופעים: ig-a, אזור: us-west1-a, מכונות וירטואליות: vm-a1 ו-vm-a2
    • שם קבוצת המופעים: ig-c, אזור: us-west1-c, מכונות וירטואליות: vm-c1 ו-vm-c2
  3. לוחצים על יצירת קבוצת מופעים.

  4. לוחצים על קבוצת מופעים חדשה לא מנוהלת.

  5. מגדירים את השם כמו שמוסבר בשלב 2.

  6. בקטע Location, בוחרים באפשרות us-west1 בשדה Region, ואז בוחרים Zone כמו שמוסבר בשלב 2.

  7. בקטע רשת, בוחרים באפשרות lb-network-ipv6-only.

  8. בשדה רשת משנה, בוחרים באפשרות lb-subnet-ipv6-only-internal.

  9. בקטע VM instances, מוסיפים את המכונות הווירטואליות כמו שמוסבר בשלב 2.

  10. לוחצים על יצירה.

gcloud

  1. כדי ליצור את ארבע מכונות ה-VM, מריצים את הפקודה gcloud compute instances create ארבע פעמים, ומשתמשים בארבעת השילובים הבאים לערכים של [VM-NAME] ו-[ZONE].

    • VM-NAME: vm-a1, ZONE: us-west1-a
    • VM-NAME: vm-a2, ZONE: us-west1-a
    • VM-NAME: vm-c1, ZONE: us-west1-c
    • VM-NAME: vm-c2, ZONE: us-west1-c
    gcloud compute instances create VM-NAME \
        --zone=ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-ssh,allow-health-check-ipv6,nat-gw-tag \
        --subnet=lb-subnet-ipv6-only-internal \
        --stack-type=IPV6_ONLY \
        --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'
    
  2. יוצרים את שתי הקבוצות של מופעי מכונה לא מנוהלים בכל אזור:

    gcloud compute instance-groups unmanaged create ig-a \
        --zone=us-west1-a
    gcloud compute instance-groups unmanaged create ig-c \
        --zone=us-west1-c
    
  3. מוסיפים את המכונות הווירטואליות לקבוצות המופעים המתאימות:

    gcloud compute instance-groups unmanaged add-instances ig-a \
        --zone=us-west1-a \
        --instances=vm-a1,vm-a2
    gcloud compute instance-groups unmanaged add-instances ig-c \
        --zone=us-west1-c \
        --instances=vm-c1,vm-c2
    

הגדרת רכיבים של מאזן עומסים

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

המסוף

התחלת ההגדרה

  1. נכנסים לדף Load balancing במסוף Cloud de Confiance .

    כניסה לדף Load balancing

  2. לוחצים על Create load balancer (יצירת מאזן עומסים).
  3. בקטע Type of load balancer (סוג מאזן העומסים), בוחרים באפשרות Network Load Balancer (TCP/UDP/SSL) (מאזן עומסים ברשת (TCP/UDP/SSL)) ולוחצים על Next (הבא).
  4. בקטע Proxy or passthrough (פרוקסי או העברה), בוחרים באפשרות Passthrough load balancer (מאזן עומסים להעברה) ולוחצים על Next (הבא).
  5. לוחצים על Configure (הגדרה).

הגדרה בסיסית

בדף Create internal passthrough Network Load Balancer (יצירת מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי), מזינים את הפרטים הבאים:

  • שם של מאזן עומסים: ilb-ipv6-only
  • אזור: us-west1
  • רשת: lb-network-ipv6-only

הגדרת הקצה העורפי

  1. לוחצים על Backend configuration.
  2. ברשימה בדיקת תקינות, בוחרים באפשרות יצירת בדיקת תקינות ומזינים את הפרטים הבאים:
    • Name (שם): hc-http-80
    • היקף: אזורי
    • Protocol: HTTP
    • יציאה: 80
    • פרוטוקול שרת proxy: ללא
    • בקשה: /
  3. לוחצים על יצירה.
  4. בקטע New Backend, בהגדרה IP stack type, בוחרים באפשרות IPv6 (single-stack).
  5. בקטע Instance group, בוחרים את קבוצת המכונות ig-a ולוחצים על Done.
  6. לוחצים על הוספת קצה עורפי וחוזרים על השלב כדי להוסיף את ig-c.
  7. מוודאים שמופיע סימן וי כחול לצד Backend configuration.

הגדרות הקצה הקדמי

  1. לוחצים על Frontend configuration. בקטע New Frontend IP and port מבצעים את הפעולות הבאות:
    1. בשדה Name (שם), מזינים fr-ilb-ipv6-only.
    2. כדי לטפל בתעבורת IPv6:
      1. בשביל IP version, בוחרים IPv6. שרת ה-TCP של IPv6 שתיצרו בקטע הבא יקשר ל-VIP של כלל ההעברה.
      2. בשדה Subnetwork, בוחרים באפשרות lb-subnet-ipv6-only-internal. טווח כתובות ה-IPv6 בכלל ההעברה הוא תמיד זמני.
      3. בקטע יציאות, בוחרים באפשרות כמה, ואז בשדה מספר היציאה מזינים 80.
      4. לוחצים על סיום.
    3. לפני שממשיכים, מוודאים שלצד Frontend configuration מופיע סימן אישור כחול.

בדיקת ההגדרות האישיות

  1. לוחצים על Review and finalize. בודקים את כל ההגדרות.
  2. אם ההגדרות נכונות, לוחצים על יצירה. יצירת מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי נמשכת כמה דקות.

gcloud

  1. יוצרים בדיקת תקינות חדשה של HTTP ברמה האזורית כדי לבדוק את הקישוריות של HTTP למכונות הווירטואליות ביציאה 80.

    gcloud compute health-checks create http hc-http-80 \
        --region=us-west1 \
        --port=80
    
  2. יוצרים את שירות הקצה העורפי:

    gcloud compute backend-services create ilb-ipv6-only \
        --load-balancing-scheme=INTERNAL \
        --protocol=tcp \
        --region=us-west1 \
        --health-checks=hc-http-80 \
        --health-checks-region=us-west1
    
  3. מוסיפים את שתי קבוצות המופעים לשירות ה-Backend:

    gcloud compute backend-services add-backend ilb-ipv6-only \
        --region=us-west1 \
        --instance-group=ig-a \
        --instance-group-zone=us-west1-a
    
    gcloud compute backend-services add-backend ilb-ipv6-only \
        --region=us-west1 \
        --instance-group=ig-c \
        --instance-group-zone=us-west1-c
    
  4. יוצרים את כלל ההעברה של IPv6 עם כתובת IPv6 זמנית.

    gcloud compute forwarding-rules create fr-ilb-ipv6-only \
        --region=us-west1 \
        --load-balancing-scheme=INTERNAL \
        --subnet=lb-subnet-ipv6-only-internal \
        --ip-protocol=TCP \
        --ports=80 \
        --backend-service=ilb-ipv6-only \
        --backend-service-region=us-west1 \
        --ip-version=IPV6
    

בדיקת מאזן העומסים

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

יצירת מכונה וירטואלית של לקוח

בדוגמה הזו נוצרת מכונה וירטואלית של לקוח (vm-client) באותו אזור שבו נמצאות המכונות הווירטואליות של השרת (בק-אנד).

המסוף

  1. נכנסים לדף VM instances במסוף Cloud de Confiance .

    כניסה לדף VM instances

  2. לוחצים על Create instance.

  3. בשדה Name (שם), מזינים vm-client.

  4. בשדה אזור, בוחרים באפשרות us-west1.

  5. בשדה Zone, בוחרים באפשרות us-west1-a.

  6. לוחצים על אפשרויות מתקדמות.

  7. לוחצים על Networking ומגדירים את השדות הבאים:

    1. בשדה Network tags (תגי רשת), מזינים allow-ssh.
    2. בקטע Network interfaces (ממשקי רשת), בוחרים באפשרויות הבאות:
      • רשת: lb-network-ipv6-only
      • Subnet: lb-subnet-ipv6-only-internal
      • סוג מחסנית IP: IPv6 (single-stack)
    3. לוחצים על סיום.
  8. לוחצים על יצירה.

gcloud

המכונה הווירטואלית של הלקוח יכולה להיות בכל תחום באותו אזור שבו נמצא מאזן העומסים. בדוגמה הזו, הלקוח נמצא באזור us-west1-a והוא משתמש באותה רשת משנה כמו המכונות הווירטואליות של הבק-אנד.

gcloud compute instances create vm-client \
    --zone=us-west1-a \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --stack-type=IPV6_ONLY \
    --tags=allow-ssh \
    --subnet=lb-subnet-ipv6-only-internal

בדיקת החיבור

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

  1. מתחברים למכונה הווירטואלית של הלקוח באמצעות SSH.

    gcloud compute ssh vm-client --zone=us-west1-a
    
  2. תאר את כלל ההעברה של IPv6‏ fr-ilb-ipv6-only. שימו לב לIPV6_ADDRESS בתיאור.

    gcloud compute forwarding-rules describe fr-ilb-ipv6-only \
        --region=us-west1
    
  3. מלקוחות עם קישוריות IPv6, מריצים את הפקודה הבאה:

    curl http://IPV6_ADDRESS:80
    

    לדוגמה, אם כתובת ה-IPv6 שהוקצתה היא [fd20:307:120c:2000:0:1:0:0/96]:80, הפקודה צריכה להיראות כך:

    curl http://[fd20:307:120c:2000:0:1:0:0]:80
    

    התגובה יכולה להיות כזו:

    Page returned from: vm-a2
    

המאמרים הבאים