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

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

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

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

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

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

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

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

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

מתקינים את 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. מגדירים את Subnet creation mode (מצב יצירת רשתות משנה) לערך Custom (מותאם אישית).

  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. מגדירים את Subnet creation mode (מצב יצירת רשתות משנה) לערך Custom (מותאם אישית).

  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. מגדירים את Subnet creation mode (מצב יצירת רשתות משנה) לערך Custom (מותאם אישית).

  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
    

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

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

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

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

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

יצירת קבוצת המופעים לתעבורת TCP ביציאה 80

המסוף

  1. יוצרים תבנית של הגדרות מכונה. נכנסים לדף Instance templates במסוף Google Cloud .

    כניסה לדף Instance templates

    1. לוחצים על Create instance template.
    2. בשדה Name (שם), מזינים ig-us-template-tcp-80.
    3. מוודאים שדיסק האתחול מוגדר לקובץ אימג' של Debian, כמו Debian GNU/Linux 12 (bookworm). בהוראות האלה נעשה שימוש בפקודות שזמינות רק ב-Debian, כמו apt-get.
    4. מרחיבים את הקטע אפשרויות מתקדמות.
    5. מרחיבים את הקטע ניהול ומעתיקים את הסקריפט הבא לשדה סקריפט לטעינה בזמן ההפעלה.

      #! /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
      
    6. מרחיבים את הקטע Networking (רשת) ומציינים את הפרטים הבאים:

      1. בשדה Network tags (תגים של רשת), מוסיפים את הערך network-lb-tcp-80.
      2. בקטע Network interfaces, בוחרים את ממשק ברירת המחדל של הרשת.

        כדי ליצור מכונות וירטואליות (VM) בעורף עם ממשקי רשת dual-stack, צריך להגדיר את השדות הבאים:

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

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

        • רשת: lb-network
        • תת-רשת: lb-subnet
        • סוג מחסנית IP: IPv4 (מחסנית יחידה)
        • כתובת IPv4 חיצונית: זמנית

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

        • רשת: lb-network
        • תת-רשת: lb-subnet
        • סוג מחסנית ה-IP: IPv6 (single-stack)
        • כתובת IPv6 חיצונית: הקצאה אוטומטית
    7. לוחצים על יצירה.

  2. יוצרים קבוצה של מופעי מכונה מנוהלים. נכנסים לדף Instance groups במסוף Google Cloud .

    כניסה לדף Instance groups

    1. לוחצים על יצירת קבוצת מופעים.
    2. בוחרים באפשרות New managed instance group (stateless) (קבוצת מופעי מכונה מנוהלים חדשה (בלי שמירת מצב)). מידע נוסף מופיע במאמר קבוצות של מכונות וירטואליות בלי שמירת מצב או עם שמירת מצב.
    3. בשדה Name (שם), מזינים ig-us-tcp-80.
    4. בקטע מיקום, בוחרים באפשרות אזור אחד.
    5. בקטע אזור, בוחרים באפשרות us-central1.
    6. בשדה Zone, בוחרים באפשרות us-central1-a.
    7. בקטע תבנית של הגדרות מכונה, בוחרים באפשרות ig-us-template-tcp-80.
    8. מציינים את מספר המופעים שרוצים ליצור בקבוצה.

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

      • בקטע מצב שינוי גודל אוטומטי, בוחרים באפשרות Off:do not autoscale.
      • בשדה מספר מופעים מקסימלי, מזינים 2.
    9. לוחצים על יצירה.

gcloud

ההוראות gcloud במדריך הזה מבוססות על ההנחה שאתם משתמשים ב- Cloud Shell או בסביבה אחרת שבה מותקן bash.

  1. יוצרים תבנית של הגדרות מכונה עם שרת HTTP באמצעות הפקודה gcloud compute instance-templates create.

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

      gcloud compute instance-templates create ig-us-template-tcp-80 \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --ipv6-network-tier=PREMIUM \
          --stack-type=IPV4_IPV6 \
          --tags=network-lb-tcp-80 \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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 instance-templates create ig-us-template-tcp-80 \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --stack-type=IPV4_ONLY \
          --tags=network-lb-tcp-80 \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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" \
                  ://metadata.google.internal/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2'
    

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

      gcloud compute instance-templates create ig-us-template-tcp-80 \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --ipv6-network-tier=PREMIUM \
          --stack-type=IPV6_ONLY \
          --tags=network-lb-tcp-80 \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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 managed create.

      gcloud compute instance-groups managed create ig-us-tcp-80 \
          --zone us-central1-a \
          --size 2 \
          --template ig-us-template-tcp-80
    

יצירת קבוצת המכונות לתנועת TCP ביציאה 8080, UDP,‏ ESP ו-ICMP

המסוף

  1. יוצרים תבנית של הגדרות מכונה. נכנסים לדף Instance templates במסוף Google Cloud .

    כניסה לדף Instance templates

    1. לוחצים על Create instance template.
    2. בשדה Name (שם), מזינים ig-us-template-l3-default.
    3. מוודאים שדיסק האתחול מוגדר לקובץ אימג' של Debian, כמו Debian GNU/Linux 12 (bookworm). בהוראות האלה נעשה שימוש בפקודות שזמינות רק ב-Debian, כמו apt-get.
    4. מרחיבים את הקטע אפשרויות מתקדמות.
    5. מרחיבים את הקטע ניהול ומעתיקים את הסקריפט הבא לשדה סקריפט לטעינה בזמן ההפעלה. סקריפט לטעינה בזמן ההפעלה גם מגדיר את שרת Apache להאזנה ביציאה 8080 במקום ביציאה 80.

      #! /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
      sed -ire 's/^Listen 80$/Listen 8080/g' /etc/apache2/ports.conf
      systemctl restart apache2
      
    6. מרחיבים את הקטע Networking (רשת) ומציינים את הפרטים הבאים:

      1. בשדה Network tags (תגים של רשת), מוסיפים את הערך network-lb-l3-default.
      2. בקטע Network interfaces, בוחרים את ממשק ברירת המחדל של הרשת.

        כדי ליצור מכונות וירטואליות (VM) בעורף עם ממשקי רשת dual-stack, צריך להגדיר את השדות הבאים:

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

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

        • רשת: lb-network
        • תת-רשת: lb-subnet
        • סוג מחסנית IP: IPv4 (מחסנית יחידה)
        • כתובת IPv4 חיצונית: זמנית

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

        • רשת: lb-network
        • תת-רשת: lb-subnet
        • סוג מחסנית ה-IP: IPv6 (single-stack)
        • כתובת IPv6 חיצונית: הקצאה אוטומטית
    7. לוחצים על יצירה.

  2. יוצרים קבוצה של מופעי מכונה מנוהלים. נכנסים לדף Instance groups במסוף Google Cloud .

    כניסה לדף Instance groups

    1. לוחצים על יצירת קבוצת מופעים.
    2. בוחרים באפשרות New managed instance group (stateless) (קבוצת מופעי מכונה מנוהלים חדשה (בלי שמירת מצב)). מידע נוסף מופיע במאמר קבוצות של מכונות וירטואליות בלי שמירת מצב או עם שמירת מצב.
    3. בשדה Name (שם), מזינים ig-us-l3-default.
    4. בקטע מיקום, בוחרים באפשרות אזור אחד.
    5. בקטע אזור, בוחרים באפשרות us-central1.
    6. בשדה Zone, בוחרים באפשרות us-central1-c.
    7. בקטע תבנית של הגדרות מכונה, בוחרים באפשרות ig-us-template-l3-default.
    8. מציינים את מספר המופעים שרוצים ליצור בקבוצה.

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

      • בקטע מצב שינוי גודל אוטומטי, בוחרים באפשרות Off:do not autoscale.
      • בשדה מספר מופעים מקסימלי, מזינים 2.
    9. לוחצים על יצירה.

gcloud

ההוראות gcloud במדריך הזה מבוססות על ההנחה שאתם משתמשים ב- Cloud Shell או בסביבה אחרת שבה מותקן bash.

  1. יוצרים תבנית של הגדרות מכונה עם שרת HTTP באמצעות הפקודה gcloud compute instance-templates create.

    סקריפט לטעינה בזמן ההפעלה גם מגדיר את שרת Apache להאזין ליציאה 8080 במקום ליציאה 80.

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

      gcloud compute instance-templates create ig-us-template-l3-default \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --ipv6-network-tier=PREMIUM \
          --stack-type=IPV4_IPV6 \
          --tags=network-lb-l3-default \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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
          sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf
          systemctl restart apache2'
    

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

      gcloud compute instance-templates create ig-us-template-l3-default \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --stack-type=IPV4_ONLY \
          --tags=network-lb-l3-default \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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
          sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf
          systemctl restart apache2'
    

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

      gcloud compute instance-templates create ig-us-template-l3-default \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --ipv6-network-tier=PREMIUM \
          --stack-type=IPV6_ONLY \
          --tags=network-lb-l3-default \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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
          sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf
          systemctl restart apache2'
    
  2. יוצרים קבוצת מופעי מכונה מנוהלים באזור באמצעות הפקודה gcloud compute instance-groups managed create.

      gcloud compute instance-groups managed create ig-us-l3-default \
          --zone us-central1-c \
          --size 2 \
          --template ig-us-template-l3-default
    

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

יוצרים את הכללים הבאים לחומת האש:

  • כללים בחומת האש שמאפשרים לתעבורת TCP חיצונית להגיע למכונות קצה עורפיות בקבוצת המכונות ig-us-tcp-80 ביציאה 80 (באמצעות תג יעד network-lb-tcp-80). יוצרים כללים נפרדים בחומת האש כדי לאפשר תעבורת IPv4 ו-IPv6.
  • כללי חומת אש שמאפשרים לתעבורה חיצונית אחרת (TCP ביציאה 8080,‏ UDP,‏ ESP ו-ICMP) להגיע למכונות קצה עורפיות בקבוצת המכונות ig-us-l3-default (באמצעות תג היעד network-lb-l3-default). צריך ליצור כללי חומת אש נפרדים כדי לאפשר תעבורת IPv4 ו-IPv6.

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

המסוף

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

    למדיניות חומת האש

  2. כדי לאפשר לתעבורת TCP של IPv4 להגיע לשרתי קצה בעורף בקבוצת המכונות ig-us-tcp-80, יוצרים את כלל חומת האש הבא.

    1. לוחצים על יצירת כלל לחומת האש.
    2. מזינים שם של allow-network-lb-tcp-80-ipv4.
    3. בוחרים את הרשת שכלל חומת האש חל עליה (ברירת מחדל).
    4. בקטע יעדים, בוחרים באפשרות תגי יעד שצוינו.
    5. בשדה Target tags (תגי טירגוט), מזינים network-lb-tcp-80.
    6. מגדירים את Source filter בתור IPv4 ranges.
    7. מגדירים את טווחי כתובות IPv4 של המקור ל-0.0.0.0/0, כדי לאפשר תעבורה מכל מקור. כך גם תעבורה חיצונית וגם בדיקות תקינות יכולות להגיע למופעי ה-backend.
    8. בקטע Protocols and ports [פרוטוקולים ויציאות], בוחרים באפשרות Specified protocols and ports [פרוטוקולים ויציאות ספציפיים]. לאחר מכן מסמנים את התיבה TCP ומזינים 80.
    9. לוחצים על יצירה. יכול להיות שיעבור זמן מה עד שכלל חומת האש החדש יוצג ב-Console, או שתצטרכו ללחוץ על רענון כדי לראות את הכלל.
  3. כדי לאפשר לתעבורת נתוני IPv4 UDP,‏ ESP ו-ICMP להגיע לשרתי קצה בעורף בקבוצת המכונות ig-us-l3-default, יוצרים את כלל חומת האש הבא.

    1. לוחצים על יצירת כלל לחומת האש.
    2. מזינים שם של allow-network-lb-l3-default-ipv4.
    3. בוחרים את הרשת שכלל חומת האש חל עליה (ברירת מחדל).
    4. בקטע יעדים, בוחרים באפשרות תגי יעד שצוינו.
    5. בשדה Target tags (תגי טירגוט), מזינים network-lb-l3-default.
    6. מגדירים את Source filter בתור IPv4 ranges.
    7. מגדירים את Source IPv4 ranges (טווחי כתובות IPv4 של המקור) ל-0.0.0.0/0, כדי לאפשר תעבורת נתונים מכל מקור. כך גם תעבורה חיצונית וגם בדיקות תקינות יכולות להגיע למופעי ה-backend.
    8. בקטע Protocols and ports [פרוטוקולים ויציאות], בוחרים באפשרות Specified protocols and ports [פרוטוקולים ויציאות ספציפיים].
      1. מסמנים את תיבת הסימון TCP ומזינים 8080.
      2. מסמנים את תיבת הסימון UDP.
      3. מסמנים את תיבת הסימון אחר ומזינים esp, icmp.
    9. לוחצים על יצירה. יכול להיות שיעבור זמן מה עד שהכלל החדש של חומת האש יוצג ב-Console, או שתצטרכו ללחוץ על רענון כדי לראות את הכלל.
  4. כדי לאפשר לתעבורת TCP של IPv6 להגיע לשרתי קצה בעורף בקבוצת המכונות ig-us-tcp-80, יוצרים את כלל חומת האש הבא.

    1. לוחצים על יצירת כלל לחומת האש.
    2. מזינים שם של allow-network-lb-tcp-80-ipv6.
    3. בוחרים את הרשת שכלל חומת האש חל עליה (ברירת מחדל).
    4. בקטע יעדים, בוחרים באפשרות תגי יעד שצוינו.
    5. בשדה Target tags (תגי טירגוט), מזינים network-lb-tcp-80.
    6. מגדירים את Source filter (מסנן מקור) לערך IPv6 ranges (טווחים של כתובות IPv6).
    7. מגדירים את טווח כתובות IPv6 של המקור ל-::/0, כדי לאפשר תעבורת נתונים מכל מקור. כך תעבורת נתונים חיצונית וגם בדיקות תקינות יגיעו למופעי ה-Backend.
    8. בקטע Protocols and ports [פרוטוקולים ויציאות], בוחרים באפשרות Specified protocols and ports [פרוטוקולים ויציאות ספציפיים]. לוחצים על תיבת הסימון לצד TCP ומזינים 80.
    9. לוחצים על יצירה. יכול להיות שיעבור זמן מה עד שכלל חומת האש החדש יוצג ב-Console, או שתצטרכו ללחוץ על רענון כדי לראות את הכלל.
  5. כדי לאפשר לתעבורת נתונים מסוג IPv6 UDP,‏ ESP ו-ICMPv6 להגיע לשרתי קצה עורפיים בקבוצת המכונות ig-us-l3-default, יוצרים את כלל חומת האש הבא. כלל חומת האש הזה גם מאפשר לבדיקות תקינות של TCP להגיע למופעים ביציאה 8080.

    1. לוחצים על יצירת כלל לחומת האש.
    2. מזינים שם של allow-network-lb-l3-default-ipv6.
    3. בוחרים את הרשת שכלל חומת האש חל עליה (ברירת מחדל).
    4. בקטע יעדים, בוחרים באפשרות תגי יעד שצוינו.
    5. בשדה Target tags (תגי טירגוט), מזינים network-lb-l3-default.
    6. מגדירים את Source filter (מסנן מקור) לערך IPv6 ranges (טווחים של כתובות IPv6).
    7. מגדירים את טווח כתובות IPv6 של המקור ל-::/0, כדי לאפשר תעבורת נתונים מכל מקור. כך תעבורת נתונים חיצונית וגם בדיקות תקינות יגיעו למופעי ה-Backend.
    8. בקטע Protocols and ports [פרוטוקולים ויציאות], בוחרים באפשרות Specified protocols and ports [פרוטוקולים ויציאות ספציפיים].
      1. לוחצים על תיבת הסימון לצד TCP ומזינים 8080.
      2. לוחצים על תיבת הסימון לצד UDP.
      3. לוחצים על תיבת הסימון לצד אחר ומזינים את הערך esp, 58.
    9. לוחצים על יצירה. יכול להיות שיעבור זמן מה עד שכלל חומת האש החדש יוצג ב-Console, או שתצטרכו ללחוץ על רענון כדי לראות את הכלל.

gcloud

  1. כדי לאפשר לתעבורת TCP של IPv4 להגיע לשרתי קצה בעורף בקבוצת המכונות ig-us-tcp-80, יוצרים את כלל חומת האש הבא.

    gcloud compute firewall-rules create allow-network-lb-tcp-80-ipv4 \
        --network=lb-network \
        --target-tags network-lb-tcp-80 \
        --allow tcp:80 \
        --source-ranges=0.0.0.0/0
    
  2. כדי לאפשר לתעבורת נתוני IPv4 UDP,‏ ESP ו-ICMP להגיע לשרתי קצה בעורף בקבוצת המכונות ig-us-l3-default, יוצרים את כלל חומת האש הבא. כלל חומת האש הזה גם מאפשר לבדיקות תקינות של TCP להגיע למופעים ביציאה 8080.

    gcloud compute firewall-rules create allow-network-lb-l3-default-ipv4 \
        --network=lb-network \
        --target-tags network-lb-l3-default \
        --allow tcp:8080,udp,esp,icmp \
        --source-ranges=0.0.0.0/0
    
  3. כדי לאפשר לתעבורת TCP של IPv6 להגיע לשרתי קצה בעורף בקבוצת המכונות ig-us-tcp-80, יוצרים את כלל חומת האש הבא.

    gcloud compute firewall-rules create allow-network-lb-tcp-80-ipv6 \
        --network=lb-network \
        --target-tags network-lb-tcp-80 \
        --allow tcp:80 \
        --source-ranges=::/0
    
  4. כדי לאפשר לתעבורת נתונים מסוג IPv6 UDP,‏ ESP ו-ICMPv6 להגיע לשרתי קצה בעורף בקבוצת המכונות ig-us-l3-default, יוצרים את כלל חומת האש הבא. כלל חומת האש הזה גם מאפשר לבדיקות תקינות של TCP להגיע למופעים ביציאה 8080.

    gcloud compute firewall-rules create allow-network-lb-l3-default-ipv6 \
        --network=lb-network \
        --target-tags network-lb-l3-default \
        --allow tcp:8080,udp,esp,58 \
        --source-ranges=::/0
    

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

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

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

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

המסוף

התחלת ההגדרה

  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. בשדה Name, מזינים את השם backend-service-tcp-80 עבור מאזן העומסים החדש.
  2. ברשימה Region בוחרים באזור us-central1.

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

  1. לוחצים על Backend configuration.
  2. בדף Backend configuration, מבצעים את הפעולות הבאות:
    1. ברשימה בדיקת תקינות, לוחצים על יצירת בדיקת תקינות ומזינים את הפרטים הבאים:
      • Name (שם): tcp-health-check-80
      • Protocol: TCP
      • יציאה: 80
    2. לוחצים על יצירה.
    3. בקטע New Backend, בוחרים באפשרות IP stack type.
    4. ברשימה Instance group, בוחרים באפשרות ig-us-tcp-80 ולוחצים על Done.
  3. לפני שממשיכים, מוודאים שלצד Backend configuration מופיע סימן אישור כחול.

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

  1. לוחצים על Frontend configuration.
  2. בשדה שם מזינים forwarding-rule-tcp-80.
  3. כדי לטפל בתנועת נתונים ב-IPv4, פועלים לפי השלבים הבאים:
    1. בשביל IP version, בוחרים IPv4.
    2. בקטע Internal IP purpose, ברשימה IP address, בוחרים באפשרות Create IP address.
      1. בשדה שם מזינים network-lb-ipv4.
      2. לוחצים על Reserve.
    3. בקטע יציאות, בוחרים באפשרות יחיד. בשדה מספר יציאה, מזינים 80.
    4. לוחצים על סיום.
  4. כדי לטפל בתנועת נתונים ב-IPv6, מבצעים את השלבים הבאים:

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

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

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

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

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

יצירת מאזן העומסים השני

התחלת ההגדרה

  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. בשדה Name, מזינים את השם backend-service-l3-default עבור מאזן העומסים החדש.
  2. ברשימה Region בוחרים באזור us-central1.

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

  1. לוחצים על Backend configuration.
  2. בדף Backend configuration, מבצעים את הפעולות הבאות:
    1. ברשימה בדיקת תקינות, לוחצים על יצירת בדיקת תקינות ומזינים את הפרטים הבאים:
      • Name (שם): tcp-health-check-8080
      • פרוטוקול:TCP
      • יציאה: 8080
    2. לוחצים על יצירה.
    3. בקטע New Backend, בוחרים באפשרות IP stack type. אם יצרתם קצה עורפי עם תמיכה כפולה כדי לטפל בתנועה של IPv4 ו-IPv6, בוחרים באפשרות IPv4 ו-IPv6 (תמיכה כפולה). כדי לטפל בתנועת IPv4 בלבד, בוחרים באפשרות IPv4 (single-stack).
    4. ברשימה Instance group, בוחרים באפשרות ig-us-l3-default ולוחצים על Done.
    5. ברשימה Protocols בוחרים באפשרות L3 (Multiple protocols).
  3. מוודאים שלצד Backend configuration מופיע סימן אישור כחול לפני שממשיכים.

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

  1. לוחצים על Frontend configuration.
  2. בשדה שם מזינים forwarding-rule-l3-default.
  3. כדי לטפל בתנועת נתונים ב-IPv4, פועלים לפי השלבים הבאים:
    1. בשביל IP version, בוחרים IPv4.
    2. בקטע Internal IP purpose, ברשימה IP address, בוחרים באפשרות Create IP address.
      1. בשדה שם מזינים network-lb-ipv4.
      2. לוחצים על Reserve.
    3. ברשימה Protocol בוחרים באפשרות L3 (Multiple protocols).
    4. בקטע Ports (יציאות), בוחרים באפשרות All (הכול).
    5. לוחצים על סיום.
  4. כדי לטפל בתנועת נתונים ב-IPv6, מבצעים את השלבים הבאים:

    1. בשביל IP version, בוחרים IPv6.
    2. בשדה Subnetwork, בוחרים באפשרות lb-subnet.
    3. ברשימה IPv6 range בוחרים באפשרות Create IP address.
      1. בשדה שם מזינים network-lb-ipv6.
      2. לוחצים על Reserve.
    4. בשדה פרוטוקול, בוחרים באפשרות L3 (Multiple protocols) (שכבה 3 (מספר פרוטוקולים)).
    5. בקטע Ports (יציאות), בוחרים באפשרות All (הכול).
    6. לוחצים על סיום.

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

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

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

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

gcloud

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

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

    gcloud compute addresses create network-lb-ipv4 \
        --region us-central1
    

    לתנועת IPv6: יוצרים טווח כתובות IPv6 חיצוניות סטטיות למאזני העומסים. תת-הרשת שבה משתמשים צריכה להיות תת-רשת עם שני סוגי כתובות IP, עם טווח חיצוני של כתובות IPv6.

    gcloud compute addresses create network-lb-ipv6 \
        --region us-central1 \
        --subnet lb-subnet \
        --ip-version IPV6 \
        --endpoint-type NETLB
    
  2. יוצרים בדיקת תקינות של TCP ליציאה 80. בדיקת התקינות הזו משמשת לאימות התקינות של שרתי קצה עורפיים בקבוצת המופעים ig-us-tcp-80.

    gcloud compute health-checks create tcp tcp-health-check-80 \
        --region us-central1 \
        --port 80
    
  3. יוצרים בדיקת תקינות TCP ליציאה 8080. בדיקת תקינות זו משמשת לאימות התקינות של שרתי קצה עורפיים בקבוצת המופעים ig-us-l3-default.

    gcloud compute health-checks create tcp tcp-health-check-8080 \
        --region us-central1 \
        --port 8080
    
  4. יוצרים את מאזן העומסים הראשון לתנועת TCP ביציאה 80.

    1. יוצרים שירות לקצה העורפי עם פרוטוקול שמוגדר ל-TCP.

      gcloud compute backend-services create backend-service-tcp-80 \
          --protocol TCP \
          --health-checks tcp-health-check-80 \
          --health-checks-region us-central1 \
          --region us-central1
      
    2. מוסיפים את קבוצת השרתים העורפיים לשירות הקצה העורפי.

      gcloud compute backend-services add-backend backend-service-tcp-80 \
          --instance-group ig-us-tcp-80 \
          --instance-group-zone us-central1-a \
          --region us-central1
      
    3. לתעבורת IPv4: יוצרים כלל העברה כדי להפנות תעבורת TCP נכנסת ביציאה 80 לשירות הקצה העורפי. TCP הוא פרוטוקול ברירת המחדל של כלל ההעברה ואין צורך להגדיר אותו באופן מפורש.

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

      gcloud compute forwarding-rules create forwarding-rule-tcp-80 \
          --load-balancing-scheme external \
          --region us-central1 \
          --ports 80 \
          --address network-lb-ipv4 \
          --backend-service backend-service-tcp-80
      
    4. לתנועת IPv6: יוצרים כלל העברה כדי להפנות תנועת TCP נכנסת ביציאה 80 לשירות הקצה העורפי. TCP הוא פרוטוקול ברירת המחדל של כלל ההעברה ואין צורך להגדיר אותו באופן מפורש.

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

      gcloud compute forwarding-rules create forwarding-rule-tcp-80 \
          --load-balancing-scheme external \
          --region us-central1 \
          --network-tier PREMIUM \
          --ip-version IPV6 \
          --subnet lb-subnet \
          --address network-lb-ipv6 \
          --ports 80 \
          --backend-service backend-service-tcp-80
      
  5. יוצרים את מאזן העומסים השני ל-TCP ביציאה 8080, ל-UDP, ל-ESP ולתנועת ICMP.

    1. יוצרים שירות לקצה העורפי עם פרוטוקול שמוגדר ל-UNSPECIFIED.

      gcloud compute backend-services create backend-service-l3-default \
          --protocol UNSPECIFIED \
          --health-checks tcp-health-check-8080 \
          --health-checks-region us-central1 \
          --region us-central1
      
    2. מוסיפים את קבוצת השרתים העורפיים לשירות הקצה העורפי.

      gcloud compute backend-services add-backend backend-service-l3-default \
          --instance-group ig-us-l3-default \
          --instance-group-zone us-central1-c \
          --region us-central1
      
    3. לתעבורת נתונים של IPv4: יוצרים כלל העברה עם הפרוטוקול L3_DEFAULT כדי לטפל בכל תעבורת הנתונים הנותרת של פרוטוקול ה-IP הנתמך (TCP ביציאה 8080,‏ UDP,‏ ESP ו-ICMP). צריך להגדיר את כל היציאות עם כללי העברה של L3_DEFAULT.

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

      gcloud compute forwarding-rules create forwarding-rule-l3-default \
          --load-balancing-scheme external \
          --region us-central1 \
          --ports all \
          --ip-protocol L3_DEFAULT \
          --address network-lb-ipv4 \
          --backend-service backend-service-l3-default
      
    4. לתעבורת נתונים של IPv6: יוצרים כלל העברה עם הפרוטוקול L3_DEFAULT כדי לטפל בכל תעבורת הנתונים הנותרת של פרוטוקול IP הנתמך (TCP ביציאה 8080,‏ UDP,‏ ESP ו-ICMP). צריך להגדיר את כל היציאות עם כללי העברה של L3_DEFAULT.

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

      gcloud compute forwarding-rules create forwarding-rule-l3-default \
          --load-balancing-scheme external \
          --region us-central1 \
          --network-tier PREMIUM \
          --ip-version IPV6 \
          --subnet lb-subnet \
          --address network-lb-ipv6 \
          --ports all \
          --ip-protocol L3_DEFAULT \
          --backend-service backend-service-l3-default
      

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

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

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

המסוף

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

    מעבר אל Load balancing components

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

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

‫gcloud: IPv4

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

gcloud compute forwarding-rules describe forwarding-rule-tcp-80 \
    --region us-central1

בדוגמה הזו נעשה שימוש באותה כתובת IP בשני כללי ההעברה של IPv4, ולכן גם שימוש ב-forwarding-rule-l3-default יעבוד.

‫gcloud: IPv6

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

gcloud compute forwarding-rules describe forwarding-rule-tcp-80 \
    --region us-central1

בדוגמה הזו נעשה שימוש באותה כתובת IP בשני כללי ההעברה של IPv6, ולכן גם שימוש ב-forwarding-rule-l3-default יפעל.

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

התהליך הזה שולח תעבורה חיצונית למאזן העומסים. מריצים את הבדיקות הבאות כדי לוודא שתנועת TCP ביציאה 80 עוברת איזון עומסים על ידי קבוצת המופעים ig-us-tcp-80, ושכל התנועה האחרת (TCP ביציאה 8080,‏ UDP, ‏ ESP ו-ICMP) מטופלת על ידי קבוצת המופעים ig-us-l3-default.

אימות ההתנהגות באמצעות בקשות TCP ביציאה 80

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

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

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

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

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

      while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]; done
      
  2. שימו לב לטקסט שמוחזר על ידי הפקודה curl. השם של מכונת ה-VM של ה-Backend שמייצרת את התגובה מוצג בטקסט הזה – לדוגמה, Page served from: VM_NAME. התשובות מגיעות רק ממופעים בקבוצת המופעים ig-us-tcp-80.

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

אימות ההתנהגות באמצעות בקשות TCP ביציאה 8080

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

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

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

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

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

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

שימו לב לטקסט שמוחזר על ידי הפקודה curl. התשובות מגיעות רק ממופעים בקבוצת המופעים ig-us-l3-default.

הדבר הזה מראה שכל תעבורה שנשלחת לכתובת ה-IP של מאזן העומסים ביציאה 8080 מטופלת רק על ידי קצוות עורפיים בקבוצת המופעים ig-us-l3-default.

אימות התנהגות באמצעות בקשות ICMP

כדי לאמת את ההתנהגות עם תעבורת ICMP, צריך לצלם את הפלט מהפקודה tcpdump כדי לוודא שרק מכונות וירטואליות עורפיות בקבוצת המופעים ig-us-l3-default מטפלות בבקשות ICMP שנשלחות למאזן העומסים.

  1. משתמשים ב-SSH כדי להתחבר למכונות הווירטואליות של ה-Backend.

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

      לדף VM instances

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

  2. מריצים את הפקודה הבאה כדי להשתמש ב-tcpdump ולהתחיל להאזין לתנועת ICMP.

    sudo tcpdump icmp -w ~/icmpcapture.pcap -s0 -c 10000
    tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
    

    משאירים את חלון ה-SSH פתוח.

  3. חוזרים על שלבים 1 ו-2 לכל ארבעת מכונות ה-VM של ה-Backend.

  4. שולחים בקשות ICMP למאזן העומסים.

    כדי לבדוק את התגובות של IPv4, משתמשים ב-ping כדי ליצור קשר עם כתובת ה-IPv4 של מאזן העומסים.

    ping IPV4_ADDRESS
    

    כדי לבדוק את התגובות של IPv6, משתמשים ב-ping6 כדי ליצור קשר עם כתובת ה-IPv6 של מאזן העומסים.

    ping6 IPV6_ADDRESS
    

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

    ping6 2001:db8:1:1:1:1:1:1
    
  5. חוזרים לחלון ה-SSH הפתוח של כל מכונה וירטואלית ומפסיקים את הפקודה tcpdump capture. אפשר להשתמש ב-Ctrl+C כדי לעשות את זה.

  6. בכל מכונה וירטואלית, בודקים את הפלט של הפקודה tcpdump בקובץ icmpcapture.pcap.

    sudo tcpdump -r ~/icmpcapture.pcap -n
    

    למכונות וירטואליות לקצה העורפי בקבוצת המכונות ig-us-l3-default, מוצגים רשומות בקובץ שדומות לאלה:

    reading from file /home/[user-directory]/icmpcapture.pcap, link-type EN10MB (Ethernet)
    22:13:07.814486 IP 35.230.115.24 > 35.193.84.93: ICMP echo request, id 1995, seq 1, length 64
    22:13:07.814513 IP 35.193.84.93 > 35.230.115.24: ICMP echo reply, id 1995, seq 1, length 64
    22:13:08.816150 IP 35.230.115.24 > 35.193.84.93: ICMP echo request, id 1995, seq 2, length 64
    22:13:08.816175 IP 35.193.84.93 > 35.230.115.24: ICMP echo reply, id 1995, seq 2, length 64
    22:13:09.817536 IP 35.230.115.24 > 35.193.84.93: ICMP echo request, id 1995, seq 3, length 64
    22:13:09.817560 IP 35.193.84.93 > 35.230.115.24: ICMP echo reply, id 1995, seq 3, length 64
    ...
    

    במכונות ה-VM של ה-Backend בקבוצת המופעים ig-us-tcp-80, לא מתקבלים חבילות והקובץ ריק:

    reading from file /home/[user-directory]/icmpcapture.pcap, link-type EN10MB (Ethernet)
    

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

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

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

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

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

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

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

  • הקצאה ישירה מדף המוצר. אם אתם מעדיפים שכתובת ה-IP תהיה קשורה ישירות למחזור החיים של איזון העומסים, אתם יכולים להפנות ישירות אל ה-PDP במהלך יצירת כלל ההעברה. אם מאזן העומסים נמחק, כתובת ה-IP הזמנית מוחזרת למאגר כתובות ה-IP הזמניות.
  • שמירת כתובת IPv6 ב-BYOIP אתם יכולים להזמין כתובת IPv6 אזורית ספציפית או כזו שהוקצתה באופן אוטומטי מ-PDP לפני שיוצרים מאזן עומסים. הכתובת הזו נשמרת ללא קשר למחזור החיים של איזון העומסים. זו הדרך שנדרשת למשתמשי Google Kubernetes Engine‏ (GKE), כי GKE API לא תומך ביצירה של מאזן עומסי רשת passthrough ישירות מ-PDP.
  • קידום כתובת IP זמנית. אם מאזן עומסים כבר פועל עם כתובת IPv6 זמנית מסוג BYOIP, אפשר להפוך אותה לכתובת שמורה כדי שהיא תישמר גם אם מאזן העומסים יימחק.

מגבלות

  • כדי להגדיר כלל העברה של IPv6 עם כתובת BYOIP, אורך הקידומת של כתובת ה-IPv6 של כלל ההעברה צריך להיות זהה ל אורך הקידומת שניתן להקצאה של קידומת המשנה של IPv6 (במצב EXTERNAL_IPV6_FORWARDING_RULE_CREATION) שממנה מוקצית כתובת ה-IPv6 של כלל ההעברה. אורך הקידומת יכול להיות אחד מהערכים הבאים: /48,‏ /56,‏ /64,‏ /72,‏ /80,‏ /88 או /96.
  • כתובת ה-IPv6 צריכה להיות באותו אזור כמו ה-PDP.

בהתאם לדרישות, בוחרים אחת מהפריסות הבאות:

הקצאה ישירה מדף פרטי מוצר

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

המסוף

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

    כניסה לדף Load balancing

  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. בשדה BYOIP type (סוג BYOIP), בוחרים באפשרות BYOIP IP collection (איסוף כתובות IP של BYOIP).
    5. ברשימה IP collection בוחרים קידומת משנה (PDP) שנוצרה בשלבים הקודמים עם האפשרות של כלל ההעברה שהופעלה.
    6. בשדה טווח IPv6, מזינים את טווח כתובות ה-IPv6. אורך הקידומת של טווח כתובות IPv6 צריך להיות זהה ל אורך הקידומת שניתן להקצאה של קידומת המשנה המשויכת.
    7. בשדה יציאות, מזינים מספר יציאה.
    8. לוחצים על סיום.
  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 או L3_DEFAULT.
  • REGION_A: האזור של כלל ההעברה
  • IPV6_CIDR_RANGE: טווח כתובות ה-IPv6 שהכלל להעברה משרת. הקידומת של טווח כתובות ה-IPv6 צריכה להיות זהה ל אורך הקידומת שניתן להקצאה שצוין על ידי קידומת המשנה המשויכת.
  • BACKEND_SERVICE: השם של שירות הקצה העורפי
  • PDP_NAME: השם של הקידומת הציבורית המוקצית. ה-PDP חייב להיות תת-קידומת במצב EXTERNAL_IPV6_FORWARDING_RULE_CREATION.

שמירת כתובת IPv6 של BYOIP

שומרים את כתובת ה-IPv6 של BYOIP עבור מאזן העומסים, ואז יוצרים את כלל ההעברה על ידי הפניה לכתובת ה-IP או לשם המשאב של הכתובת השמורה.

המסוף

שמירת כתובת ה-IPv6 של BYOIP למאזן העומסים

  1. נכנסים לדף IP addresses במסוף Google Cloud .

    מעבר אל כתובות IP

  2. לוחצים על Reserve static address.
  3. בשדה Name, מזינים שם למשאב של כתובת ה-IP.
  4. בשדה Network Service Tier, בוחרים באפשרות Premium.
  5. בשדה IP version, בוחרים באפשרות IPv6.
  6. בוחרים את האזור. האזור חייב להיות זהה לאזור של דף המוצר.
  7. מסמנים את תיבת הסימון הקצאה מאיסוף כתובות IP.
  8. ברשימה IP collection, בוחרים את קידומת המשנה של IPv6 ‏ (PDP) שממנה רוצים לשריין את הכתובת.
  9. אופציונלי: בשדה כתובת IP, מזינים טווח כתובות IPv6 ספציפי להקצאה (הקצאה בהתאמה אישית). אם לא מציינים טווח כתובות, Google Cloud מקצה באופן אוטומטי טווח כתובות מתוך אוסף כתובות ה-IP שנבחר (הקצאה אוטומטית).
  10. לוחצים על Reserve.

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

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

    כניסה לדף Load balancing

  2. לוחצים על השם של מאזן העומסים שרוצים לשנות.
  3. לוחצים על Edit (עריכה) ואז על Frontend configuration (הגדרות חזיתיות).
  4. לוחצים על Add frontend IP and port.
  5. בקטע New Frontend IP and port, מציינים את הפרטים הבאים:
    1. בוחרים את הפרוטוקול שרוצים.
    2. בשדה IP version, בוחרים באפשרות IPv6.
    3. בשדה מקור טווח כתובות IPv6, בוחרים באפשרות BYOIP.
    4. בשדה BYOIP type, בוחרים באפשרות BYOIP reserved IP address.
    5. ברשימה Reserved IP address (כתובת IP שמורה), בוחרים את משאב כתובת ה-BYOIPv6 השמורה שיצרתם בשלב 1.
    6. בשדה יציאות, מזינים מספר יציאה.
    7. לוחצים על סיום.
  6. משלימים את ההגדרה של מאזן העומסים ולוחצים על Update (עדכון).

gcloud

שמירת כתובת ה-IPv6 של BYOIP למאזן העומסים

כדי לשריין כתובת IPv6 אזורית מסוג BYOIP מ-PDP לפני יצירת איזון עומסים, מריצים את הפקודה gcloud compute addresses create עם --endpoint-type=NETLB. בוחרים אחת מהאפשרויות האלה:

  • כדי לשמור טווח כתובות IPv6 ספציפי, מריצים את הפקודה:

      gcloud compute addresses create ADDRESS_NAME \
          --ip-collection=PDP_NAME \
          --addresses=IPV6_ADDRESS \
          --region=REGION_A \
          --endpoint-type=NETLB \
          --prefix-length=PREFIX_LENGTH
    
  • כדי ש- Google Cloud יקצה באופן אוטומטי טווח מתוך ה-PDP, מריצים את הפקודה:

      gcloud compute addresses create ADDRESS_NAME \
          --ip-collection=PDP_NAME \
          --region=REGION_A \
          --endpoint-type=NETLB \
          --prefix-length=PREFIX_LENGTH
    

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

  • ADDRESS_NAME: השם של משאב כתובת ה-IP השמורה.
  • PDP_NAME: השם של הקידומת הציבורית המוקצית. ה-PDP חייב להיות תת-קידומת במצב EXTERNAL_IPV6_FORWARDING_RULE_CREATION.
  • IPV6_ADDRESS: כתובת ה-IPv6 שפותחת את הטווח (לדוגמה, 2001:db8::).
  • REGION_A: האזור שבו רוצים ליצור את הכתובת. האזור הזה צריך להיות זהה לאזור של דף פרטי המוצר.
  • PREFIX_LENGTH: אורך הקידומת של טווח הכתובות, שחייב להיות שווה לאורך הקידומת שניתן להקצאה של ה-PDP המשויך (לדוגמה, 56).

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

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

  • כדי להפנות לטווח כתובות ה-IP, מריצים את הפקודה הבאה:

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

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

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

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

קידום כתובת IP זמנית לכתובת IP שמורה

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

המסוף

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

    מעבר אל כתובות IP

  3. לוחצים על הכרטיסייה External IP addresses (כתובות IP חיצוניות).
  4. מחפשים את כתובת ה-IPv6 הארעית של BYOIP שמשויכת למאזן עומסי הרשת החיצוני להעברת סיגנל ללא שינוי.
  5. בעמודה פעולות, לוחצים על סמל האפשרויות הנוספות (3 נקודות) () ובוחרים באפשרות קידום לכתובת IP סטטית.
  6. מזינים שם לכתובת השמורה ולוחצים על שמירה.

gcloud

  1. פועלים לפי השלבים לעדכון כלל ההעברה באמצעות הקצאה ישירה מ-PDP.
  2. כדי להפוך את טווח כתובות ה-IP הארעיות שמאזן העומסים משתמש בו לכתובת IP סטטית שמורה, מריצים את הפקודה gcloud compute addresses create:

       gcloud compute addresses create ADDRESS_NAME \
           --addresses=IPV6_ADDRESS \
           --region=REGION_A \
           --endpoint-type=NETLB \
           --prefix-length=PREFIX_LENGTH
    

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

    • ADDRESS_NAME: השם של משאב כתובת ה-IP השמורה.
    • IPV6_ADDRESS: כתובת ה-IPv6 שפותחת את הטווח (לדוגמה, 2001:db8::).
    • REGION_A: האזור של כלל ההעברה
    • PREFIX_LENGTH: אורך הקידומת של טווח הכתובות, שחייב להיות שווה לאורך הקידומת שניתן להקצאה של ה-PDP המשויך (לדוגמה, 56).

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