– Hello: gói tin Hello dùng để phát hiện trao đổi thông tin của các router cận kề.. – Database Description: gói tin này dùng để chọn lựa router nào sẽ được quyền trao đổi thông tin trước
Trang 1BÀI THỰC HÀNH GIAO THỨC ĐỊNH TUYẾN OSPF
I.Tổng quan
OSPF là giao thức định tuyến dạng link-state thường được dùng để triển khai trên hệ thống mạng phức tạp OSPF tự xây dựng cơ chế để đảm bảo độ tin cậy chứ không sử dụng các giao thức chuyển vận như TCP để đảm bảo độ tin cậy
OSPF là giao thức định tuyến dạng classless nên có hỗ trợ VLSM và discontiguous network OSPF sử dụng địa chỉ multicast 224.0.0.5 (all SPF routers) và 224.0.0.6 (DR và BDR routers) để gửi các thông điệp Hello và Update OSPF còn có khả năng hỗ trợ chứng thực dạng plain text và dạng MD5
OSPF sử dụng giải thuật Dijkstra để xây dựng bảng định tuyến Đây là giải thuật xây dựng các đường đi ngắn nhất SPT (shortest-path tree) để đi đến đích Thông điệp quảng cáo LSA mang thông tin của router và trạng thái các láng giềng lân cận Dựa trên các thông tin học được khi trao đổi các thông điệp LSA, OSPF sẽ xây dựng topology mạng Các loại gói tin OSPF
OSPF có 5 loại gói tin là Hello, Database Description, Link State Request, Link State Update, Link State Acknowledge
– Hello: gói tin Hello dùng để phát hiện trao đổi thông tin của các router cận kề
– Database Description: gói tin này dùng để chọn lựa router nào sẽ được quyền trao đổi thông tin trước (master/slave)
– Link State Request: gói tin này dùng để chỉ định loại LSA dùng trong tiến trình trao đổi các gói tin DBD
– Link State Update: gói tin này dùng để gửi các gói tin LSA đến router cận kề yêu cầu gói tin này khi nhận thông điệp Request
– Link State Acknowledge: gói tin này dùng để báo hiệu đã nhận gói tin Update
Trang 2Các routing protocol nhóm link state không broadcast toàn bộ thông tin về bảng định tuyến giống như RIP/IGRP và thay vào đó, OSPF sẽ dùng một quá trình để khám phá các láng giềng (neighbor) Các láng giềng cũng có thể được định nghĩa tĩnh
Router láng giềng là các router khác, cũng chạy OSPF, có chung subnet với router hiện hành Khi các router đã thiết lập quan hệ láng giềng với nhau, các router bắt đầu trao đổi các thông tin về đồ hình (topology) của mạng Giải thuật SPF sẽ chạy trên các database này để tính ra các đường đi tốt nhất
Khi một interface được chỉ định chạy OSPF, các bước sau diễn ra:
1 Xác định neighbors
a Bắt đầu ở Down state, router không trao đổi gì với ai
b Sang Init state, router gửi hello packet để xác định neighbor OSPF gửi packet Hello lần đầu tiên và chờ nhận một gói Hello packet từ một OSPF router khác, chuẩn bị cho việc thiết lập quan hệ : Two way hay Adjacency Init state chỉ giúp router tìm các
neighbor của nó thôi Ở giai đọan này, router chưa thiết lập adjacency
c Two-way state, router nhận hello hình thành neighbors Khi này các Router nhận ra neighbor, nhưng không thể share routing information cho nhau được ; không có bầu chọn DR/BDR trong state này
2 Hình thành Adjacency
a Vào Extart state: Gửi và nhận DBD (DataBase Description), từ đó chọn ra
master/slave Master được quyền gửi các DBD trước
Trang 3b Sang Exchange state: Master gửi DBD cho các slave, slave nhan DBD, so sánh với các thông tin của nó, đồng thời gửi LSAck lại cho master
c Loading state: Nếu một trong hai bên có thông tin đúng hơn, bên kia sẽ gửi yêu cầu LSRequest, bên này trả lại LSUpdate, bên kia nhận và trả lại LSAck Trạng thái b, c lặp cho đén khi chúng có cùng thông tin
d Full state: Khi này, các router đã có database như nhau, chúng trở thành adjacency của nhau
Chỉ những Router là adjacency của nhau mới share routing information cho nhau
- Trong serial link (point to point), các Router OSPF cũng tự bầu chọn DR/BDR, không nhất thiết là trong multiaccess
Khái niệm DR và BDR
Khái niệm DR, BDR chỉ dùng khi interface của router nối vào broadcast-multiaccess segment Để trao đổi được thông tin vói nhau, các router OSPF phải là các adjacent của nhau Giả sử trong segment có N router chạy OSPF và cùng thuộc một area Nếu không
có DR/BDR, các router phải thiết lập quan hệ adjacency với nhau ==> có N*(N-1)/2 mối quan hệ Và khi N*(N-1)/2 mqhệ này cùng gửi thông tin update thì ảnh hưởng đến
performance của mạng là điều không tránh khỏi Vì thế, DR sẽ đứng ra làm trung gian, nhận và phân phối các LSA từ các router thành viên (cùng segment), sau đó phân phối
đến các router còn lại BDR chỉ là backup cho DR Thay vì có N*(N-1)/2 quan hệ, bạn chỉ có N-1 quan hệ vì các router chỉ tạo adjacency với DR thôi
Vậy nhưng ở mức neighbor, các router vẫn gửi các hello packet cho nhau (10s một lần) Trong ospf có sử dụng ba ID:
* Router ID : Được gửi đi từ các router trong các gói tin hello.Nó có độ dài 32bit.No
có giá trị bằng địa chỉ địa chỉ IP lớn nhất được sủ dụng trên router.Nếu trên router có giao diện loopback được cấu hình thì router ID bằng địa chỉ IP của giao diện loopback đó.Trong trường hợp có nhiều giao diện loopback thì nó lấy địa chỉ lớn nhất của giao diện loopback làm router ID.Router ID được sử dụng để phân biệt các router nằm trong cùng một autonmous system
* Process ID : là tham số cấu hình khi ta đánh lệnh router ospf prcess-id
*Area ID: là tham số để group một nhóm các router vào cùng một area.Các router này cùng chia sẻ hiểu biết về các đường học được trong miền OSPF
Việc chia thành nhiều area là để tiện việc quản lý đồng thời nó giúp ta giới hạn kích thước của topology database, giả sử nếu ta có duy nhất một vùng với kích thước lớn thì lúc đó ta cũng sẽ có một topology database rất lớn tương ứng khiến cho việc xử lý của router chậm đi
Trang 4Trong ospf định nghĩa một số vùng cơ bản sau:
1 Stub Area: đây là vùng sẽ không nhận những routing update từ bên ngoài (Type 5) nhưng vẫn nhận update từ những Area láng giềng (Type 3)
2 Stotaly stub Area: đây có thể coi là vùng cựu đoan nhất nó không nhật bất cứ routing update nào, và trong bảng routing của nó chỉ có một routing ra ngoai duy nhất là default route vùng này thích hợp cho những site ở xa có ít network và cần
sự giới hạn kết nối ra bên ngoài
3 NSSA Stub Area: đây là vùng được sử dụng khi kết nối đên ISP hoặc khi có sự redistribute giữa các routing protocol khác nhau vùng này sẽ nhận các route từ bên ngoài dưới dạng type 7 và sẽ chuyển đổi type 7 này thành type 5 để quảng bá vào các Area khác tại con NNSA ABR
4 Backbone Area: đây chính là vùng Area 0 và nó connect tới tất cả các area khác còn lại, nếu một area nào đó muốn nối tới Area0 nhưng không nối trực tiếp được thì lúc đó ta phải tao virtual link cho Area này
Metric của OSPF là cost
Cost được tính dựa trên công thức 10 exp 8 / BW Băng thông trong công thức trên là băng thông của interface hoặc băng thông được chỉ ra bởi lệnh bandwidth
3 Định dạng gói tin OSPF
OSPF packet được đóng gói trong IP packet tương ứng với trường Protocol number là 89, do vậy maximum của OSPF packet là 1500 octet OSPF packet header là giống đối với các loại OSPF packet khác nhau nhưng OSPF packet data
Trang 5thì biến đổi tuỳ theo loại OSPF packet.
Chú ý: IP packet với protocol number = 89 thì trường TTL luôn luôn bằng 1 để đảm bảo rằng packet không bao giờ đi quá một hop
4.1 The Packet Header
Tất cả các OSPF packet đều có chung một dạng như sau:
Trang 6Trong đó:
Version: là phiên bản OSPF, phiên bản gần đây nhất là 2
Type: xác định ra loại OSPF packet Có 5 loại OSPF packet như sau:
Packet length: là độ dài của OSPF packet gồm cả header (đơn vị là octet)
Router ID: là ID của router gửi
Area ID: là area mà từ đó packet được gửi Nếu packet được gửi qua virtual link, Area ID sẽ là 0.0.0.0 (backbone Area ID) bởi vì virtual link luôn được gắn với backbone
Checksum: kiểm tra toàn bộ packet kể của header
AuType: xác định loại nhận thực được sử dụng
II Thực hành
Cấu hình topo như sau :
LoopB1 (10.0.0.1/30) - R1(192.168.1.1/24
f0/0) -(192.168.1.2/24 f0/0)R2 (172.16.0.1/29)LoopB1
Sau khi th thực hiện cấu hình thiết bị ta thu được kết quả sau :
Trên R1 thu được kết quả sau :
* R1#sho ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
172.16.0.1 1 FULL/DR 00:00:35 192.168.1.2 FastEthernet0/0
* R1#sho ip ospf database
OSPF Router with ID (10.0.0.1) (Process ID 1)
Router Link States (Area 0)
Link ID ADV Router Age Seq# Checksum Link count
Trang 710.0.0.1 10.0.0.1 256 0x80000006 0x004AD9 2 172.16.0.1 172.16.0.1 273 0x80000005 0x007299 2 Net Link States (Area 0)
Link ID ADV Router Age Seq# Checksum 192.168.1.2 172.16.0.1 273 0x80000001 0x00F551
*R1#sho running-config
Building configuration
!
hostname R1
!
ip subnet-zero
!
interface Loopback1
ip address 10.0.0.1 255.255.255.252
!
interface FastEthernet0/0
ip address 192.168.1.1 255.255.255.0
ip ospf message-digest-key 1 md5 cisco
duplex auto
speed auto
!
router ospf 1
log-adjacency-changes
area 0 authentication message-digest
Trang 8network 10.0.0.0 0.0.0.3 area 0
network 192.168.1.0 0.0.0.255 area 0
!
* R1#sho ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
172.16.0.0/32 is subnetted, 1 subnets
O 172.16.0.1 [110/2] via 192.168.1.2, 00:14:52, FastEthernet0/0
10.0.0.0/30 is subnetted, 1 subnets
C 10.0.0.0 is directly connected, Loopback1
C 192.168.1.0/24 is directly connected, FastEthernet0/0
Trên R2 thu được kết quả :
*R2#sho ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
10.0.0.1 1 FULL/BDR 00:00:31 192.168.1.1 FastEthernet0/0
* R2#sh ip ospf database
Trang 9OSPF Router with ID (172.16.0.1) (Process ID 1)
Router Link States (Area 0)
Link ID ADV Router Age Seq# Checksum Link count 10.0.0.1 10.0.0.1 1313 0x80000006 0x004AD9 2
172.16.0.1 172.16.0.1 1328 0x80000005 0x007299 2
Net Link States (Area 0)
Link ID ADV Router Age Seq# Checksum
192.168.1.2 172.16.0.1 1328 0x80000001 0x00F551
* R2#sho running-config
Building configuration
!
hostname R2
!
!
interface Loopback1
ip address 172.16.0.1 255.255.255.248
!
interface FastEthernet0/0
ip address 192.168.1.2 255.255.255.0
ip ospf message-digest-key 1 md5 cisco
duplex auto
speed auto
!
Trang 10router ospf 1
log-adjacency-changes
area 0 authentication message-digest
network 172.16.0.0 0.0.0.7 area 0
network 192.168.1.0 0.0.0.255 area 0
!
* R2#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
172.16.0.0/29 is subnetted, 1 subnets
C 172.16.0.0 is directly connected, Loopback1
10.0.0.0/32 is subnetted, 1 subnets
O 10.0.0.1 [110/2] via 192.168.1.1, 00:24:28, FastEthernet0/0
C 192.168.1.0/24 is directly connected, FastEthernet0/0