הפעלת רשת VPC לצריכת תנועת multicast

בדף הזה מוסבר איך להגדיר משאבים ב-Google Cloud כדי שצרכני multicast ברשת VPC יוכלו לקבל תנועת multicast מדומיין multicast נתון ומטווח קבוצות אחד או יותר.

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

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

מוודאים שההגדרות של דומיין ה-multicast, טווח הקבוצות והיצרן הושלמו.

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

הגדרת הפרויקט

מגדירים את ה-CLI של gcloud כך שישתמש בפרויקט של רשת ה-VPC של צרכן ה-multicast. לחלופין, אפשר להעביר את הדגל --project=PROJECT לכל פקודה בתהליכים הבאים.

    gcloud config set project PROJECT

מחליפים את PROJECT במזהה הפרויקט.

הפעלת ממשקי ה-API

אם עדיין לא עשיתם את זה, הפעילו את ממשקי ה-API הבאים.

כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם אין לכם את ההרשאה הזו, בקשו מהאדמין של ניהול הזהויות והרשאות הגישה (IAM) להקצות לכם את התפקיד "אדמין של שימוש בשירות" (roles/serviceusage.serviceUsageAdmin).

  1. כדי ליצור משאבי multicast, צריך להפעיל את ה-API של networkservices:

        gcloud services enable networkservices.googleapis.com
    
  2. כדי ליצור VPC spoke ב-Network Connectivity Center ‏(NCC), צריך להפעיל את ה-API של networkconnectivity:

        gcloud services enable networkconnectivity.googleapis.com
    

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

כדי לקבל את ההרשאות שדרושות להגדרת משאבי צרכן של multicast, צריך לבקש מהאדמין להקצות לכם את התפקידים הבאים ב-IAM:

  • כדי ליצור ולנהל משאבי רשת: אדמין של רשת Compute‏ (compute.networkAdmin) בפרויקט
  • כדי ליצור ולנהל כללים של חומת אש: אדמין אבטחה ב-Compute‏ (compute.securityAdmin) בפרויקט
  • כדי ליצור רכיבי Spoke של NCC: אדמין של Spoke‏ (networkconnectivity.spokeAdmin) בפרויקט
  • כדי להציע חיבור של רשתות Spoke ב-NCC ל-Hub שמשויך לדומיין Multicast: משתמש בקבוצה (networkconnectivity.groupUser) בפרויקט של האדמין של ה-Multicast
  • כדי ליצור משאבי Multicast: אדמין Multicast‏ (networkservices.multicastAdmin) בפרויקט

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

יצירת רשת VPC והוספה שלה ל-hub

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

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

יצירת רשת VPC

בקטע הזה מוסבר איך ליצור רשת VPC לצריכת תנועת multicast.

מידע נוסף על יצירת רשתות VPC זמין במאמר יצירה וניהול של רשתות VPC.

gcloud

  1. יוצרים רשת VPC באמצעות הפקודה compute networks create.

    gcloud compute networks create MULTICAST_CONSUMER_NETWORK --subnet-mode=custom
    

    מחליפים את MULTICAST_CONSUMER_NETWORK בשם של רשת הצרכן של ה-multicast.

  2. מוסיפים תת-רשת אחת או יותר לאירוח צרכני multicast באמצעות הפקודה compute networks subnets create.

    gcloud compute networks subnets create SUBNET \
       --network=MULTICAST_CONSUMER_NETWORK \
       --range=PRIMARY_RANGE \
       --region=REGION
    

    מחליפים את הערכים הבאים:

    • ‫SUBNET: השם של תת-הרשת
    • ‫MULTICAST_CONSUMER_NETWORK: השם של רשת הצרכן של ה-multicast שיצרתם קודם
    • ‫PRIMARY_RANGE: טווח ה-IPv4 הראשי של רשת המשנה, בסימון CIDR. מידע נוסף זמין במאמר טווחי רשתות משנה של IPv4.
    • ‫REGION: האזור ( Google Cloud ) שבו נוצרת תת-הרשת החדשה. האזור חייב לתמוך ב-multicast, כמו us-east5.

הוספת כללים לחומת האש

בקטע הזה מוסבר איך ליצור כללי חומת אש ברשת ה-VPC של הצרכן של ה-multicast, בשביל תעבורת הנתונים של ה-multicast.

כדי ליצור כללים נוספים של חומת האש, כמו ל-SSH, קראו את המאמר יצירת כללים של חומת האש ב-VPC.

הפקודות מאוכלסות מראש בשמות של כללי חומת אש לדוגמה. חשוב לזכור שהשם של כלל חומת האש חייב להיות ייחודי בפרויקט.

אישור תנועת multicast נכנסת

gcloud

כדי ליצור כלל חומת אש שמאפשר תעבורת נתונים נכנסת (ingress) ב-multicast לרשת ה-VPC מרשת ה-multicast של היצרן, משתמשים בפקודה compute firewall-rules create.

gcloud compute firewall-rules create allow-multicast-traffic-ingress \
   --direction=INGRESS \
   --priority=1000 \
   --network=MULTICAST_CONSUMER_NETWORK \
   --action=ALLOW \
   --rules=udp[:PORT[-PORT]] \
   --source-ranges=MULTICAST_PRODUCER_RANGE \
   --destination-ranges=MULTICAST_GROUP_IP_RANGES

מחליפים את הערכים הבאים:

  • ‫MULTICAST_CONSUMER_NETWORK: השם של רשת הצרכן של ה-multicast שיצרתם קודם
  • ‫PORT: רשימת היציאות שכלל חומת האש חל עליהן. Google Cloud משתמש ב-udp לתנועת multicast. אפשר לציין יציאה או טווח יציאות אחרי הפרוטוקול שעליו חל כלל חומת האש, כדי להחיל את הכלל על תנועה דרך יציאות ספציפיות. אם לא מציינים יציאה או טווח יציאות, החיבורים מתבצעים דרך כל הטווחים.

    לדוגמה, מציינים את הערך --rules=udp:1234 כדי לאפשר תנועת multicast דרך יציאה 1234.

  • ‫MULTICAST_PRODUCER_RANGE: טווח ה-CIDR של רשת ה-VPC של מפיק ה-multicast, שמשמש להקצאת כתובות IP למפיקי multicast. אפשר גם להשמיט את הדגל --source-ranges, ואז מקור תעבורת הנתונים הנכנסת מוגדר לכל כתובת IPv4‏ (0.0.0.0/0).

  • ‫MULTICAST_GROUP_IP_RANGES: טווחי ה-CIDR של קבוצות ה-multicast שאליהן יצרני ה-multicast שולחים תנועה. הטווח הזה חייב להיות כתובת מסוג Class D. לדוגמה, אפשר להשתמש ב-224.0.0.0/4 כדי לאפשר את כל תנועת ה-multicast.

אישור שאילתת IGMP נכנסת

gcloud

כדי ליצור כלל חומת אש שמאפשר תעבורת נתונים נכנסת של שאילתות IGMP לרשת ה-VPC של צרכן ה-multicast מטווח הרשת של צרכן ה-multicast, משתמשים בפקודה compute firewall-rules create.

הפקודה הבאה כוללת:

  • --destination-ranges=224.0.0.1/32 כדי לציין את כתובת ה-IP של קבוצת ה-multicast שמייצגת את כל המארחים ברשת המשנה הזו.
  • --rules=2 כדי לציין IGMP.
gcloud compute firewall-rules create allow-multicast-igmp-ingress \
    --direction=INGRESS \
    --priority=1000 \
    --network=MULTICAST_CONSUMER_NETWORK \
    --action=ALLOW \
    --rules=2 \
    --source-ranges=MULTICAST_CONSUMER_RANGE \
    --destination-ranges=224.0.0.1/32

מחליפים את הערכים הבאים:

  • ‫MULTICAST_CONSUMER_NETWORK: השם של רשת הצרכן של ה-multicast שיצרתם קודם
  • ‫MULTICAST_CONSUMER_RANGE: טווח ה-CIDR של רשת הצרכנים של ה-multicast, שמשמש להקצאת כתובות IP לצרכני ה-multicast.

הרשאה ל-IGMP יוצא

בקטע הזה מוסבר איך ליצור כלל של חומת אש שמאפשר תעבורת נתונים יוצאת של IGMP, כדי שתוכלו לשלוח הודעות IGMP JOIN ו-LEAVE מצרכני multicast.

לכל רשתות ה-VPC יש כלל ברירת מחדל שמאפשר תעבורה יוצאת ב-IPv4, עם העדיפות הנמוכה ביותר (65535). אם אין כלל בעדיפות גבוהה יותר שחוסם במפורש תעבורת נתונים יוצאת, אתם לא צריכים לבצע את השלב הזה. מידע נוסף זמין במאמר כללים משתמעים.

gcloud

כדי ליצור כלל חומת אש שמאפשר תעבורת IGMP יוצאת של multicast מרשת ה-VPC של צרכן ה-multicast, משתמשים בפקודה compute firewall-rules create.

gcloud compute firewall-rules create allow-multicast-igmp-egress \
    --direction=EGRESS \
    --priority=1000 \
    --network=MULTICAST_CONSUMER_NETWORK \
    --action=ALLOW \
    --rules=2 \
    --destination-ranges=RANGES_FOR_JOIN_AND_LEAVE

מחליפים את הערכים הבאים:

  • ‫MULTICAST_CONSUMER_NETWORK: השם של רשת הצרכן של ה-multicast שיצרתם קודם
  • ‫RANGES_FOR_JOIN_AND_LEAVE: רשימה מופרדת בפסיקים של:

    • טווחי ה-CIDR של קבוצות ה-multicast שצרכני ה-multicast צריכים להצטרף אליהן. אתם צריכים להשתמש בטווחי כתובות מסוג Class D.
    • כתובת ה-IP של כל הנתבים: 224.0.0.2/32. הטווח הזה נדרש כדי לשלוח הודעות עזיבה של IGMP.

    לחלופין, אפשר לציין 224.0.0.0/4 כדי לאפשר את כל תנועת ה-multicast.

הוספת רשת ה-VPC ל-NCC hub

בקטע הזה מוסבר איך להוסיף את רשת ה-VPC למרכז ה-NCC שיצר האדמין של ה-multicast. כדי להוסיף את הרשת, יוצרים VPC spoke בקבוצת edge.

מידע נוסף זמין במאמרים טופולוגיית כוכב ויצירת VPC spoke במסמכי התיעוד של NCC.

gcloud

  1. כדי להוסיף את רשת ה-VPC כ-edge spoke לרכזת, משתמשים בפקודה network-connectivity spokes linked-vpc-network create.

      gcloud network-connectivity spokes linked-vpc-network create SPOKE_NAME \
        --hub=projects/MULTICAST_ADMIN_PROJECT/locations/global/hubs/HUB \
        --vpc-network=MULTICAST_CONSUMER_NETWORK \
        --group="edge" \
        --global \
        --include-export-ranges=INCLUDE_RANGES
    

    מחליפים את הערכים הבאים:

    • ‫SPOKE_NAME: שם ל-edge spoke
    • ‫MULTICAST_ADMIN_PROJECT: מזהה הפרויקט של האדמין של ה-multicast
    • ‫HUB: השם של מרכז ה-NCC שנוצר על ידי האדמין של ה-multicast. רשת ה-VPC של צרכן ה-multicast צריכה להיות מקושרת לאותו Hub כמו רשתות ה-VPC של מנהל ה-multicast ושל יצרן ה-multicast. במקרה הצורך, פנו לאדמין של ה-multicast כדי לקבל את שם הרכזת.

    • ‫MULTICAST_CONSUMER_NETWORK: השם של רשת הצרכן של ה-multicast שיצרתם קודם

      אפשר גם לציין את ה-URI של רשת הצרכן של ה-multicast בפורמט הבא: projects/MULTICAST_CONSUMER_PROJECT/global/networks/MULTICAST_CONSUMER_NETWORK.

    • ‫INCLUDE_RANGES: רשימה מופרדת בפסיקים של טווחי כתובות IP לייצוא ל-hub.

      כברירת מחדל, ה-spoke מייצא את כל טווחי רשתות המשנה. כדי למנוע חפיפה עם רשתות Spoke אחרות ב-Hub, אפשר לציין אילו טווחי רשתות משנה לייצא. אם אתם מציינים טווחי תת-רשתות, ודאו שאתם כוללים את הטווחים שמארחים את צרכני ה-multicast וכל טווח אחר שנדרש לתקשורת עם ה-spokes בקבוצה המרכזית, כמו לתעבורת unicast.

      Google Cloud אוסר על חפיפה בין תת-רשתות ב-VPC spokes, כמו שמתואר בקטע ייחודיות של מסלולים בתת-רשתות. מידע נוסף על שימוש במסנני ייצוא כדי למנוע חפיפה זמין במאמר קישוריות VPC עם מסנני ייצוא.

  2. פונים לאדמין של ה-multicast כדי להודיע לו שהצעתם VPC spoke ל-hub.

    אם ה-hub נמצא בפרויקט אחר, מנהל ה-multicast צריך לאשר באופן מפורש את ה-spoke לפני שהוא הופך לפעיל, אלא אם מנהל ה-multicast הוסיף את הפרויקט שלכם כפרויקט לאישור אוטומטי.

    כדי לבדוק את הסטטוס של ה-spoke אחרי שיוצרים אותו, קראו את המאמר בדיקת הסטטוס של VPC spoke.

הפעלת רשת VPC לצריכת תנועת multicast

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

הוספת רשת ה-VPC של צרכן ה-multicast לדומיין

בקטע הזה מוסבר איך מוסיפים לדומיין רשת VPC של צרכן multicast, על ידי יצירת שיוך צרכן multicast בין הרשת לדומיין.

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

gcloud

כדי להוסיף לדומיין רשת VPC של צרכן multicast, משתמשים בפקודה network-services multicast-consumer-associations create.

   gcloud network-services multicast-consumer-associations create CONSUMER_ASSOCIATION_NAME \
      --multicast-domain-activation="projects/ADMIN_PROJECT/locations/ZONE/multicastDomainActivations/DOMAIN_ACTIVATION_NAME" \
      --network="projects/MULTICAST_CONSUMER_PROJECT/locations/global/networks/MULTICAST_CONSUMER_NETWORK" \
      --location=ZONE

מחליפים את הערכים הבאים:

  • ‫CONSUMER_ASSOCIATION_NAME: שם לשיוך צרכן ה-multicast
  • ‫ADMIN_PROJECT: מזהה הפרויקט של האדמין של ה-multicast
  • ‫ZONE: אזור שבו האדמין הפעיל את דומיין ה-multicast, ושבו צריך לארח את צרכני ה-multicast
  • ‫DOMAIN_ACTIVATION_NAME: השם של הפעלת הדומיין שנוצרה על ידי האדמין של ה-multicast
  • ‫MULTICAST_CONSUMER_PROJECT ו-MULTICAST_CONSUMER_NETWORK: הפרויקט והרשת שצורכים תנועת multicast. פרויקט ורשת של מנהל ה-multicast או פרויקט ורשת נפרדים של צרכן ה-multicast, בהתאם לטופולוגיית ה-multicast של הדומיין.

API

כדי להוסיף לדומיין רשת VPC של צרכן שידור לקבוצה, משתמשים בשיטה multicastConsumerAssociations.create.

POST https://networkservices.googleapis.com/v1/projects/MULTICAST_CONSUMER_PROJECT/locations/ZONE/multicastConsumerAssociations?multicastConsumerAssociationId=CONSUMER_ASSOCIATION_NAME
{
  "multicastDomainActivation": "projects/ADMIN_PROJECT/locations/ZONE/multicastDomainActivations/DOMAIN_ACTIVATION_NAME",
  "network": "projects/MULTICAST_CONSUMER_PROJECT/locations/global/networks/MULTICAST_CONSUMER_NETWORK"
}

מחליפים את הערכים הבאים:

  • ‫CONSUMER_ASSOCIATION_NAME: שם לשיוך צרכן ה-multicast
  • ‫ADMIN_PROJECT: מזהה הפרויקט של האדמין של ה-multicast
  • ‫ZONE: אזור שבו האדמין הפעיל את דומיין ה-multicast ושבו צריך לארח צרכני multicast.
  • ‫DOMAIN_ACTIVATION_NAME: השם של הפעלת הדומיין שנוצרה על ידי האדמין של ה-multicast
  • ‫MULTICAST_CONSUMER_PROJECT ו-MULTICAST_CONSUMER_NETWORK: הפרויקט והרשת שצורכים תנועת multicast. פרויקט ורשת של מנהל ה-multicast או פרויקט ורשת נפרדים של צרכן ה-multicast, בהתאם לטופולוגיית ה-multicast של הדומיין.

הפעלת רשת ה-VPC של צרכן ה-multicast לטווח קבוצות

בקטע הזה מוסבר איך להפעיל רשת VPC של צרכן multicast לטווח קבוצות.

מבצעים את השלבים הבאים לכל טווח של קבוצת multicast ואזור שבהם רוצים לצרוך תנועת multicast.

אחרי שתשלימו את השלב הזה, צרכני ה-multicast ברשת יוכלו להצטרף לכתובות ה-IP של קבוצת ה-multicast בטווח הקבוצה שצוין, בתנאי שהגדרתם את IGMP.

gcloud

כדי להפעיל רשת VPC של צרכן multicast לטווח של קבוצת multicast, משתמשים בפקודה network-services multicast-group-consumer-activations create.

   gcloud network-services multicast-group-consumer-activations create GROUP_CONSUMER_ACTIVATION_NAME \
      --multicast-consumer-association="projects/CONSUMER_PROJECT/locations/ZONE/multicastConsumerAssociations/CONSUMER_ASSOCIATION_NAME" \
      --multicast-group-range-activation="projects/ADMIN_PROJECT/locations/ZONE/multicastGroupRangeActivations/GROUP_RANGE_ACTIVATION_NAME" \
      --location=ZONE \
      [--enable-logging | --no-enable-logging]

מחליפים את הערכים הבאים:

  • ‫GROUP_CONSUMER_ACTIVATION_NAME: שם להפעלת הצרכן של קבוצת ה-multicast
  • ‫CONSUMER_PROJECT: מזהה הפרויקט. זה יכול להיות פרויקט האדמין של ה-multicast או פרויקט נפרד של צרכן ה-multicast, בהתאם לטופולוגיה של דומיין ה-multicast.

  • ‫ZONE: האזור שבו מפעילים את רשת הצרכנים של ה-multicast. האזור צריך להיות גם אזור שבו האדמין הפעיל את טווח הקבוצות של ה-multicast.

  • ‫CONSUMER_ASSOCIATION_NAME: השם של שיוך צרכן ה-multicast שיצרתם קודם

  • ‫ADMIN_PROJECT: מזהה הפרויקט של האדמין של ה-multicast

  • ‫GROUP_RANGE_ACTIVATION_NAME: השם של הפעלת טווח הקבוצות שנוצרה על ידי מנהל ה-multicast.

  • ‫--[no-]enable-logging: אופציונלי, קובע אם רישום ביומן של אירועים לגבי חברות בקבוצות מופעל.

    • כדי להפעיל את הרישום ביומן, משתמשים ב---enable-logging.
    • (ברירת המחדל) כדי להשבית את הרישום ביומן, משתמשים ב---no-enable-logging.

API

כדי להפעיל רשת VPC של צרכן multicast לטווח של קבוצת multicast, משתמשים בשיטה multicastGroupConsumerActivations.create.

POST https://networkservices.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/ZONE/multicastGroupConsumerActivations?multicastGroupConsumerActivationId=GROUP_CONSUMER_ACTIVATION_NAME
{
  "multicastConsumerAssociation": "projects/CONSUMER_PROJECT/locations/ZONE/multicastConsumerAssociations/CONSUMER_ASSOCIATION_NAME",
  "multicastGroupRangeActivation": "projects/ADMIN_PROJECT/locations/ZONE/multicastGroupRangeActivations/GROUP_RANGE_ACTIVATION_NAME",
  "logConfig": {
          "enabled": "LOGGING_ENABLED"
    }
}

מחליפים את הערכים הבאים:

  • ‫GROUP_CONSUMER_ACTIVATION_NAME: שם להפעלת הצרכן של קבוצת ה-multicast
  • ‫CONSUMER_PROJECT: מזהה הפרויקט. זה יכול להיות פרויקט האדמין של ה-multicast או פרויקט נפרד של צרכן ה-multicast, בהתאם לטופולוגיה של דומיין ה-multicast.
  • ‫ZONE: האזור שבו מפעילים את רשת הצרכנים של ה-multicast. האזור צריך להיות גם אזור שבו האדמין הפעיל את טווח הקבוצות של ה-multicast.
  • ‫CONSUMER_ASSOCIATION_NAME: השם של שיוך צרכן ה-multicast שיצרתם קודם
  • ‫ADMIN_PROJECT: מזהה הפרויקט של האדמין של ה-multicast
  • ‫GROUP_RANGE_ACTIVATION_NAME: השם של הפעלת טווח הקבוצות שנוצרה על ידי מנהל ה-multicast
  • ‫LOGGING_ENABLED: קובע אם רישום ביומן של אירועים לגבי חברות בקבוצות מופעל.
    • כדי להפעיל את הרישום ביומן, צריך להגדיר את הערך true.
    • (ברירת המחדל) כדי להשבית את הרישום ביומן, מגדירים את הערך false.

יצירת מופעים של צרכני multicast

אם עדיין לא עשיתם זאת, צרו מכונה אחת או יותר של Compute Engine כדי להריץ את האפליקציה שצורכת תנועת multicast. כדי ליצור מכונה של צרכן multicast או להגדיר מכונה קיימת כצרכן multicast, קראו את המאמר הגדרת מכונות של צרכני multicast.

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