You are on page 1of 44

1

TRƯỜNG ĐẠI HỌC LẠC HỒNG


KHOA CÔNG NGHỆ THÔNG TIN
----------

BÁO CÁO
NGHIÊN CỨU KHOA HỌC

ĐỀ TÀI:

GIAO THỨC ĐỊNH TUYẾN OSPFN


CHO MẠNG NAMED DATA
NETWORKING

NGUYỄN TẤN XUÂN

BIÊN HÒA, THÁNG 11/2017


2

TRƯỜNG ĐẠI HỌC LẠC HỒNG


KHOA CÔNG NGHỆ THÔNG TIN
----------

BÁO CÁO
NGHIÊN CỨU KHOA HỌC

ĐỀ TÀI:

GIAO THỨC ĐỊNH TUYẾN OSPFN


CHO MẠNG NAMED DATA
NETWORKING

SVTH : NGUYỄN TẤN XUÂN


GVHD : Th.S NGUYỄN VŨ DUY QUANG

BIÊN HÒA, THÁNG 11/2017


3

LỜI CÁM ƠN

Em xin chân thành cám ơn các giảng viên trường Đại Học Lạc Hồng, các thầy cô
khoa Công Nghệ Thông Tin đã giảng dạy và hướng dẫn chúng em trong suốt thời gian
chúng em theo học tại trường.
Em xin gởi lời cám ơn đến Th.S Nguyễn Vũ Duy Quang, là giáo viên đã tận tình
hướng dẫn chúng em hoàn thành đề tài nghiên cứu khoa học này.
Em cũng xin gởi lời cám ơn đến Th.S Nguyễn Hoàng Liêm, giáo viên phản biện
đã góp ý giúp em hoàn thiện chương trình hơn.
Em xin cám ơn các thầy, các cô trong khoa Công Nghệ Thông Tin đã có những
ý kiến đóng góp trong các buổi báo cáo tiến độ.
Ngoài ra em xin cám ơn thầy Nguyễn Vũ Duy Quang, giáo viên chủ nhiệm lớp
13CN111 và các bạn trong lớp cùng toàn thể gia đình và người thân đã giúp đỡ, động
viên em trong quá trình thực hiện đề tài này.
Với vốn kiến thức còn hạn chế cùng những điều kiện khách quan không cho phép,
đề tài của em khó tránh khỏi những thiếu sót cũng như chưa đáp ứng đầy đủ các yêu
cầu. Do đó em hy vọng tiếp tục nhận được những ý kiến đóng góp và hướng dẫn của
quý thầy cô để đề tài của em được hoàn thiện hơn.
Em xin chân thành cảm ơn.
Biên Hòa, tháng 11 năm 2017
Sinh viên thực hiện
Nguyễn Tấn Xuân
4

MỤC LỤC
PHẦN MỞ ĐẦU
1. Lý do chọn đề tài ................................................................................................... 9

2. Lịch sử nghiên cứu ................................................................................................ 9

2.1 Trên thế giới .................................................................................................. 9

2.2. Trong nước ................................................................................................... 9

3. Mục tiêu nghiên cứu ............................................................................................ 10

4. Đối tượng và phạm vi nghiên cứu ....................................................................... 10

4.1. Đối tượng nghiên cứu ................................................................................ 10

4.2. Phạm vi nghiên cứu.................................................................................... 10

5. Phương pháp nghiên cứu ..................................................................................... 10

6. Những đóng góp của đề tài và những vấn đề mà đề tài chưa thực hiện được ..... 10

6.1. Những đóng góp của đề tài ........................................................................ 10

6.2. Những vấn đề chưa thực hiện được ........................................................... 11

7. Kết cấu của đề tài ................................................................................................. 11

CHƯƠNG 1: GIỚI THIỆU NAMED DATA NETWORKING


1.1 Named Data Networking là gì? ......................................................................... 12

1.2 Tổng quan kiến trúc ........................................................................................... 12

1.2.1 Các loại gói tin ......................................................................................... 13

1.2.2 Kiến trúc định tuyến của NDN ................................................................ 14

1.3 Bảo mật .............................................................................................................. 15

1.3.1 Bảo mật ứng dụng .................................................................................... 16

1.3.2 Bảo mật định tuyến .................................................................................. 16

1.4 Name .................................................................................................................. 17


5

1.5 Bảo mật Data-Centric ........................................................................................ 18

1.6 Routing and Forwarding .................................................................................... 18

CHƯƠNG 2 : TÌM HIỂU GIAO THỨC ĐỊNH TUYẾN ĐỘNG OSPF VÀ


OSPFN
2.1 Tổng quan về giao thức OSPF ........................................................................... 20

2.2 Router-id trên OSPF .......................................................................................... 21

2.3 Neighbor của giao thức OSPF ........................................................................... 21

2.4 Ưu điểm của giao thức OSPF ............................................................................ 21

2.5 Các kiểu OSPF area ........................................................................................... 22

2.6 Giới thệu về giao thức OSPFN .......................................................................... 23

2.7 Động lực và bối cảnh ......................................................................................... 23

2.8 Thiết kế .............................................................................................................. 24

2.8.1 Tính toán đường đi ................................................................................... 25

2.8.2 Tên thông điệp OLSA .............................................................................. 26

2.8.3 Quá trình trao đổi thông điệp ................................................................... 27

CHƯƠNG 3 : THỬ NGHIỆM NDN TRÊN MÔI TRƯỜNG LINUX


3.1 Xây dựng môi trường Named Data Networking. .............................................. 29

3.2 Cài đặt các thư viện ........................................................................................... 29

3.2.1 Mini-NDN ................................................................................................ 29

3.2.2 Mininet ..................................................................................................... 29

3.2.3 Named Data Networking Forwarding Daemon ....................................... 30

3.2.4 ChronoSync .............................................................................................. 30

3.2.5 Ndn-cxx .................................................................................................... 30

3.2.6 NLSR ....................................................................................................... 30


6

3.2.7 Ndn-tool ................................................................................................... 31

3.3 Ndnping và ndnpingserver ................................................................................. 36

3.3.1 Sử dụng Client.......................................................................................... 36

3.3.2 Sử dụng Server ......................................................................................... 36

3.3.3 Thăm dò về Interests ................................................................................ 36

3.3.4 Trả lời Data .............................................................................................. 36

3.3.5 Thực hiện ping giữa các nodes ................................................................ 36

3.4 Quá trình tìm đường đi ...................................................................................... 38

3.4. Tiểu kết ............................................................................................................. 43

KẾT LUẬN.............................................................................................................. 43

TÀI LIỆU THAM KHẢO ....................................................................................... 44


7

DANH MỤC HÌNH ẢNH

STT Hình ảnh Mô tả

1 Hình 1.1 Kiến trúc đồng hồ cát của IP và NDN

2 Hình 1.2 Nội dung gói tin của NDN

3 Hình 2.1 Các kiểu area của OSPF

4 Hình 2.2 Mối quan hệ giữa CCND, OSPFN và OSPFD

5 Hình 2.3 Tên thông điệp OLSA

Các chuỗi thông báo trao đổi giữa OSPFN, OSPFD và


6 Hình 2.4
CCND

7 Hình 3.1 Thư mục chứa các file cài đặt NDN

8 Hình 3.2 Khởi động Mini-NDN

9 Hình 3.3 Mô hình kết nối

10 Hình 3.4 Liên kết giữa các node

11 Hình 3.5 Bảng định tuyến của các node

12 Hình 3.6 Bảng chuyển tiếp của node a

13 Hình 3.7 Bảng chuyển tiếp node b

14 Hình 3.8 Bảng chuyển tiếp của node c

15 Hình 3.9 Bảng chuyển tiếp của node d

16 Hình 3.10 Server lắng nghe ping đến

17 Hình 3.11 Client tiến hành ping đến tên NDN

18 Hình 3.12 Server trả lời

19 Hình 3.13 Thông điệp trên node a

20 Hình 3.14 Thông điệp trên node b

21 Hình 3.15 Thông điệp trên node c

22 Hình 3.16 Các node ping bằng giao diện Mini-NDN

2 Hình 3.17 Khởi động Mini-NDN từ testbed


8

DANH MỤC TỪ VIẾT TẮT

STT Từ viết tắt Giải thích

1 CCN Content-Centric Networking

2 CCND Content Centric Network Daemon

3 CS Content Store

4 FIB Forwarding Information Base

5 LSA Link State Advertisements

6 LSDP Link State Database

7 NDN Named Data Networking

8 NLSR Named Data Link State Routing Protocol

9 OLSA Opaque Link State Advertisements

10 OSPF Open Shortest Path First

11 OSPFD Open Shortest Path First Daemon

12 PIT Pending Interest Table

13 URI Uniform Resource Identifier


9

PHẦN MỞ ĐẦU
1. Lý do chọn đề tài
Trong khi TCP/IP vẫn ổn với nhiều ứng dụng, vẫn thống trị Internet từ khi Internet
xuất hiện (như email, truyền file, đăng nhập từ xa) thì mạng thông tin toàn cầu này ngày
nay đang chuyển mình, hướng sang các ứng dụng thiên nhiều về dữ liệu như trích xuất dữ
liệu từ web và streaming video. Vì vậy, giới công nghiệp vẫn tìm kiếm một giao thức nào
khác tiến bộ hơn. Trong số đó, cái tên NDN (Name Data Networking) tỏ ra là ứng viên
sáng giá nhất hiện nay thay cho TCP/IP.
NDN không phải là công nghệ được thương mại hóa, cũng chưa thể ứng dụng ngay
được. Mô hình dữ liệu Internet hiện nay là dữ liệu phải có một cái tên mà một máy tính
nào đó gọi ra. Mạng máy tính sẽ định hướng yêu cầu đến ứng dụng nào đó, và sau đó dữ
liệu sẽ được trả về cho máy tính yêu cầu.
Bảo vệ mã hóa cho dữ liệu sẽ được tạo ngay trong giao thức NDN. Cũng vậy, vì
mạng máy tính có thể tập trung vào dữ liệu do các cảm biến thu thập được hơn là do ID
của cảm biến nên NDN sẽ phù hợp hơn cho Internet of Things . Vì dữ liệu chỉ được gửi
khi có yêu cầu nên NDN cũng chống được nhiều loại tấn công hơn. Nhưng NDN sẽ không
có được lợi thế về tốc độ xử lý.
2. Lịch sử nghiên cứu
2.1 Trên thế giới
NDN là một trong năm dự án nghiên cứu do Quỹ Khoa học Quốc gia Hoa Kỳ tài
trợ theo Chương trình Kiến trúc Internet trong tương lai. NDN có nguồn gốc từ một dự án
trước đó, Content-Centric Networking (CCN), mà Van Jacobson bắt đầu tại Xerox PARC
trong khoảng thời gian thảo luận trên Google.
2.2. Trong nước
Hiện nay trong nước vẫn chưa có tổ chức, cá nhân nào nghiên cứu hay tìm hiểu
Named Data Networking.
10

3. Mục tiêu nghiên cứu


Đề tài được thực hiện với mục tiêu tìm hiểu và xây dựng kiến trúc Internet trong
tương lai và khắc phục những điểm yếu của kiến trúc Internet hiện tại. Tìm hiểu giao thức
định tuyến cho NDN là OSPFN. Nội dung chi tiết gồm :
- Tìm hiểu về Named Data Networking.
- Tìm hiểu về giao thức định tuyến động OSPF.
- Tìm hiểu về giao thức định tuyến của Named Data Networking OSPFN.
- Thử nghiệm Named Data Networking trên môi trường Linux.

4. Đối tượng và phạm vi nghiên cứu


4.1. Đối tượng nghiên cứu
- Kiến trúc Internet trong tương lai Named Data Networking.
- Các file thư viện của NDN trên github.
4.2. Phạm vi nghiên cứu
- Demo môi trường NDN trên Ubuntu.
- Ping kiểm tra kết nối giữa các nodes.

5. Phương pháp nghiên cứu


- Tham khảo các công cụ và file thư viện của NDN từ website github.
- Tìm hiểu và cài đặt công cụ Mini-NDN để ứng dụng NDN.
- Tìm hiểu về cách kết nối các nodes thông qua công cụ ndn-tools.
- Thử nghiệm môi trường NDN trên Linux.

6. Những đóng góp của đề tài và những vấn đề mà đề tài chưa thực hiện được
6.1. Những đóng góp của đề tài
- Named Data Networking sẽ là một kiến trúc Internet trong tương lai, phát
huy những điểm mạnh và giải quyết những điểm yếu của kiến trúc Internet hiện tại.
- Cung cấp tính năng Multipath là tính năng sẽ cung cấp nhiều đường đi đến
đích tốt nhất.
11

6.2. Những vấn đề chưa thực hiện được


- Named Data Networking là một kiến trúc Internet lớn sẽ thay đổi kiến trúc
Internet hiện tại nhưng vẫn chưa ứng dụng ngay được.
- Vì cung cấp nhiều đường đi đến đích nên NDN sẽ không có lợi thế về tốc
độ xử lý.

7. Kết cấu của đề tài


Luận văn được chia làm ba phần: phần mở đầu, phần nội dung và phần kết luận.
Phần mở đầu
Nêu lý do chọn đề tài, tổng quan tình hình phát triển, mục tiêu nghiên cứu đề tài,
đối tượng, phạm vi, phương pháp nghiên cứu cũng như những đóng góp mới của đề tài.
Bên cạnh đó cũng chỉ ra mặt hạn chế mà đề tài chưa thực hiện được để giúp mọi người có
cái nhìn rõ hơn.
Phần nội dung chính: gồm 3 chương
 Chương 1: Giới thiệu về Named Data Networking
Trong chương này sẽ trình bày cơ sở lý thuyết về Named Data Networking, tổng
quan về kiến trúc và cơ chế hoạt động của NDN.
 Chương 2 : Tìm hiểu về giao thức định tuyến động OSPFN
Tổng quan về giao thức OSPF, nguyên lí hoạt động, quá trình thiết lập neigbor, ưu
điểm của giao thức OSPF và các loại area của OSPF.
Tìm hiểu tổng quang về giao thức mới của NDN là OSPFN, về thiết kế, tính toán
đường đi và quá trình trao đổi thông điệp của OSPFN.
 Chương 3 : Thử nghiệm NDN trên môi trường Linux
Sau khi đã cài đặt tất cả các file thư viện của NDN từ website github, tiến hành
demo môi trường NDN trên Ubuntu.
Phần kết luận
Đưa ra những kết luận và kiến nghị về chương trình đã xây dựng.
12

CHƯƠNG 1: GIỚI THIỆU NAMED DATA NETWORKING


1.1 Named Data Networking là gì?
Named Data Networking (NDN) là một kiến trúc Internet trong tương lai được lấy
cảm hứng từ nhiều năm nghiên cứu thực nghiệm về sử dụng mạng và nhận thức ngày càng
tăng về các vấn đề chưa được giải quyết trong kiến trúc Internet hiện đại như IP.
Named Data Networking là một kiến trúc mạng Data-Centric mới. Trong NDN,
người dùng gửi tin nhắn Interest để lấy dữ liệu theo tên, phản hồi gói tin Interest trong
NDN được gọi là gói Data. Vì tin nhắn Interest không chứa địa chỉ nguồn hoặc địa chỉ
đích, các router cần chuyển tiếp chúng dựa vào tên đã ghi nhận vào các tin nhắn. Để cung
cấp khả năng định tuyến dựa trên tên trong NDN, mở rộng OSPF để quảng bá name
prefixes và tính toán các đường đi để đặt tên name prefixes. Giao thức hiện tại OSPFN
hiện đang được triển khai trong NDN. Báo cáo này mô tả thiết kế, triển khai, triển khai và
hoạt động trong tương lai.
1.2 Tổng quan kiến trúc
Kiến trúc đồng hồ cát của Internet ngày nay tập trung vào một lớp mạng toàn cầu,
IP, thực hiện các chức năng tối thiểu cần thiết cho kết nối liên kết toàn cầu. Kiến trúc
Internet hiện đại xoay quanh mô hình host-based dựa trên máy chủ, được tạo ra trong
những năm 1970 để cho phép người sử dụng phân tán địa lý sử dụng. [1] Thin waist này
cho phép sự tăng trưởng bùng nổ của Internet bằng cách cho phép cả hai công nghệ lớp
thấp và tầng cao tự đổi mới một cách độc lập. Tuy nhiên, IP được thiết kế để tạo ra một
mạng truyền thông, nơi các gói tin được đặt tên chỉ giao tiếp với thiết bị đầu cuối.
13

Hình 1.1 : Kiến trúc đồng hồ cát của IP và NDN


NDN đề xuất một sự tiến triển của kiến trúc IP để khái quát vai trò của vòng eo
mỏng này, như vậy các gói tin có thể đặt tên các đối tượng khác ngoài các điểm cuối
truyền thông. Cụ thể hơn, NDN thay đổi ngữ nghĩa của dịch vụ mạng từ việc phân phát
gói tin đến một địa chỉ đích nhất định để tìm nạp dữ liệu được xác định bởi một tên nhất
định. Tên trong một gói tin NDN có thể đặt tên bất cứ thứ gì - một điểm cuối, một đoạn
dữ liệu trong một bộ phim hay một cuốn sách, một lệnh để bật đèn. Hy vọng là sự thay
đổi khái niệm đơn giản này cho phép các mạng NDN áp dụng gần như tất cả tính năng kỹ
thuật được kiểm tra kỹ lưỡng của Internet tới phạm vi rộng hơn của các vấn đề vượt ra
ngoài giao tiếp cuối cùng. Ví dụ về NDN áp dụng bài học từ 30 năm về kỹ thuật mạng là
việc tự điều chỉnh lưu lượng mạng (thông qua sự cân bằng Interest (data request) and Data
packets) và các nguyên tắc bảo mật (thông qua chữ ký trên tất cả các dữ liệu có tên) được
tích hợp vào giao thức từ lúc bắt đầu.
1.2.1 Các loại gói tin
Truyền thông trong NDN được điều khiển bởi người nhận, nghĩa là người dùng dữ
liệu, thông qua việc trao đổi hai loại gói tin: Interset và Data. Cả hai loại gói dữ liệu mang
một tên xác định một mảnh dữ liệu có thể được truyền đi trong một gói Data.
14

Hình 1.2 : Nội dung gói tin của NDN


Interest : Người tiêu dùng đặt tên của một phần dữ liệu mong muốn vào một gói
Interest và gửi nó đến mạng. Routers sử dụng tên này để chuyển tiếp Interest sang (các)
nhà sản xuất dữ liệu.
Data : Khi Interest đạt đến một node có dữ liệu được yêu cầu, node sẽ trả về một
gói Data có chứa cả tên và nội dung, cùng với chữ ký của nhà sản xuất kết hợp cả hai. Gói
Data này theo sau ngược lại đường dẫn được thực hiện bởi Sở thích để lấy lại cho người
dùng yêu cầu.
1.2.2 Kiến trúc định tuyến của NDN
Để thực hiện chức năng chuyển tiếp gói tin Interest và Data, mỗi router NDN duy
trì ba cấu trúc dữ liệu và chính sách chuyển tiếp :
- Pending Interest Table (PIT): Lưu trữ tất cả các gói Interest mà router đã
chuyển tiếp mà chưa đạt. Mỗi bản PIT ghi lại tên dữ liệu với interface(s) đến và đi.
- Forwarding Information Base (FIB): còn được gọi là bảng định tuyến hoặc
bảng MAC.
- Content Store (CS): Bộ nhớ cache tạm thời của gói Data mà router đã nhận
được. Bởi vì một gói Data NDN có ý nghĩa độc lập với nơi nó đến hoặc nó được chuyển
tiếp. Chiến lược thay thế theo cách truyền thống ít được sử dụng gần đây nhất, nhưng
chiến lược thay thế được xác định bởi router và có thể khác.
15

- Forwarding Strategy module: Các chính sách và quy tắc về các gói tin
chuyển tiếp. Chiến lược chuyển tiếp có thể quyết định bỏ một gói Interest trong tình
huống nhất định. Ví dụ : Nếu tất cả các liên kết upstream bị nghẽn hoặc gói Interest là
một phần của cuộc tấn công DoS. Với mỗi gói Interest, Forwarding Strategy sẽ tìm ra
longest-prefix từ FIB khớp và quyết định thời điểm chuyển tiếp gói Interest.
Khi gói tin Interest đến, router NDN sẽ kiểm tra Content Store để kết hợp dữ liệu;
nếu nó tồn tại, router trả về gói dữ liệu trên giao diện mà từ Interest đến. Nếu không, router
tìm kiếm tên trong bảng PIT của nó, và nếu một mục nhập phù hợp tồn tại, nó chỉ đơn
giản ghi lại interface đến của Interest này trong mục PIT. Trong trường hợp không có mục
nhập PIT phù hợp, router sẽ chuyển tiếp Interest tới các nhà sản xuất dữ liệu dựa trên
thông tin trong FIB cũng như Forwarding Strategy thích nghi của router. Khi router nhận
được Interests cho cùng một tên từ nhiều nodes downstream, nó chỉ chuyển tiếp một
upstream tới người sản xuất dữ liệu.
Khi gói tin Data đến, router NDN xác định mục nhập PIT phù hợp và chuyển tiếp
dữ liệu tới tất cả các interface down-stream được liệt kê trong mục nhập PIT đó. Sau đó
xóa mục nhập PIT đó và lưu trữ Data trong Content Store. Các gói Data luôn đi theo con
đường ngược lại của Interest, và nếu không có sự thất thoát của gói tin, một gói Interest
kết quả trong một gói Data trên mỗi liên kết, cung cấp sự cân bằng lưu lượng. Để thu thập
các đối tượng nội dung lớn chứa nhiều gói dữ liệu, Interest sẽ cung cấp một vai trò tương
tự trong việc điều khiển luồng lưu lượng như các TCP ACK trong Internet ngày nay: một
vòng phản hồi nhỏ gọn được kiểm soát bởi người tiêu dùng của dữ liệu.
Gói Interest và Data mang tất cả địa chỉ máy chủ hoặc địa chỉ interface, router
chuyển tiếp các gói Interest đến nhà sản xuất giựa trên tên của gói tin, và chuyển tiếp gói
Data tới người dùng dựa trên thông tin trong bảng PIT được thiết lập bởi Interests. Sự trao
đổi đối xứng giữa gói tin Interest/Data tạo ra một vòng điều khiển hop-by-hop.[8]

1.3 Bảo mật


Ngược lại với TCP/IP, sẽ có trách nhiệm về bảo mật cho các điểm cuối. NDN sẽ
tự bảo vệ dữ liệu bằng cách yêu cầu các nhà sản xuất dữ liệu mã hoá mỗi gói tin Data.
16

Chữ ký của nhà xuất bản đảm bảo tính toàn vẹn và cho phép xác định xuất xứ dữ liệu, cho
phép người tiêu dùng tin tưởng vào dữ liệu để tách rời khỏi nó và cách thức thu thập được.
Nghiên cứu chính lần thứ hai là thiết kế và phát triển các cơ chế có thể sử dụng để quản
lý sự tin cậy của người dùng.
1.3.1 Bảo mật ứng dụng
Bảo mật data-centric của NDN có các ứng dụng để kiểm soát truy cập nội dung và
bảo mật cơ sở hạ tầng.Các ứng dụng có thể mã hóa dữ liệu và phân phối các khóa như là
các gói được đặt tên sử dụng cùng một cơ sở hạ tầng được đặt tên để phân phối các khóa,
có hiệu quả giới hạn phạm vi bảo mật dữ liệu cho một ứng dụng đơn lẻ. Để xác minh một
chữ ký của gói dữ liệu, một ứng dụng có thể tìm thấy khoá thích hợp, được xác định trong
trường tìm kiếm khóa của gói, giống như bất kỳ nội dung nào khác.
Làm thế nào để xác định tính xác thực của một khoá cho một gói cụ thể trong một
ứng dụng nhất định, là một thách thức nghiên cứu chính. Phù hợp với cách tiếp cận thử
nghiệm, nghiên cứu quản lý của NDN được thúc đẩy bởi sự phát triển và sử dụng ứng
dụng: giải quyết các vấn đề cụ thể trước tiên và sau đó xác định các mô hình chung.
1.3.2 Bảo mật định tuyến
NDN xử lý các thông điệp định tuyến và kiểm soát tin nhắn giống như tất cả dữ
liệu NDN, yêu cầu chữ ký. Điều này cung cấp một nền tảng vững chắc để đảm bảo các
giao thức định tuyến chống lại cuộc tấn công spoofing và tampering.NDN sử dụng chuyển
tiếp đa đường, cùng với chiến lược chuyển tiếp thích ứng, giảm bớt việc chiếm đoạt tiền
tố bởi vì các router có thể phát hiện các khác thường do hijacks gây ra và lấy dữ liệu thông
qua việc giả mạo các đường đi. Có một bảng Pending Interest Table, giữ trạng thái liên
quan đến các yêu cầu trước đó, có thể đưa ra các quyết định về việc làm thế nào để xử lý
việc có nhiều lợi thế an ninh.
- Load Balancing : số lượng các mục PIT là một chỉ số tải router, kích thước
của nó hạn chế ảnh hưởng của một cuộc tấn công DDoS.
- Thời gian chờ của Interest : thời gian chờ của PIT cho phép phát hiện tấn
công, và thông tin giao diện đến trong mỗi mục nhập PIT có thể hỗ trợ một lược đồ push-
back, trong đó các router được thông báo về việc phát hiện các cuộc tấn công.
17

1.4 Name
Thiết kế NDN giả định tên có cấu trúc có cấu trúc, ví dụ: một video do PARC sản
xuất có thể có tên /parc/videos/WidgetA.mpg, trong đó '/' cho biết ranh giới giữa các thành
phần tên (nó không phải là một phần của tên) .Cấu trúc phân cấp này hữu ích cho các ứng
dụng để đại diện cho mối quan hệ giữa các mẩu dữ liệu. Ví dụ: đoạn 3 của phiên bản 1
của video có thể được đặt tên là /parc/videos/WidgetA.mpg/1/3. Hệ thống phân cấp cũng
cho phép định tuyến theo quy mô, đó là cấu trúc phân cấp các địa chỉ IP cho phép tổng
hợp, điều này rất cần thiết trong việc mở rộng hệ thống định tuyến ngày nay. Các cấu trúc
chung cần thiết để cho phép các chương trình vận hành qua tên NDN có thể đạt được bằng
các quy ước được thống nhất giữa các nhà sản xuất dữ liệu và người dùng, ví dụ như các
quy ước ghi rõ phiên bản và phân đoạn.
Quản lý không gian tên không phải là một phần của kiến trúc NDN, giống như các
mạng IP cung cấp gói tin sử dụng địa chỉ IP, nhưng quản lý không gian địa chỉ IP không
phải là một phần của kiến trúc IP. Tuy nhiên, đặt tên dữ liệu là phần quan trọng nhất trong
thiết kế NDN. Dữ liệu được đặt tên cho phép NDN tự động hỗ trợ các chức năng khác
nhau bao gồm phân phối nội dung (nhiều người dùng yêu cầu cùng một dữ liệu ở những
thời điểm khác nhau), multicast (nhiều người dùng yêu cầu cùng một dữ liệu cùng một
lúc), tính di động (người dùng yêu cầu dữ liệu từ các địa điểm khác nhau) và mạng lưới
chậm trễ (người dùng truy xuất dữ liệu qua kết nối không liên tục). Đồng thời, vẫn đang
ở giai đoạn đầu của sự hiểu biết cách ứng dụng tốt nhất nên chọn tên để tạo điều kiện cho
việc phát triển ứng dụng và phân phối mạng. Có được hiểu biết thông qua việc phát triển
và thử nghiệm một loạt các ứng dụng thí điểm, trích xuất một bộ nguyên tắc cơ bản và
hướng dẫn để đặt tên trong mạng NDN. Chuyển đổi các nguyên tắc và hướng dẫn này
thành các quy ước đặt tên có thể được thực hiện các thư viện hệ thống để sử dụng lại thống
nhất đơn giản hóa việc phát triển ứng dụng trong tương lai.
Namespaces : Dữ liệu có thể được tìm kiếm trên toàn cầu phải có các tên duy nhất
trên toàn cầu, nhưng tên được sử dụng cho truyền thông địa phương chỉ có thể yêu cầu chỉ
định tuyến địa phương , để tìm dữ liệu phù hợp. Các tên dữ liệu cá nhân có thể có ý nghĩa
trong nhiều phạm vi và bối cảnh khác nhau, từ "chuyển đổi ánh sáng trong phòng này"
18

sang "tên tất cả các quốc gia trên thế giới". Quản lý không gian tên không phải là một
phần của kiến trúc NDN, giống như quản lý không gian địa chỉ không phải là một phần
của kiến trúc IP. Tuy nhiên đặt tên là phần quan trọng nhất của thiết kế ứng dụng NDN.

1.5 Bảo mật Data-Centric


Trong NDN, bảo mật được tích hợp vào dữ liệu, chứ không phải là chức năng của
nó. Mỗi đoạn dữ liệu được gắn liền cùng với tên của nó, ràng buộc chúng an toàn. Chữ ký
dữ liệu là bắt buộc. Chữ ký, cùng với thông tin nhà xuất bản dữ liệu, cho phép xác định
xuất xứ dữ liệu, cho phép người dùng tin cậy vào dữ liệu để tách rời khỏi dữ liệu được thu
thập như thế nào.
Tuy nhiên, trên thực tế, phương pháp tiếp cận bảo mật tinh vi và dữ liệu tập trung
này đòi hỏi phải có sự đổi mới. Về mặt lịch sử, bảo mật dựa trên mật mã khóa công cộng
đã được coi là không hiệu quả, không sử dụng được và khó triển khai. Bên cạnh chữ ký
số hiệu quả, NDN cần các cơ chế linh hoạt và có thể sử dụng để quản lý sự tin cậy của
người dùng. Các cuộc điều tra ban đầu cho thấy rằng NDN cung cấp một nền tảng đầy
hứa hẹn để đạt được các mục tiêu an toàn này. Vì các phím có thể được truyền đạt dưới
dạng dữ liệu NDN, việc phân phối khoá được đơn giản hóa. Bảo đảm ràng buộc các tên
cho dữ liệu cung cấp cơ sở cho một loạt các mô hình tin cậy. Cuối cùng, cách tiếp cận
cuối cùng của NDN đối với bảo mật tạo điều kiện cho sự tin tưởng giữa các nhà sản xuất
và người dùng. Điều này cung cấp cho các nhà sản xuất, người dùng và các ứng dụng rất
nhiều tính linh hoạt trong việc lựa chọn hoặc tùy chỉnh mô hình tin cậy.
Bảo mật data-centric của NDN có thể được mở rộng để kiểm soát truy cập nội dung
và bảo mật cơ sở hạ tầng. Các ứng dụng có thể kiểm soát việc truy cập dữ liệu thông qua
mã hóa và phân phối các khóa mã hóa dữ liệu NDN mã hóa, giới hạn phạm vi bảo mật dữ
liệu cho một ứng dụng duy nhất. Yêu cầu chữ ký trên các thông điệp định tuyến và kiểm
soát mạng, cung cấp bảo mật giao thức định tuyến rất cần thiết.

1.6 Routing and Forwarding


Định tuyến và chuyển tiếp trong NDN về các gói tin về tên, để loại bỏ bốn vấn đề
đặt ra trong cấu trúc IP: cạn kiệt địa chỉ, NAT traversal, tính di động, và quản lý địa chỉ.
19

Không có vấn đề cạn kiệt địa chỉ vì không gian tên là không bị chặn. Không có vấn đề
chuyển hướng NAT vì máy chủ lưu trữ không cần phải tiết lộ địa chỉ của nó để cung cấp
nội dung. Tính di động, đòi hỏi phải thay đổi địa chỉ trong IP, không còn làm gián đoạn
truyền thông vì tên dữ liệu vẫn giữ nguyên. Cuối cùng, việc phân bổ địa chỉ và quản lý
không còn cần thiết trong các mạng cục bộ, đặc biệt là trao quyền cho các mạng cảm biến
nhúng.
Các giao thức định tuyến IP, BGP, IS-IS và OSPF đã được kiểm chứng tốt và có
thể được sử dụng nhiều hoặc ít giống như các giao thức định tuyến trong mạng NDN.
Thay vì thông báo các tiền tố IP, router NDN sẽ thông báo các tiền tố tên bao gồm dữ liệu
mà router sẵn sàng phục vụ. Router chỉ đơn giản là xử lý các tên như là một dãy các thành
phần không rõ ràng và làm khớp các tiền tố dài nhất thành phần của tên trong một gói tin
trong FIB. Tuy nhiên, một không gian tên không giới hạn đặt ra câu hỏi làm thế nào để
duy trì sự kiểm soát các kích thước bảng định tuyến. Một câu hỏi quan trọng nữa là liệu
việc tìm kiếm các tên có thứ bậc có chiều dài thay đổi có thể được thực hiện ở tốc độ
đường truyền.
20

CHƯƠNG 2 : TÌM HIỂU GIAO THỨC ĐỊNH TUYẾN


ĐỘNG OSPF VÀ OSPFN

2.1 Tổng quan về giao thức OSPF


Giao thức định tuyến OSPF là giao thức định tuyến động thuộc nhóm Link State.
Trên mỗi Router đều có bản đồ mạng của cả vùng (bảng định tuyến) thông qua việc đồng
nhất bảng cơ sở dữ liệu trạng thái đường link (LSDP - Link State Database). Từ bản đồ
mạng này Router sẽ tự tính toán ra đường đi ngắn nhất và xây dựng bảng định tuyến.[6]
Named Data Networking (NDN) [2, 3] thể hiện sự chuyển đổi mô hình cơ bản từ
kiến trúc Internet hiện tại IP, xác định dữ liệu sử dụng vị trí của nó (một địa chỉ IP). Trong
NDN, người sử dụng dữ liệu sẽ gửi một gói tin Interest, xác định dữ liệu mà người tiêu
dùng đang tìm kiếm theo tên. Phản hồi với một gói tin Interest trong NDN được gọi là gói
Data, mang cả tên đầy đủ và dữ liệu. Do đó, định tuyến NDN cần phải cung cấp đường đi
để đặt tên các tiền tố thay vì xác định các tiền tố. Hơn nữa, khi bộ định tuyến NDN chuyển
tiếp các gói Interest, họ thiết lập thông tin trạng thái để trả lại Các gói Data có thể được
chuyển tiếp lại cho người tiêu dùng. Trạng thái này cho phép các bộ định tuyến khám phá
nhiều tuyến đường cho mỗi tên trước mà không cần có vòng lặp, để hỗ trợ đầy đủ khả
năng chuyển tiếp đa đường này, sẽ rất thuận lợi khi giao thức định tuyến tính nhiều tuyến
đến cùng một name prefix bất cứ khi nào có thể. Mục tiêu là phát triển một giao thức định
tuyến động cho NDN để hỗ trợ các chức năng trên. Về lâu dài, cần thiết kế trực tiếp giao
thức mới qua kiến trúc NDN, tức là, đặt tên các bộ định tuyến và thông điệp mà không sử
dụng địa chỉ IP cũng như sử dụng gói Interest / Data để trao đổi thông tin định tuyến. Tuy
nhiên, vì có nhu cầu cấp bách để hỗ trợ tất cả các khu vực nghiên cứu NDN sử dụng thử
nghiệm NDN để tạo mẫu và đánh giá, chọn Open Shortest Path First (OSPF) vì nó được
sử dụng rộng rãi trên Internet và nó có các triển khai mã nguồn mở chất lượng cao.
- OSPF(Open Shortest Path First) là chuẩn mở do IEEE đưa ra.
- Hoạt động ở nhóm classless.
- AD = 110.
21

- Metric phụ thuộc vào Bandwith.


- Sử dụng thuật toán Dijkstra để tìm đường đi ngắn nhất.
2.2 Router-id trên OSPF
Để chạy OSPF nó phải tạo ra 1 định danh để chạy gọi là Router-id có định dạng
A.B.C.D(vd: IPv4:192.168.1.1).
Để tạo ra Router-id có 2 cách :
- Router tự động tạo ra.
- Do người quản trị bằng cách configure.
2.3 Neighbor của giao thức OSPF
Quá trình thiết lập neighbor của OSPF :
- Khi cả 2 Router đã chạy OSPF thì chúng bắt đầu gửi gói tin Hello để thiết lập
neighbor.
- Định kì của gói tin Hello là 10s/1 lần.
- Để làm neighbor của nhau thì gói tin hello của 2 router phải giống nhau 1 số
thông số (area_id, loại xác thực, subnet và subnet mask, hello-timer/die-timer)
2.4 Ưu điểm của giao thức OSPF
- Sử dụng giải thuật đường đi ngắn nhất.
- Chỉ cập nhật khi có sự kiện xảy ra.
- Gửi gói thông tin về trạng thái các liên kết cho tất cả các router
trong mạng.
- Hội tụ nhanh, không bị lặp vòng.
- Phù hợp với các mạng lớn có cấu trúc phức tạp.
- Đòi hỏi nhiều bộ nhớ và năng lượng xử lý hơn so với định tuyến
theo vectơ khoảng cách.
- Tất cả các gói tin đều được xác thực.
22

2.5 Các kiểu OSPF area


Backbone area (area 0): đây là area phụ trách việc trung chuyển giữa các area. Các
non backbone area sẽ phải kết nối trực tiếp đến area này để có thể liên lạc được với nhau.
Bắt buộc phải có area này trong hệ thống mạng.
Stub area: là các area mà các LSA chứa thông tin bên ngoài AS ko được chuyển
qua. Router nằm trong stub area chỉ chứa routes bên trong AS của nó và default route.
Như vậy, các routers sẽ ko phải duy trì thông tin về một route nào đó bên ngoài area. Điều
này giúp cho các routers ko phải giữ một routing table lớn. Một lưu ý đó là: không thể tạo
một virtual link quan 1 stub area và một stub area sẽ không thể chứa một ASBR.
Totally-Stub area: đây là một định nghĩa của Cisco dành cho các thiết bị của Cisco.
Đây là một khái niệm mở rộng của stub area. Trong một totally-stub area thì các routers
chỉ chứa các routes bên trong area của nó và default route.
Not-So-Stubby area (NSSA): area này cho phép một routes bên ngoài (từ một AS
khác hoặc là route được redistribute từ giao thức khác) được phép đi qua area. Sau khi đi
qua area, các routes này sẽ được đưa đến các areas khác. Như vậy NSSA chỉ chứa các
routes bên trong, các redistributed routes và có thể có 1 default route.[5]

Hình 2.1 : Các kiểu area của OSPF


23

2.6 Giới thệu về giao thức OSPFN


Giao thức OSPFN dành cho NDN sử dụng Opaque Link State Advertisements .Hơn
nữa, vì OSPF chỉ cung cấp một đường đi tốt nhất cho mỗi điểm đến, thêm một tính năng
đa đường (multipath) được xác định để cho phép người dùng chỉ định các liên kết sẽ sử
dụng các đường đi tốt nhất. Giao thức hiện tại "OSPFN" hỗ trợ định tuyến về tên và định
tuyến đa tuyến, sử dụng LSAs Opaque LSAs của OSPF hoặc OLSA [1] để thông báo
trước name prefix. Mặc dù OSPFN không hỗ trợ khả năng định tuyến đa năng năng động
đầy đủ, tính năng đa đường được cấu hình đã giúp rõ hơn về hành vi chuyển tiếp của việc
triển khai CCND hiện tại.[7]

2.7 Động lực và bối cảnh


NDN là một đề xuất mới mà lấy dữ liệu dựa trên tên thay vì vị trí. Trong NDN,
router chuyển tiếp các tin nhắn Interest bằng cách tra cứu cơ sở thông tin chuyển tiếp của
họ (FIB) bằng cách sử dụng các tên được thực hiện trong các tin nhắn, Mặc dù FIBs có
thể được cấu hình bằng tay, thao tác như vậy là tốn thời gian và dễ bị lỗi. Đối với NDN
testbed, quan trọng hơn, triển khai NDN trong tương lai, chúng ta cần một giao thức định
tuyến có thể tính toán các tuyến đường để đặt tên các phép tính tự động dựa trên topo
mạng. Để giải quyết vấn đề này một cách nhanh chóng, chúng tôi đã thiết kế giải pháp của
chúng tôi như là một mở rộng của giao thức OSPF hiện tại. Tính sẵn sàng của mã nguồn
mở OSPF cũng là động lực để mở rộng OSPF.
OSPF là một giao thức định tuyến trạng thái liên kết hoạt động trong một hệ thống
tự động, Mỗi router trong hệ thống thu thập thông tin trạng thái liên kết về mạng để xây
dựng Link State Database (LSDB). LSDB này được cập nhật thông qua sự quảng bá của
Link State Advertisements (LSA). Tất cả các bộ định tuyến trong mạng có cùng một bản
sao của LSDB. Mỗi router xây dựng một topo mạng từ LSDB và chạy thuật toán Shortest
Path First để tính toán các đường đi tới đích. Bất cứ khi nào có thay đổi trong cấu trúc liên
kết mạng, bảng định tuyến sẽ được tính lại lại. OSPF là miễn phí của vòng lặp liên tục do
sự làm tràn của thông tin liên kết trạng thái. Nó hỗ trợ multipath có chi phí bằng nhau,
nghĩa là nó tạo ra nhiều đường dẫn đến cùng đích nếu chúng có cùng chi phí thấp nhất
24

trong số tất cả các đường đi có sẵn. OSPF hỗ trợ Opaque LSA (OLSA) để cung cấp khả
năng mở rộng để sử dụng trong tương lai. OLSA bao gồm một tiêu đề LSA tiêu chuẩn
theo sau bởi một dữ liệu cụ thể ứng dụng , có thể được sử dụng bởi bất kỳ ứng dụng bên
ngoài để mở rộng OSPF. OLSAs được phân phối bởi OSPF trên toàn mạng. Sự phân bố
này của OLSAs trong mạng được giới hạn bởi phạm vi làm tràn, được xác định bởi các
loại Opaque Type trong tiêu đề OLSA.

2.8 Thiết kế
Định tuyến trong NDN không giống với định tuyến IP truyền thống theo hai cách:
- Định tuyến theo tên : Nhà sản xuất dữ liệu đăng ký name prefix, không phải địa
chỉ name-prefixes.
- Multipath : tính năng dự kiến cung cấp nhiều đường đi cho mỗi name prefix.
OLSA cho phép quảng bá thông tin cụ thể về ứng dụng trong mạng. Các nút kế
thừa sẽ không sử dụng các LSA này để xây dựng topology của chúng, nhưng vẫn sẽ chuyển
tiếp chúng. Điều này đảm bảo sự tương thích ngược với các nút kế thừa và cho phép thực
hiện các chức năng mới giữa các nút được nâng cấp. Hơn nữa, bộ định tuyến mã nguồn
mở, chẳng hạn như Quagga OSPF, cung cấp một API cho phép dễ dàng kích hoạt và thu
hồi OLSAs thông qua OSPF. Tính linh hoạt và dễ sử dụng này làm cho OLSA trở thành
ứng cử viên hoàn hảo cho các tiền đề quảng bá. OSPFN tạo ra các tuyến đường để đặt tên
các tiền tố và cài đặt nó vào CCND (Content Centric Network Daemon) [4], nó sẽ xử lý
việc chuyển tiếp các thông điệp về Interest and Data. Cụ thể hơn, mỗi router NDN chạy
CCND, OSPFN và OSPFD (OSPF daemon) song song (Hình 3.1). OSPFN xây dựng Tên
OLSAs và đưa chúng vào OSPFD cục bộ, làm tràn OLSAs vào toàn bộ mạng. Khi OSPFD
tại một nút nhận được OLSA, nó sẽ phân phối OLSA tới OSPFN cục bộ của nó. Vì mỗi
LSA mang ID của router có nguồn gốc từ LSA, OSPFN có thể lấy được ID bộ định tuyến
của một OLSA Tên và truy vấn OSPFD để lấy nexthop để tiếp cận router (lưu ý rằng
OSPFD vẫn giữ các LSA thông thường và tính toán đường đi ngắn nhất dựa trên che phủ
topology). OSPFN sau đó cài đặt name prefix và liên kết của nó vào trong CCND FIB.
25

Hình 2.2 : Mối quan hệ giữa CCND, OSPFN và OSPFD

2.8.1 Tính toán đường đi


OSPFN không thực hiện tính toán đường đi ngắn nhất - nó truy vấn OSPFD cho
nexthop đến router nguồn của name prefix . Khi OSPFN nhận được kết quả truy vấn, nó
sẽ thêm một mục FIB có chứa name prefix và nexthop trả về. Trong trường hợp name
prefix được quảng bá bởi nhiều router, OSPFN sẽ gửi một truy vấn cho mỗi router nguồn
và chèn một mục nhập FIB có chứa name prefix và mỗi lần trở lại nexthop.
Bởi vì giao thức OSPF chỉ cung cấp một nexthop cho mỗi đích, ngoại trừ khi có
các đường đi ngắn nhất với chi phí bằng nhau, OSPFN mặc định tạo ra một tuyến đường
cho mỗi tên tiền tố nguồn duy nhất. Tuy nhiên, một trong những tính năng độc đáo của
NDN là chiến lược chuyển tiếp của nó, có thể khám phá nhiều đường dẫn để lấy ra tên dữ
liệu. Lý tưởng nhất là chúng ta phải sửa đổi OSPF để tính toán nhiều đường dẫn tốt nhất
cho mỗi đích hoặc để cho OSPFN quản lý thông tin topology và thực hiện tính toán đa
đường đi. Tuy nhiên, những thiết kế này sẽ mất một thời gian dài để thực hiện. OSPFN
cho phép các nhà khai thác chỉ định một danh sách xếp hạng của nexthops và nó sẽ chèn
các tuyến đường đi tương ứng vào FIB, do đó CCND sẽ thử chúng khi đường dẫn tốt nhất
không mang lại dữ liệu. Mỗi interface được kết hợp với một quyền ưu tiên. Các interface
được ưu tiên hơn sẽ được thử đầu tiên. Chúng tôi gọi tính năng này là "định tuyến được
cấu hình đa đường ". Để giảm bớt gánh nặng cho người vận hành, cấu hình đa đường
được xác định cho mỗi nút, không phải cho mỗi name prefix . Lưu ý rằng đây chỉ đơn giản
là một lệnh ban đầu cho CCND để khám phá. Chiến lược chuyển tiếp của CCND sẽ chọn
đường đi tốt nhất dựa trên đường dẫn truy xuất dữ liệu nhanh nhất.
26

Khi sử dụng nhiều đường kết nối, OSPFN sẽ tạo ra một danh sách các mục FIB
cho mỗi name prefix : các nexthops được ưu tiên nhất là các router dành cho các router
gốc, được sắp xếp theo chi phí đi kèm với đường đi của chúng, tiếp theo là các nexthops
được ghép nối theo thứ tự giảm dần. OSPFN sau đó chèn các mục FIB theo thứ tự ngược
lại, như CCND cố gắng nhập mục FIB cuối cùng được chèn vào đầu tiên.
2.8.2 Tên thông điệp OLSA
Thông báo tên OLSA mang một name prefix duy nhất. Định dạng của nó được thể
hiện trong hình 3.2. Phần lớn các trường được OSPFD chỉ định trong router quảng bá.
OLSA có ba phạm vi cho sự tràn mạng. Sử dụng LS Type "10" cho vùng phạm vi làm
tràn, có nghĩa là OSLA sẽ được làm tràn chỉ trong khu vực hiện tại. Các loại Opaque có
thể chứa một giá trị trong phạm vi 127-255 cho việc sử dụng cụ thể ứng dụng, sử dụng
236 cho Tên OLSA. ID không rõ ràng là một giá trị duy nhất được chỉ định bởi người
dùng để xác định tên này trước. Opaque thông tin chứa vùng 32-bit cho name prefix ,
vùng 8-bit cho định dạng name prefix.

Hình 2.3 : Tên thông điệp OLSA


27

2.8.3 Quá trình trao đổi thông điệp


Khi một router khởi động, nó sẽ đọc tập tin cấu hình và tạo ra một tên OLSA cho
mỗi name prefix trước đó mà nó muốn quảng bá trên mạng. Sau đó nó gửi tên OLSA đến
OSPFD cục bộ sẽ được làm tràn chuyển qua vùng hoạt động. Router cũng có thể tìm hiểu
tên tiền nên bắt nguồn từ các phương tiện khác, ví dụ như một giao thức khác.
OSPFD thông báo cho OSPFN bất cứ khi nào có bản cập nhật trong LSDB cùng
với nội dung của LSA. Sau khi nhận được một LSA từ OSPFD, OSPFN đầu tiên kiểm tra
xem LSA có phải là OLSA hay không. Nếu nó không phải là OLSA, OSPFN đơn giản
loại bỏ LSA đó. Nếu không, router sẽ kiểm tra xem OLSA có nguồn gốc hay không.
OSPFN đọc name prefix từ Opaque LSA và tạo một mục nhập trong bảng Name Prefix
của nó có chứa name prefix và router gốc. Sau đó, OSPFN gửi một truy vấn đến OSPFD
cho nexthop để đến được router gốc của mỗi name prefix. Khi OSPFD nhận được một
thông báo truy vấn từ OSPFN, nó tìm kiếm bảng định tuyến của nó cho danh sách nexthop
và các chi phí liên quan đến đường đi, bao gồm chúng trong một thông điệp duy nhất và
sau đó gửi thông điệp trở lại OSPFN.
Khi OSPFN nhận được thông báo này từ OSPFD, nó sẽ sử dụng danh sách nexthop
và chi phí đường đi để cập nhật bảng Name Prefix cho tất cả các name prefix mà có router
này như là router gốc. Sau đó, OSPFN sẽ tạo các mục FIB cho mỗi name prefix và chèn
chúng vào CCND. Mục nhập FIB được tạo ra cho mỗi bước tiếp theo cho name prefix .
Khi OSPFN nhận được bất kỳ thông điệp nào từ OSPFD về việc xóa Tên OLSA, nó sẽ
xóa các mục cho name prefix trong bảng Name Prefix của nó. OSPFN sau đó sẽ gửi thông
điệp đến CCND để xóa các mục nhập FIB tương ứng từ CCND. Hình 3.3 cho thấy các
chuỗi các thông điệp trao đổi giữa OSPFD, OSPFN và CCND.
28

Hình 2.4 : Các chuỗi thông báo trao đổi giữa OSPFN, OSPFD và CCND
29

CHƯƠNG 3 : THỬ NGHIỆM NDN TRÊN MÔI TRƯỜNG LINUX

3.1 Xây dựng môi trường Named Data Networking.


Mini-NDN là một công cụ thử nghiệm và nghiên cứu trên nền tảng NDN. Mini-
NDN sử dụng các thư viện sau đây để mô phỏng mạng NDN trên một hệ thống :
- Mininet : Tạo ra 1 mạng ảo, mô phỏng một máy chủ, liên kết, và chuyển mạch
hoàn chỉnh trên một máy duy nhất.
- NFD là công cụ chuyển tiếp mạng, là thành phần cốt lõi của NDN.
- ChronoSync là thư viện đồng bộ hóa cho các ứng dụng thời gian thực phân tán
cho NDN.
- ndn-cxx là một thư viện C ++ sử dụng để thực hiện các ứng dụng NDN.
- NLSR là giao thức định tuyến, thành phần quan trọng của NDN có chứa các
node.
- ndn-tools là một tập hợp các công cụ thiết yếu cho NDN, được cài đặt trên tất
cả các node NDN.

3.2 Cài đặt các thư viện


3.2.1 Mini-NDN
Tải file Mini-NDN bằng dòng lệnh : git clone https://github.com/named-data/mini-
ndn
Sau đó vào thư mục chứa file Mini-NDN đã clone, bật cửa sổ Terminal và nhập
lệnh sau để bắt đầu cài đặt :
- sudo ./install.sh -i
3.2.2 Mininet
Tải file Mininet bằng dòng lệnh : git clone https://github.com/mininet/mininet
Sau đó vào thư mục chứa file mininet đã clone, bật cửa sổ Terminal và nhập lệnh
sau để bắt đầu cài đặt :
- sudo ./util/install.sh –n
30

3.2.3 Named Data Networking Forwarding Daemon


Tải file NFD bằng dòng lệnh : git clone https://github.com/named-data/NFD
Sau đó vào thư mục chứa file NFD đã clone, bật cửa sổ Terminal và nhập các lệnh
sau để cài đặt :
- ./waf configure –without-websocket
- ./waf
- sudo ./waf install
- sudo ldconfig
3.2.4 ChronoSync
Tải file ChronoSync bằng dòng lệnh : git clone https://github.com/named-
data/ChronoSync
Sau đó vào thư mục chứa file ChronoSync đã clone, bật cửa sổ Terminal và nhập
các lệnh sau để cài đặt :
- ./waf configure
- ./waf
- sudo ./waf install
3.2.5 Ndn-cxx
Tải file ndn-cxx bằng dòng lệnh : git clone https://github.com/named-data/ndn-cxx
Sau đó vào thư mục chứa file ndn-cxx đã clone, bật cửa sổ Terminal và nhập các
lệnh sau để cài đặt :
- ./waf configure
- ./waf
- sudo ./waf install
- sudo ldconfig
3.2.6 NLSR
Tải file NLSR bằng dòng lệnh : git clone https://github.com/named-data/NLSR
Sau đó vào thư mục chứa file NLSR đã clone, bật cửa sổ Terminal và nhập các
lệnh sau để cài đặt :
31

- ./waf configure
- ./waf
- sudo ./waf install
- sudo ldconfig
3.2.7 Ndn-tool
Tải file ndn-tool bằng dòng lệnh : git clone https://github.com/named-data/ndn-tool
Sau đó vào thư mục chứa file NLSR đã clone, bật cửa sổ Terminal và nhập các
lệnh sau để cài đặt :
- ./waf configure --enable-ping --enable-dump
- ./waf
- sudo ./waf install
Sau khi cài đặt tất cả các file thư viện trên vào Ubuntu, chúng ta bắt đầu thử nghiệm
môi trường NDN.

Hình 3.1 : Thư mục chứa các file cài đặt NDN.
Để khởi động Mini-NDN vào thư mục mini-ndn bật cửa sổ Terminal và gõ lệnh
sudo minindn để kích hoạt chương trình, Sau khi đã cấu hình sẽ tạo ra 4 node a,b,c,d các
liên kết và controller (Hình 3.2).
32

Hình 3.2: Khởi động Mini-NDN.


Mô hình mạng có 4 node liên kết với nhau, trong đó node c(eth0) nối với node
a(eth1), node a và node b nối với nhau qua cổng eth0, và node b(eth1) nối với node
d(eth0).Cost mặc định của mỗi liên kết là 10. Các node được liên kết với nhau đều được
trỏ về Controller.

Hình 3.3. Mô hình kết nối.


33

Để xem liên kết của các node trong Mini-NDN dùng lệnh : minindn> net

Hình 3.4. Liên kết giữa các node.


Sau khi các node đã được kết nối, cũng như đã là neighbor của nhau trên mỗi node
sẽ có bảng định tuyến riêng của mỗi vùng. Để xem tình trạng định tuyến của các node
dùng lệnh minindn> a nlsrc status.
Khi đã hoàn tất quá trình trao đổi gói tin các router thiết lập neighbor, mỗi router
trên mỗi node sẽ gửi thông điệp mà router đã quảng bá trên mạng, cụ thể ở đây là tên
Prefix của các node cùng với tên NDN mà router đã quảng bá. Và tên NDN đã học được
từ bảng định tuyến bao gồm : /ndn/a-site/a, /ndn/b-site/b, /ndn/c-site/c, /ndn/d-site/d.

Hình 3.5. Bảng định tuyến của các node.


34

Để xem bảng chuyển tiếp của node a dùng lệnh minindn> a nfdc fib.
Trên node a sẽ có thông tin định tuyến của các node b,c,d quảng bá lên mạng, trong
đó có tên Prefix gồm có nexthops, faceid và cost. Cost từ node a đến node c là 10, node a
đến node b là 10, node a đến node d là 20 vì phải đi qua node b.Và tên NDN đã học được
từ bảng định tuyến bao gồm : /ndn/b-site/b, /ndn/c-site/c, /ndn/d-site/d.

Hình 3.6. Bảng chuyển tiếp của node a.


Để xem bảng chuyển tiếp của node b dùng lệnh minindn> b nfdc fib.
Trên node b sẽ có thông tin định tuyến của các node a,c,d quảng bá lên mạng,
trong đó có tên Prefix gồm có nexthops, faceid và cost. Cost từ node b đến node d là 10,
node b đến node a là 10, node b đến node c là 20 vì phải đi qua node a.Và tên NDN đã
học được từ bảng định tuyến bao gồm : /ndn/a-site/a, /ndn/c-site/c, /ndn/d-site/d.

Hình 3.7. Bảng chuyển tiếp của node b.


35

Để xem bảng chuyển tiếp của node c dùng lệnh minindn> c nfdc fib.
Trên node c sẽ có thông tin định tuyến của các node a,b,d quảng bá lên mạng, trong
đó có tên Prefix gồm có nexthops, faceid và cost. Cost từ node c đến node a là 10, node c
đến node b là 20, node c đến node d là 30 vì phải đi qua node a,b.Và tên NDN đã học được
từ bảng định tuyến bao gồm : /ndn/a-site/a, /ndn/b-site/b, /ndn/d-site/d.

Hình 3.8. Bảng chuyển tiếp của node c.


Để xem bảng chuyển tiếp của node d dùng lệnh minindn> d nfdc fib.
Trên node d sẽ có thông tin định tuyến của các node a,b,c quảng bá lên mạng, trong
đó có tên Prefix gồm có nexthops, faceid và cost. Cost từ node d đến node b là 10, node d
đến node a là 20, node d đến node c là 30 vì phải đi qua node b,a. Và tên NDN đã học
được từ bảng định tuyến bao gồm : /ndn/a-site/a, /ndn/b-site/b, /ndn/c-site/c.

Hình 3.9. Bảng chuyển tiếp của node d.


36

3.3 Ndnping và ndnpingserver


Ndnping và ndnpingserver là các công cụ kiểm tra khả năng truy cập giữa hai
nodes. Client gửi một Interest cho một node chạy ndnpingserver, server ping sẽ gửi gói
Data phản hồi. Client sau đó sẽ tính toán thời gian khứ hồi cho việc trao đổi Interest-Data
hoặc đánh dấu nó là timeout nếu dữ liệu không nhận được trong khoảng thời gian chờ.
3.3.1 Sử dụng Client
Client dùng câu lệnh ndnping với một tên để ping, ví dụ : ndnping /ndn/b-site/b.
3.3.2 Sử dụng Server
Server dùng câu lệnh ndnpingserver với một cái tên để nghe ping đến, ví dụ :
ndnpingserver /ndn/b-site/b.
3.3.3 Thăm dò về Interests
Client thể hiện sự thăm dò về Interests dự định sẽ chuyển tiếp đến server mà không
cần tổng hợp. Interest phải có cấu trúc tên như sau :
- ndn:/<prefix>/ping/<seq>
- ndn:/<prefix>/ping/<client-identifier>/<seq>
Trong đó :
- <prefix> là tiền tố máy chủ chứa không, hoặc nhiều tên thành phần.
- <seq> là một tên thành phần có giá trị là một số nguyên 64-bit, được biểu diễn
dưới dạng số thập phân trong mã ASCII.
- <client-identifier> là tên thành phần với giá trị tuỳ ý.
3.3.4 Trả lời Data
Server nên đăng ký tiền tố ndn:/<prefix>/ping, và phải trả lời để thăm dò Interest
theo tiền tố này với Data. Data phải có cùng tên với thăm dò Interest
3.3.5 Thực hiện ping giữa các nodes
Dùng server (ndnpingserver) vào thư mục HOME của node b để lắng nghe ping
đến và trả lời (Hình 3.8) :
37

Hình 3.10 : Server lắng nghe ping đến

Dùng client ping, vào thư mục HOME của node a để tiến hành ping từ client (Hình 3.9)

Hình 3.11 : Client tiến hành ping đến tên NDN


38

Sau khi đã lắng nghe ping từ client đến, server trả lời.

Hình 3.12. Server trả lời

3.4 Quá trình tìm đường đi


Sau khi đã tiến hành ping từ node c đến node d, tiến hành kiểm tra quá trình trao
đổi thông điệp của các node với nhau.
Trên node a, sau khi đã được gửi thông điệp, node a sẽ nhận gói tin Interest từ node
c gửi đến bao gồm tên site và tên node. Sau đó gói tin Interest được gửi tiếp tục đến node
hàng xóm của node a là node b.
39

Hình 3.13 : Thông điệp trên node a.


Sau khi nhận được gói tin Interest từ node a, node b tiếp tục chuyển tiếp gói tin
Interest đến đích là node d.

Hình 3.14 : Thông điệp trên node b.

Sau khi nhận được gói tin Interest từ node b gửi tới, node d gửi gói tin Data phản hồi
thành công từ node b gửi đến để hoàn tất quá trình trao đổi thông điệp.
40

Hình 3.15 : Thông điệp trên node d.

Hoặc cũng có thể tiến hành ping giữa các node giựa trên tên NDN đã được quảng
bá trong bảng định tuyến của các node bằng cách vào thư mục Mini-NDN và dùng lệnh :
sudo minindn ndn_utils/topologies/default-topology.conf
Node c tiền hành ping đến node d :
mini-ndn> c ndnpingserver /ndn/d-site/d &> /dev/null &
mini-ndn> c ndnping -c5 /ndn/d-site/d
Node d tiền hành ping đến node c :
mini-ndn> d ndnpingserver /ndn/c-site/c &> /dev/null &
mini-ndn> d ndnping -c5 /ndn/c-site/c
Trong đó /dev/null là file này không lưu gì vào trong cả nên dĩ nhiên là cũng không
xuất ra bất cứ cái gì.
41

Hình 3.16 : Các node ping bằng giao diện Mini-NDN


Hoặc cũng có thể khởi động Mini-NDN từ bản sao của hệ thống NDN testbed bằng
dòng lệnh : sudo minindn --testbed
42

Hình 3.17 : Khởi động Mini-NDN từ testbed.


Để xem bảng định tuyến của một tên bất kì dùng lệnh : mini-ndn > arizona nlsrc
status

Hình 3.18: Bảng định tuyến của arizona.

Tiến hành ping một tên NDN mà router đã quảng bá trên bảng chuyển tiếp :

Hình 3.19 : arizona ping tên NDN được quảng bá trên mạng.
43

3.4. Tiểu kết


Giao thức định tuyến OSPF thuộc nhóm Link State. Trên mỗi Router đều có bản
đồ mạng của cả vùng (bảng định tuyến) thông qua việc đồng nhất bảng cơ sở dữ liệu trạng
thái đường link (LSDP - Link State Database). Từ bản đồ mạng này Router sẽ tự tính toán
ra đường đi ngắn nhất và xây dựng bảng định tuyến. Nhưng OSPF không hỗ trợ cân bằng
tải.
Giao thức OSPFN dành cho NDN sử dụng Opaque Link State Advertisements .Hơn
nữa, vì OSPF chỉ cung cấp một đường đi tốt nhất cho mỗi điểm đến, thêm một tính năng
đa đường (multipath) được xác định để cho phép người dùng chỉ định các liên kết sẽ sử
dụng các đường đi tốt nhất. Giao thức hiện tại OSPFN hỗ trợ định tuyến về tên và định
tuyến đa tuyến, sử dụng LSAs Opaque LSAs của OSPF hoặc OLSA để thông báo trước
name prefix.

KẾT LUẬN

Đề tài nghiên cứu với mục tiêu tìm hiểu về kiến trúc Internet trong tương lai Named
Data Networking, tìm hiểu về giao thức định tuyến OSPF và OSPFN về mô hình cơ bản,
thiết kế, quá trình trao đổi thông điệp và tính toán đường đi đến đích.
Thử nghiệm NDN trên môi trường Linux, cài đặt các thư viện giả lập môi trường
NDN cho phép các tên mà NDN đã quảng bá có thể trao đổi với nhau, tìm hiểu về bảng
định tuyến và bảng chuyển tiếp của NDN.
Named Data Networking là một kiến trúc Internet lớn sẽ thay đổi kiến trúc Internet
hiện tại nhưng vẫn chưa ứng dụng ngay được. Vì cung cấp nhiều đường đi đến đích nên
NDN sẽ không có lợi thế về tốc độ xử lý.
Xác nhận NDN như là một kiến trúc Internet trong tương lai: khả năng mở rộng
định tuyến, chuyển tiếp nhanh, mô hình tin tưởng, an ninh mạng, bảo vệ nội dung và sự
riêng tư.
44

TÀI LIỆU THAM KHẢO

TÀI LIỆU TIẾNG ANH


[1] Jacobson, Van, Smetters, Diana K, Thornton, James D, Plass, Michael, Briggs, Nick,
Braynard,Rebecca (1 January 2012). "Networking named content". Communications of the
ACM.
[2] V. Jacobson, D. K. Smetters, J. D. Thornton, M. F. Plass, N. H. Briggs, and R. L.
Braynard. Networking named content. In Proceedings of ACMCoNEXT, 2009.
[3] L. Zhang et al. Named data networking (NDN) project. Technical Report NDN0001,
PARC, October 2010.
[4] PARC. CCNx open srouce platform. http://www.ccnx.org.

TÀI LIỆU INTERNET


[5] Các kiểu OSPF area,
https://nguyenvcuong.blogspot.com/2012/04/ospf-area-types.html
[6] Tổng quan về giao thức OSPF,
http://svuit.vn/threads/bai-14-tim-hieu-giao-thuc-dinh-tuyen-ospf-101/
[7] OSPFN, https://named-data.net/publications/techreports/trospfn/
[8] Named Data Networking, https://en.wikipedia.org/wiki/Named_data_networking

You might also like