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

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

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

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

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

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

    מעבר למעקב

    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: מספר היציאות המינימלי להקצאה לכל מכונה וירטואלית. אם הקצאת יציאות דינמית מופעלת, הערך של MIN_PORTS חייב להיות חזקה של 2, והוא יכול להיות בין 32 ל-32768.
  • MAX_PORTS: המספר המקסימלי של יציאות להקצאה לכל מכונה וירטואלית. הערך של 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: מספר היציאות המינימלי להקצאה לכל מכונה וירטואלית. אם הקצאת יציאות דינמית מופעלת, הערך של MIN_PORTS חייב להיות חזקה של 2, והוא יכול להיות בין 32 ל-32768.
  • MAX_PORTS: המספר המקסימלי של יציאות להקצאה לכל מכונה וירטואלית. הערך של MAX_PORTS צריך להיות חזקה של 2, והוא יכול להיות בין 64 ל-65536. הערך של MAX_PORTS חייב להיות גדול מ-MIN_PORTS.

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

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

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

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

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

זמן קצוב לתפוגה תיאור ברירת המחדל של 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 שניות

הערה: לא משנה איזה ערך תגדירו לזמן הקצוב לתפוגה הזה, יכול להיות שיחלפו עד 30 שניות נוספות עד ש-Cloud NAT יוכל להשתמש בכתובת 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 (Internet Control Message Protocol) שלא כוללים זרימות תנועה ייסגרו.

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

‫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 על חיבורים קיימים.

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

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