במאמר הזה מוסבר איך להציג את ממשקי הרשת, הרשתות, רשתות המשנה וכתובות ה-IP של מכונת חישוב.
לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS
gcloud
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להצגת הגדרות הרשת של מכונה, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) או אדמין רשת של Compute (roles/compute.networkAdmin) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות לצפייה בהגדרת הרשת של מכונה. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להציג את הגדרות הרשת של מכונה, צריך את ההרשאות הבאות:
-
הצגת הגדרות הרשת של מכונה:
compute.instances.getבמכונה -
כדי לראות את כתובות ה-IP של מופע:
compute.instances.listבפרויקט
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
הצגת כתובות IP
אפשר לראות את כתובות ה-IP הפנימיות והחיצוניות של המכונה. כתובות ה-IP יכולות להיות כתובות IPv4 או IPv6.
המסוף
נכנסים לדף VM instances במסוף Cloud de Confiance .
אופציונלי: משתמשים בתיבה Filter כדי להגביל את מספר המופעים שמוצגים.
אם למכונה יש כתובת IP חיצונית, היא מופיעה בעמודה External IP.
אם העמודה External IP ריקה, למכונה אין כתובת IP חיצונית. אם למופע אין כתובת IP חיצונית, אפשר להקצות כתובת כזו.
בהתאם לאפשרויות להצגת עמודות, יכול להיות שתראו יותר עמודות או פחות עמודות מאשר בתמונה הקודמת.
gcloud
יש שתי פקודות שאפשר להשתמש בהן כדי לראות את כתובות ה-IP של מכונה:
-
gcloud compute instances listמציג את כל כתובות ה-IP שבהן נעשה שימוש במופע של Compute, בין אם הן סטטיות או זמניות. -
gcloud compute addresses listמציג את כל כתובות ה-IP השמורות שמוקצות למופע של Compute.
במשימה הזו נראה איך צופים בכתובות IP באמצעות פקודות gcloud compute instances.
כדי לראות את כתובות ה-IP הפנימיות והחיצוניות של המכונות הווירטואליות, משתמשים בפקודה
gcloud compute instances list.gcloud compute instances list
אפשר להוסיף את הפסוקית
--filterכדי להגביל את מספר המכונות שמוחזרות על ידי הפקודה, למשל--filter='zone:us-central1-c'.הפלט אמור להיראות כך:
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS webapp1 us-central1-c c3-highmem-88 true 192.0.2.11 RUNNING my-instance us-central1-c n4-standard-2 192.0.2.126 203.0.113.6 RUNNING my-dual-stack us-central1-a e2-micro 192.0.2.54 203.0.113.7 RUNNING 2001:db8:2:2:2:2:2:2/96 new-ipv6-only us-central1-a n4-standard-2 2001:db8:1:1:1:1:1:1/96 RUNNINGאם השדה 'כתובת IP חיצונית' ריק, סימן שלא הוגדרה כתובת IP מהסוג הזה למכונה. אפשר להקצות כתובת IP.
כדי להציג את כתובת ה-IP הפנימית או החיצונית של מופע ספציפי, משתמשים בפקודה
gcloud compute instances describeעם הדגל--formatכדי לסנן את הפלט.כתובות פנימיות
כדי להציג את כתובת ה-IP הפנימית של מופע ספציפי, משתמשים באחת מהפקודות הבאות:
כתובות IPv4:
gcloud compute instances describe INSTANCE_NAME \ --zone=ZONE \ --format='get(networkInterfaces[0].networkIP)'192.0.2.11
כתובות IPv6:
gcloud compute instances describe INSTANCE_NAME \ --zone=ZONE \ --format='get(networkInterfaces[0].ipv6Address)'2001:db8:2:2:2:2:2:2
כתובות חיצוניות
כדי להציג את כתובת ה-IP החיצונית של מכונה ספציפית, משתמשים באחת מהפקודות הבאות:
כתובות IPv4:
gcloud compute instances describe INSTANCE_NAME \ --zone=ZONE \ --format='get(networkInterfaces[0].accessConfigs[0].natIP)'203.0.113.6
כתובות IPv6:
gcloud compute instances describe INSTANCE_NAME \ --zone=ZONE \ --format='get(networkInterfaces[0].ipv6AccessConfigs[0].externalIpv6)'2001:db8:3:3:3:3:3:3
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של המופע שרוצים להציג את כתובת ה-IP הפנימית או כתובת ה-IP החיצונית שלו -
ZONE: השם של האזור שבו נמצאת המכונה
אם הפקודה לא מחזירה כתובת IP, סימן שלא הוגדרה למכונה כתובת IP חיצונית.
REST
שולחים בקשת GET אל ה-method instances.get.
אפשר להוסיף לפרמטר $fields של השאילתה את הבקשה כדי להגביל את הפלט רק לשדות שמעניינים אתכם.
GET https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/INSTANCE_NAME$fields=name,networkInterfaces.networkIP,networkInterfaces.accessConfigs.natIP,networkInterfaces.ipv6AccessConfigs.externalIpv6
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NAME: השם של הפרויקט שמכיל את המכונה -
ZONE: האזור של המכונה שרוצים לשלוח אליה שאילתה -
INSTANCE_NAME: השם של משאב המכונה להחזרה
אם לא מוגדרות כתובות IP, השדה הזה לא יופיע בפלט. אם מדובר במכונת חישוב שמשתמשת ברשת עם תמיכה כפולה ב-IPv4 ו-IPv6 עם כתובת IPv6 חיצונית, גוף התשובה ייראה כך:
{
"name": "my-dual-stack-vm",
"networkInterfaces": [
{
"networkIP": "10.0.0.2",
"accessConfigs": [
{
"natIP": "104.155.21.204"
}
],
"ipv6AccessConfigs": [
{
"externalIpv6": "2600:1900:4010:8b2:0:0:0:0"
}
]
}
]
}
השדות הבאים מכילים את המידע הנדרש:
-
networkIP: כתובת ה-IPv4 הפנימית שהוקצתה -
natIP: כתובת ה-IPv4 החיצונית שהוקצתה -
externalIpv6: כתובת ה-IPv6 החיצונית שהוקצתה
Python
Java
הצגת ממשקי רשת של מכונה
לכל מכונת חישוב יש לפחות ממשק רשת וירטואלי אחד (vNIC), ולכל ממשק רשת יש תת-רשת ייחודית ברשת VPC. אפשר להשתמש בשיטות הבאות כדי לראות את ממשקי הרשת המוגדרים, ממשקי רשת דינמיים (NIC) ומאפיינים של ממשקי הרשת של מכונה.
המסוף
נכנסים לדף VM instances במסוף Cloud de Confiance .
אופציונלי: משתמשים בתיבה Filter כדי להגביל את מספר המופעים שמוצגים.
לוחצים על שם המכונה שרוצים לבדוק.
בקטע Networking, מתחת לNetwork interfaces, מופיעים הפרטים הבאים:
- שמות של ממשקי רשת (NIC) של המופע, לדוגמה
nic0אוnic0.14 - רשת ה-VPC ותת-הרשת שמשויכות לכל כרטיס רשת
- מזהה VLAN ל-NIC דינמי
- סוג ממשק הרשת
- כתובת IP פנימית וכתובת IP חיצונית ראשית
- סוג סטאק IP
- שמות של ממשקי רשת (NIC) של המופע, לדוגמה
אפשר ללחוץ על שם כרטיס הרשת כדי לפתוח את הדף Network interface details (פרטי כרטיס הרשת). בדף הזה אפשר לראות את חומות האש והנתיבים שבהם משתמש כרטיס ה-NIC, וגם לבצע בדיקת קישוריות לכרטיס ה-NIC.
gcloud
כדי להציג את ממשקי הרשת (NIC) של מכונת Compute, משתמשים בפקודה gcloud compute instances describe.
אפשר להוסיף לפקודה את האפשרות --format כדי להגביל את המידע שמוחזר לשדות ספציפיים ולשנות את אופן ההצגה שלו. לדוגמה:
gcloud compute instances describe INSTANCE_NAME --zone=ZONE \
--format="flattened(name,networkInterfaces[].name, networkInterfaces[].network.basename(), networkInterfaces[].stackType, networkInterfaces[].nicType)"
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של המכונה שרוצים להציג -
ZONE: האזור של המכונה שרוצים להציג
הפלט אמור להיראות כך:
name: test-instance networkInterfaces[0].name: nic0 networkInterfaces[0].network: default networkInterfaces[0].nicType: GVNIC networkInterfaces[0].stackType: IPV4_ONLY networkInterfaces[1].name: nic1 networkInterfaces[1].network: prod-ipv6 networkInterfaces[1].nicType: GVNIC networkInterfaces[1].stackType: IPV4_IPV6 networkInterfaces[1].name: nic1.2 networkInterfaces[1].network: alt-ipv6-net networkInterfaces[1].nicType: GVNIC networkInterfaces[1].stackType: IPV4_IPV6 networkInterfaces[1].parentNicName: nic1
REST
יוצרים בקשת GET אל ה-method instances.get.
אפשר להוסיף פרמטר של מחרוזת שאילתה $fields לבקשה כדי להגביל את הפלט רק לנכס networkInterfaces.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את המכונה -
ZONE: האזור של המכונה -
INSTANCE_NAME: השם של המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/INSTANCE_NAME?$fields=networkInterfaces
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"networkInterfaces": [
{
"kind": "compute#networkInterface",
"network": "https://www.s3nsapis.fr/compute/v1/projects/my-project/global/networks/network-name-1",
"subnetwork": "https://www.s3nsapis.fr/compute/v1/projects/my-project/regions/us-central1/subnetworks/subnet-name-1",
"networkIP": "10.128.0.15",
"name": "nic0",
"accessConfigs": [
{
"kind": "compute#accessConfig",
"type": "ONE_TO_ONE_NAT",
"name": "External NAT",
"networkTier": "PREMIUM"
}
],
"fingerprint": "mBy9xvkWA9M=",
"stackType": "IPV4_ONLY",
"nicType": "GVNIC"
},
{
"kind": "compute#networkInterface",
"network": "https://www.s3nsapis.fr/compute/v1/projects/my-project/global/networks/network-name-2",
"subnetwork": "https://www.s3nsapis.fr/compute/v1/projects/my-project/regions/us-central1/subnetworks/subnet-name-2",
"networkIP": "10.0.20.2",
"name": "nic1",
"accessConfigs": [
{
"kind": "compute#accessConfig",
"type": "ONE_TO_ONE_NAT",
"name": "External NAT",
"networkTier": "PREMIUM"
}
],
"ipv6AccessConfigs": [
{
"kind": "compute#accessConfig",
"type": "DIRECT_IPV6",
"name": "external-ipv6",
"externalIpv6": "2600:1900:4000:8447:0:0:0:0",
"externalIpv6PrefixLength": 96,
"publicPtrDomainName": "",
"networkTier": "PREMIUM"
}
],
"fingerprint": "rx6hfNA94f4=",
"stackType": "IPV4_IPV6",
"ipv6AccessType": "EXTERNAL",
"nicType": "GVNIC",
"parentNicName": "nic1"
},
{
"kind": "compute#networkInterface",
"network": "https://www.s3nsapis.fr/compute/v1/projects/my-project/global/networks/network-name-3",
"subnetwork": "https://www.s3nsapis.fr/compute/v1/projects/my-project/regions/us-central1/subnetworks/subnet-name-3",
"networkIP": "10.0.26.2",
"name": "nic1.1",
"accessConfigs": [
{
"kind": "compute#accessConfig",
"type": "ONE_TO_ONE_NAT",
"name": "External NAT",
"networkTier": "PREMIUM"
}
],
"ipv6AccessConfigs": [
{
"kind": "compute#accessConfig",
"type": "DIRECT_IPV6",
"name": "external-ipv6",
"externalIpv6": "2600:1900:4000:8450:0:0:0:0",
"externalIpv6PrefixLength": 96,
"publicPtrDomainName": "",
"networkTier": "PREMIUM"
}
],
"fingerprint": "rx6hfNA94f4=",
"stackType": "IPV4_IPV6",
"ipv6AccessType": "EXTERNAL",
"nicType": "GVNIC",
"parentNicName": "nic1"
}
]
}
הצגת כל מופעי המחשוב ברשת
אפשר להשתמש באחת מהשיטות הבאות כדי לראות את כל המכונות הווירטואליות ברשת מסוימת.
המסוף
נכנסים לדף VPC networks במסוף Cloud de Confiance .
אופציונלי: משתמשים בתיבה Filter כדי להגביל את מספר הרשתות שמוצגות.
לוחצים על שם הרשת שרוצים לראות את רשימת המכונות הווירטואליות שלה.
בוחרים בכרטיסייה Instances כדי לראות את המכונות ברשת הזו.
gcloud
כדי לראות את מכונות ה-Compute שמשתמשות ברשת ספציפית, משתמשים בפקודה gcloud compute instances list.
אפשר להשתמש בדגל --filter כדי להציג רק את המופעים שמשתמשים ברשת ספציפית.
אפשר גם להשתמש בדגל --format כדי להגביל את התוצאות ולעצב אותן, למשל:
gcloud compute instances list \
--filter 'networkInterfaces[].network:NETWORK_NAME' \
--format="table(name:sort=1,machineType.basename(),zone.basename(),networkInterfaces[].subnetwork)"
הפלט אמור להיראות כך:
NAME: c2-tier1-multinic MACHINE_TYPE: c2-standard-30 ZONE: us-central1-c SUBNETWORK: ['https://www.s3nsapis.fr/compute/v1/projects/my-project/regions/us-central1/subnetworks/default', 'https://www.s3nsapis.fr/compute/v1/projects/my-project/regions/us-central1/subnetworks/webapps-external-subnet']
NAME: c3-with-lssd MACHINE_TYPE: c3-standard-4-lssd ZONE: us-central1-a SUBNETWORK: ['https://www.s3nsapis.fr/compute/v1/projects/my-project/regions/us-central1/subnetworks/default']
NAME: example-instance3 MACHINE_TYPE: n2-custom-2-163840-ext ZONE: us-central1-b SUBNETWORK: ['https://www.s3nsapis.fr/compute/v1/projects/my-project/regions/us-central1/subnetworks/default']
NAME: n4-test-windows MACHINE_TYPE: n4-standard-2 ZONE: us-central1-c SUBNETWORK: ['https://www.s3nsapis.fr/compute/v1/projects/my-project/regions/us-central1/subnetworks/default']
קביעה אם רשת Tier_1 מופעלת
כדי לבדוק אם הביצועים של הרשת ברמה 1 לכל מכונה וירטואלית מופעלים במכונה, אפשר להשתמש באחת מהשיטות הבאות.
המסוף
נכנסים לדף VM instances במסוף Cloud de Confiance .
אופציונלי: משתמשים בתיבה Filter כדי להגביל את מספר המופעים שמוצגים.
לוחצים על שם המכונה שרוצים לבדוק.
בקטע Networking (רשת), בודקים את הערך של Total egress bandwidth tier (רמת רוחב הפס הכוללת של התעבורה היוצאת):
-
TIER_1: מופעלת רשת Tier_1. -
-: Tier_1 networking is not enabled.
-
gcloud
כדי להציג את ההגדרה networkPerformanceConfig של מכונה, משתמשים בפקודה gcloud compute instances describe.
אפשר להוסיף לפקודה את האפשרות --format כדי להגביל את המידע שמוחזר לשדות ספציפיים ולשנות את אופן ההצגה שלו. לדוגמה:
gcloud compute instances describe INSTANCE_NAME \
--zone=ZONE \
--format="text(name, networkPerformanceConfig)"
אם לא הוגדרה רשת Tier_1 עבור המופע, השדה networkPerformanceConfig לא ייכלל בפלט. אם הופעלה רשת Tier_1 עבור מופע, הפלט דומה לזה:
name: c2-tier1-multinic networkPerformanceConfig.totalEgressBandwidthTier: TIER_1
REST
יוצרים בקשת GET אל ה-method instances.get.
אם מוסיפים את הפרמטר $fields של השאילתה לבקשה, אפשר להגביל את הפלט רק לשדות name, networkPerformanceConfig ו-nicType.
GET https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/INSTANCE_NAME?$fields=name,networkPerformanceConfig,networkInterfaces.nicType
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NAME: השם של הפרויקט שמכיל את המכונה -
ZONE: האזור של המכונה שרוצים לשלוח אליה שאילתה -
INSTANCE_NAME: השם של משאב המכונה להחזרה
אם לא הוגדרה רשת Tier_1 עבור המופע, השדה networkPerformanceConfig לא ייכלל בפלט. אם הופעלה רשת Tier_1 עבור מופע, הפלט דומה לזה:
{
"name": "c2-tier1-multinic",
"networkInterfaces": [
{
"nicType": "GVNIC"
},
{
"nicType": "GVNIC"
}
],
"networkPerformanceConfig": {
"totalEgressBandwidthTier": "TIER_1"
}
}
המאמרים הבאים
- מידע על מושגים שקשורים לממשק רשת ולכתובת IP ב-Compute Engine זמין במאמר סקירה כללית על רשתות למכונות וירטואליות
- יצירת מכונות וירטואליות עם כמה ממשקי רשת
- הוספת כרטיסי רשת דינמיים למופע
- השוואה לשוק של רוחב פס גבוה יותר ברשת למכונות וירטואליות
- אופטימיזציה של זמן האחזור באפליקציות באמצעות איזון עומסים