PDA

View Full Version : OSPF - Thiết lập adjacency giữa các router



R3
10-04-2004, 09:50 PM
OSPF media type:

Có 4 loại môi trường truyền dẫn OSPF là môi trường multiaccess, point-to-point, nonbroadcast multiaccess và demand circuit.

Đặc tính của từng loại như sau:

Môi trường Multiaccess
Môi trường multiaccess là môi trường truyền dẫn như ethernet, fast ethernet, gigabit ethernet, FDDI. Trong môi trường mạng broadcast, OSPF sẽ tiến hành bầu chọn DR, BDR để giảm thiểu lưu lượng trên đoạn mạng.

Môi trường Point-to-Point
Môi trường point-to-point là môi trường truyền dẫn được đóng gói HDLC/PPP, Frame Relay/ATM point-to-point subinterface. Không có sự bầu chọn DR/BDR trong môi trường này. Các gói tin OSPF được gửi đi ở dạng multicast

Môi trường Nonbroadcast Multiaccess
Môi trường NBMA là môi trường truyền dẫn như Frame Relay, X.25, ATM. Có 3 mô hình truyền dẫn trong môi trường NBMA là mô hình broadcast, mô hình point to point và mô hình point to multipoint.

a. Mô hình broadcast
Để giả lập môi trường NBMA thành môi trường broadcast cần tiến hành bầu chọn DR và BDR.

b. Mô hình Point-to-Point
Trong mô hình này, mỗi PVC phải được định nghĩa là các point-to-point subinterface với các subnet khác nhau

c. Mô hình Point to Multipoint
Mô hình này không tiến hành bầu chọn DR/BDR và chỉ yêu cầu 1 mạng con.

OSPF Demand Circuit
OSPF gởi các Hello sau 10 giây và refresh các LSA sau 30 phút, chức năng này để duy trì quan hệ láng giềng và chắc chắn rằng cơ sở dữ liệu trạng thái liên kết phù hợp. Tuy nhiên, các lưu lượng này không cần thiết trên các liên kết dạng demand circuit (như ISDN). Dùng OSPF demand circuit, OSPF có thể thiết lập kết nối theo yêu cầu để tạo adjacency và thực hiện đồng bộ cơ sở dữ liệu. OSPF demand circuit sẽ ngăn các gói Hello và chức năng refesh LSA.


Thiết lập quan hệ giữa các router (Adjacency)

OSPF thiết lập quan hệ liền kề adjacency giữa các router láng giềng nhằm mục đích trao đổi các thông tin định tuyến. Trong môi trường broadcast, không phải router nào cũng có khả năng thiết lập quan hệ adjacency với tất cả các router khác. Gói tin hello chịu trách nhiệm thiết lập và duy trì mối quan hệ này.

Đầu tiên router OSPF sẽ gửi gói tin hello đến địa chỉ multicast 224.0.0.5. Gói tin này sẽ định kỳ gửi đến tất cả các interface có hỗ trợ OSPF với khoảng thời gian gửi tuỳ thuộc vào từng loại interface. Trong môi trường broadcast như ethernet hay point-to-point, thời gian này là 10 giây. Trong môi trường non-broadcast như Frame Relay hay ATM, khoảng thời gian này là 30 giây.

Gói tin hello sẽ định kỳ gửi đi đến tất cả các interface OSPF của router. Khi router phát hiện thấy có router láng giềng nhờ vào gói tin hello nhận được, truyền thông hai chiều sẽ được thiết lập. Trong môi trường broadcast và NBMA, gói tin hello còn được sử dụng để chọn ra các router chỉ định DR/BDR.

Sau khi thiết lập được truyền thông hai chiều, sẽ thiết lập quan hệ liền kề adjacency, việc ra quyết định thiết lập quan hệ adjacency dựa trên trạng thái của router láng giềng và network type. Nếu network type là broadcast hay non-broadcast, quan hệ adjacency sẽ được thiết lập giữa các router chỉ định DR/BDR. Các trường hợp còn lại, quan hệ adjacency sẽ được thiết lập giữa các router láng giềng.

Để thiết lập quan hệ adjacency, đầu tiên router sẽ tiến hành đồng bộ hoá cơ sở dữ liệu bằng cách gửi các gói tin DBD mô tả cơ sở dữ liệu cho nhau. Tiến trình này gọi là tiến trình trao đổi cơ sở dữ liệu database exchange process. Khi đó, hai router sẽ thiết lập quan hệ master/slaver. Mỗi gói tin mô tả cơ sở dữ liệu được gửi đi bởi master sẽ chứa số tuần tự đánh dấu gói tin. Slaver sẽ báo nhận gói tin này bằng cách gửi gói tin chứa số tuần tự này để hồi đáp.

Router sẽ có các trạng thái sau khi thiết lập quan hệ liền kề adjacency: Down State, Attemp State, Init State, 2-way State, Exstart State, Exchange State, Loading State, Full State.

(...)

{ --- trích CCLabPro Vol.3 Routing ---}

R3
20-05-2004, 01:25 PM
http://www.vnpro.org/forum/download.php?id=659

Down State
Router không nhận được các thông tin về neighbor.

Attemp State
Trạng thái này chỉ tồn tại trong mạng NBMA. Ở trạng thái này, router sẽ không nhận được các thông tin từ neighbor nhưng vẫn nỗ lực tạo ra quan hệ với neighbor bằng cách định kỳ gửi các gói tin hello đến neighbor.
Router R1 gửi gói tin hello thông báo rằng chưa chọn được DR, và không tìm thấy neighbor.

Init State
Tiến trình gửi gói tin hello một chiều. R1 gửi gói tin hello, R2 nhận được gói tin này nhưng không biết được tình trạng bản thân (router ID) nên được đặt ở trạng thái một chiều one-way state.


R2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 INIT/DROTHER 0:00:39 10.10.3.1 Ethernet0


2-way State
Khi thiết lập quan hệ hai chiều, router sẽ được đặt ở trạng thái 2-way state. Khi đó, sẽ bắt đầu tiến trình thiết lập quan hệ liền kề adjacency, các router chỉ định DR/BDR sẽ được chọn.
Router R2 gửi gói tin hello cho router R1 báo R2 đã nhận gói tin Hello gửi bởi R1, Router ID của R2 cao hơn nên sẽ được chọn làm router DR.


R2#show ip ospf neighbor
Neighbor ID Pri State Deadtime Address Interface
1.1.1.1 1 2WAY/DROTHER 0:00:36 10.10.3.1 Ethernet0


Exstart State
Trạng thái này là sự bắt đầu tiến trình đồng bộ hoá cơ sở dữ liệu. Master và slave được chọn trong trạng thái này. R1 gửi gói tin DBD đầu tiên, R2 cũng gửi gói tin DBD đầu tiên. Router R2 được chọn làm master vì có router ID cao hơn.


R2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 EXSTART/BDR 0:00:32 10.10.3.1 Ethernet0
(R1 là router backup DR)


Exchange State
Ở trạng thái này, router mô tả trạng thái cơ sở dữ liệu link-state thông qua gói tin DBD. Mỗi gói tin DBD được đánh số tuần tự để phân biệt. Tại mỗi thời điểm chỉ cho phép gửi đi một gói tin DBD. Gói tin Request cũng được gửi đi để yêu cầu cập nhật các gói tin LSA.


R2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 EXCHANGE/DR 0:00:30 10.10.3.1 Ethernet0


Loading State
Ở trạng thái này, gói tin LS Request được gửi đi để yêu cầu trạng thái mới nhất của LSA. Router R1 gửi gói tin LS Request để nhận được trạng thái mới nhất của LSA.


R2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 LOADING/DR 0:00:28 10.10.3.1 Ethernet0


Full State
Sau khi nhận được gói tin LS Update, cơ sở dữ liệu của hai router đã đồng bộ hoá và router sẽ chuyển sang trạng thái Full.


R2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 FULL/BDR 0:00:26 10.10.3.1 Ethernet0


(...)

R3
20-05-2004, 01:36 PM
Sau đây là một bài lab cấu hình OSPF đơn giản minh họa.

http://vnpro.org/forum/download.php?id=660

RouterA và RouterB sẽ chạy OSPF để quảng cáo thông tin định tuyến.
Kích hoạt OSPF : Muốn kích hoạt OSPF trên một router thực hiện hai bước. Trước hết cần xác định một tiến trình OSPF bằng lệnh router ospf process-id và sau đó giao tiếp được khai báo trong tiến trình này. Lưu ý rằng giá trị process-id chỉ có giá trị local. Hai router chạy OSPF có thể dùng những giá trị process-id khác nhau. Một router có thể chạy nhiều OSPF process khác nhau. Ví dụ lệnh sau sẽ kích hoạt OSPF process 64, kích hoạt OSPF trên tất cả các interface, đồng thời gán các interface này vào area 0.
router ospf 64
network 0.0.0.0 255.255.255.255 area 0

Cấu hình

Router A

!
hostname RouterA
!
interface loopback 0
ip address 10.1.1.1 255.255.255.0

interface loopback 1
ip address 11.1.1.1 255.255.255.0
!
interface serial 0
ip address 192.1.1.1 255.255.255.0
no fair-queue
!
router ospf 64 <-- kích hoạt tiến trình ospf 64 trên router
Dùng widcard mask có thể xác định nhiều interface bằng
| một câu lệnh
network 192.1.1.1 0.0.0.0 area 0 <-- xác định interface chạy OSPF và vùng chứa interface.
network 10.1.1.1 0.0.0.0 area 0
!
no ip classless
!
!
line con 0
line aux 0
line vty 0 4
login
!
end
!

Router B


hostname RouterB
!
interface loopback 0
ip address 152.1.1.1 255.255.255.0

interface loopback 1
ip address 153.1.1.1 255.255.255.0
!
interface serial 0
ip address 192.1.1.2 255.255.255.0
no fair-queue
clockrate 64000
!
router ospf 65 <-- kích hoạt tiến trình ospf 65 trên router
network 0.0.0.0 255.255.255.255 area 0 <-- chỉ định ospf chạy trên tất cả các interface và gán chúng vào area 0
!
no ip classless
!
!
line con 0
line aux 0
line vty 0 4
login
!
end

Kiểm tra

Dùng lệnh show ip route trên router A. Lưu ý các host – specific route sẽ xuất hiện (152.1.1.1, 153.1.1.1 )

RouterA#sh ip route
...
Gateway of last resort is not set

153.1.0.0/32 is subnetted, 1 subnets
O 153.1.1.1 [110/65] via 192.1.1.2, 00:01:36, Serial0
152.1.0.0/32 is subnetted, 1 subnets
O 152.1.1.1 [110/65] via 192.1.1.2, 00:01:36, Serial0
10.0.0.0/24 is subnetted, 1 subnets
C 10.1.1.0 is directly connected, Loopback0
11.0.0.0/24 is subnetted, 1 subnets
C 11.1.1.0 is directly connected, Loopback1
C 192.1.1.0/24 is directly connected, Serial0

Dùng lệnh show ip route trên RouterB. Lưu ý các host – specific route sẽ xuất hiện (10.1.1.1)

RouterB#sh ip route
...
Gateway of last resort is not set

10.0.0.0/32 is subnetted, 1 subnets
O 10.1.1.1 [110/65] via 192.1.1.2, 00:01:36, Serial0
153.1.0.0/32 is subnetted, 1 subnets
C 153.1.1.1 is directly connected, Loopback1
152.1.0.0/32 is subnetted, 1 subnets
C 152.1.1.1 is directly connected, Loopback0
C 192.1.1.0/24 is directly connected, Serial0
Lưu ý, những con số xuất hiện sau mỗi địa chỉ đích [110/65] là AD (administrative distance) và routing metric. AD được dùng để so sánh các route học được từ những giao thức khác nhau. Chẳng hạn nếu router học được route 10.1.1.10 từ OSPF và RIP, nó sẽ ưu tiên route học từ OSPF do có AD nhỏ hơn. Routing metric trong OSPF là cost, được tính bằng hàm tỉ lệ nghịch với băng thông của kết nối. Router dùng metric để so sánh các route học từ cùng một giao thức. Ví dụ nếu route 10.1.1.0 học từ hai router chạy OSPF nó sẽ ưu tiên route nào có metric nhỏ hơn.
Từ router A dùng lệnh show ip ospf interface để xem các interface chạy OSPF. Ở đây interface s0 và loopback được cấu hình OSPF và được đặt trong area 0. Lệnh này cũng cho xem network type, timer intervals và adjacent neighbors.

RouterA#sh ip ospf interface
Ethernet0 is administratively down, line protocol is down
OSPF not enabled on this interface
Loopback0 is up, line protocol is up
Internet Address 10.1.1.1/24, Area 0
Process ID 64, Router ID 11.1.1.1, Network Type LOOPBACK, Cost: 1
Loopback interface is treated as a stub Host
Loopback1 is up, line protocol is up
OSPF not enabled on this interface
Serial0 is up, line protocol is up
Internet Address 192.1.1.1/24, Area 0
Process ID 64, Router ID 11.1.1.1, Network Type POINT_TO_POINT, Cost: 64
Transmit Delay is 1 sec, State POINT_TO_POINT,
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
Hello due in 00:00:07
Neighbor Count is 1, Adjacent neighbor count is 1
Adjacent with neighbor 153.1.1.1
Suppress hello for 0 neighbor(s)
Serial1 is administratively down, line protocol is down
OSPF not enabled on this interface
Từ router B, dùng lệnh show ip ospf neighbor để xem trạng thái của các neighbor. Lưu ý các dòng neighbor id và state. Ở đây neighbor id là 11.1.1.1 là địa chỉ ip của interface loopback. Địa chỉ ip của interface loopback luôn được dùng làm router ID. Nếu không có interface loopback thì địa chỉ IP lớn nhất trên router được chọn làm router ID.

RouterB#sh ip ospf neighbor

Neighbor ID Pri State Dead Time Address Interface
11.1.1.1 1 FULL/ - 00:00:33 192.1.1.1 Serial0

Trạng thái của router là Full nghĩa là cả hai router đã đồng bộ về database. Full là trạng thái cuối cùng của hai router.

{ --- Trích Lab 4-1 Basic OSPF - CCLabPro Vol.3 Routing --- }

Hajime
22-05-2004, 01:06 PM
Xin cho hỏi là để xem quá trình thiết lập adjacency và quá trình bầu chọn DR/BDR giữa các router OSPF thì có tất cả các lệnh nào?

Cám ơn !

dangquangminh
22-05-2004, 10:16 PM
hajime

Về quá trình bầu chọn, dùng lệnh

#debug ip ospf adjacency

Cám ơn

Hajime
22-05-2004, 11:05 PM
Cám ơn anh Minh,
Lệnh này thì em biết rồi. Ngoài lệnh này ra và debug events thì có lệnh nào khác để xem quá trình bầu chọn DR/BDR nữa không ?

Em xin cám ơn !

titanevn
23-05-2004, 11:33 AM
Nghe tin R3 đã là một CCIE, xin chúc mừng!

tuanevnit xin hỏi trafic của OSPF và các Routing Protocol khác trong mạng WAN chiếm băng thông có nhiều không? đòi hỏi RAM, CPU của Router như thế nào? mình thử trên Router 2501 thì bị treo.

govap
23-05-2004, 07:09 PM
tuanevnit

OSPF không đòi hỏi nhiều RAM/CPU của hệ thống. Govap thường làm lab OSPF trên Cisco 2500 với cấu hình 8M Flash/8MB RAM và chạy tốt. BGP là một trường hợp khác. Các router 2500 với cấu hình trên không thể chạy BGP.

imported_ipsec
24-05-2004, 08:47 AM
Lab của anh là Boson hay Router thiệt?