ניהול טיימרים של BGP

בדף הזה מוסבר:

  • הטיימרים של BGP ב-Cloud Router וההגדרות שלהם, כולל הנחיות להגדרת אותן הגדרות בנתב המקומי.
  • עדכון של מרווח הזמן בין הודעות ה-keepalive של BGP ב-Cloud Router.

הגדרות וטיימרים של BGP

ה-Cloud Router והנתב המקומי מקיימים תקשורת באמצעות קבוצת הגדרות הטיימר הבאה.

טיימר של הודעת keep-alive

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

הטיימר של keepalive הוא KEEPALIVE_INTERVAL בין הודעות BGP תקופתיות שמועברות בין Cloud Router לבין נתב עמית מקומי תואם. אפשר להגדיר את הערך הזה כמו שמתואר במאמר עדכון של מרווח הזמן בין הודעות ה-BGP keepalive. ערך ברירת המחדל הוא 20 שניות. ‫Google ממליצה להגדיר את אותו ערך לטיימרים של keepalive בנתב המקומי וב-Cloud Router.

השהיית הטיימר

הטיימר הזה מגדיר את משך הזמן שנתב Cloud Router או נתב מקומי צריכים להמתין, אם לא מתקבלת הודעה על אתחול בלי הפרעה (מנות TCP FIN או RST) או הודעת BGP CEASE, לפני שהסשן של BGP עובר למצב DOWN.

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

  • הסרת כל המסלולים שנלמדו מהסשן של BGP
  • הפסקת הפרסום של מסלולים

כדי להגדיר את טיימר ההשהיה של Cloud Router, מעדכנים את מרווח הזמן של הודעות ה-keepalive של Cloud Router BGP. ‫Cloud Router מגדיר את הערך של טיימר ההמתנה לשלוש פעמים הערך של מרווח הזמן המוגדר של keepalive. לדוגמה, אם מגדירים את טיימר ה-keepalive ל-20 שניות, טיימר ההמתנה הוא 60 שניות. מידע נוסף זמין במאמר בנושא עדכון של מרווח הזמן בין הודעות ה-keepalive של BGP.

טיימר לאתחול בלי הפרעה

הטיימר הזה מגדיר את משך הזמן שבו נתב שומר את המצב הקודם של סשן BGP אחרי הודעה על הפעלה מחדש חלקה (מנות TCP FIN או RST) מנתב ה-peer.

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

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

‫Cloud Router תומך באתחול בלי הפרעה, והטיימר של האתחול בלי הפרעה של Cloud Router מוגדר ל-120 שניות. כל נתב Cloud Router שולח הודעה על אתחול בלי הפרעה לפני כל אירוע של תחזוקת תוכנה, אם נתב העמית תומך גם באתחול בלי הפרעה.

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

מידע נוסף על אתחול בלי הפרעה זמין ב-RFC 4724.

טיימר של נתיב לא פעיל

ההגדרה הזו קובעת כמה זמן הנתב ימתין לפני מחיקת נתיבים שנלמדו אחרי שהוא מקבל הודעת סוף רשומה (EOR) מהנתב השני. הטיימר הזה מתחיל כשסשן ה-BGP מאותחל מחדש אחרי אתחול בלי הפרעה, אבל הקידומת הרלוונטית לא טופלה על ידי הודעת UPDATE. מומלץ להגדיר את טיימר הנתיב המיושן ל-300 שניות בנתב המקומי, כדי שיתאים להגדרה של Cloud Router.

עדכון מרווח הזמן של הודעות ה-keepalive ב-BGP

כדי לשנות את מרווח הזמן של הודעות ה-keepalive ב-Cloud Router, פועלים לפי השלבים הבאים.

המסוף

  1. נכנסים לדף Cloud Routers במסוף Cloud de Confiance .

    מעבר אל Cloud Routers

  2. בוחרים את Cloud Router שמכיל את מרווח ה-BGP שרוצים לשנות.

  3. בדף פרטי הנתב, לוחצים על עריכה.

  4. מעדכנים את מרווח הזמן בין הודעות ה-keepalive של עמית BGP. הערך צריך להיות מספר שלם בין 20 ל-60 שמציין את מספר השניות של המרווח. ברירת המחדל היא 20 שניות.

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

gcloud

מריצים את הפקודה update:

gcloud compute routers update ROUTER_NAME \
    --project=PROJECT_ID \
    --keepalive-interval=KEEPALIVE_INTERVAL \
    --region=REGION

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

  • ROUTER_NAME: השם של Cloud Router
  • PROJECT_ID: הפרויקט שמכיל את Cloud Router
  • KEEPALIVE_INTERVAL: המרווח בין הודעות ה-keepalive של BGP שנשלחות לנתב העמית

    הערך צריך להיות מספר שלם בין 20 ל-60 שמציין את מספר השניות של המרווח. ברירת המחדל היא 20 שניות.

  • REGION: האזור שבו נמצא Cloud Router

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

  Updating router [my-router]...done.

API

כדי לעדכן את השדה bgp.keepaliveInterval, משתמשים בשיטה routers.patch:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "bgp": {
        "keepaliveInterval": KEEPALIVE_INTERVAL
     }
   }

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

  • PROJECT_ID: הפרויקט שמכיל את Cloud Router
  • REGION: האזור שבו נמצא Cloud Router
  • ROUTER_NAME: השם של Cloud Router
  • KEEPALIVE_INTERVAL: המרווח בין הודעות ה-keepalive של BGP שנשלחות לנתב העמית

    הערך צריך להיות מספר שלם בין 20 ל-60 שמציין את מספר השניות של המרווח. ברירת המחדל היא 20 שניות.

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