הגדרת טווחים של כתובות IP חלופיות
במאמר הזה מוסבר איך להגדיר כתובות IP של כינוי וטווחים של כתובות IP של כינוי באמצעות מסוף Google Cloud ו-Google Cloud CLI. Google Cloud לפני שמריצים את הפקודות האלה, כדאי לעיין במאמר בנושא טווחים של כתובות IP עם כינוי.
מגבלות
תת-רשת
- המכסות לכל רשת מתארות את המספר המקסימלי של טווחי משנה שאפשר להגדיר לכל רשת משנה.
- אי אפשר להוסיף וגם להסיר טווחים משניים בו-זמנית. הוספה והסרה צריכות להתבצע כשלבים נפרדים.
- אין תמיכה בהרחבת CIDR לטווחים משניים.
מופע ב-VM
- טווחים של כתובות IP של כינויים נתמכים בכל ממשקי הרשת של המכונות הווירטואליות (VM). הניתוב מוגדר באופן אוטומטי לטווחים של כתובות IP של כינויים בממשק הרשת הראשי, אבל לא בממשקים משניים. אם יש לכם כמה ממשקי רשת, אתם צריכים להגדיר ניתוב מדיניות לממשקים הנוספים. דוגמה לאופן הביצוע מופיעה במדריך הבא: הגדרת ניתוב לממשק רשת נוסף.
- אפשר להוסיף או למחוק טווחי כתובות IP של כינויים, אבל אי אפשר לעדכן אותם.
- אם מסירים טווח של כתובות IP של כינוי ממכונה וירטואלית אחת ומקצים אותו למכונה וירטואלית אחרת, יכול להיות שיחלפו עד דקה עד שההעברה תושלם.
- אין תמיכה בתגי מקור של חומת אש לכתובות IP של כינויים. המשמעות היא שכאשר מגדירים תגי מקור בכללי חומת האש, תגי המקור תואמים לכתובת ה-IP הראשית של המכונה הווירטואלית, אבל לא לכתובות ה-IP של הכינויים. משתמשים בטווחים של כתובות מקור כדי לאפשר או לחסום תעבורת נתונים נכנסת (ingress) מכתובות IP של כינוי.
- מערכת DNS פנימית מחזירה את כתובת ה-IP הראשית של מכונה וירטואלית לפי השם שלה. שמות נוספים לכתובות IP חלופיות לא מוגדרים באופן אוטומטי, אבל אפשר להוסיף אותם באופן ידני.
רשת VPC
- הוספה או הסרה של מספר גדול של טווחים של כתובות IP של כינויים בו-זמנית יכולה להימשך זמן רב. לדוגמה, יכול להיות שיחלפו עד 10 דקות עד ש-7,000 טווחי כתובות IP של כינויים יתווספו או יימחקו.
- אי אפשר למחוק רשתות VPC במצב אוטומטי אם יש טווחי רשתות משנה משניים.
- בניתוב סטטי, כתובת ה-IP של הניתוב הבא חייבת להיות כתובת ה-IP הראשית של המכונה הווירטואלית. אין תמיכה בכתובות IP של כינויים ככתובות IP של הנתב הבא.
- אין תמיכה בכתובות IPv6.
- יש תמיכה בטווחים של כתובות IP של כינויים רק ברשתות VPC, ולא ברשתות מדור קודם. כדי לקבוע את סוג הרשת, מציגים את רשימת הרשתות. לרשתות VPC יש מצב של
customאוauto. לרשתות מדור קודם יש מצב שלlegacy.
פקודות של רשת משנה
צריך להקצות טווחי כתובות IP של כינוי למכונה וירטואלית מתוך טווח שנמצא בבעלות תת-הרשת שבה נמצאת המכונה הווירטואלית. לכל רשת משנה יש טווח ראשי, שהוא הטווח הרגיל של כתובות IP פנימיות שמגדיר את רשת המשנה. תת-רשת יכולה לכלול גם טווח משני אחד או יותר של כתובות IP פנימיות. אתם יכולים להקצות טווחי IP של כינויים מתוך הטווחים הראשיים או המשניים של רשת המשנה.
צריך לתת לכל טווח משני שם ייחודי ברשת המשנה. כשמקצים טווח כתובות IP של כינוי למכונה וירטואלית, שם הטווח המשני מצייןGoogle Cloud מאיזה טווח של רשת משנה להקצות את כתובות ה-IP של הכינוי.
כל הטווחים, גם הראשיים וגם המשניים, צריכים להיות ייחודיים בכל רשתות המשנה ברשת ה-VPC ובכל רשת שמצורפת באמצעות קישור בין רשתות שכנות (peering) של VPC, Cloud VPN או Cloud Interconnect.
בסעיף הזה מוסבר איך ליצור רשת משנה עם טווח משני, איך להוסיף טווח משני לרשת משנה קיימת ואיך להסיר טווח משני מרשת משנה. אחרי שמוסיפים לרשת המשנה את הטווח שרוצים להשתמש בו, אפשר לעיין בקטע עבודה עם מכונות וירטואליות כדי לקבל מידע על הקצאת טווח למכונה וירטואלית.
יצירת רשת משנה עם טווחים משניים של CIDR
הפקודה הזו מניחה שכבר יש לכם רשת VPC. אם אין לכם חשבון, צריך ליצור חשבון.
הפקודה הזו זהה בין אם יוצרים תת-רשת לממשק הראשי של המכונה הווירטואלית או לאחד מהממשקים המשניים.
שימוש בטווח משני להקצאת כתובות IP של כינויים מאפשר להפריד את מרחב כתובות ה-IP של השירותים שמתארחים במכונה הווירטואלית. כך אפשר ליצור כללים לחומת האש שמאפשרים גישה רק לשירותים שפועלים במכונה הווירטואלית וחוסמים גישה לכתובת ה-IP הראשית של המכונה הווירטואלית.
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
לוחצים על השם של רשת קיימת.
לוחצים על הוספת רשת משנה.
מזינים שם לרשת המשנה החדשה.
מציינים את האזור.
מזינים טווח כתובות IP בסימון CIDR – לדוגמה,
10.65.61.0/24.לוחצים על יצירת טווח משני של כתובות IP.
מזינים שם לטווח של רשת משנה.
מזינים טווח משני של כתובות IP בסימון CIDR – לדוגמה,
10.9.0.0/24.כדי להוסיף טווחי כתובות IP משניים, לוחצים על הוספת טווח כתובות IP לכל טווח, ואז מציינים שם וטווח.
לוחצים על הוספה.
gcloud
gcloud compute networks subnets create s1 \
--network NETWORK_NAME \
--region REGION \
--range 10.65.61.0/24 \
--secondary-range RANGE_NAME_1=RANGE_CIDR_1,RANGE_NAME_2=RANGE_CIDR_2,...
מחליפים את מה שכתוב בשדות הבאים:
-
NETWORK_NAME: השם של הרשת שבה רוצים ליצור את תת-הרשת. -
REGION: האזור שבו יוצרים את רשת המשנה. -
RANGE_NAME_1=RANGE_CIDR_1ו-RANGE_NAME_2=RANGE_CIDR_2: השמות של הטווחים המשניים שמתוכם יוקצו טווחי כתובות ה-IP החלופיות, וטווח כתובות ה-IP החלופיות עצמו – לדוגמה,range1=10.9.0.0/24.
למידע על התחביר המלא, אפשר לעיין במסמכי התיעוד בנושא gcloud.
API
יוצרים תת-רשת עם טווח משני אחד או יותר.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
{
"ipCidrRange": "PRIMARY_IP_RANGE",
"network": "NETWORK_URL",
"name": "SUBNET_NAME",
"secondaryIpRanges": [
{
"rangeName": "SECONDARY_RANGE_NAME_1",
"ipCidrRange": "SECONDARY_IP_RANGE_1"
},
{
"rangeName": "SECONDARY_RANGE_NAME_2",
"ipCidrRange": "SECONDARY_IP_RANGE_2"
},
...]
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את רשת ה-VPC שבה רוצים ליצור את רשת המשנה. -
REGION: האזור שבו תמוקם רשת המשנה. -
PRIMARY_IP_RANGE: טווח כתובות ה-IP הראשי של רשת המשנה. -
NETWORK_URL: כתובת ה-URL או רשת ה-VPC שבהן רוצים ליצור את רשת המשנה. SUBNET_NAME: שם לרשת המשנה.-
SECONDARY_RANGE_NAME_1ו-SECONDARY_RANGE_NAME_2: השמות שבהם צריך להשתמש לטווחים המשניים. -
SECONDARY_IP_RANGE_1ו-SECONDARY_IP_RANGE_2: טווח כתובות ה-IP לשימוש בטווחים המשניים.
מידע נוסף זמין במאמר בנושא השיטה subnetworks.insert.
Terraform
אתם יכולים להשתמש במשאב של Terraform כדי ליצור רשת משנה עם טווח משני אחד או יותר.
הארגומנטים של Terraform כוללים ערכים לדוגמה שאפשר לשנות.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
הוספת טווחי CIDR משניים לרשת משנה קיימת
ההליך הזה מניח שיש לכם רשת משנה שאתם רוצים להשתמש בה, אבל אתם צריכים להוסיף טווח משני אחד או יותר.
מומלץ להשתמש בטווח משני להקצאת כתובות IP של כינוי כדי ליצור כללי חומת אש שמאפשרים גישה לשירותים שפועלים במכונה וירטואלית, אבל לא לכתובת ה-IP הראשית של המכונה הווירטואלית.
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
לוחצים על השם של רשת המשנה שרוצים לשנות כדי לראות את דף הפרטים שלה.
לוחצים על Edit.
בקטע Secondary IP ranges (טווחים משניים של כתובות IP), לוחצים על Add IP range (הוספת טווח כתובות IP).
מזינים שם לשם טווח רשת המשנה.
מזינים טווח לטווח משני של כתובות IP בסימון CIDR – לדוגמה,
10.9.0.0/24.כדי להוסיף טווחי כתובות IP משניים, לוחצים על הוספת טווח כתובות IP לכל טווח, ואז מציינים שם וטווח.
לוחצים על Save.
gcloud
gcloud compute networks subnets update SUBNET_NAME \
--region REGION \
--add-secondary-ranges RANGE_NAME_1=RANGE_CIDR_1,RANGE_NAME_2=RANGE_CIDR_2,...
מחליפים את מה שכתוב בשדות הבאים:
-
SUBNET_NAME: השם של רשת המשנה שרוצים להוסיף לה את הטווחים המשניים. -
REGION: האזור שבו יוצרים את רשת המשנה. -
RANGE_NAME_1=RANGE_CIDR_1ו-RANGE_NAME_2=RANGE_CIDR_2: השמות של הטווחים המשניים שמתוכם יוגדרו טווחי כתובות ה-IP של הכינוי, וטווח כתובות ה-IP של הכינוי עצמו – לדוגמה,range1=10.9.0.0/24.
למידע על התחביר המלא, אפשר לעיין במסמכי התיעוד בנושא gcloud.
API
הוספת טווח משני לרשת משנה קיימת.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
{
"secondaryIpRanges": [
{
"rangeName": "SECONDARY_RANGE_NAME_1",
"ipCidrRange": "SECONDARY_IP_RANGE_1"
},
{
"rangeName": "SECONDARY_RANGE_NAME_2",
"ipCidrRange": "SECONDARY_IP_RANGE_2"
},
...],
"fingerprint": "SUBNET_FINGERPRINT"
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את רשת המשנה שרוצים לשנות. -
REGION: האזור שבו נמצאת רשת המשנה. -
SUBNET_NAME: השם של רשת המשנה שרוצים לשנות. -
SECONDARY_RANGE_NAME_1ו-SECONDARY_RANGE_NAME_2: השמות שבהם צריך להשתמש לטווחי המשנה. -
SECONDARY_IP_RANGE_1ו-SECONDARY_IP_RANGE_2: טווחי כתובות ה-IP לשימוש בטווחי המשנה. -
SUBNET_FINGERPRINT: מזהה טביעת האצבע של תת-הרשת הקיימת, שמופיע כשמבצעים תיאור של תת-רשת.
מידע נוסף זמין במאמר בנושא השיטה subnetworks.patch.
הסרת טווח CIDR משני מרשת משנה
אפשר להסיר טווחי משנה קיימים מרשת משנה. כדי לראות את הטווחים שמשויכים לרשת משנה, אפשר לעיין במאמר בנושא תיאור של רשת משנה.
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
לוחצים על השם של רשת המשנה שרוצים לשנות כדי לראות את דף הפרטים שלה.
לוחצים על Edit.
בקטע Secondary IP ranges (טווחים משניים של כתובות IP), לוחצים על X לצד הטווח המשני שרוצים להסיר.
לוחצים על Save.
gcloud
gcloud compute networks subnets update SUBNET_NAME \
--region REGION \
--remove-secondary-ranges RANGE_NAME_1,RANGE_NAME_2,...
מחליפים את מה שכתוב בשדות הבאים:
-
SUBNET_NAME: השם של רשת המשנה שרוצים להסיר ממנה את הטווחים המשניים. -
REGION: האזור שבו יוצרים את רשת המשנה. -
RANGE_NAME_1ו-RANGE_NAME_2: השמות של טווחי המשנה שיוסרו מרשת המשנה של היעדSUBNET_NAME– לדוגמה,range1=10.9.0.0/24.
למידע על התחביר המלא, אפשר לעיין במסמכי התיעוד בנושא gcloud.
API
כדי להסיר טווחי תאריכים משניים, צריך להחריג אותם. בדוגמה הבאה מסירים את כל טווחי המשנה מרשת משנה קיימת:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
{
"fingerprint": "SUBNET_FINGERPRINT",
"secondaryIpRanges": [
]
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את רשת המשנה שרוצים לשנות. -
REGION: האזור שבו נמצאת רשת המשנה. -
SUBNET_NAME: השם של רשת המשנה שרוצים לשנות. -
SUBNET_FINGERPRINT: מזהה טביעת האצבע של תת-הרשת הקיימת, שמופיע כשמבצעים תיאור של תת-רשת.
מידע נוסף זמין במאמר בנושא השיטה subnetworks.patch.
עבודה עם מכונות וירטואליות
הפקודות האלה מראות איך ליצור מכונה וירטואלית עם טווח כתובות IP של כינוי, איך להוסיף טווח כתובות IP של כינוי אחד או יותר למכונה וירטואלית קיימת, או איך להסיר טווח אחד או יותר ממכונה וירטואלית קיימת.
יצירת מכונה וירטואלית עם טווח כתובות IP חלופיות בטווח ה-CIDR הראשי
משתמשים בהליך הזה אם רוצים להקצות טווח כתובות IP של כינוי מתוך הטווח הראשי של רשת המשנה. הטווח שתבחרו לא יכול להיות בשימוש, אפילו באופן חלקי, על ידי משאב אחר ברשת ה-VPC.
משתמשים בהליך הזה אם רוצים שכתובות ה-IP הראשיות והחלופיות של המכונה יהיו באותו טווח.
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
לוחצים על Create instance.
מזינים שם למופע החדש.
מציינים אזור.
לוחצים על Networking.
בקטע Network interfaces מרחיבים את ממשק ברירת המחדל של הרשת.
בקטע טווחים של כתובות IP חלופיות, לוחצים על הוספת טווח IP.
משאירים את ההגדרה של Subnet range 1 (טווח תת-רשת 1) כ-Primary (ראשי).
בטווח כתובות IP של כינוי, מזינים טווח כתובות IP בסימון CIDR. הטווח הזה צריך להיות טווח משנה לא בשימוש של הטווח הראשי.
לוחצים על יצירה.
gcloud
gcloud compute instances create vm1 \
--zone ZONE \
--network-interface "subnet=SUBNET_NAME,aliases=RANGE_CIDR_1;RANGE_CIDR_2,..."
מחליפים את מה שכתוב בשדות הבאים:
-
ZONE: האזור שבו תמוקם המכונה. -
SUBNET_NAME: השם של רשת המשנה שתכיל את המכונה. -
RANGE_CIDR_1ו-RANGE_CIDR_2: טווחי כתובות ה-IP מרשת המשנה הראשית להקצאה לממשק. הטווחים יכולים להיות טווח ספציפי (192.168.100.0/24), כתובת IP יחידה (192.168.100.1) או מסכת רשת בפורמט CIDR (/24). אם טווח כתובות ה-IP מצוין רק על ידי מסכת רשת, כלי ההקצאה של כתובות ה-IP בוחר טווח זמין עם מסכת הרשת שצוינה ומקצה אותו לממשק הרשת. כדי לציין יותר מטווח אחד, צריך להפריד בין הטווחים באמצעות נקודה-פסיק (;).
למידע על התחביר המלא, אפשר לעיין במסמכי התיעוד בנושא gcloud.
API
יצירת מכונה עם כתובת IP חלופית מטווח כתובות ה-IP הראשי של רשת המשנה של המכונה.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"networkInterfaces": [
{
"aliasIpRanges": [
{
"ipCidrRange": "CIDR_RANGE"
}
]
},
...
],
...
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו יוצרים את המכונה. -
ZONE: Google Cloud האזור שבו תיצור את המכונה. -
CIDR_RANGE: טווח כתובות ה-IP מרשת המשנה הראשית להקצאה לממשק. הטווח יכול להיות טווח ספציפי (192.168.100.0/24), כתובת IP יחידה (192.168.100.1) או מסכת רשת בפורמט CIDR (/24). אם מציינים את טווח כתובות ה-IP רק לפי מסכת רשת, כלי ההקצאה של כתובות ה-IP בוחר טווח זמין עם מסכת הרשת שצוינה ומקצה אותו לממשק הרשת.
מידע נוסף זמין במאמר בנושא השיטה instances.insert.
יצירת מכונה וירטואלית עם טווח כתובות IP חלופיות בטווח CIDR משני
משתמשים בהליך הזה אם רוצים להקצות טווח כתובות IP של כינוי שנלקח מטווח משני של רשת המשנה. מומלץ להפריד בין טווחי כתובות ה-IP של הכינויים לבין הטווח הראשי של רשת המשנה, כדי ליצור כללי חומת אש שמאפשרים גישה לשירותים שפועלים במכונה וירטואלית, אבל לא לכתובת ה-IP הראשית של המכונה.
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
לוחצים על Create instance.
מזינים שם למופע החדש.
מציינים אזור.
לוחצים על Networking.
בקטע Network interfaces מרחיבים את ממשק ברירת המחדל של הרשת.
בקטע טווחים של כתובות IP חלופיות, לוחצים על הוספת טווח IP.
בקטע Subnet range, בוחרים את טווח כתובות ה-IP המשני שרוצים להשתמש בו.
בשדה טווח כתובות IP של כינוי, מזינים טווח כתובות IP בסימון CIDR. הטווח הזה צריך להיות טווח לא בשימוש של טווח כתובות ה-IP המשני.
לוחצים על יצירה.
gcloud
gcloud compute instances create vm3 \
--zone ZONE \
--network-interface subnet=SUBNET_NAME,aliases=RANGE_NAME:RANGE_CIDR
מחליפים את מה שכתוב בשדות הבאים:
-
ZONE: האזור שבו תמוקם המכונה. -
SUBNET_NAME: השם של רשת המשנה שתכיל את המכונה. -
RANGE_NAME: השם של טווח המשנה המשני של רשת המשנה שממנו ייקבע טווח כתובות ה-IP של הכינוי. -
RANGE_CIDR: טווח כתובות ה-IP להקצאה לממשק. הטווח יכול להיות טווח ספציפי (192.168.100.0/24), כתובת IP יחידה (192.168.100.1) או מסכת רשת בפורמט CIDR (/24). אם טווח כתובות ה-IP מצוין רק באמצעות מסכת רשת, כלי ההקצאה של כתובות IP בוחר טווח זמין עם מסכת הרשת שצוינה ומקצה אותו לממשק הרשת.
למידע על התחביר המלא , אפשר לעיין במסמכי התיעוד בנושא gcloud.
API
יוצרים מכונה עם כתובת IP חלופית מטווח כתובות ה-IP המשני של תת-הרשת של המכונה.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"networkInterfaces": [
{
"aliasIpRanges": [
{
"ipCidrRange": "SECONDARY_CIDR_RANGE",
"subnetworkRangeName": "SECONDARY_RANGE_NAME"
}
]
},
...
],
...
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו יוצרים את המכונה. -
ZONE: Google Cloud האזור שבו יוצרים את המכונה. -
SECONDARY_CIDR_RANGE: the IP range to assign to the interface. The range can be a specific range (192.168.100.0/24), a single IP address (192.168.100.1), or a netmask in CIDR format (/24`). אם מציינים את טווח כתובות ה-IP רק באמצעות מסכת רשת, כלי ההקצאה של כתובות ה-IP בוחר טווח זמין עם מסכת הרשת שצוינה ומקצה אותו לממשק הרשת. -
SECONDARY_RANGE_NAME: השם של הטווח המשני של רשת המשנה שממנו יוקצה טווח כתובות ה-IP של הכינוי.
מידע נוסף זמין במאמר בנושא השיטה instances.insert.
יצירת מכונה וירטואלית עם כמה ממשקי רשת וכתובות IP של כינוי
בדוגמה הזו נוצרות שתי רשתות, שלכל אחת מהן יש רשת משנה אחת, ומכונה וירטואלית עם ממשקים בשתי הרשתות. אם כבר יש לכם שתי רשתות VPC, אתם יכולים לדלג לשלב 'יצירת מכונה וירטואלית עם ממשקים בשתי הרשתות'.
המסוף
יוצרים את הרשת ואת תת-הרשת הראשונות:
נכנסים לדף VPC networks במסוף Google Cloud .
לוחצים על יצירת רשת VPC.
בשדה Name (שם), מזינים
my-network1.מגדירים את מצב יצירת רשת משנה לערך
Custom, ואז מציינים שם של רשת משנהmy-subnet1.מציינים אזור.
מגדירים את טווח כתובות ה-IP ל-
172.16.1.0/24.לוחצים על יצירת טווח משני של כתובות IP.
מגדירים את Subnet range name לערך
range1.מגדירים את Secondary IP range (טווח משני של כתובות IP) ל-
10.1.0.0/16.לוחצים על סיום.
לוחצים על יצירה.
יוצרים את הרשת והתת-רשת השנייה:
נכנסים לדף VPC networks במסוף Google Cloud .
לוחצים על יצירת רשת VPC.
בשדה Name (שם), מזינים
my-network2.מגדירים את מצב יצירת רשת משנה לערך
Custom, ואז מציינים שם של רשת משנהmy-subnet2.בקטע Region, מציינים את אותו אזור שציינתם עבור הרשת ורשת המשנה הראשונות.
מגדירים את טווח כתובות ה-IP ל-
172.16.2.0/24.לוחצים על יצירת טווח משני של כתובות IP.
מגדירים את Subnet range name לערך
range2.מגדירים את Secondary IP range (טווח משני של כתובות IP) ל-
10.2.0.0/16.לוחצים על סיום.
לוחצים על יצירה.
יוצרים מכונה וירטואלית עם ממשקים בשתי הרשתות:
נכנסים לדף VM instances במסוף Google Cloud .
לוחצים על Create instance.
מגדירים את התחום לאזור שבו יצרתם את רשתות המשנה.
לוחצים על Networking.
לוחצים על ממשק הרשת הראשון.
- מגדירים את Network לערך
my-network1. - מגדירים את Subnetwork לערך
my-subnet1. - לוחצים על Alias IP ranges (טווחי כתובות IP חלופיות).
- לוחצים על הוספת טווח IP.
- מגדירים את Subnet range לערך
Primary. - מגדירים את Alias IP range לערך
/32. - לוחצים על הוספת טווח IP.
- מגדירים את Subnet range לערך
range1. - מגדירים את Alias IP range לערך
/24. - לוחצים על סיום.
- מגדירים את Network לערך
לוחצים על הוספת ממשק רשת.
- בוחרים באפשרות
my-network2. - מגדירים את Subnetwork לערך
my-subnet2. - לוחצים על Alias IP ranges (טווחי כתובות IP חלופיות).
- לוחצים על הוספת טווח IP.
- מגדירים את Subnet range לערך
Primary. - מגדירים את Alias IP range לערך
/32. - לוחצים על הוספת טווח IP.
- מגדירים את Subnet range לערך
range2. - מגדירים את Alias IP range לערך
/24. - לוחצים על סיום.
- בוחרים באפשרות
לוחצים על יצירה.
gcloud
יוצרים את הרשת הראשונה:
gcloud compute networks create my-network1 --subnet-mode CUSTOM
מוסיפים רשת משנה:
gcloud compute networks subnets create my-subnet1 \ --network my-network1 \ --range 172.16.1.0/24 \ --secondary-range range1=10.1.0.0/16יוצרים רשת שנייה:
gcloud compute networks create my-network2 --subnet-mode CUSTOM
מוסיפים רשת משנה:
gcloud compute networks subnets create my-subnet2 \ --network my-network2 \ --range 172.16.2.0/24 \ --secondary-range range2=10.2.0.0/16יוצרים מכונה וירטואלית עם ממשקים בשתי הרשתות. ממשק הרשת הראשון שמופיע, זה שב-
my-subnet1, הוא הממשק הראשי:gcloud compute instances create multi-nic-alias-vm \ --machine-type f1-micro \ --network-interface "subnet=my-subnet1,aliases=/32;range1:/24" \ --network-interface "subnet=my-subnet2,aliases=/32;range2:/24"משתמשים בפקודה display כדי לראות את הממשקים והכתובות שלהם:
gcloud compute instances describe multi-nic-alias-vm
... networkInterfaces: - ... aliasIpRanges: - ipCidrRange: 172.16.1.2/32 - ipCidrRange: 10.1.0.0/24 subnetworkRangeName: range1 name: nic0 network: .../networks/my-network1 networkIP: 172.16.1.3 subnetwork: .../subnetworks/my-subnet1 ... - ... aliasIpRanges: - ipCidrRange: 172.16.2.2/32 - ipCidrRange: 10.2.0.0/24 subnetworkRangeName: range2 name: nic1 network: .../networks/my-network2 networkIP: 172.16.2.3 subnetwork: .../subnetworks/my-subnet2
API
יוצרים שתי רשתות VPC במצב מותאם אישית בשמות
my-network1ו-my-network2. מידע נוסף זמין במאמר יצירת רשת VPC במצב מותאם אישית עם תת-רשתות IPv4 בלבד.מוסיפים רשתות משנה לרשתות ה-VPC. מידע נוסף זמין במאמר הוספת רשת משנה עם IPv4 בלבד.
מוסיפים תת-רשת בשם
my-subnet1ל-my-network1. מציינים את172.16.1.0/24כטווח הראשי ואת10.1.0.0/16כטווח המשני עם השםrange1.מוסיפים תת-רשת בשם
my-subnet2ל-my-network2. מציינים את172.16.2.0/24כטווח הראשי ואת10.2.0.0/16כטווח המשני עם השםrange2.
יוצרים מכונה וירטואלית עם ממשקים בשתי הרשתות.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "networkInterfaces": [ { "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/my-subnet1", "aliasIpRanges": [ { "ipCidrRange": "/32", }, { "subnetworkRangeName": "range1", "ipCidrRange": "/24" } ] }, { "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/my-subnet2", "aliasIpRanges": [ { "ipCidrRange": "/32", }, { "subnetworkRangeName": "range2", "ipCidrRange": "/24" } ] } ], ... }מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו יוצרים את המכונה. -
ZONE: Google Cloud האזור שבו תיצור את המכונה. -
REGION: Google Cloud האזור שבו נמצאת רשת המשנה. רשתות המשנה צריכות להיות באותו אזור כמו המופע.
מידע נוסף זמין במאמר בנושא השיטה
instances.insert.-
הוספת טווחים של כתובות IP של כינויים למופע קיים
אפשר להוסיף טווח כתובות IP של כינוי למופע פעיל.
יכול להיות שהכתובות החדשות לא יהיו זמינות באופן מיידי, גם אחרי שקריאת ה-API תסתיים. כתובות חדשות זמינות רק אחרי שמערכת ההפעלה של האורח מוסיפה את הכתובות והמסלולים.
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
לוחצים על השם של מופע קיים.
לוחצים על Edit.
בקטע Network interfaces, לוחצים על ממשק הרשת שאליו רוצים להוסיף טווח של כתובות IP של כינוי (
nic0בדוגמה הזו).לוחצים על Alias IP ranges (טווחי כתובות IP חלופיות).
לוחצים על הוספת טווח IP.
בוחרים טווח רשת משנה.
מזינים טווח כתובות IP של כינוי.
לוחצים על סיום.
לוחצים על Save.
gcloud
gcloud compute instances network-interfaces update INSTANCE_NAME \
--zone ZONE \
[--network-interface NETWORK_INTERFACE; default="nic0"] \
--aliases "RANGE_NAME_1:RANGE_CIDR_1; \
RANGE_NAME_2:RANGE_CIDR_2;..."
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של המכונה שרוצים לשנות. -
ZONE: האזור שבו נמצאת המכונה. -
NETWORK_INTERFACE: השם של ממשק הרשת שאליו רוצים להוסיף טווח כתובות IP של כינוי. -
RANGE_NAME_1ו-RANGE_NAME_2: השמות של הטווחים המשניים של רשתות המשנה שמתוכם ייקבע טווח כתובות ה-IP של הכינוי. אם אתם מקצים טווחים מהטווח הראשי של רשת המשנה, אל תציינו את הערך הזה. -
RANGE_CIDR_1ו-RANGE_CIDR_2: טווחי כתובות ה-IP להקצאה לממשק. הטווחים יכולים להיות טווח ספציפי (192.168.100.0/24), כתובת IP יחידה (192.168.100.1) או מסכת רשת בפורמט CIDR (/24). אם טווח כתובות ה-IP מצוין רק על ידי מסכת רשת, כלי ההקצאה של כתובות IP בוחר טווח זמין עם מסכת הרשת שצוינה ומקצה אותו לממשק הרשת.
למידע על התחביר המלא, אפשר לעיין במסמכי התיעוד בנושא gcloud.
API
הוספת טווחי כתובות IP של כינויים למופע קיים.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateNetworkInterface?networkInterface=NETWORK_INTERFACE_NAME
{
"aliasIpRanges": [
{
"ipCidrRange": "SECONDARY_IP_RANGE",
"subnetworkRangeName": "SECONDARY_RANGE_NAME"
},
existing ranges...
],
"fingerprint": "INTERFACE_FINGERPRINT"
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את המופע שרוצים לשנות. -
ZONE: Google Cloud האזור שבו רוצים ליצור את המכונה. -
INSTANCE_NAME: השם של המכונה שרוצים לשנות. -
NETWORK_INTERFACE_NAME: השם של ממשק הרשת של המופע שרוצים לשנות. -
SECONDARY_IP_RANGE: טווח כתובות ה-IP להקצאה לממשק. הטווח יכול להיות טווח ספציפי (192.168.100.0/24), כתובת IP יחידה (192.168.100.1) או מסכת רשת בפורמט CIDR (/24). אם מציינים את טווח כתובות ה-IP רק באמצעות מסכת רשת, כלי ההקצאה של כתובות ה-IP בוחר טווח זמין עם מסכת הרשת שצוינה ומקצה אותו לממשק הרשת. -
SECONDARY_RANGE_NAME: השם של הטווח המשני של רשת המשנה שממנו יוקצה טווח כתובות ה-IP של הכינוי. אם מקצים טווחים מהטווח הראשי של רשת המשנה, משמיטים את השדה הזה. -
INTERFACE_FINGERPRINT: מזהה טביעת האצבע של ממשק הרשת הקיים, שמופיע כשמתארים מופע.
מידע נוסף זמין במאמר בנושא השיטה instances.updateNetworkInterface.
שינוי של טווחי כתובות IP של כינוי עבור מופע קיים
אתם יכולים להוסיף עוד טווחי כתובות IP של כינויים למופע קיים או להסיר טווח אחד או יותר.
יכול להיות שיעבור קצת זמן עד שהשינויים בכתובת יופיעו. קריאה ל-API צריכה להסתיים ומערכת ההפעלה של האורח צריכה לשנות את הכתובות והנתיבים.
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
לוחצים על השם של מופע קיים.
לוחצים על Edit.
בקטע Network interfaces, לוחצים על ממשק הרשת שאליו רוצים להוסיף טווח של כתובות IP של כינוי (
nic0בדוגמה הזו).לוחצים על Alias IP ranges (טווחי כתובות IP חלופיות).
כדי להוסיף טווח IP של כתובת אימייל חלופית, לוחצים על הוספת טווח IP של כתובת אימייל חלופית.
כדי להסיר טווח IP של כינוי, לוחצים על X לצד טווח ה-IP של הכינוי.
לוחצים על סיום.
לוחצים על Save.
gcloud
gcloud compute instances network-interfaces update INSTANCE_NAME \
--zone ZONE \
[--network-interface NETWORK_INTERFACE; default="nic0"] \
--aliases "RANGES_TO_RETAIN;NEW_RANGE_NAME:NEW_RANGE_CIDR;..."
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של המכונה שרוצים לשנות. -
ZONE: האזור שבו נמצאת המכונה. -
NETWORK_INTERFACE: השם של ממשק הרשת שרוצים לשנות. -
RANGES_TO_RETAIN: הטווחים הקיימים, בפורמטCURRENT_RANGE_NAME:CURRENT_RANGE_CIDR, שרוצים לשמור. אם מוסיפים טווחים למופע שלא כולל טווחים, הערכים האלה יהיו ריקים. אם מסירים את כל הטווחים מהמופע, השדה--aliasesכולו ריק. -
NEW_RANGE_NAME: השם של הטווח המשני של רשת המשנה שממנו יוקצו טווחי כתובות IP חדשים של כינויים. אם מקצים טווחים מהטווח הראשי של רשת המשנה, לא מציינים ערך. -
NEW_RANGE_CIDR: טווח כתובות ה-IP להקצאה לממשק. הטווח יכול להיות טווח ספציפי (192.168.100.0/24), כתובת IP יחידה (192.168.100.1) או מסכת רשת בפורמט CIDR (/24). אם טווח כתובות ה-IP מצוין רק על ידי מסכת רשת, מקצה כתובות ה-IP בוחר טווח זמין עם מסכת הרשת שצוינה ומקצה אותו לממשק הרשת.
כדי להוסיף טווחים, מריצים את הפקודה ומציינים את כל טווחי כתובות ה-IP הקיימים ואת כל טווחי כתובות ה-IP החדשים של הכינויים. הצמדים מופרדים באמצעות נקודה-פסיק – לדוגמה:
--aliases
"CURRENT_RANGE_NAME:CURRENT_RANGE_CIDR;NEW_RANGE_NAME:NEW_RANGE_CIDR".
כדי להסיר טווחים, מריצים את הפקודה ומציינים רק את טווחי כתובות ה-IP של הכינוי שרוצים לשמור. אם אתם שומרים טווחים מטווח משני, אתם צריכים לציין את השם של הטווח המשני. טווח CIDR יכול להיות טווח ספציפי (192.168.100.0/24) או כתובת IP יחידה (192.168.100.1). לדוגמה:
--aliases "RANGE_NAME:RANGE_CIDR;RANGE_CIDR".
כדי להסיר את כל הטווחים, מריצים את הפקודה ומציינים את הדגל --aliases, אבל משתמשים במירכאות כדי לספק קלט ריק – לדוגמה:
--aliases "".
אי אפשר להוסיף ולהסיר טווחים באותה פקודת gcloud. כדי להסיר טווחי כתובות ולהוסיף אחרים באמצעות ה-CLI של gcloud, קודם מריצים את הפקודה להסרת טווחי כתובות לא נחוצים, ואז מריצים אותה שוב כדי להוסיף טווחי כתובות נחוצים.
למידע על התחביר המלא, אפשר לעיין במסמכי התיעוד בנושא gcloud.
API
בממשק רשת של מופע קיים, מוסיפים או מסירים טווחי כתובות IP של כינויים.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateNetworkInterface?networkInterface=NETWORK_INTERFACE_NAME
{
"aliasIpRanges": [
include new and existing ranges to add them...
exclude existing ranges to remove them...
],
"fingerprint": "INTERFACE_FINGERPRINT"
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את המופע שרוצים לשנות. -
ZONE: האזור שבו נמצאת המכונה. -
INSTANCE_NAME: השם של המכונה שרוצים לשנות. -
NETWORK_INTERFACE_NAME: השם של ממשק הרשת של המופע שרוצים לשנות. -
INTERFACE_FINGERPRINT: מזהה טביעת האצבע של ממשק הרשת הקיים, שמופיע כשמתארים מופע.
מידע נוסף זמין במאמר בנושא השיטה instances.updateNetworkInterface.
פתרון בעיות
בקטע הזה מפורטות בעיות שונות שאפשר להיתקל בהן כשמגדירים טווחי כתובות IP של כינויים.
אי אפשר ליצור מופע של מכונה וירטואלית עם כתובת IP חלופית
מוודאים שהרשת היא רשת VPC. אין תמיכה בכתובות IP של כינויים ברשתות מדור קודם.
gcloud compute networks list --filter="name=NETWORK_NAME"
הערך של מאפיין הרשת
MODEצריך להיותautoאוcustom.אם מציינים שם של טווח רשתות משנה, צריך לוודא את הדברים הבאים:
gcloud compute networks subnets describe SUBNET_NAME --region=REGION
- לרשת המשנה יש טווח משני עם השם המתאים.
- טווח כתובות ה-IP של הכינוי המבוקש נמצא בתוך הטווח המשני הזה, או שאם משתמשים במסכת רשת, הוא קטן יותר מהטווח הראשי.
אם לא מציינים שם של טווח רשת משנה, צריך לוודא שטווח כתובות ה-IP של הכינוי המבוקש נמצא בתוך טווח הרשת המשנה הראשי, או שאם משתמשים במסכת רשת, הוא קטן יותר מהטווח הראשי.
אי אפשר להתחבר לכתובת IP של כינוי
בודקים את הכללים של חומת האש.
הצגת רשימה של כל כללי חומת האש:
gcloud compute firewall-rules list --format=json
מוודאים שהתנועה אל טווח כתובות ה-IP של הכינוי וממנו מותרת.
במקרה הצורך, מוסיפים כללים לחומת האש כדי לאפשר פינג לטווח של כתובות IP של כינוי:
gcloud compute firewall-rules create FIREWALL_NAME1 \ --network NETWORK_NAME \ --priority 0 \ --source-ranges ALIAS_IP \ --allow icmpgcloud compute firewall-rules create FIREWALL_NAME2 \ --network NETWORK_NAME \ --priority 0 \ --direction out \ --destination-ranges ALIAS_IP \ --allow icmp
מוודאים שהמכונה הווירטואלית מזהה את טווחי כתובות ה-IP הווירטואליות כמקומיות. במהדורות של Linux כמו Debian, בדרך כלל אפשר לעשות את זה כך:
מתחברים למופע ומריצים את הפקודה הבאה:
ip route show table local
הפלט אמור להיראות כך:
local ALIAS_IP_RANGE dev eth0 proto 66 scope host
ב-
/etc/default/instance_configs.cfg, מוודאים שההגדרהip_aliasesמוגדרת ל-true. אם אתם צריכים לשנות את זה, אתם צריכים גם להפעיל מחדש את סוכן האורח:systemctl restart google-guest-agent
אם המסלול המקומי לא מופיע, מגדירים אותו באמצעות הפקודה הבאה:
ip route add to local ALIAS_IP_RANGE dev eth0 proto 66
שירות שמוגדר להפעלה אוטומטית לא נקשר לכתובת IP של כינוי
בהפצות נתמכות של Linux, כתובות IP של כינויים מוגדרות אוטומטית ככתובות מקומיות על ידי סוכן האורח שמותקן מראש. כלומר, לא צריך לבצע הגדרות ברמת מערכת ההפעלה.
עם זאת, המשמעות היא גם שמערכת ההפעלה לא מזהה את כתובות ה-IP של הכינוי ככתובות מקומיות לפני שהסוכן של האורח פועל. אם יש לכם שירותים עם הפעלה אוטומטית במכונה הווירטואלית, והם מתחילים לפעול לפני סוכן האורח, הם לא יכולים להיקשר לכתובות ה-IP של הכינוי.
לדוגמה, שרת Apache HTTP עשוי לצאת עם השגיאה הבאה:
could not bind to address ALIAS_IP:80
כדי לפתור את הבעיה, צריך להגדיר את השירות כך שהוא יופעל אחרי סוכן האורח. במהדורות שמשתמשות ב-systemctl, פועלים לפי השלבים הבאים.
כמשתמש עם הרשאות, מריצים את הפקודה הבאה כדי להוסיף קטע קוד להחלפה לשירות שלא פועל בצורה תקינה – לדוגמה, שרת Apache HTTP ב-Debian יהיה
apache2:systemctl edit YOUR_SERVICE
בעורך הטקסט, מוסיפים את השורות הבאות. חשוב להוסיף את השורות מעל השורה
Lines below this comment will be discarded.[Unit] After=google-guest-agent.service
טווחי ה-IP המשניים שלי לא מופיעים
טווחים משניים של כתובות IP לא מופיעים כרשתות משנה רגילות. כדי לוודא שטווח כתובות ה-IP המשני של רשת המשנה נוצר, משתמשים בפקודה gcloud compute networks subnets describe.
יוצרים רשת משנה.
gcloud compute networks subnets create my-subnet \ --region us-central1 \ --network my-network \ --range 10.9.0.0/16 \ --secondary-range secondaryrange1=172.16.0.0/12הפלט אמור להיראות כך:
Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/regions/us-central1/subnetworks/my-subnet]. NAME REGION NETWORK RANGE my-subnet us-central1 my-network 10.9.0.0/16
מציגים את רשימת רשתות המשנה.
gcloud compute networks subnets list
הפלט אמור להיראות כך:
NAME REGION NETWORK RANGE my-subnet us-central1 my-network 10.9.0.0/16
כדי לראות את הטווחים המשניים, אפשר לקבל פרטים על רשת משנה.
gcloud compute networks subnets describe my-subnet --region us-central1
הפלט אמור להיראות כך:
... ipCidrRange: 10.9.0.0/16 ... secondaryIpRanges: - ipCidrRange: 172.16.0.0/12 rangeName: secondaryrange1 ...
הטווח המשני של רשת המשנה שצוין לא קיים
כשיוצרים מכונה וירטואלית, אם מופיעה שגיאה שאומרת שהטווח המשני לא קיים, צריך לוודא את הדברים הבאים:
- לרשת המשנה יש טווח משני עם השם שצוין.
- אתם יוצרים את המכונה הווירטואלית ברשת המשנה שיש לה טווח משני.
אפשר לראות את השגיאה הזו על ידי הרצת הפקודות הבאות:
יוצרים רשת משנה עם טווח משני.
gcloud compute networks subnets create my-subnet \ --region us-central1 \ --network my-network \ --range 10.9.0.0/16 \ --secondary-range secondaryrange1=172.16.0.0/12הפלט אמור להיראות כך:
Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/regions/us-central1/subnetworks/my-subnet]. NAME REGION NETWORK RANGE my-subnet us-central1 my-network 10.9.0.0/16
יצירת מכונה ברשת אחרת, כמו רשת ברירת המחדל, במקום ברשת המשנה החדשה.
gcloud compute instances create instance-1 \ --zone us-central1-a \ --network defaultהפלט אמור להיראות כך:
Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/zones/us-central1-a/instances/instance-1]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS instance-1 us-central1-a n1-standard-1 10.128.0.2 47.82.96.9 RUNNING
מנסים להקצות טווח כתובות IP חלופיות מרשת המשנה שנוצרה בשלב 1. הפקודה נכשלת כי הטווח המשני נמצא בתת-רשת שונה מהמופע.
gcloud compute instances network-interfaces update instance-1 \ --zone us-central1-a \ --aliases secondaryrange1:172.16.0.10/32הפלט אמור להיראות כך:
ERROR: (gcloud.compute.instances.network-interfaces.update) HTTPError 400: Invalid value for field 'resource.aliasIpRanges[0].subnetworkRangeName': 'secondaryrange'. The specified subnetwork secondary range does not exist.
יוצרים עוד מכונה, והפעם הממשק שלה נמצא ברשת המשנה שנוצרה בשלב 1.
gcloud compute instances create instance-2 \ --zone us-central1-a \ --network-interface subnet=my-subnetהפלט אמור להיראות כך:
Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/zones/us-central1-a/instances/instance-2]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS instance-2 us-central1-a n1-standard-1 10.9.0.2 38.74.204.89 RUNNING
מוסיפים טווח כתובות IP חלופיות לממשק. הפעם הפקודה מצליחה כי הממשק והטווח המשני נמצאים באותה תת-רשת.
gcloud compute instances network-interfaces update instance-2 \ --zone us-central1-a \ --aliases secondaryrange1:172.16.0.10/32הפלט אמור להיראות כך:
Updating network interface [nic0] of instance [instance-2]...done.
אי אפשר להוסיף ולהסיר טווחי כתובות IP משניים באותה בקשה
אי אפשר להוסיף ולהסיר טווחי כתובות IP משניים של תת-רשת באותה פקודה. פקודות ה-CLI של gcloud להוספה ולהסרה של טווחים משניים שומרות את הטווחים הקיימים שלא משתנים.
כדי להוסיף ולהסיר טווחים, מריצים את שתי הפקודות בנפרד.
gcloud compute networks subnets update SUBNET_NAME \
--add-secondary-ranges RANGE_NAME_1=RANGE_CIDR_1,RANGE_NAME_2=RANGE_CIDR_2,...
gcloud compute networks subnets update SUBNET_NAME \
--remove-secondary-ranges RANGE_NAME_1,RANGE_NAME_2,...
כדי לקבל מידע נוסף על הפקודה הזו, משתמשים בפקודה gcloud compute networks subnets update --help.
אי אפשר להוסיף ולהסיר טווחי כתובות IP של כינויים בו-זמנית
אי אפשר להוסיף ולהסיר טווחים של כתובות IP של כינוי למכונה וירטואלית באותה בקשה. כדי להוסיף את הטווח החדש, צריך להסיר במפורש את הטווח הקיים.
הפקודה של ה-CLI של gcloud לעדכון טווחי כתובות IP של כינויים לא שומרת את הטווחים הקיימים, ולכן השמטה של טווח מסוים נחשבת כבקשה למחיקת הטווח הזה.
לדוגמה, אם למכונה הווירטואלית הנוכחית יש טווח של כתובות IP וירטואליות 10.9.27.0/24, והטווח החדש המבוקש הוא /24, הפקודה לבקשת /24 תידחה כי היא תפורש כהסרה של 10.9.27.0/24 והוספה של /24.
דוגמה:
יוצרים טווח כתובות IP חלופיות.
gcloud compute instances create vm --network-interface "subnet=s1,aliases=10.9.27.0/24"
מנסים להוסיף את
/24בלי לציין את הטווח הקיים. מוצגת שגיאה.gcloud compute instances network-interfaces update vm --aliases "/24" ERROR: (gcloud.compute.instances.network-interfaces.update) HTTPError 400: Invalid value for field 'resource. aliasIpRanges': ''. Cannot simultaneously add and remove alias IP ranges.
מעדכנים את המכונה הווירטואלית כך שלא יהיה לה טווח כתובות IP חלופיות.
gcloud compute instances network-interfaces update vm --aliases "" Updating network interface [nic0] of instance [vm]...done.מוסיפים את טווח כתובות ה-IP החדש של הכינוי.
gcloud compute instances network-interfaces update vm --aliases "/24" Updating network interface [nic0] of instance [vm]...done.
כדי לקבל מידע נוסף על הפקודה הזו, משתמשים בפקודה gcloud compute instances network-interfaces update --help.
תגי מקור וחשבונות שירות של מקור בכלל חומת אש
חומת אש של חשבון שירות מקור ותגי מקור מתרחבים רק לכתובות IP של רשתות ראשיות של מופעים תואמים, ולא חלים על כתובות IP של כינויים של מופעים תואמים. לכן, כלל בחומת אש שמבוסס על תגי מקור לא משפיע על תעבורה מכתובת IP של כינוי מופע. אפשר להוסיף כתובות IP של כינוי לכללי חומת האש כטווחים של כתובות מקור או יעד.
בעיות במכונות וירטואליות עם כמה ממשקים וטווחים של כתובות IP עם כינוי
אפשר לעיין במאמר בנושא פתרון בעיות במכונות וירטואליות עם כמה ממשקי רשת.
הפעלת כינוי לכתובת IP בתמונות Google Cloud משביתה את cbr0 הגשר באשכולות Kubernetes בניהול עצמי
בתמונות שסופקו על ידי Google, סוכן האורח של Google יוצר מסלולים מקומיים לטווחי כתובות IP של כינויים. באשכולות Kubernetes בניהול עצמי, צריך להגדיר את סוכן האורח של Google כך שהוא לא ייצור מסלולים מקומיים לטווחים של כתובות IP של כינויים. השלב הזה לא נדרש באשכולות GKE כי GKE משבית את היצירה של מסלולים מקומיים לטווחים של כתובות IP של כינויים בתמונות הצומת שלו.
תסמינים:
ל-Pods של Kubernetes אין יותר גישה לרשת אם המסלול המקומי שנוצר על ידי Guest agent מסיר את טווח ה-IP של הכינוי מהממשק
cbr0.תיעוד חבילות במכשיר הגישור של Linux (
tcpdump -ni cbr arp) מראה שאין תגובות ARP מהממשקcbr0, למרות שהממשק הזה פעיל.בדיקה של טבלת הניתוב המקומית (
ip route show table local) מגלה שטווח כתובות ה-IP של כתובת האימייל החלופית הוקצה לממשק הרשת הראשי (לדוגמה,eth0אוens4) במקום לממשק הגשר של הקונטיינר (cbr0).
הפתרון:
מריצים את הפקודה המתאימה שמפורטת במאמר Installed packages for the guest environment כדי לבדוק אם המכונה הווירטואלית של הצומת מריצה את Google guest agent או חבילה קודמת של Compute Engine.
אם מכונת ה-VM של הצומת לא מריצה את סוכן האורח של Google, צריך להתקין את סוכן האורח או להשתמש בתמונה עדכנית יותר שסופקה על ידי Google.
מגדירים את סוכן האורח של Google כך שידלג על יצירת מסלולים מקומיים לטווחי כתובות IP של כינויים ולכללי העברה.
עריכה של
/etc/default/instance_configs.cfg, הגדרהip_forwarding=falseבקטע[NetworkInterfaces]. אפשר ליצור את הקטע[NetworkInterfaces]אם הוא עדיין לא מופיע בקובץinstance_configs.cfg.מבצעים אחת מהמשימות הבאות:
מפעילים מחדש את ה-VM של הצומת.
מפעילים מחדש את השירות
google-guest-agent.serviceועורכים את טבלת הניתוב המקומית.כדי להפעיל מחדש את שירות
google-guest-agent.service, מריצים את הפקודהsudo systemctl restart google-guest-agent.service. לאחר מכן עורכים את טבלת הניתוב המקומית כדי להסיר את כל הרשומות של טווחי כתובות ה-IP של הכינוי – למשל:sudo ip route del local ALIAS_IP_RANGE dev DEVICE_IDENTIFIER
מחליפים את מה שכתוב בשדות הבאים:
-
ALIAS_IP_RANGE: טווח כתובות ה-IP של הכינוי. -
DEVICE_IDENTIFIER: המזהה של ממשק הרשת, לדוגמה:ens4אוeth0.
-
מידע נוסף זמין במאמר בנושא הגדרה במאמרי העזרה של Google Guest Agent.