Tiểu Luận Tổng quan về giao thức bootp

Thảo luận trong 'Công Nghệ Thông Tin' bắt đầu bởi Mai Kul, 28/11/13.

  1. Mai Kul

    Mai Kul New Member

    Bài viết:
    1,299
    Được thích:
    0
    Điểm thành tích:
    0
    Xu:
    0Xu
    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




















    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 - http://www.networksorcery.com
    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
    Tài liệu tham khảo: 2
    I. Tổng quan và lịch sử phát triển của BOOTP. 4
    II. BOOTP. 4
    1) Mục đích sử dụng. 4
    2) Phạm vi ứng dụng. 5
    3) Bản chất của BOOTP. 5
    III. Nguyên lý hoạt động của giao thức BOOTP. 6
    Thiếu sót của RARP 6
    Bootstrap protocol (BOOTP) – Một giải pháp tĩnh với nhiều thông số. 6
    1) Mục tiêu. 6
    2) Bootstrap. 7
    3) Nguyên lý. 8
    Message field. 10
    IV. Phân tích ưu nhược điểm cao giao thức. 12
    1) Ưu điểm 12
    2) Nhược điểm 13
    V. Sự phát triển của BOOTP sau đó. 14
    VI. Mô phỏng. 14


    GIAO THỨC BOOTP

    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.

    BOOTP

    Mục đích sử dụng
    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.

    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).

    Bản chất của BOOTP
    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ớ.

    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ố
    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
    Đượ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)

    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)
    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.

    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
    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.

    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


    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.


    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,

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

    Ư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.

    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)

    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 phần mở rộng của BOOTP và phần Options của DHCP thành một chuẩn chung.


    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.
     

    Các file đính kèm:

Đang tải...