Tải bản đầy đủ (.docx) (87 trang)

(TIỂU LUẬN) báo cáo đồ án cơ sở (MT220DV01) đề tài tìm hiểu giao thức open shortest path first (OSPF) trên router juniper

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (11.2 MB, 87 trang )

KHOA KHOA HỌC VÀ CÔNG NGHỆ

BÁO CÁO
ĐỒ ÁN CƠ SỞ
(MT220DV01)
ĐỀ TÀI: Tìm hiểu giao thức Open Shortest
Path First (OSPF) trên router Juniper

Giảng viên hướng dẫn : Đinh Ngọc Luyện
Lớp
Sinh viên
Sinh viên
Sinh viên

HK15.2


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

MỤC LỤC
1 Thuật ngữ và viết tắt ................................................................................................................

1.1 Tìm hiểu thành phần router Juniper ..........................................

1.2 Quá trình hoạt động của OSPF .................................................

1.3 Bành trướng quy mô mạng OSPF ............................................
2 Tìm hiểu thành phần router Juniper .........................................................................................

2.1 Lịch sử Juniper Networks .........................................................


2.2 Tổng quan thiết bị JUNOS .......................................................

2.3 Thành phần chính của router Juniper .......................................

2.3.1 Routing engine (RE) ................

2.3.2 Packet forwarding engine (PFE

2.4 Cách thức hoạt động của RE và PFE ........................................

2.4.1 Maintains Routing Engine Intel

2.4.2 Controls and monitors chassis .

2.4.3 Forward traffic .........................

2.4.4 Transit traffic ...........................

2.4.5 Exception Traffic: Part 1 .........

2.4.6 Exception traffic: Part 2 ...........
3 Tìm hiểu về Operation mode của Juniper ................................................................................

3.1 Tìm hiểu về Configuration mode của Juniper ..........................

3.1.1 Tổng quan ................................

3.1.2 Giới thiệu sơ lược về Configura

3.2 Bên trong Configuration mode có gì? ......................................


3.2.1 Nắm rõ những bước cơ bản của

3.2.2 Chỉnh sửa trong Configure mod

3.2.3 Thực thi cấu hình .....................
4

Quá trình hoạt động của OSPF ..............................................................................................

4.1 Tổng quan giao thức Link-State ...............................................

4.2 Các loại gói tin .........................................................................

4.2.1 Phần Header .............................

4.3 OSPF Hello packet ...................................................................
I


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

4.4 OSPF Database description Packet ..........................................

4.5 Link-State Request ...................................................................

4.6 Link-State Update Packet .........................................................

4.7 Link-State Acknowledgment Packets .......................................


4.8 Forming Adjacency ..................................................................

4.9 Troubleshooting an Adjacency Formation ...............................
5

Bành trướng quy mô mạng OSPF .........................................................................................

5.1 Các loại LSA ............................................................................

5.2 Designated Routers ...................................................................

5.2.1 Backup Designated Router ......

5.2.2 Quá trình bầu cử DR ................

5.3 Các phương pháp bành trướng quy mô mạng OSPF ................

5.3.1 Các loại router trong OSPF .....

5.3.2 Phân loại area của OSPF .........
6

Lab khảo sát ...........................................................................................................................

6.1 Lab single area ..........................................................................

6.1.1 Mô tả ........................................

6.1.2 Cấu hình ...................................


6.1.3 Khảo sát ...................................

6.2 Lab multiarea.............................................................................

6.2.1 Mơ tả ........................................
6.2.2 Cấu hình & Khảo sát trước khi

6.2.3 Cấu hình & Khảo sát sau khi có

6.3 Lab khảo sát vùng stub trong OSPF trên Juniper .....................

6.3.1 Mô tả ........................................

6.3.2 Cấu hình & khảo sát ................

6.4 Lab khảo sát vùng totally stub trong OSPF trên Juniper ..........

6.4.1 Mô tả ........................................

6.4.2 Cấu hình & khảo sát ................

6.5 Lab NSSA .................................................................................

6.5.1 Mơ tả ........................................

6.5.2 Cấu hình & Khảo sát ...............
II


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper


6.6 Lab khảo sát E2 trên Juniper ....................................................

6.6.1 Mô tả ........................................

6.6.2 Cấu hình & khảo sát ................

6.7 Lab khảo sát E1 trên Juniper ....................................................

6.7.1 Mô tả ........................................

6.7.2 Khảo sát gói tin External Route

III


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

1 Thuật ngữ và viết tắt
1.1 Tìm hiểu thành phần router Juniper
ISP
Kernel
Broadcast
Multicast
Unicast
Packet
Chasis

1.2 Quá trình hoạt động của OSPF
LSDB

DD
Adjacency
Field
Loop
Forward
MTU

1.3 Bành trướng quy mô mạng OSPF
LSA
DR
BDR
Flood
Default-route
Next-hop
ABR
ASBR


1


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

2 Tìm hiểu thành phần router Juniper
2.1 Lịch sử Juniper Networks
Juniper Networks là một công ty đa quốc gia có trụ sở chính tại Sunnyvale, tiểu bang California ở Hoa Kỳ. Cơng
việc chính của hãng là phát triển và sản xuất các sản phẩm mạng bao gồm router, switch, phần mềm quản lý
network, firewall và công nghệ SDN – Software-defined networking ( Tạm dịch: Phần mềm định nghĩa Network).

Kể từ khi thành lập, Juniper chủ yếu tập trung vào việc phát triển và sản xuất core router thường được các ISP tin

tưởng sử dụng. Đồng thời sau khi mua được Unisphere vào năm 2002, Juniper bắt đầu tham gia thị trường các
edge router được các ISP sử dụng để định tuyến đến từng khách hàng riêng biệt. Vào khoảng năm 2003, Juniper bắt
tay vào mảng an tồn thơng tin sau khi mua công ty NetScreen Technologies vào năm sau đó.

2.2 Tổng quan thiết bị JUNOS

Hệ điều hành cho mơi trường mạng của hãng Juniper Networks hiện tại đang sử dụng là Junos. Đây được xem là
bộ não của các thiết bị hoạt động cho các mục đích khác nhau như Routing, Switching và kể cả Security.

2


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

Dịng routing của Junos

2.3 Thành phần chính của router Juniper
Có hai thành phần cơ bản của hệ thống là Routing Engine và Packet Forwarding Engine đại diện cho hai luồng chức năng
Control plane và Forwarding plane. Đây cũng là quy tắc thiết kế hệ thống trong router của Juniper Networks.

2.3.1 Routing engine (RE)
Đây là vị trí trung tâm, là bộ não của router dùng để điều khiển hệ thống. Tất cả các việc làm liên quan tới định
tuyến, giao thức đều do RE quyết định và đưa các đường đi tốt nhất vào bảng routing. Dữ liệu này của bảng routing
sau đó sẽ được sao chép vào bảng forwarding của Packet Forwarding Engine. Chính bảng forwarding của thành
phần này cho phép router gửi các gói tin đi. Ngồi ra RE còn là nơi hoạt động của hệ điều hành Junos Các chức
năng khác:

Nâng cấp phần mềm

3



Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

Monitor và cấu hình router
Duy trì bảng routing
Kết nối với Packet Forwarding Engine thông qua Internal Link
…..

2.3.2 Packet forwarding engine (PFE)
Khi RE là nơi tính tốn đường đi tốt nhất và lưu vào bảng routing thì PFE là nơi đảm nhiệm chức năng forward các
gói tin qua router. PFE nhận được bảng forwarding từ RE thông qua internal link.

2.4 Cách thức hoạt động của RE và PFE
2.4.1 Maintains Routing Engine Intelligence

RE đảm nhiệm tất cả tiến trình hoạt động của giao thức, những tiến trình phần mềm để điều khiển interface, thành
phần chassis, quản lý hệ thống, và các user kết nối vào thiết bị.

2.4.2 Controls and monitors chassis
RE cho phép các user kế nối, thao tác và điều khiển thiết bị ở mode top trên Junos kernel

2.4.3 Forward traffic

PFE tự động forward traffic dựa trên bản sao của bảng local forwarding. Bảng forwarding của PFE là bảng thông tin
được tạo và cung cấp bởi RE.

2.4.4 Transit traffic
Transit traffic dẫn lưu lượng đi vào các port, và lưu lượng được forward theo port nào dựa trên bảng forwarding để
đến đích

Transit traffic có thể là unicast hoặc multicast traffic:

4


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

Unicast dẫn lưu lượng từ 1 port ra 1 port để tới đích
Multicast dẫn lưu lượng từ 1 port ra nhiều port để tới đích tuỳ vào lượng multicast
recievers và môi trường network

2.4.5 Exception Traffic: Part 1
Exception traffic không giống transit traffic, exception traffic theo những yếu tố sau:

Packets được gửi tới chassis, như Routing protocol updates, Telnet, pings, traceroutes
IP Packets với trường IP
Traffic theo loại tin ICMP

5


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

2.4.6 Exception traffic: Part 2

Junos OS gữi tất cả exception traffic tới RE trên liên kết nội bộ để kết nối tới Control Plane và Forwarding Planes

3 Tìm hiểu về Operation mode của Juniper
Operation mode trên Juniper có các khả năng như:


Giám sát và khắc phục lỗi trên thiết bị.
Kết nối với các network khác trong hệ thống.
Có thể khởi động lại các tiến trình.
Truy cập vào mode cấu hình.
Hiển thị cấu hình.


Trên Operation mode cung cấp cho người quản trị các khả năng để quản lý và giám sát hệ thống như cấu
hình, reboot thiết bị hay khởi động, reset các quá trình khác nhau sau khi được cấu hình trên thiết bị. VD: Ta
có thể giám sát thiết bị và phát hiện các lỗi thông qua các lệnh show (show command).
Với show command, người quản trị có thể dễ dàng giám sát được các hoạt động diễn ra trên router. Juniper còn hỗ
trợ khá chi tiết trong show command, thể hiện từng trạng thái riêng biệt mà người quản trị mong muốn.
Nếu trong quá trình hoạt động mà thiết bị gặp lỗi, cách sửa lỗi cơ bản nhất trước khi phải can thiệp vào mode
configuration chính là việc restart process gặp lỗi. Tuy nhiên nên xem xét trước khi restart vì điều này có thể
ảnh hưởng đến các process khác đang cùng chạy trên thiết bị.

3.1 Tìm hiểu về Configuration mode của Juniper
3.1.1 Tổng quan
Configuration mode là mode quan trọng nhất trên thiết bị, trực tiếp thay đổi, tinh chỉnh nhiều thứ như network,
security, routing và switching protocol…Mỗi dịng lệnh đều có những chức năng riêng biệt, ảnh hưởng nhất định
đến các quá trình đang chạy trên thiết bị.

3.1.2 Giới thiệu sơ lược về Configuration mode.
Được thiết kế với các bước cấu hình tuần tự, thiết bị của Juniper ln đảm bảo rằng bạn ln cấu hình và kiểm
tra mọi thứ trước khi đưa chúng vào hoạt động. Cấu hình của bạn sẽ có hiệu lực sau khi gõ lệnh commit.

6


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper


Sơ đồ thể hiện 3 bước cơ bản khi cấu hình trên Junos

Bước 1: Người dùng cấu hình trên thiết bị Juniper.
Bước 2: Sau khi cấu hình xong, người dùng sẽ kiểm tra lại và gõ lệnh commit hoặc
commit confirmed để cấu hình có hiệu lực. Trước khi áp dụng các lệnh này lên file cấu
hình, hệ thống sẽ lần lượt kiểm tra các lệnh để phát hiện lỗi. Nếu có lỗi, hệ thống sẽ dừng
lại và báo lỗi.
Bước 3: Các cấu hình đã có hiệu lựa trên thiết bị.

3.2 Bên trong Configuration mode có gì?
Để vào được mode configuration, ta dùng lệnh configure hoặc edit ở mode operation.
Vì trên Juniper có nhiều loại user khác nhau nên việc phân biệt ai đã cấu hình, thay đổi gì trên hệ thống là một
việc rất cần thiết. Vì thể mà router Juniper có đến 3 mode configuration khác nhau:

Standard: Mode cấu hình mà tất cả các user có thể thực hiện việc thay đổi, chỉnh sửa trên
hệ thống. Một user thay đổi cấu hình có thể khiến các user khác thấy được.
Exclusive: Tất cả các user đều không thể truy cập được mode cấu hình này khi đang có
một user bật trạng thái exclusive trên thiết bị. Chỉ có user exclusive này mới có khả năng
tắt mode cấu hình này.
o Lệnh: configuration exclusive.
Private: Ở mode cấu hình private, chỉ có cấu hình của private user là có hiệu lực trên hệ
thống. Tất cả các cấu hình khác đều bị vơ hiệu hóa.
o Lệnh: configuration private.

3.2.1 Nắm rõ những bước cơ bản của Configuration mode
Configuration mode còn cung cấp cho người quản trị nhiều sự lựa chọn khác nhau trong việc
giám sát, chỉnh sửa cấu hình của từng user trước khi chúng được commit vào hệ thống.
Lệnh show dùng để thể hiện ra những cấu hình đang có trên thiết bị. Khi lệnh show đang
nằm ở mode tồn cục, màn hình sẽ thể hiện tồn bộ những cấu hình đang có trên thiết bị.

Nếu lệnh show đang ở trong một mode cụ thể ví dụ như interface…lệnh show chỉ thể
hiện những cấu hình thuộc mode mà lệnh show được active. Nếu người dùng đang ở trong
một mode càng cụ thể thì lệnh show sẽ thể hiện ra những thông tin cần thiết nhất.

7


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

3.2.2 Chỉnh sửa trong Configure mode

3.2.2.1 Lệnh set
Lệnh set là lệnh cơ bản trong mode cấu hình, dùng để thay đổi, tinh chỉnh các cấu hình, dịch vụ theo mong
muốn của người dùng

Cấu hình interface

Cấu hình dịch vụ telnet

3.2.2.2 Lệnh delete
Lệnh delete dùng để tháo gỡ những cấu hình trước đó mà người dùng thiết lập, lệnh xóa có thể ảnh hưởng đến các
nhánh con, những cấu hình nhỏ nằm trong phần xóa.
Vd: Xóa cổng địa chỉ cổng ge-0/0/7

3.2.2.3 Lệnh rename
Nếu như trong Cisco, người dùng có thể sửa cấu hình bằng cách viết đè lên lệnh cũ thì Juniper
khơng hỗ trợ việc này. Do đó Juniper có riêng lệnh rename dùng để thay đổi các chi tiết trong
configuration.
Ví dụ: Đổi địa chỉ trong interface ge-0/0/7.


8


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

Lệnh rename được dùng với cú pháp rename…to, lệnh rename có thể thay đổi tất cả các chi tiết
trong configuration.

3.2.3 Thực thi cấu hình

3.2.3.1 ệnh compare
Compare là một option trong lệnh show, khi dùng lệnh này người dùng có thể biết được mình đã thay đổi gì trên cấu
hình thông qua hai dấu (+) và (-).
Ta dùng lệnh compare khi chưa commit cấu hình của candidate.
Vd: Xóa cổng ge-0/0/8

Lệnh compare sẽ hiện ra những dấu trừ ở phía trước cấu hình, báo cho người dùng biết rằng những dịng lệnh này
đã bị xóa khỏi cấu hình tồn cục. Tuy nhiên nó vẫn chưa ảnh hưởng đến cấu hình active vì vẫn chưa commit.

3.2.3.2 Lệnh commit check
Lệnh commit check khác với lệnh commit thông thường ở chỗ commit check sẽ kiểm tra lại những thay đổi này
có hợp lệ hay khơng trước khi thay đổi cấu hình của router. Ưu điểm của commit check là cấu hình sai sẽ khơng
trực tiếp làm thay đổi cấu hình tồn cục, khơng gây ảnh hưởng đến hệ thống đang vận hành. Tuy nhiên lệnh
commit check không dùng để thay thế lệnh commit.

Lệnh commit check khơng báo lỗi sẽ xuất ra dịng chữ configuration check succeeds

9



Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

Khi đặt địa chỉ IP cho cổng ge-0/0/8, lệnh commit check sẽ báo lỗi configuration check-out failed và đi kèm lỗi.

3.2.3.3 Lệnh rollback
Lệnh rollback là một nhánh nhỏ thuộc compare và có chức năng giống hệt như lệnh compare. Nhưng khác biệt
giữa rollback chính là việc lệnh này có thể cho ta thấy những thay đổi trên cấu hình active sau khi ta commit lệnh.

4 Quá trình hoạt động của OSPF
4.1 Tổng quan giao thức Link-State
Link-state là giao thức diễn tả trạng thái của đường kết nối trên interface. Một khi router thực hiện giao thức này,
các thông tin về network của router đó sẽ được đưa vào link-state database – Nơi lưu trữ dữ liệu của giao thức
link-state.

Trước tiên, R1 sẽ gửi gói Hello trên đường link để xác định rằng interface của R2 có đang cùng sử dụng giao thức
link-state giống mình hay khơng để R1 bắt đầu thiết lập mối quan hệ adjacency. Khối liền kề adjacency này sẽ cho
phép hai router quảng bá và trao đổi các thơng tin tóm tắt ngắn gọn về link-state database của nhau. Sau đó, mỗi
router sẽ so sánh dữ liệu nhận được so với database của của riêng mình có phải là thơng tin mới nhất hay chưa.
Giả sử nếu R1 nhận thấy database của mình cần được cập nhật, R1 sẽ yêu cầu thông tin mới nhất từ router trong
khối adjacency là R2 trong ví dụ trên. Quá trình trao đổi này sẽ diễn ra liên tục cho đến khi các router có LSDB
giống nhau.
Dữ liệu của link-state database sẽ cho phép router có một bản đồ tổng thể của topology và các router sẽ áp dụng thuật
toán Dijkstra để xử lý các dữ liệu đó vào mỗi đường đi để tìm đích đến ngắn nhất. Ngồi ra, giao thức link-

10


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper
state yêu cầu các router sử dụng cùng một thuật tốn xử lý database với mục đích duy trì thông tin luôn được vững
chắc nhằm đạt được kết quả giống nhau. Database ln được duy trì là u cầu quan trọng nhất của giao thức linkstate để đảm bảo rằng topology trong network không bị loop, điều này cho phép router tự tin forward các gói tin mà

khơng xảy ra bất cứ lỗi gì.

4.2 Các loại gói tin
Phần này sẽ tìm hiểu các thành phần quan trọng cho phép OSPF liên lạc và phân phối các thông tin cần thiết
được dùng để route tới tất cả mọi nơi trong network. Trước khi tìm hiểu chi tiết về 5 gói tin quan trọng của OSPF
sẽ là phần header chung của các gói tin.

4.2.1 Phần Header
Tất cả các gói tin của OSPF có header gồm 192 bit được chia nhỏ thành từng field khác nhau. Phần header này sẽ
cho phép router bên phía nhận được kiểm tra độ chứng thực của gói tin và nó có được chuyển tiếp hay khơng.
Các trường của header được mơ tả trong hình sau đây:

Field
Version (1 byte)

Type (1 byte)

Packet Length (2 byte)
Router ID (4 byte)
Area ID (4 byte)



Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper
Checksum (2 byte)

Authentication Type (2 byte)

Authentication (8 byte)


4.3 OSPF Hello packet
Để tạo dựng và duy trì mối quan hệ neighbor với các router kế cạnh (lưu ý các router này cũng phải dùng phương
pháp định tuyến OSPF), router phải gửi đi các gói tin hello đến tất cả các router xung quanh qua các interface
được cấu hình cho tham gia tiến trình OSPF và chờ sự phản hồi lại. Gói tin hello sử dụng địa chỉ multicast
224.0.0.5 khi gửi gói tin.

Chi tiết gói tin hello của giao thức OSPF:

Network Mask (32 bits – 4 byte)

Trường Network Mask chứa subnet mask của interface gửi ra gói tin hello. Nếu interface được cấu hình point-topoint hoặc virtual link thì phần này sẽ được mặc định địa chỉ là 0.0.0.0

12


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

Hello Interval (16 bits – 2 byte)
Trường Hello Interval thể hiện chu kỳ mà router gửi đi gói tin hello. Trường này người dùng có thể tùy chỉnh từ 1
đến 255 giây.

Options (4 bits)
Trong trường Option, router sẽ thể hiện chức năng của mình thơng qua các bit, mỗi bit cho một chức năng khác
nhau.

 Bit 7: Còn được biết đến là DN bit, dùng để chống loop trong môi trường VPN

(Virtual Private Network). Nếu như router nhận được gói tin mà có giá trị này sẽ mặc
định khơng chuyển tiếp nó đến router khác.




Bit 6: Cịn được biết đến là O bit, dùng để chỉ định local router hỗ trợ opaque LSAs.

 Bit 5: Còn được biết đến là DC bit, dùng để chỉ định local router hỗ trợ Demand Circuits.
Riêng hệ điều hành JUNOS không hỗ trợ tính năng này.

 Bit 4: Cịn được gọi là EA bit, dùng để chỉ định local router hỗ trợ External

Attributes LSA mang thông tin định tuyến BGP vào bên trong mạng OSPF. Riêng
HĐH JUNOS khơng hỗ trợ tính năng này.

 Bit 3: Được gọi là N/P bit, dùng để miêu tả việc hỗ trợ, xử lý LSA của vùng not-sostubby.
 Bit 2: Được gọi là MC bit, dùng để chỉ định local router hỗ trợ địa chỉ multicast trong
OSPF LSAs. Riêng hệ điều hành JUNOS khơng hỗ trợ tính năng này.




Bit 1: Được gọi là E bit, dùng để miêu tả việc hỗ trợ, xử lý của vùng external LSAs.
Bit 0: Được gọi là T bit, dùng để chỉ định local router hỗ trợ phương thức định tuyến

TOS. Hệ điều hành JUNOS khơng hỗ trợ tính năng này.
Gói tin hello không sử dụng hết tất cả các bit trong trường Options. Ý nghĩa các bit này dùng để phân loại các
gói tin hello.

Router Priority (4 bits)
Trường Router Priority chứa thơng số chỉ độ ưu tiên giữa các router với nhau. Các thông số này được dùng trong
việc bầu chọn designated router và backup designated router. Thông số priority mặc định là 128 nhưng có thể tùy
chỉnh độ ưu tiên từ 1 đến 255. Router nào có priority cao nhất sẽ được bầu làm DR.


Router Dead Interval (32 bits – 4 byte)
Trường Dead Interval cho thấy khoảng thời gian mà router phải chờ để nhận lại gói tin hello từ các router khác.
Dead Interval giữ một yếu tố quan trọng trong quá trình duy trì các mối quan hệ neighbor. Thời gian chờ mặc định
của dead interval là 40 giây.
Khi hết thời gian của Dead Interval, router OSPF sẽ chuyển qua trạng thái down do khơng nhận được gói tin
hello từ router khác trong vùng.

Designated Router (32 bits – 4 byte)
Trường này chứa địa chỉ của designated router trong hệ thống, Nếu khơng có designated router thì trường này được
để là 0.0.0.0

Backup Designated Router (32 bits – 4 byte)
Giống như trường designated router, trường này chứa địa chỉ của backup designated router.

Neighbor
Trường neighbor dùng để hiển thị router ID của tất cả các router đang sử dụng giao thức OSPF trong network.

13


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

4.4 OSPF Database description Packet
Sau khi có được các thông tin về sự hiện diện của các neighbor, router sẽ bắt đầu thiết lập khối adjacency với các
neighbor. Quá trình tạo adjacency này địi hỏi router phải quảng bá database của mình đến các router khác. Chính vì
thế mà router OSPF dùng gói tin Database Description packet (DD) cho mục đích này.
DD packet tóm tắt database bằng cách gửi các LSAs header đến những router khác. Các router này sẽ phân tích
các header nhận được và so sánh với chính database của chúng. Sau đó sẽ tự động bổ sung những thơng tin cịn
thiếu để hồn thiện database.


Chi tiết gói tin Database Description của giao thức OSPF:

Interface MTU (16 bits – 2 byte)

Trường này chứa giá trị MTU của interface gửi đi gói tin DD. Nếu như interface là virtual link thì giá trị mặc định là
0x0000.

Options (4 bits – 1 byte)
Trong trường này của gói tin DD mang các yếu tố hệt như gói tin hello.

Flags (4 bits – 1 byte)
Với trường này, router OSPF có thể trao đổi cùng lúc nhiều gói tin DD với các router neighbor trong q trình
adjacency. Trường này được đặt thơng qua các bit với các chứng năng riêng biệt.
Bit 3 đến Bit 7: Những bit này vẫn chưa được sử dụng đến và giá trị luôn luôn mặc định là 0.
Bit 2: Thường được gọi là I bit hoặc là Initial bit, dùng để xác định giữa DD packet đầu tiên và các DD
packet tiếp nối. Nếu là DD packet đầu tiên, trường này sẽ có giá trị là 1 trong khi các DD packet phía sau
sẽ đổi lại bằng 0.
Bit 1: Được gọi là M bit hay là More bit, có nhiệm vụ thơng báo đến các router khác rằng đây sẽ là DD
packet cuối cùng được gửi đến. Packet cuối cùng thì giá trị bit M được đặt là 0 trong khi các packet
khác đặt là 1.
Bit 0: Được gọi là MS bit hoặc là Master/Slave, được dùng để thể hiện router nào đang điều khiển quá
trình đồng bộ hóa database. Router master sẽ có giá trị là 1 trong khi giá trị 0 sẽ dành cho router slave.

DD Sequence Number (32 bits – 4 byte)

14


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

Trường này đảm bảo rằng tất cả các gói DD đều được nhận và xử lý cùng lúc với q trình đồng bộ hóa database.
Khi router master đọc qua trường này ở gói DD đầu tiên, nó sẽ tự động khởi tạo chuỗi số bắt đầu từ 1. Khi nhận các
DD packet tiếp theo, chuỗi số sẽ tự động tăng thêm 1 đơn vị.

LSA Headers
Trường này mang chứa thông tin về database của router gửi đi. Mỗi header có độ dài lên đến 20 byte và hoàn toàn
khác biệt với nhau. Mỗi gói DD có thể mang nhiều LSA headers.

4.5 Link-State Request
Trong q trình đồng bộ hóa database giữa các router, router có thế phát hiện ra thơng tin dữ liệu được gửi từ các
neighbor bị thiếu hoặc LSDB của nó cũ, chưa được cập nhật. Từ đó router sẽ gửi gói Link-State Request u cầu
thơng tin cần thiết từ các neighbor. Link-State Request có thể chứa một hoặc nhiều Link-State ID tượng trưng cho
các loại LSAs khác nhau

Link-State Type (4 byte)
Biểu hiện loại gói tin LSAs nào được yêu cầu:
1 – Router LSA
2 – Network LSA
3 – Network summary LSA
4 – ASBR summary LSA
5 – AS external LSA
6 – Group membership LSA
7 – NSSA external LSA
8 – External attributes LSA
9
– Opaque LSA (link-local scope)
10 – Opaque LSA (area scope)
11 – Opaque LSA (AS scope)

Link-State ID (4 byte)

Mã hoá những thông tin tượng trưng cho LSAs

Advertising Router (4 byte)
Router ID của router tạo ra gói LSA

15


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

4.6 Link-State Update Packet
Trong q trình trao đổi thơng tin network trong bảng LSDB (Link-State Database) giữa các Router trong cùng một
vùng. Một Router bất kì gửi gói tin Link-State Request cho tất cả Router khác, và khi một router bất kì nhận được
gói tin Link-State Request và nó sẽ xem những thơng tin được u cầu trong gói tin, so sánh với LSDB của Router
đó, và những thơng tin nào cần thiết, nó sẽ soạn và quảng bá LSAs - nằm trong 1 gói Link-State Update - tới những
Router neighbor.
Chi tiết gói tin link-state update

Có 2 trường:

Number of LSAs (4 byte)
Trường này hiển thị số lượng LSAs được chuyển trong gói link-state update
Link-State Advertisements (Variable)
Khi Router soạn hồn tất LSAs, nó sẽ được mã hố vào trường variable-length. Mỗi loại LSA có
một format header giống nhau, cùng thuộc một trường dữ liệu cụ thể, để miêu tả thông tin cho
chính LSAs đó. Gói update này có thể mang một hoặc nhiều LSA.

4.7 Link-State Acknowledgment Packets
Được dùng để bảo đảm gói LSAs được truyền tin cậy và được flood một cách rõ ràng, chính xác bởi router. Gói
này chứa OSPF header giống nhau. được theo sau bởi danh sách các Header LSA. Trường Variable-length cho phép

Local Router biết được các LSA khác nhau trong cùng 1 gói Link-State Acknowledgment Hình biểu hiện format
của gói Link-State Acknowledgment

16


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

4.8 Forming Adjacency
Quá trình hình thành khối adjacency được khởi tạo sau khi router chạy OSPF đã xác định được neighbor.
Adjancency giúp 2 router trao đổi và đồng bộ thơng tin Link-state lẫn nhau.
Trong q trình hình thành Adjancency, router sẽ thay đổi qua nhiều trạng thái khác nhau trước khi trở thành
Adjancency của nhau.
Quá trình này sẽ trải qua theo thứ tự các trạng thái bao gồm:
Down: Đây là trạng thái mặc định trên các router OSPF khi chưa trao đổi bất kì thơng tin gì.
Init: Router sẽ chuyển qua trạng thái Init khi bắt đầu nhận được gói tin hello nhưng trong gói tin đầu tiên này
vẫn chưa hề có router ID của chính nó trong trường Neighbor.
Attempt: Trạng thái này chỉ xuất hiện trong mạng Non-Boardcast Multic-Access (NBMA). Lúc này, router
vẫn chưa nhận được gói tin hello từ neighbor và ngược lại, bản thân router sẽ gửi hello dưới dạng Unicast đến
router neighbor gần nó.
2-Way: Trạng thái 2-Way cho thấy router đã nhận được gói tin hello với chính router ID của nó nằm trong
trường Neighbor. Giữa 2 router đã chính thức có mối quan hệ neighbor.
ExStart: Trong trạng thái này, giữa router local và router neighbor sẽ lựa chọn xem ai sẽ là người quản lý
việc đồng bộ hóa database. Router nào có router ID cao hơn sẽ làm master trong việc đồng bộ hóa, router cịn lại
là router slave.
Exchange: Việc trao đổi gói Database Description sẽ được thực hiện trong trạng thái Exchange, 2 router sẽ
trao đổi database cục bộ của mình cho nhau.
Loading: Sau khi thực hiện xong q trình trao đổi thơng tin link-state với neighbor, trạng thái Exchange sẽ
chuyển sang Loading và bắt đầu gửi link-state request.
Full: Trạng thái cuối cùng trong q trình tạo thành Adjacency chính là Full. Tại trạng thái này, router đã

trao đổi và hoàn thiện link-state database của mình. Các router neighbor tại trạng thái này đã thêm mối quan hệ
Adjacency vào database của chính nó và quảng cáo chúng qua link-state update packet.
Ví dụ:

17


Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

Biểu đồ trên cho thấy q trình hồn thiện link-state database của router Chardonnay (đã được cấu hình và kết
nối vào mạng của router Shiraz).

1.
Router Chardonnay khởi tạo việc trao đổi bằng cách gửi đi gói tin hello tới router
Shiraz qua địa chỉ multicast 224.0.0.5. Trường DR và BRD trong gói tin hello của
Chardonnay được đặt là 0.0.0.0 do chưa bầu chọn, bên cạnh đó Chardonnay vẫn chưa hề
nhận gói tin hello nào từ Shiraz nên trường Neighbor của nó sẽ bỏ trống.
2.
Khi nhận được gói tin hello từ Chardonnay, router Shiraz sẽ chuyển qua trạng thái
Init. Gói tin hello của Shiraz lúc này sẽ chứa địa chỉ của Chardonnay trong trường
Neighbor
3.
Router Chardonnay nhanh chóng chuyển qua trạng thái 2-Way khi nhận lại gói tin
hello từ Shiraz, tuy nhiên chúng sẽ tiếp tục qua ExStart sau khi đã trở thành Neighbor của
nhau. Lúc này, Chardonnay sẽ gửi gói tin Database Description đến Shiraz. Cờ DD sẽ
được bật lên để bầu chọn Master/Slave, mục đích của việc này để xác định router nào sẽ
quản lý q trình đồng bộ hóa.

18



Đề án cơ sở - Tìm hiểu giao thức OSPF trên Juniper

4.
Router Shiraz có router ID lớn hơn (192.168.2.2) nên nó sẽ là Master trong q
trình đồng bộ này.
5.
Router Chardonnay sẽ nhận ra Shiraz có router ID lớn hơn và có nhiệm vụ là
Master trong q trình đồng bộ. Chardonnay sẽ trở thành Slave. Lúc này thì cả 2 sẽ bắt
đầu chuyển qua trạng thái Exchange.
6.
Sau khi bầu chọn xong Master/Slave, router Shiraz sẽ qua trạng thái Exchange.
Shiraz sẽ bắt đầu gửi gói tin DD chứa các thơng tin về database.
7.
Chardonnay xác nhận các gói tin DD từ Shiraz bằng cách gửi các gói tin DD của
nó với số sequence tương tự. Khi router nhận được 1 gói tin DD, các LSA header chưa có
trong database sẽ được ghi chú lại. Các header này được chứa trong một cấu trúc bộ nhớ
gọi là link-state request list.
8.
Khi router Shiraz nhận được gói tin DD với M bit được set về 0 (gói tin cuối cùng
sẽ có M bit được set về 0), router sẽ tự hiểu rằng neighbor đã gửi hết thông tin database.
Router Shiraz sẽ kiểm tra và so sánh với link-state request list đang có và sau đó chuyển
qua trạng thái Full. Tuy nhiên router Shiraz vẫn tiếp tục gửi gói tin DD về Chardonnay.
9.
Chardonnay tiếp tục xác nhận các gói tin DD từ Shiraz bằng cách gửi các gói tin
DD của nó với số sequence tương tự. Đến khi nào router Channory nhận được gói tin DD
với M bit bằng 0 từ neighbor, nó sẽ so sánh link-state request list đang tồn tại và chọn ra
những thông tin cần thiết để bổ sung.
10.
Lúc này Chardonnay sẽ chuyển tiếp qua trạng thái Loading và bắt đầu gửi yêu cầu

bổ sung các thơng tin cịn thiếu nhờ vào gói tin link-state request. Router Shiraz sẽ bổ
sung các thông tin này qua gói tin link-state update. Cho đến khi nào link-state request
list
khơng cịn các u cầu thì Chardonnay sẽ chuyển tiếp qua trạng thái Full.
Tuy nhiên để duy trì mối quan hệ giữa 2 router, cả 2 vẫn phải gửi gói tin hello trong 1 khoảng thời gian nhất định.

4.9 Troubleshooting an Adjacency Formation
Khi mọi thông số giữa các neighbor trùng khớp với nhau thì các tiến trình hình thành Adjacency hoạt động ổn
định nhưng với môi trường thật tế, nơi có thêm nhiều yếu tố xung quanh các giao thức có thể gây ảnh hưởng đến
q trình này. Sau đây là một vài trường hợp cho thấy Adjacency không thể hình thành trạng thái FULL
Khi một Router OSPF nhận một gói Hello packet, nó kiểm tra các trường trùng khớp với các thơng số của nó. Nếu
một trong các thơng số như Area ID, Authentication, Network Mask, Hello Interval, Router Dead Interval, và
Options khơng trùng thì gói Hello sẽ bị loại và khơng được xử lý. Vì vậy, các neighbor trong vùng sẽ tiếp tục
duy trì trạng thái Down bởi vì nó khơng thể xử lý gói Hello được quản bá tới nó
Firewalls và Packet Filters đơi lúc ngăn cản router hình thành mối quan hệ neighbor. Ví dụ, trong hệ thống có
Inbound Filters được gắn vào cổng Loopback của một router, và gói tin Hello từ một Router bất kì quảng bá tới
nó phải thoả Policies của Filters đó.
Ví dụ:
Trường hợp có Firewall hay Filters được gán vào cổng mà 2 Routers cùng kết nối, trong quá trình hình thành
Adjacency, remote Router gửi Hello packet tới local Router, trường hợp trường Neighbor của gói tin khơng chứa
Router ID của local Router. Local Router chuyển sang INIT state và tạo Hello packet chứa Router ID của nó và gửi
tới remote Router, vì Firewall hay Filters được cấu hình lọc IP Routing protocols nên remote Router không nhận
được. Tại thời điểm hết hạn hello intervals, remote Router sẽ gửi tiếp một Hello packet khác, trường Neighbor
khơng có Router ID của local Router, tiếp tục local Router vẫn duy trì trạng thái INIT.

19


×