Ví dụ về bảng định tuyến khi dùng thuật toán DSDV

Một phần của tài liệu (TIỂU LUẬN) AN TOÀN MẠNG AD HOC (Trang 53)

Destination A B C D

Trên đây là hình vẽ miêu tả một bảng định tuyến trong DSDV. Trong đó, next hop là chặng tiếp theo, metric là số các chặng để tới đích, Seq.no là số thức tự của quảng cáo cuối cùng tới nút mạng và install time là thời gian đường được cài đặt lần đầu tiên. Ngồi ra, bảng cịn chứa các trường nút mạng đích (Destination) và thời gian tồn tại của các đường (Stable Data).

2.3.3.2. AODV (Ad-hoc On-Demand Distance Vector Routing)

Giao thức AODV dựa trên thuật toán vector khoảng cách được sử dụng cho việc thiết lập tuyến đường tới đích cho mạng khơng dây. AODV thích ứng nhanh với điều kiện mạng có sự biến động, tốc độ xử lý thấp, giới hạn băng thông và bộ nhớ do các bản tin điều khiển có kích thước nhỏ. AODV là thuật tốn tìm đường theo yêu cầu, khi những nút trong mạng không nằm trong tuyến đường truyền tin thì sẽ khơng duy trì bất cứ thơng tin nào về tuyến đường đó. Điểm khác biệt của AODV so với các giao thức khác là việc sử dụng số tuần tự đích. Số tuần tự đích

được tạo bởi nút đích khi có một kết nối tới nó. Việc sử dụng số tuần tự đích đảm

bảo khơng có vịng lặp trong mạng. Ngoài ra, AODV cho phép các nút mạng gửi phản hồi khi các kết nối bị đứt gẫy hay cấu trúc liên kết mạng có sự thay đổi.

Hình 2.3. Quá trình phát quảng bá bản tin yêu cầu

Hình 12 mơ tả quá trình phát quảng bá bản tin yêu cầu xác định tuyến từ nút nguồn. Sau đó nút đích hoặc một nút có tuyến đường hợp lệ tới đích sẽ gửi phản hồi đơn hướng về nút nguồn (hình 13).

Bản tin điều khiển được sử dụng để thiết lập tuyến. Các bản tin này được gửi thông qua giao thức UDP/IP. Các bản tin điều khiển của AODV bao gồm:

Bản tin yêu cầu (RREQ) Bản tin trả lời (RREP) Bản tin báo lỗi (RERR)

Định dạng bản tin yêu cầu

Hình 2.5. Định dạng bản tin RREQ [7]

Định dạng của bản tin yêu cầu RREQ được trình bày ở trong hình 14 và bao gồm các trường:

Type:1.

Hop count: Số chặng từ nút khởi tạo bản tin RREQ đến nút xử lý bản tin này.

RREQ ID: Chuỗi số sẽ kết hợp với địa chỉ IP của nút nguồn để xác định duy nhất một bản tin RREQ.

Destination IP Address: Địa chỉ IP của nút đích cần xác định tuyến đường mong muốn.

Destination Sequence Number: Chuỗi số tuần tự cuối nút nguồn nhận được trong quá khứ từ mọi tuyến đường tới đích.

Originator IP Address: Địa chỉ IP nút khởi tạo bản tin yêu cầu định tuyến. Originator Sequence Number: Chuỗi số tuần tự được sử dụng cho những tuyến đường hướng tới nút nguồn của yêu cầu định tuyến.

Hình 2.6. Định dạng bản tin RREP [7]

Định dạng của bản tin yêu cầu RREP được trình bày ở trong hình 15 và bao gồm các trường:

Type: 2.

Hop Count: Số chặng từ địa chỉ nút nguồn đến địa chỉ nút đích. Destination IP Address: Địa chỉ của nút đích của tuyến đường được xác định.

Destination Sequence Number: Chuỗi số tuần tự được liên kết với tuyến.

Originator IP Address: Địa chỉ của nút khởi tạo bản tin yêu cầu định tuyến. Life Time: Thời gian (ms) xác định tuyến hợp lệ tại những nút nhận được bản tin trả lời RREP.

Hình 2.7. Định dạng bản tin RERR [7]

Định dạng của bản tin yêu cầu RREQ được trình bày ở trong hình 16 và bao gồm các trường:

Type: 3.

Descount: Số lượng nút đích khơng đến được trong bản tin báo lỗi, trường này phải có giá trị tối thiểu là 1.

Unreachable Destination IP Address: Địa chỉ nút đích khơng đến được do liên kết bị đứt.

Unreachable Destination Sequence Number: Số tuần tự trong bảng định tuyến của các nút đích khơng đến được.

Cơ chế hoạt động:

Quá trình thiết lập tuyến

Khi một nút cần gửi dữ liệu tới đích, nó sẽ phát quảng bá bản tin yêu cầu

đinh tuyến RREQ với một chỉ số ID quảng bá duy nhất tới các nút lân cận. Q

trình này diễn ra nếu tuyến đường đến đích hết hiệu lực hoặc chưa được xác định

trước đó. Sau khi phát quảng bá bản tin RREQ, nút nguồn sẽ lưu vào bộ nhớ đệm

chỉ số ID quảng bá và địa chỉ IP của nó. Bằng cách này, khi nút nguồn nhận lại gói dữ liệu từ nút lân cận, nó sẽ khơng cần xử lý và truyền lại gói tin đó. Sau một khoảng thời gian mà nút nguồn khơng nhận được thơng tin định tuyến, nó có thể

phát quảng bá một bản tin RREQ khác, tối đa RREQ_RETRIES lần.

Khi nhận được bản tin RREQ mới, nút trung gian sẽ so sánh địa chỉ IP nút nguồn và chỉ số ID quảng bá của bản tin này với bản tin RREQ đã nhận được trước đó. Nếu hai cặp giá trị này giống nhau, nút trung gian sẽ tự động xóa bản tin RREQ nhận được. Nếu bản tin RREQ hợp lệ, nút này sẽ tăng giá trị số chặng (hop count) và tiếp tục phát quảng bá gói tin này tới các nút lân cận. Khi gói tin RREQ được truyền trên mạng từ nguồn tới đích, nó sẽ tự động thiết lập đường ngược lại từ các nút mạng này quay trở lại nút nguồn. Tuyến đường ngược lại sẽ được sử dụng nếu nút trung gian nhận được bản tin RREP về nút nguồn trong trường hợp xác định được tuyến đường tới đích.

Một nút nhận được bản tin yêu cầu RREQ sẽ phát bản tin trả lời RREP nếu nó là nút đích hoặc nó có tuyến đường hợp lệ và có số tuần tự lớn hơn hoặc bằng số tuần tự bên trong gói tin RREQ vừa nhận được. Sau đó, bản tin RREP sẽ được truyền đơn hướng tới nút nguồn. Khi các nút trung gian chuyển tiếp bản tin RREQ và RREP, nó sẽ cập nhật bảng định tuyến và lưu danh sách tuyến trong 3 giây,

đây là khoảng thời gian mặc định ACTIVE_ROUTE_TIMEOUT trong AODV.

Cơ chế duy trì số tuần tự

Số tuần tự có vai trị như một tem thời gian, nó cho phép các nút so sánh sự

tươi mới của thông tin mà nút đó đang lưu trữ với các nút khác. Số tuần tự được cập

nhật khi một nút nhận được những thông tin mới từ các bản tin điều khiển RREQ, RREP, RERR. Một nút sẽ tăng số tuần tự của nó trong hai trường hợp:

Khi nút nguồn gửi bản tin yêu cầu RREQ để khám phá tuyến. Khinút đích phát trả lời bản tin RREP.

Số tuần tự lớn hơn đồng nghĩa với thơng tin định tuyến chính xác hơn. Một nút sẽ cập nhật thơng tới đích khi nó nhận được một bản tin điều khiển có số tuần tự lớn

hơn số tuần tự mà nó hiện có về nút đích trong bảng định tuyến. Ngồi ra, số tuần tự đích của một nút có thể thay đổi khi một kết nối tại chặng tiếp theo tới đích

bị mất hoặc hết hiệu lực.

Cơ chế duy trì và giám sát liên kết

Một nút có thể gửi quảng bá định kỳ bản tin HELLO cho các nút lân cận. Khi một nút nhận được bản tin HELLO từ nút hàng xóm, nó sẽ duy trì một tuyến đường tích cực tới nút hàng xóm và có thể gửi quảng bá một bản tin HELLO khác nếu cần thiết. Khi một tuyến đường được xác thực, giá trị thời gian sống (Lifetime) của tuyến đường đó sẽ được tăng lên. Việc sử dụng bản tin HELLO giúp duy trì khả năng kết nối cục bộ của một nút trong mạng.

Bên cạnh đó, nút mạng cịn sử dụng bản in RERR để thơng báo lỗi liên kết cho các nút lân cận. Một nút sẽ tiến hành xử lý bản tin RERR trong ba trường hợp:

Nó phát hiện một kết nối bị đứt gẫy tại chặng tiếp theo của một tuyến đường tích cực trong bảng định tuyến khi truyền dữ liệu.

Nó xử lý một gói dữ liệu đã được xác định đường đi tới một nút trước đó nhưng lại khơng tồn tại một tuyến đường tích cực tới đích.

Nó nhận được bản tin RREQ từ nút lân cận về một hay nhiều tuyến đường tích cực.

Khi đó, nút mạng sẽ thiết lập một danh sách các đích đến khơng thể tới được và cập nhật lại bảng định tuyến. Các nút lân cận có thể sử dụng danh sách này để gửi những gói tin RERR khác.

2.3.3.3. DSR (Dynamic Source Routing)

DSR là thuật toán định tuyến phổ biến trong mạng ad-hoc hiện nay. So với các thuật toán định tuyến khác, nó có những điểm vượt trội hơn như: khơng phát quảng bá định tuyến định kì, hỗ trợ tìm đường đi qua cả các liên kết không đối xứng và phù hợp với tính động của topo mạng. DSR chia cơ chế định tuyến thành hai phần là cơ chế tìm kiếm đường đi (Route Discovery) và cơ chế duy trì tuyến đường (Route Maintenance).

DSR sử dụng kĩ thuật định tuyến nguồn (source route). Theo đó, khi muốn gửi một gói tin, một tuyến nguồn sẽ được hình thành và lưu ở tiêu đề của gói tin. Tuyến nguồn này chứa một danh sách có thứ tự và đầy đủ về các nút mạng cần đi qua để tới đích. Do đó, các nút mạng trung gian chỉ cần duy trì liên kết với các nút mạng hàng xóm để chuyển tiếp các gói tin. Nút mạng nguồn thì cần biết tồn bộ thứ tự tuyến đường để đến đích.

Mỗi nút mạng đều duy trì một bộ nhớ gọi là route cache để lưu các tuyến

đường khởi đầu từ nút mạng này mà nó tìm được. Khi có u cầu về tìm đường đi,

nút mạng sẽ kiểm tra trong route cache có tuyến đường mà nó mong muốn hay khơng. Nếu có, tuyến đường này sẽ được sử dụng để truyền gói tin. Ngược lại, cơ chế tìm kiếm đường đi sẽ được khởi động bằng việc phát quảng bá đi một gói tin yêu cầu đường (Route Request). Khi một nút mạng nhận được gói tin yêu cầu, nó sẽ kiểm tra trong route cache của mình có địa chỉ nút mạng đích hay khơng. Nếu khơng có, nó lại chuyển gói tin đó sang nút mạng hàng xóm của mình, đồng thời, bổ sung địa chỉ của nó vào thứ tự chặng được lưu trong gói tin yêu cầu. Gói tin yêu cầu được truyền trong mạng cho tới khi tới được nút mạng đích hoặc nút mạng có chứa đường đi đến nút mạng đích. Khi đường được tìm thấy, gói tin trả lời (route reply) chứa toàn bộ tuyến đường sẽ được gửi trở lại nút mạng nguồn. Lúc này cũng cần phải có một cơ chế để loại bỏ gói tin Route Request để tránh cho nó truyền vơ hạn trong mạng. Do đó, DSR thêm vào tiêu đề của gói một trường time-to-live. Mỗi khi qua một nút mạng, trường time-to-live sẽ được tăng lên một, khi time-to-live vượt quá một giá trị nào đó, nó sẽ bị loại bỏ. Ngồi ra để giảm thời gian tìm kiếm đường, các nút mạng thường xuyên bổ sung những tuyến

đường mới mà nó học được trong q trình các nút mạng khác chọn đường.

Trong quá trình sử dụng route cache để ghi dữ liệu, các nút mạng vẫn có thể theo dõi sự thay đổi của các liên kết thông qua cơ chế duy trì tuyến đường. Cơ chế duy trì tuyến đường thực hiện biên nhận theo chặng hoặc biên nhận đầu cuối, kèm theo đó là cơ chế thơng báo lỗi khi có liên kết bị đứt gẫy. Khi gói tin Route Error

tất cả các đường có chứa chặng này được cắt tại điểm có liên kết hỏng. Ngồi ra, các nút mạng trung gian chuyển tiếp gói tin route error có thể cập nhật route cache theo cách tương tự.

Hình 2.8. Quá trình tìm kiếm đường của DSR

Hình 2.9. Gửi trả lại tuyến đường về cho nút nguồn

2.3.3.4. TORA (Temporally Ordered Routing Algorithm)

TORA là giao thức định tuyến phân bố khơng lặp vịng và độ thích nghi cao dựa theo phương thức đảo ngược các liên kết. TORA được đề xuất cho mơi trường nối mạng có tính linh động cao. Giao thức được thiết kế để phát hiện đường theo yêu cầu, cung cấp nhiều đường, thiết lập đường nhanh và tối thiểu hóa chi phí truyền thơng bằng cách cục bộ hóa phản ứng của giải thuật đối với các thay đổi cấu hình khi có thể. Giao thức chỉ phản ứng khi tất cả đường tới đích bị mất. Giao thức thực hiện ba chức năng cơ bản: tạo tuyến, duy trì tuyến và xóa tuyến. Giống như các giao thức đảo ngược liên kết khác, việc tạo đường về cơ bản là thực hiện gán các

hướng cho các liên kết trong một mạng hoặc phần mạng vơ hướng hình thành nên đồ thị có hướng khơng có vịng lặp (Directed Acyclic Graph - DAG) có gốc đặt tại đích.

TORA gắn cho mỗi nút mạng trong mạng một độ cao tương ứng. Các thông

điệp trong mạng được truyền từ các nút mạng có độ cao lớn hơn đến các nút

mạng có độ cao thấp hơn. Để phát hiện tuyến đường, TORA sử dụng hai gói tin truy vấn (QUERY) và cập nhật (UPDATE). Khi một nút mạng cần đường đi đến

đích, nó sẽ phát quảng bá gói tin truy vấn QUERY. Gói tin sẽ được truyền qua

mạng cho đến khi gặp nút mạng đích hoặc gặp nút mạng có đường đi đến nút mạng đích. Khi nút mạng nào nhận được gói tin truy vấn QUERY, nó sẽ gửi phản hồi trở lại gói tin cập nhật (UPDATE) có chứa trọng số của nút mạng đó. Các nút mạng nhận được gói tin cập nhật này sẽ phải thiết lập lại trọng số của nó lớn hơn trọng số của nút mạng hàng xóm gửi gói tin cập nhật cho nó.

Cơ chế duy trì tuyến đường thực ra chính là phản ứng của TORA với các thay đổi cấu hình trong mạng. Khi một nút mạng nào đó phát hiện ra đường đi tới

đích khơng cịn hợp lệ, nó sẽ điều chỉnh độ cao của mình là lớn nhất so với nút

mạng hàng xóm, đồng thời phát đi một gói tin UPDATE. Các tuyến đường được

đảo ngược để phản ánh những thay đổi để thích nghi với mức tham chiếu mới.

Việc này có hiệu quả giống như sự đảo hướng của một hay nhiều tuyến đường khi một nút mạng khơng có tuyến đường xuống các nút mạng dưới. Khi mà có nút mạng nào đó khơng cịn tuyến đường đi đến nút mạng đích, nó sẽ bị đánh dấu là vơ hướng và bị xóa ra khỏi đường đi. Việc xóa các tuyến khơng cịn hiệu lực của TORA bao gồm việc phát quảng bá đi thơng điệp CLEAR tới tồn mạng.

2.4. Kết luận

Chương 2 đã trình bày về kiến trúc giao thức mạng WLAN theo chuẩn IEEE 802.11 và các thuật toán định tuyến cho mạng ad-hoc. Bên cạnh đó, giao thức AODV cũng được tìm hiểu chi tiết trong chương này.

Chƣơng 3. THỰC HIỆN TẤN CƠNG LỖ ĐEN VÀ

GIẢI PHÁP PHỊNG CHỐNG

Tấn cơng lỗ đen được thực hiện khá đơn giản nhưng lại có thể gây tổn hại rất lớn tới hoạt động và tài nguyên của mạng ad-hoc. Do đó, yêu cầu thiết lập thử nghiệm việc thực hiện tấn công lỗ đen để nghiên cứu và đưa ra các phương pháp phòng chống là cần thiết. Trong q trình nghiên cứu, tơi đã đưa giải pháp phịng chống tấn cơng lỗ đen và thực hiện thiết lập mô phỏng bằng công cụ NS-2.

3.1. Tấn công lỗ đen trong mạng ad-hoc

Giao thức AODV được sử dụng rất phổ biến nhưng lại có nguy cơ bị tấn công lỗ đen cao do giao thức này chưa được thiết lập các cơ chế để đảm bảo anh ninh.

Hình 3.1. Q trình tấn cơng lỗ đen trong giao thức AODV

Để thực hiện một cuộc tấn công lỗ đen trong giao thức AODV, nút độc chờ bản

tin RREQ gửi từ các nút lân cận của nó. Khi nhận được gói RREQ, nó ngay lập tức gửi trả lời gói tin RREP với nội dung sai lệch trong đó thiết lập giá trị số tuần tự cao nhất và giá trị số chặng nhỏ nhất mà không thực hiện kiểm tra bảng định tuyến xem có tuyến đường tới đích nào khơng. Do đó, khiến nút nguồn cho rằng nút độc là nút tốt nhất để gửi gói tin, tiến hành thực hiện truyền dữ liệu cho nút độc và từ chối bản tin trả lời từ các nút khác (gồm các nút trung gian có tuyến đường hợp lệ

hoặc nút đích) như trong hình 19. Nút độc thực hiện tấn công với tất cả bản tin

Một phần của tài liệu (TIỂU LUẬN) AN TOÀN MẠNG AD HOC (Trang 53)

Tải bản đầy đủ (DOCX)

(109 trang)
w