Tải bản đầy đủ (.docx) (15 trang)

TÌM HIỂU GIAO THỨC BOOTP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (378.25 KB, 15 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

BÀI TẬP LỚN
MÔN: MẠNG MÁY TÍNH

TÌM HIỂU GIAO THỨC BOOTP
Giáo viên hướng dẫn:

TS. Ngô Quỳnh Thu

Sinh viên thực hiện: Bùi Thái Bình, SHSV:20114628
Hà Nội - 2013


Giao thức BOOTP – Bộ môn Mạng máy tính

Lời nói đầu!
Bộ giao thức TCP/IP đã có mặt gần 3 thập kỷ, và vấn đề làm thế nào
tự động hóa việc cấu hình các thông số cho các máy sử dụng địa chỉ IP đã
có từ lâu.Trong mạng máy tính, giao thức Bootstrap, hay BOOTP là một
giao thức mạng mà máy client sử dụng để lấy địa chỉ IP từ một máy
Server. Giao thức BOOTP được chỉ định trong RFC 951. BOOTP thường
được sử dụng trong tiến trình “bootstrap” khi máy tính đang khởi động.
Server cấu hình BOOTP gán địa chỉ IP cho từng máy client từ một dãy địa
chỉ. Và với đề tài tìm hiểu giao thức BOOTP, tài liệu này mô tả khá chi tiết
về giao thức BOOTP, bao gồm lịch sử quá trình phát triển, nguyên lý hoạt
động, phân tích các ưu nhược điểm của giao thức. Mặc dù vậy, tài liệu vẫn
không tránh khỏi được các thiếu sót, nhóm em mong nhận được ý kiến
của cô giáo và các bạn để rút kinh nghiệm và nội dung của tài liệu được


hoàn thành đầy đủ hơn. Em xin cảm ơn!

Hà Nội - 2013

2


Giao thức BOOTP – Bộ môn Mạng máy tính

Tài liệu tham khảo:







Flexible and Scalable host configuration (Linh hoạt và mở rộng
cấu hình máy chủ) – Herbert Haas 11/3/2005.
BootP, TFTP, DHCP - Institute of Computer Technology - Vienna
University of Technology (Viện khoa học máy tính – Đại học
công nghệ Vienna)
BOOTP, Bootstrap Protocol -
Từ BOOTP đến DHCP – www.nhatnghe.com
Các tài liệu tham khảo khác trên Internet

MỤC LỤC

3



Giao thức BOOTP – Bộ môn Mạng máy tính

GIAO THỨC BOOTP
I.

Tổng quan và lịch sử phát triển của BOOTP
Bộ giao thức TCP/IP đã có mặt gần 3 thập kỷ, và vấn đề làm thế nào
tự động hóa việc cấu hình các thông số cho các máy sử dụng địa chỉ IP đã
có từ lâu. Vào đầu thập niên 1980, các mạng điện toán còn nhỏ và tương
đối đơn giản. Việc cấu hình tự động TCP/IP không được coi là quan trọng
lắm mặc dầu có sự khó khăn trong cấu hình các thông số bằng tay. Nó
quan trọng ở chỗ không có cách nào khác để cấu hình các máy trạm
không có ổ đĩa cứng.
Chính vì vậy việc ra đời của RARP và sau đó được thay thế bởi
BOOTP là một điều tất yếu. Về phương diện lịch sử, BOOTP là giao thức
cấu hình TCP/IP được lựa chọn hàng đầu từ giữa thập niên 1980 cho đến
cuối thập niên 1990. Phần mở rộng cho nhà sản xuất được đưa vào trong
RFC 1048 đã là một sự phổ biến, sau khi trãi qua nhiều năm có thêm
nhiều phần mở rộng cho nhà sản xuất được chỉ định; RFC 1048 được
thay thế bằng RFC 1084, 1395 và 1497 kế tiếp nhau. Thế là sự lẫn lộn
cũng phát sinh khi trãi qua năm tháng trong việc giải thích một vài phần
trong RFC 951 (RFC 951 khởi tạo ra giao thức BOOTP) và làm sao một
vài tính năng của BOOTP có thể thực hiện được.
Trong hoàn cảnh như vậy, RFC 1542 (Làm sáng tỏ và các phần mở
rộng cho giao thức Bootstrap) ra đời vào tháng 10 năm 1993 để giải
quyết những vấn đề mơ hồ , lẫn lộn của các RFC có trước và cũng đưa
thêm vào một vài thay đổi nhỏ cho hoạt động của giao thức BOOTP (RFC
1542 thực chất là sự chỉnh sửa một RFC tương tự trước đó là RFC 1532,
nhưng vì chuẩn này có một vài lỗi nhỏ trong đó nên không tiếp tục được.)

Trong đề tài này chúng ta sẽ đi tìm hiểu BOOTP được nêu ra trong
RFC 951.

II.

BOOTP
1)

Mục đích sử dụng

4


Giao thức BOOTP – Bộ môn Mạng máy tính
BOOTP được sử dụng cho các máy trạm không có đĩa cứng với hệ
điều hành UNIX (hoặc tương tự) tìm thấy được vị trí của file boot máy
ngoài việc nhận địa chỉ IP, và cũng bởi giao thức này mà các cơ quan xí
nghiệp dùng để triển khai việc cài đặt mới hệ điều hành (ví dụ hệ điều
hành Windows) cho các máy tính cá nhân (PC) chưa có hệ điều hành.
Lúc ban đầu người ta phải để chương trình của giao thức này trong
đĩa mềm gọi là đĩa mềm boot. Đĩa mềm này khởi động để thiết lập các kết
nối mạng sơ khởi. Sau này việc sản xuất ra các cạc mạng tích hợp giao
thức này trong BIOS cũng như là tích hợp trong board mạch chủ với các
cạc mạng on – board, như thế cho phép máy boot trực tiếp qua cạc mạng.
2)

Phạm vi ứng dụng

Trong mạng máy tính, giao thức Bootstrap, hay BOOTP là một giao
thức mạng mà máy client sử dụng để lấy địa chỉ IP từ một máy Server.

Giao thức BOOTP được chỉ định trong RFC 951. BOOTP thường được sử
dụng trong tiến trình “bootstrap” khi máy tính đang khởi động. Server
cấu hình BOOTP gán địa chỉ IP cho từng máy client từ một dãy địa chỉ.
BOOTP sử dụng giao thức UDP (User Datagram Protocol) làm giao thức
vận chuyển.
Nói qua về RFC. Trong kỹ nghệ liên mạng và mạng máy tính, các tài
liệu RFC (Request for Comments – Đề nghị duyệt thảo và bình luận) là
một chuỗi các bản ghi nhớ chứa đựng nghững nghiên cứu mới, những
đổi mới, và những phương pháp luận ứng dụng cho công nghệ Internet.
Thông qua ISOC (Internet Society – Đoàn thể Internet), các kỹ sư và các
nhà khoa học máy tính có thể công bố luận văn dưới hình thức là một
bản ghi nhớ RFC, hoặc là để cho những người đồng nghiệp phê bình,
hoặc chỉ đơn thuần thông báo những quan điểm mới, tin tức, hoặc (thỉnh
thoảng) là những hài hước kỹ thuật. Tổ chức lực lượng chuyên trách về
lỹ thuật liên mạng (Internet Engineering Task Force – IETF) chấp nhận
một số những lý thuyết thông tin đã ứng dụng được công bố trong các
bản RFC như những tiêu chuẩn về liên mạng (Internet standardrs).
3)

Bản chất của BOOTP

5


Giao thức BOOTP – Bộ môn Mạng máy tính
Như chúng ta đã biết, nếu không có một dạng nào đó cất giữ dữ liệu
bên trong máy, một thiết bị phải cậy vào một người nào đó hay một cái gì
đó bên ngoài để nói cho nó biết nó “là ai”(địa chỉ của nó) và phải vận
hành như thế nào mỗi lần mở máy. Khi một thiết bị như thế được bật lên,
nó phải ở một tình thế khó khăn: nó cần phải sử dụng IP để liên lạc với

một thiết bị khác để nhờ thiết bị này cung cấp thông tin cho nó biết làm
sao liên lạc với nhau bằng cách sử dụng IP! Tiến trình này được gọi là
“bootstrapping” hay nói cho gọn “booting”, từ bootstrap nghĩa đen là dây
gắn vào phía trên gót giày , ẩn dụ một người dùng một vật nhỏ để kéo
một vật lớn hơn là chiếc giày vào chân. Cũng như vậy, một chương trình
nhỏ dùng để kéo một chương trình lớn hơn là hệ điều hành vào bộ nhớ.
III.

Nguyên lý hoạt động của giao thức BOOTP
Thiếu sót của RARP
-

Đảo ngược giao thức phân giải địa chỉ
Chỉ phân phối địa chỉ IP
Không subnet mask
Sử dụng địa chỉ phần cứng để nhận dạng

-

Các công cụ cần thiết mới là: BOOTP và DHCP

RARP là một trong những giao thức đầu tiên mà cung cấp địa chỉ IP
tới một máy khách kết nối mới. RARP là một giao thức cũ với nhiều bất
lợi. Nó chỉ có thể phân phối địa chỉ IP mà không có sự che dấu di subnet.
RARP sử dụng địa chỉ phần cứng để nhận dạng, điều này làm cho nó
không thể kết nối máy khách mới vào mạng mà không cần một số công
việc quản lý.
Bootstrap protocol (BOOTP) – Một giải pháp tĩnh với nhiều thông số
1)


Mục tiêu
-

Máy khách yêu cầu địa chỉ IP và các thông số khác từ máy chủ


-

Subnet mask, tên file cấu hình…

Địa chỉ IP được định nghĩa trước trong một danh sách


Ấn định lập bản đồ địa chỉ MAC  địa chỉ IP
6


Giao thức BOOTP – Bộ môn Mạng máy tính
-

Được xác định trong RFC 951 và RFC 1048

Các giao thức Bootstrap có thể cung cấp nhiều thông số quan trọng
tới máy khách. Các thông số quan trọng nhất là Subnet mask, và tên tập
tin cấu hình. Nó có thể kết nối với một máy khách không có đĩa. Ngoài ra,
BootP sử dụng bản đồ cố định thông qua địa chỉ phần cứng (Ethernet
MAC Address)
2)

Bootstrap


Trong hình trên, bạn thấy nguyên lý bootstrap cổ điển, có 2 máy chủ
quan trọng là máy chủ TFTP với các tập tin cấu hình và máy chủ BOOTP.
Sau khi một máy tính mới được kết nối tới mạng nó cần một địa chỉ IP và
một cái gì đó để khởi động.Thông qua một IP phát sóng (mở rộng 1 to
many) BOOTP làm việc với UPD, cổng 67 (phía máy chủ) và cổng 68 (phía
máy khách). Nó gửi đi một yêu cầu, sử dụng 255.255.255.255 như là địa
chỉ đích (limited broadcast) và 0.0.0.0 như là địa chỉ nguồn (UDP dựa
trên IP)
7


Giao thức BOOTP – Bộ môn Mạng máy tính
Nói qua về TFTP server : TFPT là viết tắt cho "Trivial File Transfer
Protocol". Nhiều thiết bị mạng đòi hỏi một trình phục vụ TFTP để tải hệ
điều hành hoặc cấu hình ban đầu của họ. Nhiều Router, Switch, Hub, X –
thiết bị đầu cuối, máy in, máy chủ thiết bị đầu cuối, … cần một máy chủ
TFTP để tải cấu hình ban đầu của họ.

Sau khi máy chủ BOOTP nhận yêu cầu từ máy khách BOOTP, nó sử
dụng phương pháp lập bản đồ cố định của mình (từ địa chỉ MAC địa chỉ
IP) để cung cấp cho khách hàng một địa chỉ IP. Các máy chủ BOOTP cũng
gửi các thông tin về máy chủ TFTP và tên của tập tin cấu hình cho máy
khách.
3)

Nguyên lý
-

Tách nhiệm vụ khởi động vào BOOTP một phần và TFTP một phần

Máy chủ BOOTP chỉ cần duy trì một cơ sở dữ liệu nhỏ
Hình ảnh và tập tin cấu hình có thể được lưu trữ trên một máy
khác
8


Giao thức BOOTP – Bộ môn Mạng máy tính
-

Máy khách BOOTP có trách nhiệm phát hiện lỗi (truyền lại sau
thời gian chờ)
• UDP và một sự kiểm tra được sử dụng cho việc tải trọng như là
việc kiểm tra của IP không đưa các trường dữ liệu vào tài
khoản.
• Các gói IP không có mảng bit (Do No Fragment Bit) được thiết
lập thành một
• Thời gian chờ được chọn ngẫu nhiên từ một khoảng thời gian
đặc biệt và nó được tăng lên như là lỗi cuối cùng để tránh tình
trạng mạng quá tải.

Sau khi một lỗi được phát hiện (timeout) nó sẽ được truyền lại. Thời
gian chờ được chọn ngẫu nhiên từ một khoảng thời gian đặc biệt, nó
được tăng lên như là lỗi cuối cùng để tránh tình trạng mạng quá tải. Đối
với việc phát hiện lỗi UDP và một sự kiểm tra được sử dụng. Ngoài ra, các
gói IP không có mảng bit “Do No Fragment Bit” được thiết lập thành một.

9


Giao thức BOOTP – Bộ môn Mạng máy tính

Trong hình ở trên, bạn thấy định dạng thông điệp BOOTP. Mỗi dòng
có độ dài 4 byte. Lưu ý 64 octet ở phía dưới cùng của khung – Khu vực
nhà cung cấp cụ thể, không gian này có thể được sử dụng cho tin nhắn bổ
sung khác và sẽ được mở rộng bởi DHCP.
Ở phần giữa (màu đỏ) là các thông tin quan trọng nhất được thực
hiện, đó là địa chỉ IP được gán, địa chỉ IP của một máy chủ mà từ đó máy
khách có thể khởi động, và một bộ định tuyến tùy chọn địa chỉ IP nếu máy
chủ nằm trên mạng con khác
Ý nghĩa chi tiết của từng lĩnh vực sẽ được giải thích trong các trang
trình bày sau đây:
Message field


-

OP (Operation code – Mã hoạt động) – 8 bit: Kiểu Thông điệp
1 là yêu cầu khởi động

-

2 là trả lời khởi động



HTYPE (Hardware Address Type) – 8 bit: Kiểu địa chỉ phần cứng

-

Kiểu mạng (1 cho Ethernet), các số tương tự như ARP




HLEN (Hardware Address Length) – 8 bit: Độ dài địa chỉ phần cứng
-



6 cho Ethernet

Hops – 8 bit: Trường Hops này là quan trọng nhất để trách các phát sóng
(Broadcast) lặp lại bên trong mạng. Mỗi lần, các gói BOOTP được kiểm
tra bởi 1 router, router sẽ tăng Hops lên 1
- Số của Hops, tùy chọn này được sử dụng bởi bộ định tuyến
- Khởi tạo với số 0 bởi máy khách
-

Tăng 1 nếu máy chủ BootP chuyển tiếp yêu cầu tới một máy chủ
khác (Bootstrap trên nhiều máy chủ). Việc quản lý lại BootP được
kích hoạt

10


Giao thức BOOTP – Bộ môn Mạng máy tính



Transaction ID (ID giao dịch) – 32 bit: Là một số ngẫu nhiên, được dùng
cho việc xác định. ID giao dịch bao gồm một số ngẫu nhiên và đảm bảo
rằng máy khách xác định được chính xác gói tin trả lời trong số các cái

khác, liên quan đến yêu cầu của nó. Điều đó có nghĩa là cả yêu cầu và trả
lời liên quan đề có chung ID giao dịch.



Seconds (Giây) – 16 bit: Số giây được thiết lập là số giây trôi qua kể từ
khi máy khách bắt đầu được khởi động. Các máy chủ có thể nhìn vào giá trị
này, và có lẽ là một máy chủ thứ cấp cho một khách hàng sẽ không đáp ứng
cho đến khi số giây đã vượt quá một số giá trị . Theo RFC 951 thì : “ Điều này
sẽ cho các máy chủ biết trong bao lâu một máy khách đã cố gắng để khởi
động. Khi con số này lớn hơn, một số máy chủ có thể cảm thấy “thông
cảm” đối với một máy khách không có dịch vụ bình thường. Nếu một máy
khách thiếu một đồng hồ phù hợp, nó có thể xây dựng một ước tính đơn
giản bằng cách sử dụng một bộ đếm thời gian vòng lặp. Hoặc nó có thể
chọn để gửi đi thời gian này một cách đơn giản như luôn luôn là một giá
trị cố định: 100 giây.” Nếu bộ định tuyến được cấu hình để chuyển tiếp
yêu cầu BOOTP (broadcast) thì nó có thể cũng phải chờ đợi cho đến khi
một giá trị nhất định của giây được vượt quá. Biện pháp này sẽ giảm
thiểu các cơn bão broadcast.



Client IP – address (Địa chỉ IP máy khách) – 32 bit: Được điền vào bởi
máy khách trong yêu cầu khởi động nếu biết. Máy khách có thể điền vào
địa chỉ IP riêng của nó nếu thực sự biết và và các thông số khác được yêu
cầu.



Your IP – address – 32 bit: Được điền vào bởi máy chủ nếu máy khách

không biết địa chỉ riêng của chính nó. “Your IP address” được sử dụng
một cách chủ yếu, nó chứa địa chỉ IP được giao tới máy khách.

11


Giao thức BOOTP – Bộ môn Mạng máy tính



Sever IP – address – 32 bit: Được trả về trong thông tin trả lời khởi động
của máy chủ. Địa chỉ IP máy chủ chứa chứa địa chỉ IP của một tùy chọn
khởi động máy chủ.


-

Router IP – address
Server là một phần của Subnet khác
Là địa chỉ IP của BootP trả lại
-

Nếu một cổng quyết định chuyển tiếp các yêu cầu, nó cần xem xét
thuộc tính cổng địa chỉ IP. Nếu không, nó nên đưa địa chỉ IP (trên các
cáp nhận) vào thuộc tính này. Nó cũng có thể sử dụng trường ‘hops’
để tùy chọn điều khiển trong bao xa thì gói tin lại được chuyển tiếp.
Hops nên được tăng lên trong mỗi chuyển tiếp. VD nếu Hops vượt qus
3, gói có lẽ nên được loại bỏ.




Client Hardware – address (Địa chỉ phần cứng máy khách): Địa chỉ MAC
của máy khách. Địa chỉ phần cứng của máy khách là cần thiết để tìm một
mục trong bảng địa chỉ ở máy chủ BOOTP.



Server Host Name (tên máy chủ lưu trữ): Tùy chọn tên máy chủ lưu trữ.
Một cách tùy chọn, tên miền của máy chủ có thể được quy định cụ thể.



Bootfilename (tên file khởi động): Chứa đường dẫn thư mục và tên của
tập tin khởi động. Nó nằm ở máy chủ được xác định ở trên.



Vendor Specific Area (Khu vực nhà cung cấp cụ thể): Tùy chọn này chứa
thông tin nhà cung cấp của máy chủ BootP. Trong RFC 1048 cũng có thể
kể đến các subnet mask, hostname, tên miền (Domain name), DNS,…

IV.

Phân tích ưu nhược điểm cao giao thức
12


Giao thức BOOTP – Bộ môn Mạng máy tính
1)


Ưu điểm
BOOTP sửa sai các yếu kém của RARP

Giao thức RARP (Reverse Address Resolution Protocol) là giao thức
đầu tiên được tạo ra để giải quyết “vấn đề bootstrap”. RARP ra đời năm
1984, là một sự biến thể trực tiếp từ giao thức cấp thấp ARP (Address
Resolution Protocol), một giao thức kết buộc địa chỉ IP với địa chỉ tầng
data-link. RARP có khả năng cấp địa chỉ IP cho thiết bị không có ổ đĩa
cứng, bằng cách dùng sự trao đổi đơn giản bằng một truy vấn và một trả
lời trong mối quan hệ client/server .
Quá nhiều hạn chế của RARP trở thành một khó khăn cho mạng:






Nó hoạt động bằng broadcasts ở tầng data-link, vì vậy nó đòi hỏi
phải có sự điều chỉnh cho phù hợp với từng phần cứng của nhà
sản xuất khác nhau.
Một server RARP đòi hỏi phải nằm trên mỗi mạng vật lý để đáp
ứng cho các broadcast ở tầng 2.
Mỗi server RARP phải có một người Admin cấp địa chỉ IP bằng tay
trên server.
Và điều kém cõi nhất là RARP chỉ cấp địa chỉ IP và không cho thêm
một thông tin nào khác mà máy client rất cần.

RARP rõ ràng là không đủ sức cung cấp thông tin cấu hình TCP/IP
cho các máy tính. Để hổ trợ vừa cho các máy tính không có đĩa cứng vừa
cho việc cấu hình TCP/IP tự động, vì thế mà BOOTP (Bootstrap) được tạo

ra. BOOTP được chuẩn hóa trong RFC 951, xuất bản tháng 9 năm 1985.
Giao thức này được phát triển để giải quyết các hạn chế của RARP:





Nó vẫn còn dựa vào quan hệ client/server, nhưng nó được triển
khai ở tầng cao hơn, dùng UDP cho việc vận chuyển. Nó không còn
phụ thuộc vào phần cứng đặc biệt nào của nhà sản xuất như là
RARP.
Hổ trợ gởi thêm thông tin tới máy client ngoài địa chỉ IP.Thông tin
thêm này thường được gởi trong một thông điệp duy nhất.
Nó có thể sử dụng trong môi trường client và server ở trong
những hệ thống mạng gồm nhiều NetID khác nhau. Điều này cho
phép quản lý địa chỉ IP tập trung ở một server.
13


Giao thức BOOTP – Bộ môn Mạng máy tính
2)

Nhược điểm
BOOTP chỉ giải quyết giai đoạn đầu của Bootstrapping

Chúng ta cũng cần phải lưu ý rằng mặc dù có tên là BOOTP, ám chỉ
rằng nó có đủ mọi thứ cần thiết để máy tính không có đĩa cứng có thể
“boot” được, nhưng điều này thực sự không đúng. Vì chính BOOTP đã tự
mô tả, “bootstrapping” đòi hỏi hai giai đoạn:




Giai đoạn đầu tiên, máy client được cung cấp địa chỉ IP và các
thông số khác.
Giai đoạn hai, máy client download phần mềm, như là hệ điều
hành và các drivers, để nó có thể hoạt động trên mạng và thực
hiện các công tác mà nó được giao.

BOOTP thực sự chỉ giải quyết được giai đoạn đầu tiên: giải quyết
việc cấp địa chỉ và thông số cấu hình. Giai đoạn hai mặc định xảy ra bằng
cách sử dụng một giao thức khác dùng để vận chuyển file như là
TFTP(Trivial File Transfer Protocol)
V.

Sự phát triển của BOOTP sau đó.
Trong lúc BOOTP rất thành công một cách hiển nhiên nhưng nó
cũng có một vài nhược đỉểm của riêng nó. Một trong những thiếu sót
quan trọng là không cấp được địa chỉ IP cập nhật động. Nhu cầu cấp địa
chỉ động trở thành rõ rệt hơn bao giờ hết khi Internet thực sự khởi đầu
cất cánh vào cuối thập niên 1990. Chính điều này đã trực tiếp dẫn tới sự
phát triển giao thức DHCP (Dynamic Host Configuration Protocol)
DHCP thay thế BOOTP làm giao thức cấu hình TCP/IP , thật là sai
lầm khi cho rằng BOOTP hoàn toàn “ra đi”. Ngày nay nó vẫn còn được sử
dụng trong nhiều mạng khác nhau. Hơn nữa, DHCP lấy BOOTP làm nền
tảng và chúng có nhiều thuộc tính chung, kể cả định dạng các thông điệp
cũng giống nhau. Những phần mở rộng cho nhà sản xuất phần cứng
trong BOOTP trở thành phần Options của DHCP, chúng hoạt động cùng
một cách nhưng DHCP có nhiều khả năng hơn. Trên thực tế, RFC
1497(RFC về phần mở rộng của BOOTP) đã kế thừa RFC 1533 (RFC về
các Options của DHCP và phần mở rộng của BOOTP) chính thức kết hợp

14


Giao thức BOOTP – Bộ môn Mạng máy tính
phần mở rộng của BOOTP và phần Options của DHCP thành một chuẩn
chung.
VI.

Mô phỏng

Do hạn chế của đề tài nên bài báo cáo đã lược bỏ phần mô phỏng.

15



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×