שינוי הגדרות NAT

אחרי שמגדירים את שער Cloud NAT (NAT ציבורי או NAT פרטי), אפשר לערוך את ההגדרה לפי הדרישות. בדף הזה מפורטות המשימות שאפשר לבצע כדי לשפר את ההגדרה של Cloud NAT.

עריכת ההגדרות עלולה לשבש את הפעולה ולגרום לניתוק של חיבורים קיימים של תרגום כתובות רשת (NAT). מידע נוסף על ההשפעה של שינוי הגדרות Cloud NAT זמין במאמר ההשפעה של שינוי הגדרות NAT על חיבורי NAT קיימים.

הצגת נתוני השימוש ביציאה

לפני שמשנים את השימוש המינימלי ביציאות לכל מכונה וירטואלית, חשוב לבדוק את השימוש ביציאות לכל מכונה וירטואלית. אפשר לקבל את המידע הזה באמצעות מדד compute.googleapis.com/nat/port_usage.

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

    כניסה ל-Monitoring

    1. בחלונית הניווט, בוחרים באפשרות Metrics Explorer (הכלי לבחירת מדדים) .

    2. מרחיבים את התפריט Select a metric ומשתמשים בתפריטי המשנה כדי לבחור את המדד compute.googleapis.com/nat/port_usage:

      • בשדה Resource, בוחרים באפשרות VM instance.
      • בקטגוריה Metric category, בוחרים באפשרות Nat.
      • בשדה מדד, בוחרים באפשרות שימוש ביציאה.
    3. לוחצים על אישור.

    4. כדי לבחור את שער Cloud NAT, משתמשים בשדה Filters (מסננים).

    5. בקטע קיבוץ לפי, בשדה labels, בוחרים באפשרות instance_id.

    6. ברשימה Grouping function בוחרים באפשרות Max.

    7. מרחיבים את אפשרויות נוספות ומגדירים את השדה Aligner (כלי ההתאמה) לערך max (מקסימום).

    8. כדי לראות את נתוני השימוש ב-30 הימים האחרונים, מציינים 30d.

    מידע נוסף על השימוש ב-Metrics Explorer מופיע במאמר איך בוחרים מדדים כשמשתמשים ב-Metrics Explorer.

בחירת מספר מינימלי של יציאות לכל מכונה וירטואלית

חשוב לבחור מספר מינימלי מתאים של יציאות כדי למקסם את השימוש בכתובות IP של NAT.

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

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

כדאי לבדוק את השימוש המקסימלי ביציאות ב-30 הימים האחרונים, או בתקופה אחרת שלדעתכם מייצגת את שער Cloud NAT.

מבצעים אחת מהפעולות הבאות:

שינוי מספר ברירת המחדל המינימלי של יציאות שמוקצות לכל מכונה וירטואלית

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

בסעיפים הבאים מוסברות ההשלכות של שינוי ההקצאה המינימלית של יציאות:

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

המסוף

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

    כניסה ל-Cloud NAT

  2. לוחצים על שער Cloud NAT.

  3. לוחצים על עריכה.

  4. לוחצים על הגדרות מתקדמות.

  5. משנים את הערך בשדה Minimum ports per VM instance (יציאות מינימליות לכל מכונה וירטואלית).

  6. לוחצים על Save.

gcloud

משתמשים בפקודה gcloud compute routers nats update.

הפקודה הזו לא משנה את שאר השדות בהגדרת Cloud NAT.

gcloud compute routers nats update NAT_CONFIG \
    --router=ROUTER_NAME \
    --region=REGION \
    --min-ports-per-vm=128

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

  • NAT_CONFIG: השם של הגדרת Cloud NAT.
  • ROUTER_NAME: השם של Cloud Router
  • REGION: האזור של Cloud NAT שרוצים לעדכן. אם לא מציינים אזור, יכול להיות שתתבקשו לבחור אזור (רק במצב אינטראקטיבי).

שינוי שיטת הקצאת היציאות

יש דרישות שונות להגדרת הקצאת יציאות סטטית והקצאת יציאות דינמית.

לפני שמעדכנים את סוג הקצאת היציאות בשער Cloud NAT קיים, צריך לוודא שההגדרה של שער Cloud NAT תואמת לסוג הקצאת היציאות הזה. אם ההגדרה לא תואמת, השינוי ייכשל.

המסוף

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

    כניסה ל-Cloud NAT

  2. לוחצים על שער Cloud NAT.

  3. לוחצים על עריכה.

  4. לוחצים על הגדרות מתקדמות.

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

  6. אם צריך, משנים את הערכים של Minimum ports per VM instance ושל Maximum ports per VM instance.

  7. לוחצים על Save.

gcloud

משתמשים בפקודה gcloud compute routers nats update.

הפקודה הזו לא משנה את שאר השדות בהגדרת Cloud NAT.

gcloud compute routers nats update NAT_CONFIG \
    --router=ROUTER_NAME \
    --region=REGION \
    --enable-dynamic-port-allocation | --no-enable-dynamic-port-allocation \
    [ --min-ports-per-vm=MIN_PORTS ] \
    [ --max-ports-per-vm=MAX_PORTS ]

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

  • NAT_CONFIG: השם של הגדרת Cloud NAT.
  • ROUTER_NAME: השם של Cloud Router
  • REGION: האזור של Cloud NAT שרוצים לעדכן. אם לא מציינים אזור, יכול להיות שתתבקשו לבחור אזור (רק במצב אינטראקטיבי).
  • MIN_PORTS: מספר היציאות המינימלי להקצאה לכל VM. אם הקצאת יציאות דינמית מופעלת, הערך של MIN_PORTS חייב להיות חזקה של 2, והוא יכול להיות בין 32 ל-32768.
  • MAX_PORTS: המספר המקסימלי של יציאות להקצאה לכל VM. הערך של MAX_PORTS חייב להיות חזקה של 2, והוא יכול להיות בין 64 ל-65536. הערך של MAX_PORTS חייב להיות גדול מ-MIN_PORTS. ערך ברירת המחדל הוא 65536.

שינוי יציאות מינימליות או מקסימליות כשהקצאת יציאות דינמית מוגדרת

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

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

בסעיפים הבאים מוסברות ההשלכות של שינוי ההקצאה המינימלית של יציאות:

המסוף

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

    כניסה ל-Cloud NAT

  2. לוחצים על שער Cloud NAT.

  3. לוחצים על עריכה.

  4. לוחצים על הגדרות מתקדמות.

  5. משנים את הערכים בשדות Minimum ports per VM instance ו-Maximum ports per VM instance.

  6. לוחצים על Save.

gcloud

משתמשים בפקודה gcloud compute routers nats update.

הפקודה הזו לא משנה את שאר השדות בהגדרת Cloud NAT.

gcloud compute routers nats update NAT_CONFIG \
    --router=ROUTER_NAME \
    --region=REGION \
    --min-ports-per-vm=MIN_PORTS \
    --max-ports-per-vm=MAX_PORTS

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

  • NAT_CONFIG: השם של הגדרת Cloud NAT.
  • ROUTER_NAME: השם של Cloud Router
  • REGION: האזור של Cloud NAT שרוצים לעדכן. אם לא מציינים אזור, יכול להיות שתתבקשו לבחור אזור (רק במצב אינטראקטיבי).
  • MIN_PORTS: מספר היציאות המינימלי להקצאה לכל VM. אם הקצאת יציאות דינמית מופעלת, הערך של MIN_PORTS חייב להיות חזקה של 2, והוא יכול להיות בין 32 ל-32768.
  • MAX_PORTS: המספר המקסימלי של יציאות להקצאה לכל VM. הערך של MAX_PORTS חייב להיות חזקה של 2, והוא יכול להיות בין 64 ל-65536. הערך של MAX_PORTS חייב להיות גדול מ-MIN_PORTS.

שינוי הזמנים הקצובים לתפוגה של NAT

בקטעים הבאים מוסבר על פסק זמן של NAT ואיך לשנות אותו:

הזמן הקצוב לתפוגה של NAT

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

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

זמן קצוב לתפוגה תיאור ברירת המחדל של Cloud NAT ניתן להגדרה

זמן קצוב לתפוגה של מיפוי UDP במצב לא פעיל

RFC 4787 REQ-5

מציינת את הזמן בשניות שאחריו זרימות UDP צריכות להפסיק לשלוח תעבורה לנקודות קצה כדי שהמיפויים של Cloud NAT יוסרו.

פסק זמן של חוסר פעילות במיפוי UDP משפיע על שתי נקודות קצה שמפסיקות לשלוח תנועה זו לזו. הוא משפיע גם על נקודות קצה (endpoints) שלוקח להן יותר זמן להגיב, או אם יש השהיה מוגברת ברשת.

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

‫30 שניות כן

הזמן הקצוב לתפוגה של חיבור TCP לא פעיל

RFC 5382 REQ-5

מציינת את הזמן בשניות שחיבור נמצא במצב בלי פעילות לפני שהמיפויים של Cloud NAT מוסרים.

ההגדרה TCP Established Connection Idle Timeout משפיעה על נקודות קצה שלוקח להן יותר זמן להגיב, או אם יש זמן אחזור מוגבר ברשת.

אפשר להגדיל את ערך הזמן הקצוב לתפוגה כשרוצים לפתוח חיבורי TCP ולשמור על החיבורים פתוחים למשך זמן ארוך בלי להשתמש במנגנון keepalive.

‫1,200 שניות (20 דקות) כן

הזמן הקצוב לתפוגה של חיבור TCP לא פעיל

RFC 5382 REQ-5

מציין את הזמן בשניות שחיבורי TCP יכולים להישאר במצב חצי פתוח לפני שאפשר למחוק את המיפויים של Cloud NAT.

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

‫30 שניות

הערה: לא משנה איזה ערך תגדירו לזמן הקצוב לתפוגה הזה, יכול להיות ש-Cloud NAT יצטרך עד 30 שניות נוספות לפני שאפשר יהיה להשתמש בטופל של כתובת IP של מקור ושל יציאת מקור ב-Cloud NAT כדי לעבד חיבור חדש.

כן

זמן קצוב לתפוגה של TCP TIME_WAIT

RFC 5382 REQ-5

המדיניות הזו מציינת את פרק הזמן בשניות שבו חיבור TCP סגור לחלוטין נשמר במיפויים של Cloud NAT אחרי שהחיבור פג.

פסק הזמן של TCP TIME_WAIT מגן על נקודות הקצה הפנימיות מפני קבלת מנות לא חוקיות ששייכות לחיבור TCP סגור שמועבר מחדש.

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

‫120 שניות

הערה: לא משנה איזה ערך תגדירו לזמן הקצוב לתפוגה הזה, יכול להיות ש-Cloud NAT יצטרך עד 30 שניות נוספות לפני שאפשר יהיה להשתמש בטופל של כתובת IP של מקור ושל יציאת מקור ב-Cloud NAT כדי לעבד חיבור חדש. אם אתם משתמשים בהקצאת יציאות דינמית, הגדירו את הזמן הקצוב לתפוגה ל-15 שניות או יותר כדי למנוע השמטה של מנות.

כן

ICMP Mapping Idle Timeout
(רלוונטי רק ל-Public NAT)

RFC 5508 REQ-2

המדיניות הזו קובעת את הזמן בשניות שאחריו מיפויים של Cloud NAT בפרוטוקול הודעות הבקרה באינטרנט (ICMP) שלא כוללים זרימות תנועה ייסגרו.

ההגדרה 'זמן קצוב לתפוגה של מיפוי ICMP במצב המתנה' משפיעה על נקודת קצה כשהתגובה של נקודת הקצה נמשכת יותר מהזמן שצוין, או כשיש עלייה בחביון ברשת.

‫30 שניות כן

שינוי הזמן הקצוב לתפוגה של NAT

המסוף

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

    כניסה ל-Cloud NAT

  2. לוחצים על שער Cloud NAT.

  3. לוחצים על עריכה.

  4. לוחצים על הגדרות מתקדמות.

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

  6. לוחצים על Save.

gcloud

כדי לשנות את ערכי זמן קצוב לתפוגה האלה, משתמשים בפקודה gcloud compute routers nats update עם הדגלים הבאים:

  • זמן קצוב לתפוגה של מיפוי UDP במצב לא פעיל: --udp-idle-timeout
  • זמן קצוב לתפוגה של חיבור TCP לא פעיל: --tcp-established-idle-timeout
  • זמן קצוב לתפוגה של חיבורים זמניים ב-TCP: --tcp-transitory-idle-timeout
  • זמן קצוב לתפוגה של TCP TIME_WAIT: --tcp-time-wait-timeout
  • ICMP Mapping Idle Timeout: --icmp-idle-timeout

הפקודה הזו לא משנה את שאר השדות בהגדרת ה-NAT.

לדוגמה, הפקודה הבאה משנה את הערך של UDP Mapping Idle Timeout (זמן קצוב לתפוגה של מיפוי UDP).

gcloud compute routers nats update NAT_CONFIG \
    --router=ROUTER_NAME \
    --region=REGION \
    --udp-idle-timeout=VALUE

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

  • NAT_CONFIG: השם של הגדרת Cloud NAT.
  • ROUTER_NAME: השם של Cloud Router
  • REGION: האזור של Cloud NAT שרוצים לעדכן. אם לא מציינים אזור, יכול להיות שתתבקשו לבחור אזור (רק במצב אינטראקטיבי).
  • VALUE: ערך הזמן הקצוב לתפוגה (בשניות)

איפוס ערכי הזמן הקצוב לתפוגה של NAT לערכי ברירת המחדל

המסוף

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

    כניסה ל-Cloud NAT

  2. לוחצים על שער Cloud NAT.

  3. לוחצים על עריכה.

  4. לוחצים על הגדרות מתקדמות.

  5. מסירים את כל הערכים שהוגדרו על ידי המשתמש שרוצים לאפס.

  6. לוחצים על Save.

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

gcloud

משתמשים בפקודה gcloud compute routers nats update.

הפקודה הזו לא משנה את שאר השדות בהגדרת Cloud NAT.

gcloud compute routers nats update NAT_CONFIG \
    --router=ROUTER_NAME \
    --region=REGION \
    --clear-udp-idle-timeout \
    --clear-icmp-idle-timeout \
    --clear-tcp-established-idle-timeout \
    --clear-tcp-time-wait-timeout \
    --clear-tcp-transitory-idle-timeout

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

  • NAT_CONFIG: השם של שער Cloud NAT
  • ROUTER_NAME: השם של Cloud Router
  • REGION: האזור של Cloud NAT שרוצים לעדכן. אם לא מציינים אזור, יכול להיות שתתבקשו לבחור אזור (רק במצב אינטראקטיבי).

ההשפעה של שינוי הגדרות NAT על חיבורי NAT קיימים

בטבלה הבאה מפורטת ההשפעה של שינוי הגדרות Cloud NAT על חיבורים קיימים:

פעולת כוונון ניתוק החיבור
השבתת מיפוי ללא תלות בנקודת קצה לא
הקטנת מספר היציאות המינימלי לכל מכונה וירטואלית תוך הפעלת הקצאת יציאות דינמית:
מספר היציאות המקסימלי לכל מכונה וירטואלית >= מספר היציאות המינימלי הקודם לכל מכונה וירטואלית, וגם
מספר היציאות המקסימלי לכל מכונה וירטואלית >= 1024
לא
הגדלת מספר היציאות המינימלי לכל מכונה וירטואלית כשהקצאת יציאות דינמית כבר מופעלת לא
הקטנת מספר היציאות המינימלי לכל מכונה וירטואלית כשהקצאת יציאות דינמית כבר מופעלת לא
הגדלת מספר היציאות המינימלי לכל מכונה וירטואלית כשהקצאת יציאות דינמית כבר מושבתת לא
הקטנת מספר היציאות המינימלי לכל מכונה וירטואלית כשהקצאת יציאות דינמית כבר מושבתת כן
הגדלת מספר היציאות המקסימלי לכל מכונה וירטואלית לא
הקטנת מספר היציאות המקסימלי לכל מכונה וירטואלית כשהקצאת יציאות דינמית כבר מופעלת כן
שינוי של פסק זמן ב-Cloud NAT כשהקצאת יציאות דינמית מופעלת או מושבתת לא
השבתה של הקצאת יציאות דינמית כן

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