דילוג לתוכן הראשי
AD Academy
CCNA — יסודות רשתות Cisco
בינוני16 דקותעודכן לאחרונה: נושא 10 מתוך 12

OSPFv2: Router ID, Hello ו־DR/BDR

ניתוב דינמי שמתעדכן לבד: איך נבנית שכנות, מי נבחר DR ואיך מאבחנים תקלות.

לא הושלם

מה תלמדו כאן

  • ארבעה דברים שחייבים להתאים בין שכנים
  • Verification — איך בודקים שזה באמת עובד
  • טעויות נפוצות (ומה בודקים)

כדאי לקרוא לפני הנושא הזה:EtherChannel: LACP ו־PAgP

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

1. DOWN אל INIT — התקבלה הודעת Hello בכיוון אחד. 2. 2-WAY — שני הנתבים רואים זה את זה, וברשת Ethernet נבחרים DR ו־BDR לפי Priority ולפי Router ID. 3. EXSTART ו־EXCHANGE — חילופי תיאורי בסיס הנתונים, כאן חובה התאמת MTU. 4. LOADING אל FULL — בסיסי הנתונים מסונכרנים. Router ID נקבע ידנית, אחרת לפי ה־Loopback הגבוה, אחרת לפי ממשק פעיל. חייבים להתאים: Area, Subnet, Timers ואימות.

ארבעה דברים שחייבים להתאים בין שכנים

  • אותו Area (למשל Area 0) ואותה רשת/Subnet Mask על הקישור.
  • אותם Hello ו־Dead Interval (ברירת מחדל 10 / 40 שניות).
  • אותה הגדרת אימות (Authentication), אם קיימת.
  • Router ID ייחודי — נבחר לפי router-id ידני, אחרת לפי ה־Loopback הגבוה ביותר, אחרת לפי ממשק פעיל.
  • ברשת Ethernet משותפת נבחרים DR ו־BDR לפי Priority (ברירת מחדל 1) ובשוויון לפי Router ID הגבוה — הם מרכזים את חילופי העדכונים.
Router(config)# router ospf 1
Router(config-router)# router-id 1.1.1.1
Router(config-router)# network 192.168.10.0 0.0.0.255 area 0
Router(config-router)# network 10.0.0.0 0.0.0.3 area 0

! לא לשלוח Hello לכיוון המשתמשים/השרתים
Router(config-router)# passive-interface gi0/1
Router(config-router)# default-information originate

! להכריח נתב מסוים להיות DR
Router(config-if)# ip ospf priority 255

! בדיקות
Router# show ip ospf neighbor
Router# show ip ospf interface brief
Router# show ip route ospf
bash

Verification — איך בודקים שזה באמת עובד

R1# show ip ospf neighbor
Neighbor ID   Pri  State     Dead Time  Address       Interface
2.2.2.2         1  FULL/DR   00:00:34   10.0.0.2      GigabitEthernet0/0
3.3.3.3         1  FULL/BDR  00:00:31   10.0.0.3      GigabitEthernet0/0
! State = FULL → ה־LSDB מסונכרן. Dead Time סופר אחורה מ־40 ומתאפס כל Hello.

R1# show ip route ospf
O    192.168.20.0/24 [110/2] via 10.0.0.2, 00:04:11, GigabitEthernet0/0
O*E2 0.0.0.0/0       [110/1] via 10.0.0.2, 00:04:11, GigabitEthernet0/0
! O = נלמד מ־OSPF · 110 = Administrative Distance · 2 = Cost

R1# show ip ospf interface brief
Interface  PID  Area  IP Address/Mask  Cost  State  Nbrs F/C
Gi0/0        1     0  10.0.0.1/30         1  DR       2/2
Gi0/1        1     0  192.168.10.1/24     1  DR       0/0
bash

טעויות נפוצות (ומה בודקים)

  • Wildcard Mask שגוי — /24 = 0.0.0.255, /30 = 0.0.0.3. מסך שגוי ⇒ הממשק לא נכנס ל־OSPF כלל (Nbrs 0/0).
  • MTU לא תואם בין השכנים — השכנות נתקעת ב־EXSTART/EXCHANGE. בודקים ב־show interfaces ומיישרים ל־1500.
  • Router ID כפול בין שני נתבים — השכנות לא עולה. מגדירים router-id ידנית ואז clear ip ospf process.
  • Area שונה משני צדי הקישור, או Hello/Dead Timers שונים — אין שכן בכלל.
  • Subnet Mask שונה על אותו קישור (למשל /24 מול /30) — OSPF מסרב לבנות שכנות.
  • ACL או Authentication חוסמים Hello בכיוון אחד — השכן תקוע ב־INIT.
  • שכחו passive-interface לכיוון המשתמשים — Hello נשלח לרשת המשתמשים, רעש וסיכון אבטחה.
ארכיטקטורה ותיאוריה — מתחת למכסה המנוע

OSPF הוא Link-State: כל נתב מפיץ LSA, כולם בונים מפה זהה של הרשת (LSDB) ומריצים אלגוריתם Dijkstra כדי לחשב את המסלול הקצר ביותר.

Down -> Init -> 2-Way -> ExStart -> Exchange -> Loading -> FULL
                  ^                                        ^
            רואים Hello                             שכנות מלאה

Hello=10s / Dead=40s (broadcast)   Cost = 100Mbps / BW
text
  • Router ID נקבע פעם אחת בעליית התהליך ולא משתנה מעצמו — שינוי דורש clear ip ospf process, ולכן תמיד קובעים אותו ידנית על Loopback יציב.
  • DR/BDR נבחרים ברשת Broadcast כדי לצמצם שכנויות; לפי Priority ואז Router ID. ב־Point-to-Point אין DR.
  • כל השכנים חייבים להסכים על: Area ID, Hello/Dead timers, אימות, MTU ו־Subnet.
  • Passive-interface: הנתב עדיין מפרסם את הרשת אבל לא שולח Hello — חובה על ממשקי משתמשים.
הגדרה מעשית (CLI)
R(config)# router ospf 1
R(config-router)# router-id 1.1.1.1
R(config-router)# network 192.168.10.0 0.0.0.255 area 0
R(config-router)# network 10.0.0.0 0.0.0.3 area 0
R(config-router)# passive-interface gi0/1
R(config-router)# default-information originate
R(config)# interface gi0/0
R(config-if)# ip ospf priority 255        ! להכריח DR
R(config-if)# ip ospf cost 10
bash
תרחישי אמת בארגון
  • רשת רב־אתרית: כל סניף מפרסם את הרשתות שלו וההתאוששות מנפילה אוטומטית.
  • Loopback כ־Router ID יציב — לא משתנה גם אם ממשק נופל.
  • Single-Area (area 0) מספיק לרוב הארגונים הבינוניים.
אבחון ופתרון תקלות
R# show ip ospf neighbor        ! חייב להיות FULL או 2WAY (עם DROTHER)
R# show ip ospf interface brief
R# show ip route ospf           ! מסלולים מסומנים O / O*E2
R# show ip protocols
R# debug ip ospf adj
bash
  • השכן תקוע ב־EXSTART/EXCHANGE → אי־התאמת MTU בין הממשקים.
  • השכן במצב 2-WAY וזה תקין → ברשת Broadcast רק DR/BDR מגיעים ל־FULL, שאר הנתבים נשארים 2-WAY במכוון.
  • Duplicate Router ID → שכנות מתנתקת ומתחברת שוב ושוב.
  • השכן נעלם כל 40 שניות → אובדן חבילות Hello בקו.
מילון מונחים ושורת פקודות מהירה
  • 110 | Cost = 100M/BW | Hello 10 / Dead 40
  • network <net> <wildcard> area <n>
  • show ip ospf neighbor — הפקודה מספר 1
  • מצב תקין: FULL/DR, FULL/BDR, FULL/ -

בדוק את עצמך

איזה מצב שכנות OSPF מעיד על יציבות מלאה?

מה עושה passive-interface ב־OSPF?

העמוד הזה עזר לך?