יצירת חיבורי HA VPN בין Cloud de Confiance by S3NS לבין AWS

במדריך הזה מוסבר איך ליצור חיבורי VPN עם זמינות גבוהה בין Cloud de Confiance לבין Amazon Web Services ‏ (AWS) לתקשורת ישירה בין רשתות VPC בשתי פלטפורמות הענן.

ההנחה במדריך הזה היא שאתם מכירים את המושגים הבסיסיים של רשתות ענן וירטואלי פרטי (VPC), פרוטוקול Border Gateway Protocol ‏ (BGP), רשתות וירטואליות פרטיות (VPN) ומנהרות IPsec.

‫Cloud de Confiance מספק שירות HA VPN בזמינות גבוהה, שמאפשר לחבר את רשת ה-VPC לסביבות שפועלות מחוץ ל-Cloud de Confiance, כמו סביבות מקומיות או ב-AWS, דרך חיבור IPsec VPN. רמת זמינות השירות ב-HA VPN עומדת על 99.99% אם הוא מוגדר לפי השיטות המומלצות של Google. מידע נוסף מופיע במאמר הסכם רמת השירות (SLA) של Cloud VPN.

סקירה כללית של הארכיטקטורה

הארכיטקטורה שמתוארת בדף הזה כוללת את הרכיבים הבאים:

  • Cloud Router: שירות מנוהל ומבוזר לחלוטין Cloud de Confianceשמאפשר ניתוב דינמי באמצעות BGP ברשתות VPC.
  • שער HA VPN: שער VPN שמנוהל על ידי Google ופועל ב- Cloud de Confiance. כל שער HA VPN הוא משאב אזורי עם שני ממשקים, ולכל ממשק יש כתובת IP חיצונית משלו: ממשק 0 וממשק 1.
  • מנהרות VPN: חיבורים משער HA VPN לשער VPN שכן ב-AWS, שדרכם עוברת תנועה מוצפנת.
  • שער VPN של עמיתים: שתי נקודות קצה של AWS site-to-site VPN, שיכולות להיות משער AWS virtual private או מ-AWS transit gateway. מידע נוסף זמין במאמר מהו AWS Site-to-Site VPN?

כל אחד מהחיבורים לשער ה-VPN השכן מגיע עם שתי מנהרות שמוגדרות מראש להצביע על שער לקוח יחיד, שבמקרה הזה הואCloud de Confiance ממשק HA VPN. במקרה כזה, מספר המנהרות המינימלי שצריך כדי לעמוד בהסכם רמת השירות (SLA) של 99.99% זמינות שירות הוא ארבע.

אפשרויות הניתוב והרוחב פס המשולב במנהרות ה-VPN משתנים בהתאם לאפשרות ה-VPN בין אתרים שבה נעשה שימוש בצד AWS:

הדיאגרמה הבאה מציגה את הארכיטקטורה.

סקירה כללית של הארכיטקטורה.

מטרות

  • יוצרים רשת VPC ב- Cloud de Confiance.
  • יוצרים שער HA VPN ו-Cloud Router ב-Cloud de Confiance.
  • יוצרים שערי לקוחות ב-AWS.
  • יצירת חיבור VPN עם ניתוב דינמי ב-AWS.
  • יוצרים שער VPN חיצוני ומנהרות VPN ב- Cloud de Confiance.
  • אימות ובדיקה של חיבור ה-VPN בין רשתות VPC ב-Cloud de Confiance וב-AWS.
  • כדי לזהות את האזורים הקרובים ביותר Cloud de Confiance by S3NS, משתמשים ב-Cloud Location Finder.

דוגמה למודול Terraform

אפשר להשתמש במודול gcp-to-aws-ha-vpn-terraform-module כדי להקצות HA VPN בין Cloud de Confiance לבין AWS.

עלויות

במדריך הזה נעשה שימוש ברכיבים של Cloud de Confianceשחלים עליהם חיובים, כולל הרכיבים הבאים:

כדי לקבל אומדן של העלויות של רכיבי Cloud de Confiance , אתם יכולים להשתמש במחשבון העלויות שלCloud de Confiance .

במדריך הזה נעשה שימוש ברכיבים של Amazon Web Services שחלים עליהם חיובים, כולל הרכיבים הבאים:

  • AWS Transit Gateway
  • AWS Site-to-Site VPN

כדי לקבל אומדן של העלויות של רכיבי AWS, אפשר להשתמש במחשבון התמחור של AWS.

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

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Cloud de Confiance project.

  3. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  4. In the Cloud de Confiance console, activate Cloud Shell.

    Activate Cloud Shell

  5. חשוב לוודא שיש לכם את תפקידי האדמין הנדרשים כדי להגדיר רכיבי רשת:

    • אדמין רשתות: compute.networkAdmin
    • אדמין לענייני אבטחה: compute.securityAdmin
    • אדמין של Compute: compute.admin

    מידע נוסף על המטרות של התפקידים האלה מופיע במאמר תפקידי IAM לפונקציות של משימות שקשורות ל-Networking.

  6. יצירת שער HA VPN ו-Cloud Router ב- Cloud de Confiance

    בקטע הזה, יוצרים רשת VPC, שער HA VPN ו-Cloud Router ב- Cloud de Confiance.

    1. ב-Cloud Shell, מוודאים שאתם עובדים בCloud de Confiance פרויקט שיצרתם או בחרתם.

      gcloud config set project YOUR_PROJECT_ID
      
      export PROJECT_ID=`gcloud config list --format="value(core.project)"`

      מחליפים את YOUR_PROJECT_ID במזהה הפרויקט ב-Cloud de Confiance .

    2. כדי ליצור רשת VPC בהתאמה אישית עם רשת משנה אחת, משתמשים בפקודה gcloud compute networks create:

      gcloud compute networks create NETWORK \
          --subnet-mode SUBNET_MODE \
          --bgp-routing-mode BGP_ROUTING_MODE

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

      לדוגמה, הפקודה הבאה יוצרת רשת VPC בהתאמה אישית בשם gc-vpc עם תת-רשת אחת:

      gcloud compute networks create gc-vpc \
          --subnet-mode custom \
          --bgp-routing-mode global
      
    3. כדי ליצור רשת משנה אחת לאירוח המכונות הווירטואליות של הבדיקה, משתמשים בפקודה gcloud compute networks subnets create:

      gcloud compute networks subnets create SUBNET_NAME \
          --network NETWORK \
          --region SUBNET_REGION \
          --range IP_ADDRESS_RANGE

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

      • SUBNET_NAME: שם תת-הרשת
      • SUBNET_REGION: האזור שבו רוצים ליצור את רשת המשנה
      • IP_ADDRESS_RANGE: טווח כתובות ה-IP של תת-הרשת

        לדוגמה, הפקודה הבאה יוצרת רשת משנה בשם subnet-east4 ברשת ה-VPC‏ gc-vpc.

      gcloud compute networks subnets create subnet-east4  \
          --network gc-vpc \
          --region us-east4 \
          --range 10.1.1.0/24
      
    4. כדי ליצור שער HA VPN, משתמשים בפקודה gcloud compute vpn-gateways create:

      gcloud compute vpn-gateways create HA_VPN_GATEWAY_NAME \
          --network NETWORK \
          --region REGION

      מחליפים את HA_VPN_GATEWAY_NAME בשם של שער HA VPN.

    5. כדי ליצור Cloud Router, משתמשים בפקודה gcloud compute routers create:

      gcloud compute routers create ROUTER_NAME \
          --region REGION \
          --network NETWORK \
          --asn GOOGLE_ASN \
          --advertisement-mode custom \
          --set-advertisement-groups all_subnets

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

      • ROUTER_NAME: השם של Cloud Router
      • GOOGLE_ASN: מספר ASN פרטי (מספר מערכת אוטונומית) ל-Cloud Router שאתם יוצרים. זה יכול להיות כל מספר ASN פרטי בטווח 64512-65534 או 4200000000-4294967294 שעדיין לא נמצא בשימוש כמספר ASN של עמית באותו אזור ובאותה רשת.

      לדוגמה, הפקודה הבאה יוצרת Cloud Router בשם cloud-router.

      gcloud compute routers create cloud-router \
          --region us-east4 \
          --network gc-vpc \
          --asn 65534 \
          --advertisement-mode custom \
          --set-advertisement-groups all_subnets
      

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

    יצירה של שערים וחיבורי VPN ב-AWS

    בקטע הזה, יוצרים שערי לקוחות, שער יעד וחיבורי VPN עם ניתוב דינמי.

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

    1. כדי ליצור שתי שערים ללקוחות באמצעות הפקודה הבאה של AWS, משתמשים בפקודת ה-CLI של AWS‏ create-customer-gateway:

      aws ec2 create-customer-gateway --type ipsec.1 --public-ip INTERFACE_0_IP_ADDRESS --bgp-asn GOOGLE_ASN
      
      aws ec2 create-customer-gateway --type ipsec.1 --public-ip INTERFACE_1_IP_ADDRESS --bgp-asn GOOGLE_ASN

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

    2. כדי ליצור שער יעד ולצרף אותו ל-Amazon VPC, מבצעים את הפעולות הבאות:

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

      שער וירטואלי פרטי

      1. כדי ליצור שער וירטואלי פרטי עם מספר מערכת אוטונומית (ASN) ספציפי בצד AWS, משתמשים בפקודה create-vpn-gateway ב-AWS CLI:

        aws ec2 create-vpn-gateway --type ipsec.1 --amazon-side-asn AWS_SIDE_ASN

        מחליפים את AWS_SIDE_ASN במספר מערכת אוטונומית (ASN) בצד של AWS.

        הפקודה אמורה להיראות כמו בדוגמה הבאה:

        aws ec2 create-vpn-gateway --type ipsec.1 --amazon-side-asn 65001
        
      2. מצרפים את שער הענן הווירטואלי הפרטי לרשת ה-VPC באמצעות הפקודה attach-vpn-gateway של AWS CLI:

        aws ec2 attach-vpn-gateway --vpn-gateway-id VPN_GATEWAY_ID --vpc-id VPC_ID

      שער מעבר

      1. יוצרים שער מעבר באמצעות פקודת AWS CLI‏ create-transit-gateway:

        aws ec2 create-transit-gateway --description TRANSIT_GATEWAY_DESCRIPTION \
            --options=AmazonSideAsn=65001,AutoAcceptSharedAttachments=enable,DefaultRouteTableAssociation=enable,DefaultRouteTablePropagation=enable,VpnEcmpSupport=enable,DnsSupport=enable

        מחליפים את TRANSIT_GATEWAY_DESCRIPTION בתיאור של שער המעבר.

      2. מצרפים את רשת ה-VPC לשער המעבר באמצעות הפקודה create-transit-gateway-vpc-attachment AWS CLI:

        aws ec2 create-transit-gateway-vpc-attachment \
            --transit-gateway-id TRANSIT_GATEWAY_ID \
            --vpc-id VPC_ID \
            --subnet-ids "SUBNET_ID"

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

        • TRANSIT_GATEWAY_ID: המזהה של שער המעבר
        • VPC_ID: המזהה של ה-VPC
        • SUBNET_ID: המזהים של רשתות משנה (לפחות אחת)
    3. כדי ליצור חיבור VPN עם ניתוב דינמי:

      השיטה ליצירת חיבור VPN עם ניתוב דינמי משתנה בהתאם לסוג שער היעד: שער וירטואלי פרטי או שער מעבר. מידע נוסף זמין במאמר יצירת חיבור VPN.

      שער וירטואלי פרטי

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

          aws ec2 create-vpn-connection \
              --type ipsec.1 \
              --customer-gateway-id CUSTOMER_GATEWAY_1 \
              --vpn-gateway-id VPN_GATEWAY_ID \
              --options TunnelOptions='[{TunnelInsideCidr=AWS_T1_IP,PreSharedKey=SHARED_SECRET_1},{TunnelInsideCidr=AWS_T2_IP,PreSharedKey=SHARED_SECRET_2}]'
      
          aws ec2 create-vpn-connection \
              --type ipsec.1 \
              --customer-gateway-id CUSTOMER_GATEWAY_2 \
              --vpn-gateway-id VPN_GATEWAY_ID \
              --options TunnelOptions='[{TunnelInsideCidr=AWS_T3_IP,PreSharedKey=SHARED_SECRET_3},{TunnelInsideCidr=AWS_T4_IP,PreSharedKey=SHARED_SECRET_4}]'

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

      • CUSTOMER_GATEWAY_1: Google Cloud VPN gateway, interface 0
      • CUSTOMER_GATEWAY_2: שער Google Cloud VPN, ממשק 1
      • AWS_T1_IP: כתובת ה-IP הפנימית של שער וירטואלי פרטי לחיבור 1, מנהרה 1
      • AWS_T2_IP: כתובת ה-IP הפנימית של שער הרשת הפרטית הווירטואלית לחיבור 1, מנהרה 2
      • AWS_T3_IP: כתובת ה-IP הפנימית של שער הרשת הפרטית הווירטואלית לחיבור 2, מנהרה 1
      • AWS_T4_IP: כתובת ה-IP הפנימית של שער רשת וירטואלית פרטית לחיבור 2, מנהרה 2
      • SHARED_SECRET_1: מפתח ששותף מראש לחיבור 1, מנהרה 1
      • SHARED_SECRET_2: מפתח ששותף מראש לחיבור 1, מנהרה 2
      • SHARED_SECRET_3: מפתח ששותף מראש לחיבור 2, מנהרה 1
      • SHARED_SECRET_4: מפתח ששותף מראש לחיבור 2, מנהרה 2

      שער מעבר

      יוצרים חיבור VPN עם ניתוב דינמי בין שער המעבר לבין שערי הלקוח:

      aws ec2 create-vpn-connection \
          --type ipsec.1 \
          --customer-gateway-id CUSTOMER_GATEWAY_1 \
          --transit-gateway-id TRANSIT_GATEWAY_ID \
          --options TunnelOptions='[{TunnelInsideCidr=AWS_T1_IP,PreSharedKey=SHARED_SECRET_1},{TunnelInsideCidr=AWS_T2_IP,PreSharedKey=SHARED_SECRET_2}]'
      
      aws ec2 create-vpn-connection \
          --type ipsec.1 \
          --customer-gateway-id CUSTOMER_GATEWAY_2 \
          --transit-gateway-id TRANSIT_GATEWAY_ID \
          --options TunnelOptions='[{TunnelInsideCidr=AWS_T3_IP,PreSharedKey=SHARED_SECRET_3},{TunnelInsideCidr=AWS_T4_IP,PreSharedKey=SHARED_SECRET_4}]'

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

      • CUSTOMER_GATEWAY_1: Google Cloud VPN gateway, interface 0
      • CUSTOMER_GATEWAY_2: שער Google Cloud VPN, ממשק 1
      • TRANSIT_GATEWAY_ID: המזהה של שער המעבר שמשויך לחיבור ה-VPN
      • AWS_T1_IP: כתובת ה-IP הפנימית של שער וירטואלי פרטי לחיבור 1, מנהרה 1
      • AWS_T2_IP: כתובת ה-IP הפנימית של שער הרשת הפרטית הווירטואלית לחיבור 1, מנהרה 2
      • AWS_T3_IP: כתובת ה-IP הפנימית של שער הרשת הפרטית הווירטואלית לחיבור 2, מנהרה 1
      • AWS_T4_IP: כתובת ה-IP הפנימית של שער רשת וירטואלית פרטית לחיבור 2, מנהרה 2
      • SHARED_SECRET_1: מפתח ששותף מראש לחיבור 1, מנהרה 1
      • SHARED_SECRET_2: מפתח ששותף מראש לחיבור 1, מנהרה 2
      • SHARED_SECRET_3: מפתח ששותף מראש לחיבור 2, מנהרה 1
      • SHARED_SECRET_4: מפתח ששותף מראש לחיבור 2, מנהרה 2
      • CUSTOMER_GATEWAY_1: Google Cloud VPN gateway, interface 0
      • CUSTOMER_GATEWAY_2: שער Google Cloud VPN, ממשק 1
      • TRANSIT_GATEWAY_ID: המזהה של שער המעבר שמשויך לחיבור ה-VPN
      • AWS_T1_IP: כתובת ה-IP הפנימית של שער וירטואלי פרטי לחיבור 1, מנהרה 1
      • AWS_T2_IP: כתובת ה-IP הפנימית של שער הרשת הפרטית הווירטואלית לחיבור 1, מנהרה 2
      • AWS_T3_IP: כתובת ה-IP הפנימית של שער הרשת הפרטית הווירטואלית לחיבור 2, מנהרה 1
      • AWS_T4_IP: כתובת ה-IP הפנימית של שער רשת וירטואלית פרטית לחיבור 2, מנהרה 2
      • SHARED_SECRET_1: מפתח ששותף מראש לחיבור 1, מנהרה 1
      • SHARED_SECRET_2: מפתח ששותף מראש לחיבור 1, מנהרה 2
      • SHARED_SECRET_3: מפתח ששותף מראש לחיבור 2, מנהרה 1
      • SHARED_SECRET_4: מפתח ששותף מראש לחיבור 2, מנהרה 2

      ‫AWS שומרת טווחי CIDR מסוימים, ולכן אי אפשר להשתמש בערכים בטווחי ה-CIDR האלה ככתובות IP פנימיות (AWS_T1_IP,‏ AWS_T2_IP, ‏ AWS_T3_IP,‏ AWS_T4_IP). למידע על בלוקים של CIDR ש-AWS שומרת, אפשר לעיין במאמר Tunnel options for your Site-to-Site VPN connection (אפשרויות של מנהרות לחיבור VPN בין אתרים).

      יוצרים ארבעה מנהרות ל Cloud de Confiance באמצעות הפקודות האלה.

    4. מורידים את קובץ התצורה לשני חיבורי ה-VPN.

      בשלבים הבאים, משתמשים בערכים מקובץ התצורה שהורדתם כדי ליצור ולהגדיר משאבים בצד Cloud de Confiance.

    יצירת מנהרות VPN וממשקי Cloud Router ב- Cloud de Confiance

    בקטע הזה, משתמשים במידע מחיבור ה-VPN של AWS שיצרתם בקטע הקודם כדי ליצור שער VPN חיצוני, מנהרות VPN וממשקי Cloud Router ב- Cloud de Confiance.

    כשמגדירים מנהרות Cloud VPN ל-AWS, צריך להשתמש בפרוטוקול IKEv2 ולבחור רק קבוצה אחת של צפני IKE כדי להבטיח יצירה מוצלחת של המנהרה. לדוגמה, בוחרים אלגוריתם הצפנה, אלגוריתם שלמות וקבוצת דיפי-הלמן (DH) אחד לשלב 1 ואחד לשלב 2. הגדרות ברירת המחדל של טרנספורמציות ב-AWS יוצרות מטען ייעודי (payload) גדול של שיוך אבטחה (SA), שיכול לגרום לפיצול של חבילות IKE ב-IP. ‫Cloud VPN לא תומך במנות IKE מפוצלות.

    1. ב-Cloud Shell, יוצרים שער VPN חיצוני עם ארבעה ממשקים לכתובות ה-IP החיצוניות של AWS.

      לפני שיוצרים את שער ה-VPN החיצוני, מוודאים שכתובות ה-IP החיצוניות של AWS זהות לערכים בקובץ התצורה שהורדתם. אי אפשר לשנות את כתובות ה-IP האלה אחרי שיוצרים את שער ה-VPN החיצוני. אם הכתובות לא זהות, אי אפשר ליצור את החיבור למנהרת ה-HA VPN.

      gcloud compute external-vpn-gateways create PEER_GATEWAY_NAME --interfaces \
        0=AWS_GW_IP_1,1=AWS_GW_IP_2,2=AWS_GW_IP_3,3=AWS_GW_IP_4

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

      • AWS_GW_IP_1: כתובת ה-IP החיצונית של שער וירטואלי פרטי לחיבור 1, מנהרה 1
      • AWS_GW_IP_2: כתובת ה-IP החיצונית של שער הרשת הפרטית הווירטואלית לחיבור 1, מנהרה 2
      • AWS_GW_IP_3: כתובת ה-IP החיצונית של שער הרשת הפרטית הווירטואלית לחיבור 2, מנהרה 1
      • AWS_GW_IP_4: כתובת ה-IP החיצונית של שער וירטואלי פרטי לחיבור 2, מנהרה 2
    2. יוצרים ארבע מנהרות VPN.

      • מנהרה 1:

        gcloud compute vpn-tunnels create tunnel-1 \
            --peer-external-gateway PEER_GATEWAY_NAME \
            --peer-external-gateway-interface 0 \
            --region REGION \
            --ike-version 2 \
            --shared-secret SHARED_SECRET_1 \
            --router ROUTER_NAME \
            --vpn-gateway HA_VPN_GATEWAY_NAME \
            --interface 0
      • מנהרה 2:

        gcloud compute vpn-tunnels create tunnel-2 \
            --peer-external-gateway PEER_GATEWAY_NAME \
            --peer-external-gateway-interface 1 \
            --region REGION \
            --ike-version 2 \
            --shared-secret SHARED_SECRET_2 \
            --router ROUTER_NAME \
            --vpn-gateway HA_VPN_GATEWAY_NAME \
            --interface 0
      • מנהרה 3:

        gcloud compute vpn-tunnels create tunnel-3 \
            --peer-external-gateway PEER_GATEWAY_NAME \
            --peer-external-gateway-interface 2 \
            --region REGION \
            --ike-version 2 \
            --shared-secret SHARED_SECRET_3 \
            --router ROUTER_NAME \
            --vpn-gateway HA_VPN_GATEWAY_NAME \
            --interface 1
      • מנהרה 4:

        gcloud compute vpn-tunnels create tunnel-4 \
            --peer-external-gateway PEER_GATEWAY_NAME \
            --peer-external-gateway-interface 3 \
            --region REGION \
            --ike-version 2 \
            --shared-secret SHARED_SECRET_4 \
            --router ROUTER_NAME \
            --vpn-gateway HA_VPN_GATEWAY_NAME \
            --interface 1

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

    3. יוצרים ארבעה ממשקי Cloud Router.

      בפקודות הבאות, מחליפים כל placeholder‏ GOOGLE_BGP_IP_TUNNEL בכתובת ה-IP הפנימית של המנהרה בצד Cloud de Confiance . אפשר למצוא את הערכים בקובצי ההגדרות של AWS VPN בתור כתובת שער הלקוח לכל מנהרה. כל אחת מהכתובות האלה צריכה להיות בטווח /30 CIDR בתוך טווח הרשת 169.254.0.0/16.

      • ממשק Cloud Router‏ 1:

        gcloud compute routers add-interface ROUTER_NAME \
            --interface-name int-1 \
            --vpn-tunnel tunnel-1 \
            --ip-address GOOGLE_BGP_IP_TUNNEL_1 \
            --mask-length 30 \
            --region REGION
      • ממשק Cloud Router‏ 2:

        gcloud compute routers add-interface ROUTER_NAME \
            --interface-name int-2 \
            --vpn-tunnel tunnel-2 \
            --ip-address GOOGLE_BGP_IP_TUNNEL_2 \
            --mask-length 30 \
            --region REGION
      • ממשק Cloud Router‏ 3:

        gcloud compute routers add-interface ROUTER_NAME \
            --interface-name int-3 \
            --vpn-tunnel tunnel-3 \
            --ip-address GOOGLE_BGP_IP_TUNNEL_3 \
            --mask-length 30 \
            --region REGION
      • ממשק Cloud Router‏ 4:

        gcloud compute routers add-interface ROUTER_NAME \
            --interface-name int-4 \
            --vpn-tunnel tunnel-4 \
            --ip-address GOOGLE_BGP_IP_TUNNEL_4 \
            --mask-length 30 \
            --region REGION
    4. הוספת רשתות שכנות של BGP.

      בפקודות הבאות, מחליפים את PEER_ASN במספר מערכת אוטונומית (ASN) בצד AWS של סשן ה-BGP.

      • חיבור AWS מספר 1, מנהרה מספר 1:

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name aws-conn1-tunn1 \
            --peer-asn PEER_ASN \
            --interface int-1 \
            --peer-ip-address AWS_T1_IP \
            --region REGION
      • חיבור AWS 1, מנהרה 2:

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name aws-conn1-tunn2 \
            --peer-asn PEER_ASN \
            --interface int-2 \
            --peer-ip-address AWS_T2_IP \
            --region REGION
      • חיבור AWS 2, מנהרה 1:

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name aws-conn2-tunn1 \
            --peer-asn PEER_ASN \
            --interface int-3 \
            --peer-ip-address AWS_T3_IP \
            --region REGION
      • חיבור AWS 2, מנהרה 2:

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name aws-conn2-tunn2 \
            --peer-asn PEER_ASN \
            --interface int-4 \
            --peer-ip-address AWS_T4_IP \
            --region REGION

    אימות ההגדרה

    1. ב-Cloud Shell, מאמתים את הסטטוס של Cloud Router:

      gcloud compute routers get-status ROUTER_NAME \
          --region REGION \
          --format='flattened(result.bgpPeerStatus[].name, result.bgpPeerStatus[].ipAddress, result.bgpPeerStatus[].peerIpAddress)'

      הפלט אמור להיראות כך:

      result.bgpPeerStatus[].peerIpAddress)'
      result.bgpPeerStatus[0].ipAddress:     169.254.171.18
      result.bgpPeerStatus[0].name:          aws-conn1-tunn1
      result.bgpPeerStatus[0].peerIpAddress: 169.254.171.17
      result.bgpPeerStatus[1].ipAddress:     169.254.156.154
      result.bgpPeerStatus[1].name:          aws-conn1-tunn2
      result.bgpPeerStatus[1].peerIpAddress: 169.254.156.153
      result.bgpPeerStatus[2].ipAddress:     169.254.123.38
      result.bgpPeerStatus[2].name:          aws-conn2-tunn1
      result.bgpPeerStatus[2].peerIpAddress: 169.254.123.37
      result.bgpPeerStatus[3].ipAddress:     169.254.48.186
      result.bgpPeerStatus[3].name:          aws-conn2-tunn2
      result.bgpPeerStatus[3].peerIpAddress: 169.254.48.185
      
    2. מפרטים את כל המנהרות:

      gcloud compute vpn-tunnels list

      הפלט אמור להיראות כך:

      NAME      REGION    GATEWAY    PEER_ADDRESS
      tunnel-1  us-east4  ha-vpn-gw  34.205.x.x
      tunnel-2  us-east4  ha-vpn-gw  52.203.x.x
      tunnel-3  us-east4  ha-vpn-gw  3.208.x.x
      tunnel-4  us-east4  ha-vpn-gw  52.204.x.x
      
    3. בודקים את סטטוס המנהרה:

      gcloud compute vpn-tunnels describe tunnel-1 \
           --region REGION \
           --format='flattened(status,detailedStatus)'

      הפלט אמור להיראות כך:

      detailed_status: Tunnel is up and running.
      status:          ESTABLISHED
      
    4. כדי להציג רשימה של מסלולים דינמיים שנלמדו על ידי Cloud Router:

      gcloud compute routers get-status ROUTER_NAME \
          --region REGION \
          --format="flattened(result.bestRoutes)"

      הפלט אמור להיראות כך:

      result.bestRoutes[0].creationTimestamp: 2021-01-19T20:42:07.366-08:00
      result.bestRoutes[0].destRange:         10.2.2.0/24
      result.bestRoutes[0].kind:              compute#route
      result.bestRoutes[0].nextHopIp:         169.254.171.17
      result.bestRoutes[0].priority:          100
      result.bestRoutes[1].creationTimestamp: 2021-01-19T20:42:07.366-08:00
      result.bestRoutes[1].destRange:         10.2.2.0/24
      result.bestRoutes[1].kind:              compute#route
      result.bestRoutes[1].nextHopIp:         169.254.156.153
      result.bestRoutes[1].priority:          100
      result.bestRoutes[2].creationTimestamp: 2021-01-19T20:56:26.588-08:00
      result.bestRoutes[2].destRange:         10.2.2.0/24
      result.bestRoutes[2].kind:              compute#route
      result.bestRoutes[2].nextHopIp:         169.254.123.37
      result.bestRoutes[2].priority:          100
      result.bestRoutes[3].creationTimestamp: 2021-01-19T20:56:26.588-08:00
      result.bestRoutes[3].destRange:         10.2.2.0/24
      result.bestRoutes[3].kind:              compute#route
      result.bestRoutes[3].nextHopIp:         169.254.48.185
      result.bestRoutes[3].priority:          100
      

    בדיקת חיבור ה-VPN

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

      מוודאים שיש לכם כללים של חומת אש ב-VPC שמאפשרים תעבורת נתונים מסוג ICMP.

    2. בודקים את החיבור באמצעות הפקודה ping.

      1. אם הבדיקה ping נכשלת, צריך לעיין ביומנים ב- Cloud de Confiance וביומנים של AWS Site-to-Site VPN. הודעות השגיאה ביומנים יכולות לעזור לכם לזהות את הבעיה. כדי ללמוד איך לפתור בעיות בחיבור ה-VPN, אפשר לעיין במקורות המידע הבאים:
    3. מודדים את רוחב הפס בין מכונות הבדיקה באמצעות iperf.

      • צד השרת:

        iperf3 -s
      • בצד הלקוח:

        iperf3 -c SERVER_IP_ADDRESS -P NUMBER_OF_PARALLEL_SESSIONS

    הסרת המשאבים

    מוחקים את המשאבים של Cloud de Confiance ו-AWS שיצרתם במהלך המדריך הזה.

    מחיקת הפרויקט Cloud de Confiance by S3NS

    כדי להימנע מחיובים בחשבון Cloud de Confiance בגלל השימוש במשאבים שנעשה במסגרת מדריך זה, אפשר למחוק את הפרויקט:

    1. In the Cloud de Confiance console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    מחיקת משאבים ב-AWS

    1. מחיקת חיבור VPN בין אתרים
    2. מחיקת שער המעבר
    3. הפסקת מופעי Amazon EC2

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