יצירה של טווחים פנימיים ושימוש בהם

במאמר הזה נסביר איך ליצור טווחים פנימיים, איך להשתמש בהם ואיך למחוק אותם.

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

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

התפקידים הנדרשים

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

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

שמירת טווחים פנימיים

כשיוצרים טווח פנימי, מציינים לפחות שני דברים: את כתובות ה-IP להקצאה ואת הרשת שבה יוקצו הכתובות. אפשר ליצור טווח פנימי של IPv4 או IPv6 עם בלוק CIDR ספציפי, או להקצות בלוק IPv4 באופן אוטומטי. Google Cloud אי אפשר ליצור טווח פנימי של IPv6 עם בלוק כתובות שהוקצה אוטומטית.

כשמבקשים בלוק IPv4 CIDR שהוקצה אוטומטית, צריך לספק אורך קידומת ובלוק אחד או יותר של IPv4 CIDR (אופציונלי). אם לא מציינים בלוק יעד של CIDR,‏ Google Cloud משתמש בטווחים הבאים של ברירת המחדל:

  • ברשתות VPC במצב מותאם אישית, טווחי ברירת המחדל הם 10.0.0.0/8, ‏172.16.0.0/12 ו-192.168.0.0/16.
  • ברשתות VPC במצב אוטומטי, טווחי ברירת המחדל הם 10.0.0.0/9, 172.16.0.0/12 ו-192.168.0.0/16.

Google Cloud מתחשב בהקצאות קיימות של כתובות IP ומקצה לטווח הפנימי בלוק CIDR פנוי בגודל שנבחר מתוך בלוקי ה-CIDR של היעד. אפשר לציין רשימה אופציונלית של בלוקים בפורמט CIDR כדי להחריג אותם מההקצאה. הפקודהGoogle Cloud מקצה בלוק של כתובות IP לטווח הפנימי שלא חופף לאף בלוק מוחרג. אחרי שיוצרים טווח פנימי, אי אפשר לעדכן את רשימת הבלוקים המוחרגים.

כדי לשלוט בשיטה שבה Google Cloud משתמשים כדי לבחור באופן אוטומטי בלוק פנוי, אפשר לציין אסטרטגיית הקצאה. אם לא מציינים אסטרטגיית הקצאה, Google Cloudמערכת Google Cloudמקצה באופן אקראי טווח כתובות IP פנויות מתוך בלוקי ה-CIDR של היעד (או מתוך טווח ברירת המחדל, אם לא צוינו בלוקי CIDR של היעד).

טווחים פנימיים של IPv6 מאפשרים למנוע הקצאה אוטומטית של כתובות IP לרשתות משנה חדשות של IPv6 בלבד או של dual-stack. בטווחים פנימיים של IPv6 צריך להגדיר את סוג השימוש EXTERNAL_TO_VPC ואת סוג ה-Peering‏ FOR_SELF. צריך לכלול בלוק ספציפי של IPv6 CIDR, והשדה overlaps צריך להיות ריק או לא מוגדר.

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

כברירת מחדל, Google Cloud חסימת היצירה של טווחים פנימיים או משאבים אם יש להם כתובות IP חופפות באותה רשת VPC. אתם יכולים להגדיר טווח פנימי של IPv4 כדי לאפשר חפיפה עם טווחי הכתובות של תת-רשתות קיימות, מסלולים חדשים וקיימים או שניהם. אי אפשר ליצור משאבים שמשתמשים בכתובות IP מטווח פנימי קיים, אלא אם משייכים את המשאב באופן מפורש לטווח הפנימי (לתת-רשתות) או מגדירים חפיפה (למסלולים). Google Cloud

המסוף

  1. נכנסים לדף Internal ranges במסוף Google Cloud .

    מעבר אל Internal ranges

  2. לוחצים על הזמנת טווח פנימי.

  3. מזינים שם.

  4. אופציונלי: מזינים תיאור.

  5. בוחרים גרסת IP.

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

      1. מציינים אם הטווח הפנימי הוא קבוע.
      2. בוחרים שיטת הזמנה.

        • אם בוחרים באפשרות אוטומטי, פועלים באופן הבא:

          1. בוחרים אלגוריתם הקצאה.
          2. בוחרים את אורך הקידומת.
          3. מזינים טווח כתובות IP לטירגוט. אפשר להוסיף כמה טווחי יעד.
          4. אופציונלי: לוחצים על הוספת טווח להחרגה ומזינים טווח כתובות IP להחרגה. אפשר להוסיף כמה טווחי כתובות IP מוחרגים.

            ‫Google Cloud מקצה בלוק של כתובות IP לטווח הפנימי שלא חופף לאף טווח מוחרג. אי אפשר לעדכן את הרשימה הזו אחרי שיוצרים את הטווח הפנימי.

        • אם בוחרים באפשרות Let me specify, צריך להזין טווח כתובות IP בסימון CIDR.

      3. בוחרים רשת.

      4. בוחרים סוג של קישור.

      5. בוחרים סוג שימוש.

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

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

      1. מציינים אם הטווח הפנימי הוא קבוע.
      2. בוחרים באפשרות אני רוצה לציין, ואז מזינים בלוק CIDR של IPv6 או של IPv6 עם מיפוי ל-IPv4.
      3. בוחרים רשת.
      4. לוחצים על Peering (שיוך), ואז בוחרים באפשרות For self (לעצמי).
      5. לוחצים על Usage (שימוש) ואז בוחרים באפשרות External to VPC (חיצוני ל-VPC).
  6. לוחצים על Reserve.

gcloud

  • כדי לשמור טווח פנימי לבלוק CIDR ספציפי של IPv4 או IPv6, משתמשים בפקודה gcloud network-connectivity internal-ranges create.

    gcloud network-connectivity internal-ranges create RANGE_NAME \
        --ip-cidr-range=CIDR_RANGE \
        --network=NETWORK_NAME \
        --description="DESCRIPTION" \
        --peering=PEERING_TYPE \
        --usage=USAGE_TYPE
    

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

    • RANGE_NAME: השם של הטווח הפנימי החדש
    • CIDR_RANGE: בלוק ה-CIDR של IPv4,‏ IPv6 או IPv4-mapped IPv6 שיוקצה לטווח הפנימי החדש
      • אם מציינים בלוק IPv6, צריך לבצע את הפעולות הבאות:
        • מגדירים את הסוג peering לערך FOR_SELF.
        • מגדירים את הסוג usage לערך EXTERNAL_TO_VPC.
    • NETWORK_NAME: השם של הרשת שבה רוצים ליצור את הטווח הפנימי
    • DESCRIPTION: תיאור אופציונלי של הטווח הפנימי
    • PEERING_TYPE: סוג ה-peering של הטווח הפנימי

      האפשרויות הן FOR_SELF, FOR_PEER ו-NOT_SHARED. ברירת המחדל היא FOR_SELF.

    • USAGE_TYPE: סוג השימוש בטווח הפנימי

      האפשרויות הן FOR_VPC, EXTERNAL_TO_VPC ו-FOR_MIGRATION. ערך ברירת המחדל הוא FOR_VPC.

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

    gcloud network-connectivity internal-ranges create RANGE_NAME \
        --network=NETWORK_NAME \
        --prefix-length=PREFIX_LENGTH \
        --target-cidr-range=TARGET_CIDR_RANGE \
        --peering=PEERING_TYPE \
        --usage=USAGE_TYPE \
        --description="DESCRIPTION" \
        --allocation-strategy=ALLOCATION_STRATEGY
        [--first-available-ranges-lookup-size=FIRST_N_LOOKUP_SIZE]
    

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

    • PREFIX_LENGTH: אורך הקידומת של כתובות ה-IP שהוקצו
    • TARGET_CIDR_RANGE: בלוק ה-CIDR של היעד שממנו יוקצה בלוק של כתובות IPv4

      • ברשתות VPC במצב מותאם אישית, בלוקי ה-CIDR שמוגדרים כברירת מחדל הם 10.0.0.0/8, ‏172.16.0.0/12 ו-192.168.0.0/16.
      • ברשתות VPC במצב אוטומטי, בלוקי ה-CIDR שמוגדרים כברירת מחדל הם 10.0.0.0/9,‏ 172.16.0.0/12 ו-192.168.0.0/16.

      אפשר להזין כמה בלוקים של CIDR ברשימה מופרדת בפסיקים.

    • ALLOCATION_STRATEGY: אסטרטגיית ההקצאה שרוצים להשתמש בה לחסימת ה-CIDR של הטווח הפנימי הזה

      האפשרויות הן RANDOM,‏ FIRST_AVAILABLE,‏ RANDOM_FIRST_N_AVAILABLE ו-FIRST_SMALLEST_FITTING. ערך ברירת המחדל הוא RANDOM.

    • FIRST_N_LOOKUP_SIZE: עבור אסטרטגיית ההקצאה RANDOM_FIRST_N_AVAILABLE, מספר חסימות ה-CIDR החופשיות שצריך למצוא לפני שבוחרים אחת באופן אקראי

      צריך לכלול את הדגל הזה רק אם בוחרים בשיטת ההקצאה RANDOM_FIRST_N_AVAILABLE allocation.

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

    gcloud alpha network-connectivity internal-ranges create RANGE_NAME \
        --network=NETWORK_NAME \
        --prefix-length=PREFIX_LENGTH \
        --target-cidr-range=TARGET_CIDR_RANGE \
        --peering=PEERING_TYPE \
        --usage=USAGE_TYPE \
        --description="DESCRIPTION" \
        --exclude-cidr-ranges=EXCLUDED_RANGES
    

    מחליפים את EXCLUDED_RANGES ברשימה מופרדת בפסיקים של בלוקים של CIDR מסוג IPv4 שרוצים להחריג. Google Cloud מקצה בלוק של כתובות IP לטווח הפנימי שלא חופף לאף בלוק מוחרג. אחרי שיוצרים את הטווח הפנימי, אי אפשר לעדכן את הרשימה.

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

    gcloud network-connectivity internal-ranges create RANGE_NAME \
        --ip-cidr-range=CIDR_RANGE \
        --network=NETWORK_NAME \
        --description="DESCRIPTION" \
        --peering=PEERING_TYPE \
        --usage=USAGE_TYPE \
        --overlaps=OVERLAPS
    

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

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

    gcloud network-connectivity internal-ranges create RANGE_NAME \
        --ip-cidr-range=CIDR_RANGE \
        --network=NETWORK_NAME \
        --description="DESCRIPTION" \
        --peering=PEERING_TYPE \
        --usage=USAGE_TYPE \
        --immutable
    

API

  • כדי להזמין טווח פנימי לבלוק CIDR ספציפי של IPv4 או IPv6, צריך לשלוח בקשת POST ל-method‏ projects.locations.internalRanges.create.

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
    {
      "ipCidrRange": "CIDR_RANGE",
      "network": "NETWORK_NAME",
      "description": "DESCRIPTION",
      "peering": "PEERING_TYPE",
      "usage": "USAGE_TYPE"
    }
    

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

    • PROJECT_ID: המזהה של פרויקט האב של טווח הכתובות הפנימי
    • RANGE_NAME: השם של הטווח הפנימי
    • CIDR_RANGE: בלוק ה-CIDR של IPv4,‏ IPv6 או IPv4-mapped IPv6 שיוקצה לטווח הפנימי
      • אם מציינים בלוק IPv6, צריך לבצע את הפעולות הבאות:
        • מגדירים את הסוג peering לערך FOR_SELF.
        • מגדירים את הסוג usage לערך EXTERNAL_TO_VPC.
    • NETWORK_NAME: השם של הרשת שבה רוצים ליצור את הטווח הפנימי
    • DESCRIPTION: תיאור אופציונלי של הטווח הפנימי החדש
    • PEERING_TYPE: סוג ה-peering של הטווח הפנימי

      האפשרויות הן FOR_SELF, FOR_PEER ו-NOT_SHARED. FOR_SELF היא ברירת המחדל.

    • USAGE_TYPE: סוג השימוש בטווח הפנימי

      האפשרויות הן FOR_VPC, EXTERNAL_TO_VPC ו-FOR_MIGRATION. ערך ברירת המחדל הוא FOR_VPC.

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

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
    {
      "prefixLength": PREFIX_LENGTH,
      "targetCidrRange": "TARGET_CIDR_RANGE",
      "network": "NETWORK_NAME",
      "description": "DESCRIPTION",
      "peering": "PEERING_TYPE",
      "usage": "USAGE_TYPE",
      "allocationOptions": {
        "allocationStrategy": "ALLOCATION_STRATEGY",
        ["firstAvailableRangesLookupSize": FIRST_N_LOOKUP_SIZE]
      }
    }
    

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

    • PREFIX_LENGTH: אורך הקידומת של CIDR לבלוק כתובות ה-IP של הטווח
    • TARGET_CIDR_RANGE: בלוק ה-CIDR של היעד שממנו יוקצה בלוק של כתובות IPv4

      • ברשתות VPC במצב מותאם אישית, בלוקי ה-CIDR שמוגדרים כברירת מחדל הם 10.0.0.0/8, ‏172.16.0.0/12 ו-192.168.0.0/16.
      • ברשתות VPC במצב אוטומטי, בלוקי ה-CIDR שמוגדרים כברירת מחדל הם 10.0.0.0/9,‏ 172.16.0.0/12 ו-192.168.0.0/16.

      אפשר לציין כמה בלוקים של CIDR במערך JSON.

    • ALLOCATION_STRATEGY: אסטרטגיית ההקצאה שרוצים להשתמש בה לחסימת ה-CIDR של הטווח הפנימי הזה

      האפשרויות הן RANDOM,‏ FIRST_AVAILABLE,‏ RANDOM_FIRST_N_AVAILABLE ו-FIRST_SMALLEST_FITTING. ערך ברירת המחדל הוא RANDOM.

    • FIRST_N_LOOKUP_SIZE: באסטרטגיית ההקצאה RANDOM_FIRST_N_AVAILABLE, מספר חסימות ה-CIDR החופשיות שצריך למצוא לפני שבוחרים אחת באופן אקראי

      צריך לכלול את השדה הזה רק אם בוחרים בשיטת ההקצאה RANDOM_FIRST_N_AVAILABLE.

  • אם רוצים להחריג טווחי כתובות IP כשמזמינים טווח פנימי של IPv4 עם בלוק CIDR שהוקצה אוטומטית, שולחים את הבקשה הבאה:

    POST https://networkconnectivity.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
    {
      "prefixLength": PREFIX_LENGTH,
      "targetCidrRange": "TARGET_CIDR_RANGE",
      "network": "NETWORK_NAME",
      "description": "DESCRIPTION",
      "peering": "PEERING_TYPE",
      "usage": "USAGE_TYPE",
      "excludeCidrRanges": ["EXCLUDED_RANGE_1","EXCLUDED_RANGE_2"]
    }
    

    מחליפים את EXCLUDED_RANGE_1 ואת EXCLUDED_RANGE_2 בבלוק אחד או יותר של CIDR מסוג IPv4 שרוצים להחריג. Google Cloud מקצה בלוק של כתובות IP לטווח הפנימי שלא חופף לאף בלוק מוחרג. אחרי שיוצרים את הטווח הפנימי, אי אפשר לעדכן את הרשימה.

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

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
    {
      "ipCidrRange": "CIDR_RANGE",
      "network": "NETWORK_NAME",
      "description": "DESCRIPTION",
      "peering": "PEERING_TYPE",
      "usage": "USAGE_TYPE",
      "overlaps": ["OVERLAPS"]
    }
    

    מחליפים את OVERLAPS בסוג החפיפה שרוצים לאפשר. האפשרויות הן OVERLAP_EXISTING_SUBNET_RANGE ו-OVERLAP_ROUTE_RANGE. אפשר לכלול את שני הערכים במערך JSON.

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

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
    {
      "ipCidrRange": "CIDR_RANGE",
      "network": "NETWORK_NAME",
      "description": "DESCRIPTION",
      "peering": "PEERING_TYPE",
      "usage": "USAGE_TYPE",
      "immutable": true
    }
    

שמירת טווחי IPv4 פנימיים להעברת תת-רשת

אתם יכולים להשתמש בטווח פנימי כדי להעביר טווח CIDR מתת-רשת אחת לתת-רשת אחרת. מידע נוסף זמין במאמר בנושא העברת טווחים של רשתות משנה של IPv4.

gcloud

משתמשים בפקודה gcloud network-connectivity internal-ranges create.

gcloud network-connectivity internal-ranges create RANGE_NAME \
    --ip-cidr-range=CIDR_RANGE \
    --network=NETWORK_NAME \
    --peering=FOR_SELF \
    --usage=FOR_MIGRATION \
    --migration-source=SOURCE_SUBNET \
    --migration-target=TARGET_SUBNET

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

  • RANGE_NAME: השם של הטווח הפנימי שרוצים ליצור
  • CIDR_RANGE: בלוק ה-CIDR של IPv4 של רשת המשנה שרוצים להעביר
  • NETWORK_NAME: השם של הרשת שבה רוצים ליצור את הטווח הפנימי
  • SOURCE_SUBNET: ה-URI של רשת המשנה במקור
  • TARGET_SUBNET: ה-URI של רשת המשנה של היעד

API

שולחים בקשת POST אל ה-method‏ projects.locations.internalRanges.create.

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
{
  "ipCidrRange": "CIDR_RANGE",
  "network": "NETWORK_NAME",
  "peering": "FOR_SELF",
  "usage": "FOR_MIGRATION",
  "migration": {
    "source": "SOURCE_SUBNET",
    "target": "TARGET_SUBNET"
  }
}

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

  • PROJECT_ID: המזהה של פרויקט האב של טווח הכתובות הפנימי
  • RANGE_NAME: השם של הטווח הפנימי החדש
  • CIDR_RANGE: בלוק ה-CIDR של IPv4 של רשת המשנה שרוצים להעביר
  • NETWORK_NAME: השם של הרשת שבה רוצים ליצור את הטווח הפנימי
  • SOURCE_SUBNET: ה-URI של רשת המשנה במקור
  • TARGET_SUBNET: ה-URI של רשת המשנה של היעד

יצירת רשתות משנה עם טווחי כתובות פנימיים של IPv4

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

המסוף

  1. שומרים טווח פנימי של IPv4 ברשת שבה רוצים ליצור רשת משנה חדשה. מגדירים את סוג השימוש בטווח הפנימי הזה כ-For VPC, ואת סוג ה-Peering כ-For self.

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

    מעבר לרשתות VPC

  3. לוחצים על השם של רשת VPC כדי להציג את הדף VPC network details.

  4. לוחצים על הוספת רשת משנה. בתיבת הדו-שיח שמופיעה:

    1. מזינים שם.
    2. בחירת אזור.
    3. מסמנים את תיבת הסימון Associate with an internal range (שיוך לטווח פנימי).
    4. בוחרים אפשרות בשדה טווח פנימי שמור.
    5. אופציונלי: כדי לשייך את רשת המשנה לחלק מהטווח הפנימי, מזינים טווח IPv4.
    6. לוחצים על הוספה.

gcloud

  1. שומרים טווח פנימי של IPv4 ברשת שבה רוצים ליצור רשת משנה חדשה. מגדירים את סוג השימוש בטווח הפנימי הזה כ-FOR_VPC, ואת סוג ה-Peering כ-FOR_SELF.
  2. מבצעים אחת מהפעולות הבאות:

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

      gcloud compute networks subnets create SUBNET_NAME \
          --reserved-internal-range=networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME \
          --network=NETWORK_NAME \
          --region=REGION
      

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

      • SUBNET_NAME: השם של רשת המשנה
      • PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את רשת המשנה
      • RANGE_NAME: השם של הטווח הפנימי שרוצים לשייך לרשת המשנה
      • NETWORK_NAME: השם של הרשת שבה רוצים ליצור את תת-הרשת
      • REGION: האזור שבו יוצרים את רשת המשנה
    • כדי ליצור רשת משנה שמשויכת לחלק מטווח פנימי, משתמשים בפקודה הבאה:

      gcloud compute networks subnets create SUBNET_NAME \
          --reserved-internal-range=networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME \
          --range=IP_RANGE \
          --network=NETWORK_NAME \
          --region=REGION
      

      מחליפים את IP_RANGE בטווח CIDR של IPv4 שהוא קבוצת משנה של הטווח הפנימי.

לדוגמה, הפקודות הבאות יוצרות רשת משנה שמשויכת רק לחלק 10.9.1.0/24 של טווח פנימי ששומר את בלוק ה-CIDR‏ 10.9.0.0/16.

gcloud network-connectivity internal-ranges create reserved-range-one \
    --ip-cidr-range=10.9.0.0/16 \
    --network=vpc-one
gcloud compute networks subnets create subnet-one \
    --reserved-internal-range=networkconnectivity.googleapis.com/projects/project-one/locations/global/internalRanges/reserved-range-one \
    --range=10.9.1.0/24 \
    --network=vpc-one \
    --region=us-central1

API

  1. שומרים טווח פנימי של IPv4 ברשת שבה רוצים ליצור רשת משנה חדשה. מגדירים את סוג השימוש בטווח הפנימי הזה כ-FOR_VPC, ואת סוג ה-Peering כ-FOR_SELF.
  2. מבצעים אחת מהפעולות הבאות:

    • כדי ליצור רשת משנה שמשויכת לטווח פנימי שלם, שולחים בקשת POST אל ה-method‏ subnetworks.insert.

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
      {
        "name" : "SUBNET_NAME",
        "reservedInternalRange" : "networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME",
        "network" : "NETWORK"
      }
      

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

      • PROJECT_ID: המזהה של פרויקט האב של רשת המשנה החדשה
      • REGION: האזור שבו רוצים ליצור את רשת המשנה
      • SUBNET_NAME: השם של רשת המשנה החדשה
      • PROJECT_ID: המזהה של הפרויקט שבו רוצים ליצור רשת משנה
      • RANGE_NAME: השם של הטווח הפנימי שבו רוצים להשתמש עבור תת-הרשת החדשה
      • NETWORK: השם של הרשת שבה רוצים ליצור את תת-הרשת
    • כדי ליצור רשת משנה שמשויכת לחלק מטווח פנימי, שולחים את הבקשה הבאה:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
      {
        "name" : "SUBNET_NAME",
        "reservedInternalRange" : "networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME",
        "range" : "IP_RANGE",
        "network" : "NETWORK"
      }
      

      מחליפים את IP_RANGE בטווח CIDR של IPv4 שהוא קבוצת משנה של הטווח הפנימי.

לדוגמה, הבקשות הבאות יוצרות רשת משנה שמשויכת רק לחלק 10.9.1.0/24 של טווח פנימי שמכיל את בלוק ה-CIDR‏ 10.9.0.0/16.

POST https://networkconnectivity.googleapis.com/v1/projects/sample-project/locations/global/internalRanges?internalRangeId=reserved-for-subnet
{
  "targetCidrRange": "10.9.0.0/16",
  "network": "network-b"
}
POST https://compute.googleapis.com/compute/v1/projects/11223344/regions/us-central1/subnetworks
{
  "name" : "subnet-with-partial-range",
  "reservedInternalRange" : "networkconnectivity.googleapis.com/projects/project-one/locations/global/internalRanges/reserved-for-subnet",
  "range" : "10.9.1.0/24",
  "network" : "network-b"
}

יצירת אשכולות GKE עם טווחי כתובות פנימיים של IPv4

אתם יכולים להשתמש בטווחי IPv4 פנימיים כדי להקצות כתובות IP לאשכולות מקוריים של VPC ב-Google Kubernetes Engine ‏ (GKE).

gcloud

  1. יוצרים את טווחי כתובות ה-IPv4 הפנימיים הבאים באמצעות הפקודה gcloud network-connectivity internal-ranges create.

    gcloud network-connectivity internal-ranges create gke-nodes-1 \
        --prefix-length=NODE_PREFIX_LENGTH \
        --network=NETWORK
    
    gcloud network-connectivity internal-ranges create gke-pods-1 \
        --prefix-length=POD_PREFIX_LENGTH \
        --network=NETWORK
    
    gcloud network-connectivity internal-ranges create gke-services-1 \
        --prefix-length=SERVICE_PREFIX_LENGTH \
        --network=NETWORK
    

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

    • NODE_PREFIX_LENGTH: אורך הקידומת של הטווח הפנימי שמשויך לצמתי GKE
    • POD_PREFIX_LENGTH: אורך הקידומת של הטווח הפנימי שמשויך ל-Pods של GKE
    • SERVICE_PREFIX_LENGTH: אורך הקידומת של הטווח הפנימי שמשויך לשירותי GKE
    • NETWORK: השם של הרשת
  2. יוצרים רשת משנה עם הטווחים הפנימיים שיצרתם בשלב הקודם באמצעות הפקודה gcloud compute networks subnets create.

    gcloud compute networks subnets create gke-subnet-1 \
        --network=NETWORK \
        --region=REGION \
        --reserved-internal-range="//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-nodes-1" \
        --secondary-range-with-reserved-internal-range="pods=//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-pods-1,services=//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-services-1"
    

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

    • REGION: האזור של רשת המשנה
    • PROJECT_ID: מזהה הפרויקט
  3. יוצרים את האשכול המותאם ל-VPC באמצעות הפקודה gcloud container clusters create.

    gcloud container clusters create CLUSTER_NAME \
        --network=NETWORK \
        --subnetwork=gke-subnet-1 \
        --zone=ZONE \
        --cluster-secondary-range-name=pods \
        --services-secondary-range-name=services \
        --enable-ip-alias
    

    מחליפים את ZONE באזור של האשכול.

API

  1. כדי ליצור את טווחי ה-IP הפנימיים הבאים, שולחים בקשות POST ל-method‏ projects.locations.internalRanges.create.

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=gke-nodes-1
    {
      "network": "NETWORK",
      "prefixLength": NODE_PREFIX_LENGTH,
      "peering": "FOR_SELF",
      "usage": "FOR_VPC"
    }
    
    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=gke-pods-1
    {
      "network": "NETWORK",
      "prefixLength": POD_PREFIX_LENGTH,
      "peering": "FOR_SELF",
      "usage": "FOR_VPC"
    }
    
    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=gke-services-1
    {
      "network": "NETWORK",
      "prefixLength": SERVICE_PREFIX_LENGTH,
      "peering": "FOR_SELF",
      "usage": "FOR_VPC"
    }
    

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

    • PROJECT_ID: מזהה הפרויקט
    • NETWORK: השם של הרשת
    • NODE_PREFIX_LENGTH: אורך הקידומת של הטווח הפנימי שמשויך לצמתי GKE
    • POD_PREFIX_LENGTH: אורך הקידומת של הטווח הפנימי שמשויך ל-Pods של GKE
    • SERVICE_PREFIX_LENGTH: אורך הקידומת של הטווח הפנימי שמשויך לשירותי GKE
  2. יוצרים רשת משנה עם הטווחים הפנימיים שיצרתם בשלב הקודם על ידי שליחת בקשת POST ל-method‏ subnetworks.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
    {
      "name": "gke-subnet-1",
      "network": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK",
      "privateIpGoogleAccess": false,
      "reservedInternalRange": "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-nodes-1",
      "secondaryIpRanges": [
        {
          "rangeName": "pods",
          "reservedInternalRange": "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-pods-1"
        },
        {
          "rangeName": "services",
          "reservedInternalRange": "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-services-1"
        }
      ]
    }
    

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

    • PROJECT_ID: מזהה הפרויקט
    • REGION: האזור של רשת המשנה
    • NETWORK: הרשת של רשת המשנה
  3. כדי ליצור אשכול המותאם ל-VPC, שולחים בקשת POST אל ה-method‏ clusters.create.

    POST https://container.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/clusters
    {
      "cluster": {
        "ipAllocationPolicy": {
          "clusterSecondaryRangeName": "pods",
          "createSubnetwork": false,
          "servicesSecondaryRangeName": "services",
          "useIpAliases": true
        },
        "name": "CLUSTER_NAME",
        "network": "NETWORK",
        "nodePools": [
          {
            "config": {
              "oauthScopes": [
                "https://www.googleapis.com/auth/devstorage.read_only",
                "https://www.googleapis.com/auth/logging.write",
                "https://www.googleapis.com/auth/monitoring",
                "https://www.googleapis.com/auth/service.management.readonly",
                "https://www.googleapis.com/auth/servicecontrol",
                "https://www.googleapis.com/auth/trace.append"
              ]
            },
            "initialNodeCount": 3,
            "management": {
              "autoRepair": true,
              "autoUpgrade": true
            },
            "name": "default-pool",
            "upgradeSettings": {
              "maxSurge": 1
            }
          }
        ],
        "subnetwork": "gke-subnet-1"
      },
      "parent": "projects/PROJECT_ID/locations/ZONE"
    }
    

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

    • PROJECT_ID: מזהה הפרויקט
    • ZONE: האזור של האשכול
    • CLUSTER_NAME: השם של האשכול החדש
    • NETWORK: הרשת של האשכול

רשימת טווחים פנימיים

אתם יכולים להציג רשימה של טווחים פנימיים כדי לראות את כל הטווחים הפנימיים בפרויקט הנוכחי או ברשת VPC ספציפית. כדי להציג רשימה של פרויקטים ברשת VPC, משתמשים ב-Google Cloud CLI או שולחים בקשת API.

המסוף

gcloud

  • כדי לראות את כל הטווחים הפנימיים בפרויקט הנוכחי, משתמשים בפקודה gcloud network-connectivity internal-ranges list.

    gcloud network-connectivity internal-ranges list
    
  • כדי להציג את כל הטווחים הפנימיים ברשת VPC, משתמשים בפקודה internal-ranges list ומוסיפים מסנן.

    gcloud network-connectivity internal-ranges list \
        --filter=network:NETWORK_NAME \
        --project=PROJECT_ID
    

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

    • NETWORK_NAME: השם של רשת ה-VPC שבה רוצים להציג את הטווחים הפנימיים
    • PROJECT_ID: מזהה הפרויקט שמכיל את רשת ה-VPC

API

  • כדי לראות את כל הטווחים הפנימיים בפרויקט, שולחים בקשת GET ל-method‏ projects.locations.internalRanges.list.

    GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges
    

    מחליפים את PROJECT_ID במזהה הפרויקט שבו רוצים לראות את הטווחים הפנימיים.

  • כדי לראות את כל הטווחים הפנימיים ברשת VPC, שולחים בקשת GETלשיטה projects.locations.internalRanges.list וכוללים מסנן.

    GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?filter=network=\"https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME\"
    

    מחליפים את NETWORK_NAME בשם של רשת ה-VPC שרוצים להציג בה את הטווחים הפנימיים.

תיאור טווחים פנימיים

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

המסוף

  1. נכנסים לדף Internal ranges במסוף Google Cloud .

    מעבר אל Internal ranges

  2. לוחצים על השם של הטווח הפנימי שרוצים לתאר.

gcloud

משתמשים בפקודה gcloud network-connectivity internal-ranges describe.

gcloud network-connectivity internal-ranges describe RANGE_NAME

מחליפים את RANGE_NAME בשם של הטווח הפנימי שרוצים לתאר.

API

שולחים בקשת GET אל ה-method‏ projects.locations.internalRanges.get.

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME

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

  • PROJECT_ID: המזהה של פרויקט האב של הטווח הפנימי
  • RANGE_NAME: השם של הטווח הפנימי שרוצים לתאר

עדכון טווחי כתובות פנימיים

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

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

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

כדי לעדכן את מאפיין החפיפה של טווח פנימי של כתובות IPv4, שולחים בקשת API או משתמשים ב-Google Cloud CLI.

המסוף

  1. נכנסים לדף Internal ranges במסוף Google Cloud .

    מעבר אל Internal ranges

  2. לוחצים על השם של הטווח הפנימי שרוצים לעדכן.

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

    • עבור טווחי IPv4 פנימיים, לוחצים על Prefix length (אורך הקידומת) ואז מבצעים את הפעולות הבאות:
      1. בשדה Prefix length (אורך הקידומת), בוחרים אורך קידומת שקטן מהקידומת הקודמת.
      2. לוחצים על הרחבה.
    • כדי להוסיף טווחים פנימיים של IPv4 או IPv6, לוחצים על IP range ומבצעים את הפעולות הבאות:
      1. מזינים בלוק CIDR של IPv4,‏ IPv6 או IPv4 עם מיפוי ל-IPv6. הבלוק החדש צריך להכיל את הבלוק הקודם.
      2. לוחצים על הרחבה.
  4. כדי לעדכן את תיאור הטווח:

    1. לוחצים על עריכת התיאור.
    2. מזינים תיאור חדש.
    3. לוחצים על Save.

gcloud

  • כדי לעדכן טווח פנימי, משתמשים בפקודה gcloud network-connectivity internal-ranges update. לא מציינים דגלים למאפיינים שלא רוצים לשנות.

    gcloud network-connectivity internal-ranges update RANGE_NAME \
        --ip-cidr-range=CIDR_RANGE \
        --overlaps=OVERLAPS \
        --description=DESCRIPTION
    

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

    • RANGE_NAME: השם של הטווח הפנימי
    • CIDR_RANGE: בלוק ה-CIDR המורחב של IPv4,‏ IPv6 או IPv6 שממופה ל-IPv4, שחייב להכיל את הבלוק הקודם
    • OVERLAPS: סוג החפיפה שרוצים לאפשר (טווחים של IPv4 בלבד)

      האפשרויות הן OVERLAP_EXISTING_SUBNET_RANGE ו-OVERLAP_ROUTE_RANGE. אפשר לכלול את שני הערכים ברשימה מופרדת בפסיקים. כדי להשבית את החפיפה, צריך לכלול את הדגל אבל לא לציין ערך (--overlaps=).

    • DESCRIPTION: התיאור המעודכן

  • כדי להרחיב טווח פנימי על ידי הקטנת אורך הקידומת, משתמשים בפקודה הבאה:

    gcloud network-connectivity internal-ranges update RANGE_NAME \
        --prefix-length=PREFIX_LENGTH
    

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

API

  • כדי להרחיב טווח פנימי על ידי עדכון טווח ה-CIDR שלו, צריך לשלוח בקשת PATCH ל-method‏ projects.locations.internalRanges.patch.

    PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=ipCidrRange
    {
      "ipCidrRange": "CIDR_RANGE"
    }
    

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

    • PROJECT_ID: המזהה של פרויקט האב של הטווח הפנימי
    • RANGE_NAME: השם של הטווח הפנימי
    • CIDR_RANGE: בלוק ה-CIDR המורחב של IPv4,‏ IPv6 או IPv4-mapped IPv6, שחייב להכיל את הבלוק הקודם
  • כדי להרחיב טווח פנימי על ידי קיצור אורך הקידומת שלו, שולחים את הבקשה הבאה:

    PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=prefixLength
    {
      "prefixLength": PREFIX_LENGTH
    }
    

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

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

    PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=overlaps
    {
      "overlaps": ["OVERLAPS"]
    }
    

    מחליפים את OVERLAPS בסוג החפיפה שרוצים לאפשר. האפשרויות הן OVERLAP_EXISTING_SUBNET_RANGE ו-OVERLAP_ROUTE_RANGE. אפשר לכלול את שני הערכים במערך JSON. כדי להשבית את החפיפה, צריך לכלול את השדה אבל לא לציין ערך ("overlaps": []).

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

    PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=description
    {
      "description": "DESCRIPTION"
    }
    

    מחליפים את DESCRIPTION בתיאור המעודכן.

מחיקת טווחים פנימיים

אפשר למחוק טווח פנימי אם הוא לא משויך למשאב כמו רשת משנה. Google Cloudכדי למחוק טווח פנימי שמשויך למשאב Google Cloud , צריך קודם למחוק את המשאב המשויך.

המסוף

  1. נכנסים לדף Internal ranges במסוף Google Cloud .

    מעבר אל Internal ranges

  2. לוחצים על השם של הטווח הפנימי שרוצים למחוק.

  3. לוחצים על Delete.

  4. כדי לאשר, לוחצים על מחיקה.

gcloud

משתמשים בפקודה gcloud network-connectivity internal-ranges delete.

gcloud network-connectivity internal-ranges delete RANGE_TO_DELETE

מחליפים את RANGE_TO_DELETE בשם של הטווח הפנימי שרוצים למחוק.

API

שולחים בקשת DELETE אל ה-method‏ projects.locations.internalRanges.delete.

DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME

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

  • PROJECT_ID: המזהה של פרויקט האב של טווח הכתובות הפנימי
  • RANGE_NAME: השם של הטווח הפנימי