Khắc phục sự cố liên quan đến OSPF Adjacency – Phần 1

Trong phần này, chúng ta sẽ thảo luận một số nguyên nhân ảnh hưởng đến việc thiết lập quan hệ lân cận (adjacency) OSPF giữa hai thiết bị ngang hàng (peers), và cách xử lý sự cố này trong hệ điều hành Junos của Juniper.

Trước tiên, chúng ta sẽ liệt kê các nguyên nhân có thể dẫn đến sự cố adjacency trong OSPF, và sau đó sẽ bàn chi tiết hơn tiếp theo.

1. Các nguyên nhân có thể gây ra sự cố OSPF adjacency:

– Trùng ID router (Router ID).

– Subnet mask không khớp hoặc địa chỉ IP sai.

– Không khớp xác thực (authentication).

– Kiểu giao diện (interface type) không khớp.

– OSPF priority được đặt là 0 ở cả hai phía.

– ID vùng (area ID) hoặc loại vùng (area type) không khớp.

– Giá trị hello interval và dead interval không khớp.

– Cấu hình MTU không khớp.

2. Cách xử lý sự cố adjacency:

Có một số lệnh cơ bản để kiểm tra và tìm ra nguyên nhân sự cố mà bạn đang gặp phải, bao gồm:

show ospf neighbors
show ospf interface
show ospf interface detail
show configuration protocols ospf

Ngoài các lệnh giám sát và quản trị (A/M commands), nếu không có lý do rõ ràng gây ra sự cố adjacency, bạn có thể kiểm tra kỹ hơn hoạt động bên trong của giao thức định tuyến nội bộ (IGP) bằng lệnh:

monitor traffic interface <tên-giao-diện> detail

Ngoài ra, sử dụng traceoptions cũng là một phương pháp hữu ích để xác định chính xác vấn đề gì đang xảy ra với adjacency. Hãy cân nhắc sử dụng các cờ (flag) hello detailerror detail để hỗ trợ việc xử lý sự cố.

Trong mô hình dưới đây, chúng ta có hai router kết nối trực tiếp:

Vấn đề về trùng Router ID (RID)

Trong mạng định tuyến trạng thái liên kết (link-state), điều cực kỳ quan trọng là không có hai router nào sử dụng cùng một giá trị RID, vì những lý do sau:

– RID là một trong những phương thức để xác định xem một LSA (Link-State Advertisement) đã tồn tại trong cơ sở dữ liệu hay chưa. Nếu hai router dùng cùng một RID, cơ sở dữ liệu LSDB có thể không đồng bộ giữa các router.

–  Thuật toán Dijkstra sử dụng RID để tính toán đường đi ngắn nhất. Nếu RID bị trùng, một router có thể không xây dựng được một sơ đồ định tuyến không có vòng lặp.

Trên Router1, chúng tôi đã thực hiện các lệnh sau:

thuongndh@Router1> show ospf interface
Interface       State    Area       DR ID            BDR ID     Nbrs
ge-0/0/1.112    PtToPt   0.0.0.0    0.0.0.0          0.0.0.0    0
lo0.0           DR       0.0.0.0    163.121.1.1      0.0.0.0    0

thuongndh@Router1> show ospf neighbor

thuongndh@Router1> show interfaces lo0.0
Logical interface lo0.0 (Index 66) (SNMP ifIndex 16)
Flags: SNMP-Traps Encapsulation: Unspecified
Input packets : 12
Output packets: 12
Security: Zone: Null
Protocol inet, MTU: Unlimited
Flags: Sendbcast-pkt-to-re
Addresses, Flags: Is-Default Is-Primary
Local: 163.121.1.1

thuongndh@Router1> show configuration routing-options
router-id 163.121.1.1;

Trên Router 2

thuongndh@Router2> show ospf interface
Interface       State       Area        DR ID         BDR ID      Nbrs
ge-0/0/1.112    PtToPt      0.0.0.0     0.0.0.0       0.0.0.0     0
lo0.0           DR          0.0.0.0     163.121.1.1   0.0.0.0     0

thuongndh@Router2> show ospf neighbors

thuongndh@Router2> show interfaces lo0.0
Logical interface lo0.0 (Index 66) (SNMP ifIndex 16)
Flags: SNMP-Traps Encapsulation: Unspecified
Input packets : 0
Output packets: 0
Security: Zone: Null
Protocol inet, MTU: Unlimited
Flags: Sendbcast-pkt-to-re
Addresses, Flags: Is-Default Is-Primary
Local: 163.121.1.2

thuongndh@Router2> show configuration routing-options
router-id 163.121.1.1;

Như bạn thấy, cả hai router đều dùng chung router-id163.121.1.1, gây ra xung đột.

Chúng tôi đã bật traceoptions trên Router1 với cờ helloerror, và nhận được nhật ký sau:

Apr 29 20:16:16.391667 OSPF rcvd Hello 10.100.12.2 -> 224.0.0.5 (ge-0/0/1.112 IFL 71 area 0.0.0.0)
Apr 29 20:16:16.391678 Version 2, length 44, ID 163.121.1.1, area 0.0.0.0
Apr 29 20:16:16.391684 checksum 0x0, authtype 0
Apr 29 20:16:16.391690 mask 255.255.255.252, hello_ivl 10, opts 0x12, prio 128
Apr 29 20:16:16.391696 dead_ivl 40, DR 0.0.0.0, BDR 0.0.0.0
Apr 29 20:16:16.391702 OSPF packet ignored: our router ID received from 10.100.12.2 on intf ge-0/0/1.112 area 0.0.0.0

Sau khi khắc phục sự cố RID trùng, ta thấy trên Router2:

thuongndh@Router2> show ospf interface
Interface      State     Area         DR ID           BDR ID        Nbrs
ge-0/0/1.112   PtToPt    0.0.0.0      0.0.0.0         0.0.0.0       1
lo0.0          DR        0.0.0.0      163.121.1.2     0.0.0.0       0

thuongndh@Router2> show ospf neighbor
Address          Interface              State     ID               Pri  Dead
10.100.12.1      ge-0/0/1.112           Full      163.121.1.1      128    35

thuongndh@Router2>

Mặt nạ mạng không khớp (Mismatched subnet masks)

Mặt nạ mạng sai hoặc địa chỉ IP sai ở giao diện có thể khiến OSPF không thiết lập được. Trong ví dụ này, địa chỉ IP trên Router1 được cấu hình là /24 thay vì /30. Mặc dù vẫn ping được, nhưng quan hệ OSPF không hình thành. Nhật ký traceoptions cho biết lý do:

thuongndh@Router1> ping 10.100.12.2 rapid
PING 10.100.12.2 (10.100.12.2): 56 data bytes
!!!!!
— 10.100.12.2 ping statistics —
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.396/0.840/2.211/0.687 ms

thuongndh@Router1> show log OSPFLOG
Apr 29 20:30:03.878646   OSPF rcvd Hello 10.100.12.2 -> 224.0.0.5 (ge-0/0/1.112 IFL 71 area 0.0.0.0)
Apr 29 20:30:03.878668   Version 2, length 44, ID 163.121.1.2, area 0.0.0.0
Apr 29 20:30:03.878674   checksum 0x0, authtype 0
Apr 29 20:30:03.878680   mask 255.255.255.252, hello_ivl 10, opts 0x12, prio 128
Apr 29 20:30:03.878686   dead_ivl 40, DR 0.0.0.0, BDR 0.0.0.0
Apr 29 20:30:03.878692   OSPF packet ignored: netmask 255.255.255.252 mismatch from 10.100.12.2 on intf ge-0/0/1.112 area 0.0.0.0

Không khớp xác thực (Authentication mismatches)

Nếu có sự không khớp về xác thực (authentication), quan hệ OSPF sẽ thất bại. Nếu dùng plain-text authentication, có thể kiểm tra mật khẩu bằng lệnh: monitor traffic interface ge-0/0/1.112 detail

monitor traffic interface ge-0/0/1.112 detail
Address resolution is ON. Use to avoid any reverse lookup delay.
Address resolution timeout is 4s.
Listening on ge-0/0/1.112, capture size 1514 bytesReverse lookup for 224.0.0.2 failed (check DNS reachability).
Other reverse lookup failures will not be reported.
Use to avoid reverse lookups on IP addresses.20:49:56.476501  In IP (tos 0xc0, ttl   1, id 21466, offset 0, flags [none], proto: OSPF (89), length: 76) 10.100.12.2 > 224.0.0.5: OSPFv2, Hello, length 56 [len 44]
Router-ID 163.121.1.2, Backbone Area, Authentication Type: simple (1)
Simple text password: Jun!p3r
Options [External, LLS]
Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.252, Priority 128
LLS: checksum: 0xfff6, length: 3
Extended Options (1), length: 4
Options: 0x00000001 [LSDB resync]

Nếu sử dụng xác thực mã hóa, bạn không thể giải mã khóa và cần cấu hình lại mật khẩu trên cả hai router.

Và chúng ta cũng có thể tìm thấy sự không khớp loại xác thực trong nhật ký traceoptions (Đơn giản/không xác thực) theo O/P bên dưới

Apr 29 20:49:38.784663  OSPF sent Hello 10.100.12.1 -> 224.0.0.5 (ge-0/0/1.112 IFL 71 area 0.0.0.0)
Apr 29 20:49:38.784669  Version 2, length 44, ID 163.121.1.1, area 0.0.0.0
Apr 29 20:49:38.784675  mask 255.255.255.252, hello_ivl 10, opts 0x12, prio 128
Apr 29 20:49:38.784681  dead_ivl 40, DR 0.0.0.0, BDR 0.0.0.0
Apr 29 20:49:39.598405  OSPF packet ignored: authentication type mismatch (1) from 10.100.12.2

Ngoài ra, chúng ta có thể tìm thấy cờ xác thực trong lệnh show ospf interface detail O/P như sau trên cả hai bộ định tuyến.

Trên Router 1

thuongndh@Router1> show ospf interface ge-0/0/1.112 detail
Interface State Area DR ID BDR ID Nbrs
ge-0/0/1.112 PtToPt 0.0.0.0 0.0.0.0 0.0.0.0 0
Type: P2P, Address: 10.100.12.1, Mask: 255.255.255.252, MTU: 1500, Cost: 1
Adj count: 0
Hello: 10, Dead: 40, ReXmit: 5, Not Stub
  Auth type: None
Protection type: None
Topology default (ID 0) -> Cost: 1

Trên Router 2

thuongndh@Router2# run show ospf interface ge-0/0/1.112 detail
Interface State Area DR ID BDR ID Nbrs
ge-0/0/1.112 DR 0.0.0.0 163.121.1.2 0.0.0.0 0
Type: LAN, Address: 10.100.12.2, Mask: 255.255.255.252, MTU: 1500, Cost: 1
DR addr: 10.100.12.2, Priority: 128
Adj count: 0
Hello: 10, Dead: 40, ReXmit: 5, Not Stub
  Auth type: Password
Protection type: None
Topology default (ID 0) -> Cost: 1

Leave a Reply

Your email address will not be published. Required fields are marked *