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

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

  • העברת חבילות לממשקי הרשת שאינם nic0 של מופעי מכונות וירטואליות (VM) על ידי ייצוג של ממשק רשת של מופע VM כנקודת הקצה של ה-Backend.
  • ליצור קבוצה גמישה של נקודות קצה בעורף, שבה אפשר לצרף נקודת קצה לכמה קבוצות NEG, ולכל קבוצת NEG יכולה להיות קבוצה שונה של נקודות קצה, שאולי חופפות.

לפני שממשיכים לקרוא את המסמך הזה, כדאי להכיר את המושגים הבאים:

הרשאות

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

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

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

סקירה כללית של ההגדרה

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

  1. רשת VPC לדוגמה בשם lb-network עם רשת משנה מותאמת אישית.
  2. כללי חומת אש שמאפשרים חיבורים נכנסים למכונות וירטואליות של שרתים עורפיים.
  3. ארבע מכונות וירטואליות:
    • מכונות וירטואליות vm-a1 ו-vm-a2 באזור us-west1-a
    • מכונות וירטואליות vm-c1 ו-vm-c2 באזור us-west1-c
  4. שתי קבוצות NEGs של קצה עורפי אזורי, neg-a באזור us-west1-a ו-neg-c באזור us-west1-c. לכל NEG יש את נקודות הקצה הבאות:
    • neg-a מכיל את שתי נקודות הקצה האלה:
      • nic1 של מכונה וירטואלית vm-a1 שזוהתה לפי כתובת ה-IP הפנימית הראשית שלה
      • nic1 של מכונה וירטואלית vm-a2 שזוהתה לפי כתובת ה-IP הפנימית הראשית שלה
    • neg-c מכיל את שתי נקודות הקצה האלה:
      • nic1 של מכונה וירטואלית vm-c1 שזוהתה לפי כתובת ה-IP הפנימית הראשית שלה
      • nic1 של מכונה וירטואלית vm-c2 שזוהתה לפי כתובת ה-IP הפנימית הראשית שלה
  5. מכונה וירטואלית אחת של לקוח (vm-client) ב-us-west1-a לבדיקת חיבורים
  6. הרכיבים הבאים של מאזן העומסים:
    • שירות חיצוני לקצה עורפי באזור us-west1 לניהול חלוקת החיבורים לשני NEGs אזוריים
    • כלל העברה חיצוני וכתובת IP לקצה הקדמי של מאזן העומסים

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

הארכיטקטורה של הדוגמה הזו נראית כך:

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

לפני שמתחילים

מתקינים את Google Cloud CLI. סקירה כללית מלאה של הכלי זמינה במאמר סקירה כללית על ה-CLI של gcloud. אפשר למצוא פקודות שקשורות לאיזון עומסים בהפניות ל-API ול-gcloud.

אם לא הפעלתם את ה-CLI של gcloud בעבר, אתם צריכים קודם להריץ את הפקודה gcloud init כדי לבצע אימות.

בדף הזה אנחנו מניחים שאתם מכירים את bash.

הגדרת הרשתות ורשתות המשנה

בדוגמה שבדף הזה נעשה שימוש ברשת VPC במצב מותאם אישית בשם lb-network. אם רוצים לטפל רק בתנועה של IPv4, אפשר להשתמש ברשת VPC במצב אוטומטי. עם זאת, לא ניתן להשתמש בתת-רשתות עם טווחי כתובות IPv6 ברשתות VPC במצב אוטומטי. יש תמיכה בתת-רשתות עם טווחי כתובות IPv6 רק ברשתות VPC במצב מותאם אישית.

בדוגמה הזו, נוצרות רשתות משנה של סוגי הערימות הבאים:

טווחים של רשתות משנה סוג הערימה
רק טווחי תת-רשת של IPv4 IPV4_ONLY (single-stack)
טווחי רשתות משנה של IPv4 ו-IPv6 IPV4_IPV6 (dual-stack)
רק טווחי רשתות משנה של IPv6 IPV6_ONLY (single-stack)

עבור רשתות משנה עם תמיכה כפולה ורשתות משנה עם IPv6 בלבד שמשתמשות בטווח כתובות IPv6, צריך לבחור סוג גישה IPv6 לרשת המשנה. סוג הגישה ל-IPv6 קובע אם רשת המשנה מוגדרת עם כתובות IPv6 פנימיות או עם כתובות IPv6 חיצוניות. בדוגמה הזו, הפרמטר ipv6-access-type של רשת המשנה מוגדר ל-EXTERNAL.

אפשר גם להשתמש ברשת משנה עם טווח כתובות IPv6 חיצוניות, כלומר שבה הפרמטר ipv6-access-type מוגדר ל-EXTERNAL, כדי לקבוע את כתובת ה-IPv6 החיצונית של כלל העברה. מידע נוסף זמין במאמר בנושא מפרטים של כתובות IP לכללי העברה.

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

  • אזור: us-central1
  • רשת משנה: lb-subnet, עם טווח כתובות IPv4 ראשי 10.1.2.0/24. אתם בוחרים את טווח כתובות ה-IPv4 שמוגדר בתת-הרשת, אבל טווח כתובות ה-IPv6 מוקצה באופן אוטומטי. ‫Google מספקת בלוק CIDR של IPv6 בגודל קבוע (/64).

כדי ליצור את הרשת ואת רשת המשנה לדוגמה, פועלים לפי השלבים הבאים.

המסוף

כדי לתמוך בתנועה מסוג IPv4 ו-IPv6, פועלים לפי השלבים הבאים:

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

    מעבר לרשתות VPC

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

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

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

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

    • Name (שם): lb-subnet
    • אזור: us-central1
    • סוג מחסנית IP: IPv4 ו-IPv6 (מחסנית כפולה)
    • טווח IPv4: 10.1.2.0/24
      אפשר להגדיר טווח של כתובות IPv4 לרשת המשנה, אבל אי אפשר לבחור את טווח כתובות ה-IPv6 לרשת המשנה. ‫Google מספקת בלוק CIDR של IPv6 בגודל קבוע (/64).
    • סוג הגישה ל-IPv6: חיצוני
    • לוחצים על סיום
  6. לוחצים על יצירה.

כדי לתמוך בתנועת IPv4 בלבד, פועלים לפי השלבים הבאים:

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

    מעבר לרשתות VPC

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

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

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

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

    • Name (שם): lb-subnet
    • אזור: us-central1
    • סוג מחסנית פרוטוקולי IP: IPv4 (מחסנית יחידה)
    • טווח IPv4: 10.1.2.0/24
  6. לוחצים על יצירה.

כדי לתמוך בתנועת IPv6 בלבד, פועלים לפי השלבים הבאים:

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

    מעבר לרשתות VPC

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

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

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

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

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

gcloud

  1. יוצרים את רשת ה-VPC במצב בהתאמה אישית:

    gcloud compute networks create lb-network \
        --subnet-mode=custom
    
  2. ברשת lb-network, יוצרים רשת משנה לשרתי קצה באזור us-central1.

    כדי ליצור רשת משנה עם תמיכה כפולה ב-IPv4 וב-IPv6, משתמשים בפקודה הבאה:

      gcloud compute networks subnets create lb-subnet \
          --stack-type=IPV4_IPV6 \
          --ipv6-access-type=EXTERNAL \
          --network=lb-network \
          --range=10.1.2.0/24 \
          --region=us-central1
    

    כדי להגדיר תנועת IPv4 בלבד, משתמשים בפקודה הבאה:

      gcloud compute networks subnets create lb-subnet \
          --network=lb-network \
          --range=10.1.2.0/24 \
          --region=us-central1
    

    כדי להגדיר תנועה ב-IPv6 בלבד, משתמשים בפקודה הבאה:

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

יצירת מכונות וירטואליות (VM) וקבוצות של נקודות קצה ברשת

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

יצירת מכונות וירטואליות

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

כדי לפשט את ההוראות, מכונות ה-VM של ה-Backend מריצות Debian GNU Linux 10.

כדי לטפל בתנועה של IPv4 ו-IPv6, צריך להגדיר את מכונות ה-VM של הקצה העורפי כ-dual-stack. מגדירים את stack-type של המכונה הווירטואלית לערך IPV4_IPV6. המכונות הווירטואליות מקבלות בירושה גם את ההגדרה ipv6-access-type (בדוגמה הזו, EXTERNAL) מרשת המשנה. פרטים נוספים על הדרישות של IPv6 זמינים במאמר סקירה כללית על מאזן עומסי רשת חיצוני להעברת סיגנל ללא שינוי: כללי העברה.

כדי להשתמש במכונות וירטואליות קיימות כשרתי קצה עורפיים, צריך לעדכן את המכונות הווירטואליות כך שיתמכו ב-dual-stack באמצעות הפקודה gcloud compute instances network-interfaces update.

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

כל מכונה וירטואלית נוצרת עם שני ממשקי רשת, nic0 ו-nic1. במדריך הזה נעשה שימוש ב-nic1, שמשויך לרשת ה-VPC‏ lb-network ולתת-הרשת lb-subnet. משתמשים ברשת lb-network וברשת המשנה lb-subnet כדי ליצור את קבוצות ה-NEG האזוריות בהמשך התהליך הזה.

המסוף

יצירת מכונות וירטואליות

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

    כניסה לדף 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. מגדירים את השם כמו שצוין קודם.

  5. בקטע Region, בוחרים באפשרות us-west1, ובקטע Zone בוחרים באזור כמו שצוין קודם.

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

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

    • לוחצים על Networking (רשת) ומוסיפים את תגי הרשת הבאים: lb-tag
    • בקטע ממשקי רשת, לוחצים על הוספת ממשק רשת ומבצעים את השינויים הבאים:

      בשביל IPv4 and IPv6 backends:

      • רשת: lb-network
      • Subnet: lb-subnet
      • סוג מחסנית ה-IP: IPv4 and IPv6 (dual-stack)
      • כתובת IP פנימית ראשית: זמנית (אוטומטית)
      • כתובת IPv4 חיצונית: זמנית (אוטומטית)
      • כתובת IPv6 חיצונית: זמנית (אוטומטית)

      בשביל IPv4 only backends:

      • רשת: lb-network
      • Subnet: lb-subnet
      • סוג מחסנית ה-IP: IPv4 (single-stack)
      • כתובת IP פנימית ראשית: זמנית (אוטומטית)
      • כתובת IP חיצונית: זמנית

      לאחר מכן, לוחצים על סיום.

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

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

gcloud

כדי ליצור את ארבע מכונות ה-VM, מריצים את הפקודה הבאה ארבע פעמים, ומשתמשים בארבעת השילובים האלה עבור 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

כדי לטפל בתנועה של IPv4 ו-IPv6, משתמשים בפקודה הבאה.

INTERNAL
gcloud compute instances create VM_NAME \
    --zone=ZONE \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=lb-tag \
    --network-interface=network=default,subnet=default,stack_type=IPV4_IPV6,--ipv6-network-tier=PREMIUM \
    --network-interface=network=lb-network,subnet=lb-subnet,stack_type=IPV4_IPV6,--ipv6-network-tier=PREMIUM \
    --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'

כדי לטפל בתנועת נתונים מ-IPv4 בלבד, משתמשים בפקודה הבאה:

gcloud compute instances create VM_NAME \
    --zone=ZONE \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=lb-tag \
    --network-interface=network=default,subnet=default,stack_type=IPV4_ONLY \
    --network-interface=network=lb-network,subnet=lb-subnet,stack_type=IPV4_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'

יצירת קבוצות NEGs אזוריות עם נקודות קצה מסוג GCE_VM_IP

צריך ליצור את קבוצות ה-NEG באותם אזורים שבהם נוצרו מכונות ה-VM בשלב הקודם. בדוגמה הזו נוצר גם ה-NEG ברשת ה-VPC‏ lb-network ובתת-הרשת lb-subnet שמשויכות ל-nic1 של המכונות הווירטואליות שנוצרו בשלב הקודם. לכן, נקודות הקצה של ה-NEG יהיו ב-nic1 מהמכונות הווירטואליות.

המסוף

כדי ליצור קבוצת נקודות קצה ברשת אזורית:

  1. נכנסים לדף Network Endpoint Groups במסוף Google Cloud .
    כניסה לדף Network Endpoint Groups
  2. לוחצים על יצירת קבוצת נקודות קצה ברשת.
  3. מזינים שם ל-NEG האזורי: neg-a.
  4. בוחרים את סוג קבוצת נקודות הקצה ברשת: קבוצת נקודות קצה ברשת (אזורית).
  5. בוחרים באפשרות רשת: lb-network
  6. בוחרים באפשרות רשת משנה: lb-subnet
  7. בוחרים את האזור: us-west1-a
  8. לוחצים על יצירה.
  9. חוזרים על השלבים האלה כדי ליצור NEG אזורי שני בשם neg-c באזור us-west1-c.

מוסיפים נקודות קצה ל-NEG האזורי:

  1. נכנסים לדף Network Endpoint Groups במסוף Google Cloud .
    כניסה לדף Network endpoint groups
  2. לוחצים על Name של קבוצת נקודות הקצה הראשונה ברשת שנוצרה בשלב הקודם (neg-a). יוצג הדף Network endpoint group details.
  3. בקטע Network endpoints in this group (נקודות קצה ברשת בקבוצה הזו), לוחצים על Add network endpoint (הוספת נקודת קצה ברשת). מוצג הדף Add network endpoint.

    1. לוחצים על VM instance (מכונה וירטואלית) ובוחרים באפשרות vm-a1 כדי להוסיף את כתובות ה-IP הפנימיות שלה כנקודות קצה ברשת.
    2. לוחצים על יצירה.
    3. לוחצים שוב על Add network endpoint ובוחרים באפשרות vm-a2 בקטע VM instance.
    4. לוחצים על יצירה.
  4. לוחצים על Name (שם) של קבוצת נקודות הקצה השנייה ברשת שנוצרה בשלב הקודם (neg-c). יוצג הדף Network endpoint group details.

  5. בקטע Network endpoints in this group (נקודות קצה ברשת בקבוצה הזו), לוחצים על Add network endpoint (הוספת נקודת קצה ברשת). מוצג הדף Add network endpoint.

    1. לוחצים על VM instance (מכונה וירטואלית) ובוחרים באפשרות vm-c1 כדי להוסיף את כתובות ה-IP הפנימיות שלה כנקודות קצה ברשת.
    2. לוחצים על יצירה.
    3. לוחצים שוב על הוספת נקודת קצה ברשת ובוחרים באפשרות vm-c2 בקטע VM instance.
    4. לוחצים על יצירה.

gcloud

  1. כדי ליצור קבוצת כתובות IP אזורית בשם neg-a באזור us-west1-a, משתמשים בפקודה gcloud compute network-endpoint-groups create:GCE_VM_IP

    gcloud compute network-endpoint-groups create neg-a \
        --network-endpoint-type=gce-vm-ip \
        --zone=us-west1-a \
        --network=lb-network \
        --subnet=lb-subnet
    
  2. הוספת נקודות קצה ל-neg-a:

    gcloud compute network-endpoint-groups update neg-a \
        --zone=us-west1-a \
        --add-endpoint='instance=vm-a1' \
        --add-endpoint='instance=vm-a2'
    
  3. כדי ליצור קבוצת כתובות IP אזורית בשם neg-c באזור us-west1-c, משתמשים בפקודה gcloud compute network-endpoint-groups create:GCE_VM_IP

    gcloud compute network-endpoint-groups create neg-c \
        --network-endpoint-type=gce-vm-ip \
        --zone=us-west1-c \
        --network=lb-network \
        --subnet=lb-subnet
    
  4. הוספת נקודות קצה ל-neg-c:

    gcloud compute network-endpoint-groups update neg-c \
        --zone=us-west1-c \
        --add-endpoint='instance=vm-c1' \
        --add-endpoint='instance=vm-c2'
    

הגדרת כללים לחומת אש

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

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

המסוף

נכנסים לדף Firewall במסוף Google Cloud .

כניסה לדף Firewall

כדי לאפשר תנועה של IPv4, מבצעים את השלבים הבאים:

  1. לוחצים על יצירת כלל לחומת האש.
  2. מזינים שם: allow-network-lb-ipv4.
  3. בשדה רשת, בוחרים באפשרות lb-network.
  4. בקטע יעדים, בוחרים באפשרות תגי יעד שצוינו.
  5. בשדה Target tags (תגי יעד), מזינים lb-tag.
  6. בשדה מסנן מקור, בוחרים באפשרות טווחים של IPv4.
  7. מגדירים את Source IPv4 ranges לערך 0.0.0.0/0. כך מתאפשרת תנועה של IPv4 מכל מקור. הפעולה הזו מאפשרת גם לבדיקות התקינות של Google להגיע למופעי ה-Backend.
  8. בקטע פרוטוקולים ויציאות שצוינו, בוחרים באפשרות TCP ומזינים 80.
  9. לוחצים על יצירה.

כדי לאפשר תנועת IPv6, מבצעים את השלבים הבאים:

  1. לוחצים שוב על יצירת כלל לחומת האש.
  2. מזינים שם: allow-network-lb-ipv6.
  3. בשדה רשת, בוחרים באפשרות lb-network.
  4. בקטע יעדים, בוחרים באפשרות תגי יעד שצוינו.
  5. בשדה Target tags (תגי יעד), מזינים lb-tag.
  6. בשדה מסנן מקור, בוחרים באפשרות טווחים של IPv6.
  7. מגדירים את Source IPv6 ranges (טווחי IPv6 של המקור) לערך ::/0. כך מתאפשרת תנועה של IPv6 מכל מקור. הפעולה הזו מאפשרת גם לבדיקות התקינות של Google להגיע למופעי ה-Backend.
  8. בקטע פרוטוקולים ויציאות שצוינו, בוחרים באפשרות TCP ומזינים 80.
  9. לוחצים על יצירה.

gcloud

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

gcloud compute firewall-rules create allow-network-lb-ipv4 \
    --network=lb-network \
    --target-tags=lb-tag \
    --allow=tcp:80 \
    --source-ranges=0.0.0.0/0

כדי לאפשר תנועה ב-IPv6, מריצים את הפקודה הבאה:

gcloud compute firewall-rules create allow-network-lb-ipv6 \
    --network=lb-network \
    --target-tags=lb-tag \
    --allow=tcp:80 \
    --source-ranges=::/0
 

הגדרת מאזן העומסים

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

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

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

המסוף

התחלת ההגדרה

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

    כניסה לדף 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. בקטע Public facing or internal (פנימי או גלוי לכולם), בוחרים באפשרות Public facing (external) (גלוי לכולם – חיצוני) ולוחצים על Next (הבא).
  6. לוחצים על Configure (הגדרה).

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

  1. בדף Create external passthrough Network Load Balancer (יצירת מאזן עומסי רשת חיצוני להעברת סיגנל ללא שינוי), מזינים את השם network-lb-zonal-neg של מאזן העומסים החדש.
  2. ברשימה Region בוחרים באזור us-west1.
  3. לוחצים על Backend configuration. השם של מאזן העומסים שהזנתם קודם מופיע, אבל אי אפשר לשנות אותו.
  4. ברשימה Backend type (סוג ה-Backend), בוחרים באפשרות Zonal network endpoint group (קבוצת נקודות קצה ברשת אזורית).
  5. בדף Backend configuration, מבצעים את הפעולות הבאות:
    1. ברשימה בדיקת תקינות, לוחצים על יצירת בדיקת תקינות ומזינים את הפרטים הבאים:
      • Name (שם): tcp-health-check
      • Protocol: TCP
      • יציאה: 80
    2. לוחצים על יצירה.
    3. ברשימה Network endpoint group, בוחרים באפשרות neg-a ואז לוחצים על Done.
    4. לוחצים על הוספת קצה עורפי וחוזרים על השלב הקודם כדי להוסיף את neg-c.
    5. לוחצים על Save.
  6. לפני שממשיכים, מוודאים שלצד Backend configuration מופיע סימן אישור כחול.

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

  1. לוחצים על Frontend configuration.
  2. בשדה Name (שם), מזינים netlb-forwarding-rule.
  3. כדי לטפל בתנועת נתונים ב-IPv4, פועלים לפי השלבים הבאים:
    1. בשביל IP version, בוחרים IPv4.
    2. בשביל IP address, לוחצים על התפריט הנפתח ובוחרים באפשרות Create IP address.
      1. בדף Reserve a new static IP address, בשדה Name, מזינים netlb-ipv4-address.
      2. לוחצים על Reserve.
    3. בקטע יציאות, בוחרים באפשרות יחיד. בשדה מספר היציאה, מזינים 80.
    4. לוחצים על סיום.
  4. כדי לטפל בתנועת נתונים ב-IPv6, פועלים לפי השלבים הבאים:

    1. בשביל IP version, בוחרים IPv6.
    2. בשדה Subnetwork, בוחרים באפשרות lb-subnet.
    3. בשביל IPv6 range, לוחצים על התפריט הנפתח ובוחרים באפשרות Create IP address.
      1. בדף Reserve a new static IP address, בשדה Name, מזינים netlb-ipv6-address.
      2. לוחצים על Reserve.
    4. בקטע יציאות, בוחרים באפשרות יחיד. בשדה מספר היציאה, מזינים 80.
    5. לוחצים על סיום.

    עיגול כחול עם סימן וי משמאל לFrontend configuration מציין שההגדרה בוצעה בהצלחה.

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

  1. לוחצים על Review and finalize.
  2. בודקים את הגדרות ההגדרה של מאזן העומסים.
  3. אופציונלי: לוחצים על Equivalent code (קוד מקביל) כדי לראות את בקשת API בארכיטקטורת REST שתשמש ליצירת מאזן העומסים.
  4. לוחצים על יצירה.

    בדף 'איזון עומסים', בעמודה 'קצה עורפי' של מאזן העומסים החדש, אמור להופיע סימן וי ירוק שמציין שמאזן העומסים החדש תקין.

gcloud

  1. שומרים כתובת IP חיצונית סטטית.

    לתנועת IPv4

    יוצרים כתובת IPv4 חיצונית סטטית למאזן העומסים.

    gcloud compute addresses create netlb-ipv4-address \
        --region=us-west1
    

    לתנועת גולשים ב-IPv6

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

    gcloud compute addresses create netlb-ipv6-address \
        --region=us-west1 \
        --subnet=lb-subnet \
        --ip-version=IPV6 \
        --endpoint-type=NETLB
    
  2. יוצרים בדיקת תקינות של TCP.

    gcloud compute health-checks create tcp tcp-health-check \
        --region=us-west1 \
        --port=80
    
  3. יוצרים שירות לקצה העורפי.

    gcloud compute backend-services create networklb-backend-service \
        --protocol=TCP \
        --health-checks=tcp-health-check \
        --health-checks-region=us-west1 \
        --region=us-west1
    
  4. מוסיפים את שני ה-NEG האזוריים, neg-a ו-neg-c, לשירות הקצה העורפי:

    gcloud compute backend-services add-backend networklb-backend-service \
        --region=us-west1 \
        --network-endpoint-group=neg-a \
        --network-endpoint-group-zone=us-west1-a
    
    gcloud compute backend-services add-backend networklb-backend-service \
        --region=us-west1 \
        --network-endpoint-group=neg-c \
        --network-endpoint-group-zone=us-west1-c
    
  5. יוצרים את כללי ההעברה בהתאם לסוג התנועה שרוצים לטפל בה: IPv4 או IPv6. יוצרים את שני כללי ההעברה כדי לטפל בשני סוגי התנועה.

    לתנועת IPv4

    יוצרים כלל העברה לניתוב תנועת TCP נכנסת לשירות לקצה העורפי. משתמשים בכתובת ה-IPv4 ששמרתם בשלב 1 ככתובת ה-IP החיצונית הסטטית של מאזן העומסים.

      gcloud compute forwarding-rules create forwarding-rule-ipv4 \
          --load-balancing-scheme=EXTERNAL \
          --region=us-west1 \
          --ports=80 \
          --address=netlb-ipv4-address \
          --backend-service=networklb-backend-service
    

    לתנועת גולשים ב-IPv6

    יוצרים כלל העברה לטיפול בתעבורת IPv6. משתמשים בטווח כתובות IPv6 ששמור בשלב 1 ככתובת IP חיצונית סטטית של מאזן העומסים. תת-הרשת שבה משתמשים צריכה להיות תת-רשת עם תמיכה בשני פרוטוקולים (dual-stack) עם טווח חיצוני של תת-רשת IPv6.

      gcloud compute forwarding-rules create forwarding-rule-ipv6 \
          --load-balancing-scheme=EXTERNAL \
          --region=us-west1 \
          --network-tier=PREMIUM \
          --ip-version=IPV6 \
          --subnet=lb-subnet \
          --address=netlb-ipv6-address \
          --ports=80 \
          --backend-service=networklb-backend-service
    

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

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

חיפוש כתובת ה-IP החיצונית של מאזן העומסים

המסוף

  1. בדף Advanced איזון עומסים, עוברים לכרטיסייה Forwarding rules.

    מעבר לכללי העברה

  2. מאתרים את כלל ההעברה שבו נעשה שימוש במאזן העומסים.

  3. בעמודה Address, שימו לב לכתובת ה-IP החיצונית שמופיעה.

‫gcloud: IPv4

מזינים את הפקודה הבאה כדי לראות את כתובת ה-IPv4 החיצונית של כלל ההעברה network-lb-forwarding-rule שמשמש את מאזן העומסים.

gcloud compute forwarding-rules describe forwarding-rule-ipv4 \
    --region=us-west1

‫gcloud: ‏ IPv6

מזינים את הפקודה הבאה כדי לראות את כתובת ה-IPv6 החיצונית של כלל ההעברה network-lb-forwarding-rule שמשמש את מאזן העומסים.

gcloud compute forwarding-rules describe forwarding-rule-ipv6 \
    --region=us-west1

הפניית תנועה למאזן העומסים

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

  • מלקוחות עם קישוריות IPv4, מריצים את הפקודה הבאה:

    while true; do curl -m1 IPV4_ADDRESS; done
    
  • מלקוחות עם קישוריות IPv6, מריצים את הפקודה הבאה:

    while true; do curl -m1 http://IPV6_ADDRESS; done
    

    לדוגמה, אם כתובת ה-IPv6 שהוקצתה היא [2001:db8:1:1:1:1:1:1/96]:80, הפקודה תיראה כך:

    while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]:80; done
    

שימו לב לטקסט שמוחזר על ידי הפקודה curl. השם של מכונת ה-VM של ה-Backend שמייצרת את התגובה מוצג בטקסט הזה. לדוגמה: Page served from: VM_NAME

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

אפשרויות הגדרה נוספות

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

יצירת כלל העברה של IPv6 באמצעות BYOIP

מאזן העומסים שנוצר בשלבים הקודמים מוגדר עם כללי העברה שבהם IP version הוא IPv4 או IPv6. בקטע הזה מוסבר איך ליצור כלל להעברת IPv6 עם כתובות IP משלכם (BYOIP).

התכונה 'העברת כתובות IP משלכם' מאפשרת לכם להקצות ולהשתמש בכתובות IPv6 ציבוריות משלכם עבור Google Cloud משאבים. מידע נוסף מופיע במאמר בנושא שימוש בכתובות IP משלכם.

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

  1. יצירת קידומת IPv6 ציבורית שמוכרזת
  2. יצירת קידומות ציבוריות שהוקצו
  3. יצירת קידומות משנה של IPv6
  4. הכרזה על הקידומת

כדי ליצור כלל העברה חדש, פועלים לפי השלבים הבאים:

המסוף

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

    כניסה לדף איזון עומסים

  2. לוחצים על השם של מאזן העומסים שרוצים לשנות.
  3. לוחצים על עריכה.
  4. לוחצים על Frontend configuration.
  5. לוחצים על Add frontend IP and port.
  6. בקטע New Frontend IP and port, מציינים את הפרטים הבאים:
    1. בוחרים את הפרוטוקול שרוצים.
    2. בשדה IP version, בוחרים באפשרות IPv6.
    3. בשדה מקור טווח IPv6, בוחרים באפשרות BYOIP.
    4. ברשימה IP collection בוחרים קידומת משנה שנוצרה בשלבים הקודמים עם האפשרות של כלל ההעברה שהופעלה.
    5. בשדה טווח IPv6, מזינים את טווח כתובות ה-IPv6. הקידומת של טווח כתובות IPv6 צריכה להיות זהה ל אורך הקידומת שניתן להקצאה שצוין על ידי קידומת המשנה המשויכת.
    6. בשדה יציאות, מזינים מספר יציאה.
    7. לוחצים על סיום.
  7. לוחצים על עדכון.

gcloud

יוצרים את כלל ההעברה באמצעות הפקודה gcloud compute forwarding-rules create:

gcloud compute forwarding-rules create FWD_RULE_NAME \
    --load-balancing-scheme EXTERNAL \
    --ip-protocol PROTOCOL \
    --ports ALL \
    --ip-version IPV6 \
    --region REGION_A \
    --address IPV6_CIDR_RANGE  \
    --backend-service BACKEND_SERVICE \
    --ip-collection PDP_NAME

מחליפים את מה שכתוב בשדות הבאים:

  • FWD_RULE_NAME: השם של כלל ההעברה
  • PROTOCOL: פרוטוקול ה-IP של כלל ההעברה. ערך ברירת המחדל הוא TCP. פרוטוקול ה-IP יכול להיות אחד מהערכים הבאים: TCP,‏ UDP או L3_DEFAULT.
  • REGION_A: האזור של כלל ההעברה
  • IPV6_CIDR_RANGE: טווח כתובות ה-IPv6 שהכלל להעברה משרת. הקידומת של טווח כתובות ה-IPv6 צריכה להיות זהה ל אורך הקידומת שניתן להקצאה שצוין על ידי קידומת המשנה המשויכת.
  • BACKEND_SERVICE: השם של שירות הקצה העורפי
  • PDP_NAME: השם של הקידומת הציבורית המוקצית. מדיניות ה-PDP חייבת להיות קידומת משנה במצב EXTERNAL_IPV6_FORWARDING_RULE_CREATION

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