Khi Router bắt đầu khởi động tiến trình định tuyến OSPF trên một cổng nào đó thì nó sẽ gửi một gói hello ra cổng đó và tiếp tục gửi hello theo định kỳ. Giao thức Hello đưa ra các nguyên tắc quản lý việc trao đổi các gói OSPF Hello.
Ở Lớp 3 của mô hình OSI, gói hello mang địa chỉ multicast 224.0.0.5. Địa chỉ này chỉ đến tất cả các OSPF Router. OSPF Router sử dụng gói hello để thiết lập một quan hệ láng giềng thân mật mới để xác định là Router láng giềng có còn hoạt động hay không. Mặc định, hello được gửi đi 10 giây 1 lần trong mạng quảng bá đa truy cập và mạng điểm-nối-điểm. Trên cổng nối vào mạng NBMA, ví dụ như Frame Relay, chu kỳ mặc định của hello là 30 giây.
Trong mạng đa truy cập, giao thức hello tiến hành bầu DR và BDR.
Mặc dù gói hello rất nhỏ nhưng nó cũng bao gồm cả phần header của gói OSPF. Cấu trúc của phần header trong gói OSPF được thể hiện trên hình 2.2.6.a. Nếu là gói hello thì trường Type sẽ có giá trị là 1.
151
Gói hello mang những thông tin đ ể thống nhất giữa mọi láng giềng với nhau trước khi có thể thiết lập mối quan hệ láng giềng thân mật và trao đổi thông tin về trạng thái các đường liên kết.
Hình 6.6.b. Phần header của gói OSPF Hello
Các thông tin trong phần Hello Interval, Đea Interval và Router ID phải đồng nhất thì các Router mới có thể thiết lập mối quan hệ láng giềng thân mật.
6.2.7. Các bƣớc hoạt động của OSPF
Trong mạng đa truy cập, giao thức Hello sẽ bầu ra m ột DR và BDR. DR và BDR duy trì mối quan hệ thân mật với mọi Router OSPF còn lại trong cùng một mạng.
Hình 6.7.a. Bước 1: phát hiện các Router láng giềng. Trong từng mạng IP kết nối vào Router, Router cố gắng thiết lập mối quan hệ thân mật với ít nhất một láng giềng
Hình 6.7.b. Bước 2: bầu ra DR và BDR. Quá trình này chỉ được thực hiện trong mạng đa truy cập
152
Các Router đã có mối quan hệ thân mật lần lượt thực hiên các bước trao đổi thông tin về trạng thái các đường liên kết. Sau khi hoàn tất quá trình này các ở trạng thái gọi la full state. Mỗi Router gửi thông tin quảng cáo về trạng thái các đường liên kết trong gói LSAs (Link-State Advertisements) và gửi thông tin cập nhật các trạng thái này trong gói LSUs (Link-State Updates). Mỗi Router nhận các gói LSAs này từ láng giềng rồi ghi nhận thông tin vào cơ sở dữl iệu của nó. Tiến trình này được lặp lại trên m ọi Router trong mạng OSPF.
Khi cơ sở dữ liệu về trạng thái các đường liên kết đã đáy đủ, mỗi Router áp dụng thuật toán SPF để tự tính toán chọn đường tốt nhất dựa trên cơ sở dữ liệu mà nó có.
Đường ngắn nhất là đường có chi phí thấp nhất đến mạng đích.
Hình 6.7.c. Bước 3: áp dụng thuật toán SPF vào cơ sở dữ liệu về trạng thái các đường liên kết để chọn đường tốt nhất đưa lên bảng định tuyến
Sau đó các thông tin định tuyến cần phải được bảo trì. Khi có một sự thay đổi nào về trạng thái của đường liên kết, Router lập tức phát thông báo cho mọi Router khác trong mạng. Thời gian Dead interval trong giao thức Hello là một thông số đơn giản để xác định một Router láng giềng thân mật còn hoạt động hay không.
153
Hình 6.7.d. R1 phát hiện một liên kết bị đứt và gửi LSU cho DR bằng địa chỉ multicast 224.0.0.6. DR gửi báo nhận cho R1
154
Hình 6.7.e. Tiếp theo DR gửi LSU mới nhận cho tất cả các Router còn lại trong cùng một mạng bằng địa chỉ multicast 224.0.0.5. Sau khi nhận được LSU, các Router gửi báo nhận
lại cho DR
Hình 6.7.f. Nếu Router OSPF nào còn có kết nối đến mạng khác thì nó sẽ chuyển tiếp LSU ra mạng đó
155
Hình 6.7.g. Sau khi nhận được LSU với thông tin mới, Router OSPF sẽ cập nhật vào cơ sở dữ liệu của nó rồi áp dụng thuật toán SPF với thông tin mới này để tính toán lại bảng
định tuyến
6.2.8. Cấu hình OSPF đơn vùng
a. Cấu hình tiến trình định tuyến OSPF
Định tuyến OSPF sử dụng khái niệm về vùng. Mỗi Router xây dựng một cơ sở dữ liệu đầy đủ về trạng thái các đường liên kết trong một vùng. Một vùng trong mạng OSPF được cấp số từ 0 đến 65.535. Nếu OSPF đơn vùng thì đó là vùng 0. Trong mạng OSPF đa vùng, tất cả các vùng đều phải kết nối vào vùng 0. Do đó vùng 0 được gọi là vùng xương sống.
Trước tiên, cần khởi động tiến trình định tuyến OSPF trên Router, khai báo địa chỉ mạng và chỉ số vùng. Địa chỉ mạng được khai báo kèm theo wilđcard mask chứ không phải là subnet mask. Chỉ số danh định (ID) của vùng được viết dưới dạng số hoặc dưới dạng số thập phân có dấu chấm tượng tự như IP.
Để khởi động định tuyến OSPF dùng lệnh sau trong chế độ cấu hình toàn cục:
Router(config)#Router OSPF process-id
Process-id là chỉ số xác định tiến trình địng tuyến OSPF trên Router. có thể khởi động nhiều tiến trình OSPF trên cùng một Router. Chỉ số này có thể là bất kỳ giá trị nào
156
trong khoảng từ 1 đến 65.535. Đa số các nhà quản trị mạng thường giữ chỉ số process-id này giống nhau trong cùng một hệ tự quản, nhưng điều này là không bắt buộc. Rất hiếm khi nào cần chạy nhiều hơn một tiến trình OSPF trên một Router. khai báo địa chỉ mạng cho OSPF như sau:
Router(config-Router)#network wildcard-mask area area-id
Mỗi mạng được quy ước thuộc về một vùng. Adress có thể là địa chỉ của toàn mạng, hoặc là một subnet hoặc là địa chỉ của một cổng giao tiếp. Wildcard-mask sẽ xác định chuỗi địa chỉ host nằm trong mạng mà cần khai báo.
Hình 6.8. Cấu hình OSPF cơ bản
b. Cấu hình địa chỉ loopback cho OSPF và quyền ƣu tiên cho Router
Khi tiến trình OSPF bắt đầu hoạt động, Cisco IOS sử dụng địa chỉ IP lớn nhất đang hoạt động trên Router làm Router ID. Nều không có cổng nào đang hoạt động thì tiến trình OSPF không thể bắt đầu được. Khi Router đã chọn địa chỉ IP của một cổng làm Router ID và sau đó cổng này bị sự cố thì tiến trình sẽ bị mất Router ID.
Khi đó tiến trình OSPF sẽ bịi ngưng hoạt động cho đến khi cổng đó hoạt động trở lại.
Để đảm bảo cho OSPF hoạt động ổn định chúng ta cần phải có một cổng luôn luôn tồn tại cho tiến trình OSPF. Chính vì vậy cần cấu hình một cổng loopback là một cổng luận lý chứ không phải cổng vật lý. Nếu có một cổng loopback được cấu hình thì OSPF sẽ sử dụng địa chỉ của cổng loopback làm Router ID mà không quan tâm đến giá trị của địa chỉ này.
157
Nếu trên Router có nhiều hơn một cổng loopback thì OSPF sẽ chọn địa chỉ IP lớn nhất trong các địa chỉ IP của các cổng loopback làm Router ID.
Để tạo cổng loopback và đặt địa chỉ IP cho nó sử dụng các lệnh sau:
Router(config)#Interface loopback number
Router(config-if)#IP address IP-address subnet-mask
nên sử dụng cổng loopback cho mọi Router chạy OSPF. Cổng loopback này nên được cấu hình với địa chỉ có Subnet Mask là 255.255.255.255. Địa chỉ 32-bit Subnet Mask như vậy gọi là host mask vì Subnet Mask này xác định một địa chỉ mạng chỉ có một host. Khi OSPF phát quảng cáo về mạng loopback, OSPF sẽ luôn luôn quảng cáo loopback như là một host với 32-bit mask.
Hình 6.9.a. Cổng loopback chỉ là một cổng phần mềm. Để xoá cổng loopback dùng dạng no của câu lệnh tạo cổng
Trong mạng quảng bá đa truy cập có thể có nhiều hơn hai Router. Do đó, OSPF bầu ra một Router đại diện (DR - Designated Router) làm điểm tập trung tất cả các thông tin quảng cáo và cập nhật về trạng thái của các đường liên kết. Vì vai trò của DR rất quan trọng nên một Router đại diện dự phòng (BDR - Backup Designated Router) cũng được bầu ra để thay thế khi DR bị sự cố.
Đối với cổng kết nối vào mạng quảng bá, giá trị ưu tiên mặc định của OSPF trên cổng đó là 1. Khi giá trị OSPF ưu tiên của các Router đều bằng nhau thì OSPF sẽ bầu DR dựa trên Router ID. Router ID nào lớn nhất sẽ được chọn.
158
có thể quyết định kết quả bầu chọn DR bằng cách đặt giá trị ưu tiên cho cổng cua Router kết nối vào mạng đó. Cổng của Router nào có giá trị ưu tiên cao nhất thì Router đó chắc chắn là DR.
Giá trị ưu tiên có thể đặt bất kỳ giá trị nào nằm trong khoảng từ 0 đến 255. Giá trị 0 sẽ làm cho Router đó không bao giờ được bầu chọn. Router nào có giá trị ưu tiên.
OSPF cao nhất sẽ được chọn làm DR. Router nào có vị trí ưu tiên thứ 2 sẽ là BDR. Sau khi bầu chọn xong, DR và BDR sẽ giữ luôn vai trò của nó cho dù chúng ta có đặt thêm Router mới vào mạng với giá trị ưu tiên OSPF cao hơn.
Để thay đổi giá trị ưu tiên OSPF, dùng lệnh IP OSPF priority trên cổng nào cần thay đổi. dùng lệnh showIP OSPF Interface có thể xem được giá trị ưu tiên của cổng và nhiều thông tin quan trọng khác.
Router(config)#IP OSPF priority number
Router(config)#show IP OSPF Interfacetype number
Hình 6.9.b. Trong gói hello phát ra cổng Fast Ethernet 0/0, trường Router Priority sẽ có giá trị là 50
159
Hình 6.9.d.
Hình 6.9.e. Bầu DR và BDR trong mạng quảng bá đa truy cập
c. Thay đổi giá trị chi phí của OSPF
OSPF sử dụng chi phí làm thông số chọn đường tốt nhất. Giá trị chi phí này liên quan đến đường truyền và dữ liệu nhận vào của một cổng trên Router. Nói tóm lại, chi phí của một kết nối được tính theo công thức 108/băng thông, trong đó băng thông được tính theo đơn vị bit/s. Người quản trị mạng có thể cấu hình giá trị chi phí bằng nhiều cách. Cổng nào có chi phí thấp thì cổng đó sẽ được chọn để chuyển dữ liệu. Cisco IOS tự động tính chi phí dựa trên băng thông của cổng tương ứng. Do đó, để OSPF hoạt động đúng cần cấu hình băng thông đúng cho cổng của Router.
Router(config)#Interface serial 0/0 Router(config-if)#bandwith 64
160
Giá trị băng thông mặc định của cổng Serial Cisco là 1,544Mbps hay 1544kbs.
Hình 6.10.a. Giá trị chi phí OSPF mặc định của Cisco IOS
Giá trị chi phí thay đổi sẽ ảnh hưởng đến kết quả tính toán của OSPF. Trong môi trường định tuyến có nhiều hãng khác nhau, sẽ phải thay đổi giá trị chi phí để giá trị chi phí của hãng này tương thích với giá trị chi phí của hãng kia. Một trường hợp khác cần thay đổi giá trị chi phí khi sử dụng Gigabit Ethernet. Giá trị chi phí mặc định thấp nhất, giá trị 1, là tương ứng với kết nối 100Mbs. Do đó, khi trong mạng vừa co 100Mbs va Gigabit Ethernet thì giá trị chi phí mặc định sẽ làm cho việc định tuyến có thể không tối ưu. Giá trị chi phi nằm trong khoảng từ 1 đến 65.535.
sử dụng câu lệnh sau trong chế độ cấu hình cổng tương ứng để cài đặt giá trị chi phí cho cổng đó:
Router(config)#IP OSPF cost number
Hình 6.10.a. Giá trị chi phí OSPF mặc định của Cisco IOS.
161
d. Cấu hình quá trình xác minh cho OSPF
Các Router mặc nhiên tin rằng những thông tin định tuyến mà nó nhận được là do đúng Router tin cậy phát ra và những thông tin này không bị can thiệp dọc đường đi. Để đảm bảo điều này, các Router trong một vùng cần được cấu hình để thực hiện xác minh với nhau.
Mỗi một cổng OSPF tr ên Router cần có một chìa khoá xác mi nh để sử dụng khi gửi các thông tin OSPF cho các Router khác cùng kết nối với cổng đó. Chìa khóa xác minh, hay còn gọi là mật mã, được chia sẻ giữa hai Router. Chìa khoá này sử dụng để tạo ra dữ liệu xác minh (trường Authentication data) đặt trong phần header của gói OSPF. Mật mã này có thể dài đến 8 ký tự. sử dụng câu lệnh sau để cấu hình mật mã xác minh cho một cổng OSPF:
Router(config)#IP OSPF authentication-keyPassword
Sau khi cấu hình mật mã xong, cần bật chế độ xác minh cho OSPF:
Router(config)#are area-number authentication
Hình 6.11.a. Phần header của gói OSPF
Với cơ chế xác minh đơn giản trên, mật mà được gửi đi dưới dạn văn bản. Do đó nó dễ dàng được giải mã nếu gói OSPF bị những kẻ tấn công bắt được.
Chính vì vậy các thông tin xác minh nên được mật mã lại. Để đảm bảo an toàn hơn và thực hiện mật mã thông tin xác minh, nên cấu hình mật mã message-digest bằng câu lệnh sau trên cổng tương ứng của Router:
Router(config)#IP OSPF message-digest-key key-id encryption-type md5
MD5 là một thuật toán mật mã thông điệp message-digist. Nếu đặt tham số encryption-type giá trị 0 có nghĩa là không thự hiện mật mã, còn giá trị 7 có nghĩa là thực hiện mật mã theo cách độc quyền của Cisco.
162
Tham số key-id là một con số danh định có giá trị từ 1 đến 255. Tham số key là phần cho khai báo mật mã, có thể dài đến 16 ký tự. Các Router láng giềng bắt buộc phải có cùng số key-id cà cùng giá trị key.
Sau khi cấu hình mật mã MD5 xong cần bật chế độ xác minh message-digest trong OSPF:
Router(config-Router)#area area-id authentication message-digest
Hình 6.11.b. Cấu hình cơ chế xác minh MD5 cho OSPF
Từ mật mã và nội dung của gói dữ liệu, thuật toán mẫt mã MD5 sẽ tạo ra một thông điệp gắn thêm vào gói d ữ liệu. Router nhận g ói dữ liệu sẽ dùng mật mã mà bản thân Router có kết hợp v ới gói dữ liệu nhận được để tạo ra một thông điệp. Nếu kết quả hai thông điệp này giống nhau thì có nghĩa là là Router đã nhận được gói dữ liệu từ đúng nguồn và nội dung gói dữ liệu đã không bị can thiệp. Cấu trúc phần header của gói OSPF như trên hình 2.3.4.a. Trường authentication type cho biết cơ chế xác minh là cơ chế nào. Nếu cơ chế xác minh là message-digest thì trường authentication data sẽ có chứa key-id và thông số cho biết chiều dài của phần thông điệp gắn thêm vào gói dữ liệu. Phần thông điệp này giống như một con dấu không thể làm giả được.
163
CHƢƠNG 7: DANH SÁCH TRUY CẬP ACLs 7.1. Cơ bản về danh sách kiểm tra truy cập 7.1.1. ACL là gì ?
ACLs là một danh sách các điều kiện được áp dụng cho lưu lượng đi qua một cổng của Router. Danh sách này cho phép Router biết loại gói nào được chấp nhận hay bị từ chối dựa trên các điều kiện cụ thể. ACL được sử dụng để quản lý lưu lượng mạng và bảo vệ sự truy cập ra hoặc vào hệ thống mạng.
ACL có thể được tạo ra cho tất cả các giao thức được định tuyến như IP (Internet Protocol) và IPX (Internetwork Packet Exchange). ACL có thể được cấu hình trên Router để kiểm tra việc truy cập và một mạng hay một subnet nào đó.
Hình 7.1. Ví dụ về ACL
ACL lọc tải bằng cách kiểm tra việc chuyển đi các gói đã được định tuyến xong hoặc là chặn ngay các gói vào cổng của Router. Router kiểm tra từng gói một để quyết định là chuyển gói đi hay hủy bỏ gói đó tùy vào các điều kiện trong ACL như: địa chỉ nguồn và đích, giao thức và số port của lớp trên.
164
Hình 7.2. Cấu trúc về gói dữ liệu
Một số nguyên nhân chính để tạo ACLs:
Giới hạn lưu lượng mạng để tăng hiệu xuất hoạt động của mạng. Ví dụ, bằng cách giới hạn lưu lượng truyền video, ACLs đã làm giảm tải đáng kể và làm tăng hiệu suất của mạng.
Kiểm tra dòng lưu lượng. ACLs có thể giới hạn thông tin truy cập định tuyến. Cung cấp chế độ bảo vệ truy cập cơ bản. ACLs có thể cho phép một host truy cập vào một phần nào đó của hệ thống mạng và ngăn không cho các host khác truy cập vào khu