Tìm hiểu giao thức cấp phát địa chỉ DHCP và BOOTP
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC THƯƠNG MẠI
Trang 2Mục Lục
Trang
Chương I Mục đích, đặc điểm và hoạt động của giao thức cấp phát địa chỉ BOOTP
và DHCP 04
I.Giao thức cấp phát địa chỉ BOOTP 04
1 Giới thiệu về BOOTP 04
2 Mục đích của BOOTP 04
3 Đặc điểm giao thức BOOTP 04
4 Hoạt động của BOOTP 07
II Giao thức cấp phát địa chỉ DHCP 09
1 Giới thiệu về DHCP 09
2 Mục đích của DHCP 12
3 Đặc điểm giao thức DHCP 12
4 Hoạt động của DHCP 14
Chương II Sự khác biệt giữa BOOTP và DHCP Yêu cầu khi cấu hình DHCP 17
I Sự khác biệt giữa BOOTP và DHCP 17
II Yêu cầu khi cấu hình DHCP 18
Tài liệu tham khảo 20
Trang 3Chương I: Mục đích, đặc điểm và hoạt động của giao thức cấp
phát địa chỉ BOOTP và DHCP.
I Giao thức cấp phát địa chỉ BOOTP:
1 Giới thiệu về BOOTP
Cộng đồng Internet phát triển giao thức BOOTP để cấu hình cho máy trạm không có ổđĩa Và BOOTP được định nghĩa trong RFC 951 vào năm 1985 Là một phiên bản đi trướccủa DHCP nên BOOTP cũng có nhiều đặc điểm họat động tương tự như DHCP Cả haigiao thức này đều dựa trên cơ sở client-server và sử dụng port UDP 67, 68 Hai port nàyhiện vẫn được biết đến như là port BOOTP
2 Mục đích của BOOTP
BOOTP là một giao thức Internet có thể cung cấp thông tin cấu hình mạng cho cáctrạm làm việc không có đĩa cứng hay các trạm làm việc khác nếu cần thiết trong mạng cục
bộ Khi một trạm làm việc khởi động, nó gửi thông điệp BOOTP lên mạng Một máy dịch
vụ BOOTP nhận thông điệp này, lấy thông tin cấu hình cho máy tính được thiết kế đó, vàgửi lại nó cho máy tính Lưu ý là hệ thống khởi động không có địa chỉ IP khi gửi thôngđiệp BOOTP Thay vào đó địa chỉ phần cứng của NIC ( Network Interface Card) sẽ đượcđặt trong thông điệp và máy dịch vụ sẽ gửi câu trả lời của nó tới địa chỉ này
3 Đặc điểm giao thức 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óaviệ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/IPkhông được coi là quan trọng lắm mặc dù 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
Trang 4Như chúng ta đã biết, nếu không có một dạng nào đó cất giữ dữ liệu bên trongmáy, một thiết bị phải dựa 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ộtthiết bị như thế được bật lên , nó bị rơ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 saoliê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” haynó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ớ
- BOOTP vẫn còn dựa vào quan hệ client/server, nhưng nó được triển khai ở tầngcao hơn, dùng UDP cho việc vận chuyển BOOTP không tự động cấp phát địa chỉ IP chomột host Khi client yêu cầu một địa chỉ IP, BOOTP server tìm trong bảng đã được cấuhình trước xem có hàng nào tương ứng với địa chỉ MAC của client hay không.Nếu có thìđịa chỉ IP tương ứng sẽ được cung cấp cho client Điều này có nghĩa là địa chỉ MAC vàđịa chỉ IP tương ứng phải được cấu hình trước trên BOOTP server
- BOOTP hỗ trợ gửi thêm thông tin tới máy client ngoài địa chỉ IP.Thông tin thêmnày thường được gửi trong một thông điệp duy nhất
- BOOTP có thể sử dụng trong môi trường client và server ở trong những hệ thốngmạ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ộtserver
- BOOTP chỉ cấp 4 thông tin cơ bản của cấu hình IP:
Địa chỉ IP
Địa chỉ Gateway
Subnet mask
Địa chỉ DNS server
NHƯỢC ĐIỂM CỦA RARPS VÀ ƯU ĐIỂM CỦA BOOTP
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ể
Trang 5trực tiếp từ giao thức cấp thấp ARP (Address Resolution Protocol), một giao thức kếtbuộ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:
- Vì hoạt động bằng broadcast ở tầng data-link nên nó đòi hỏi phải có sự điều chỉnh chophù 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à nhược điểm lớn nhất của RARP là chỉ cấp địa chỉ IP và không cho thêm một thôngtin nào khác mà máy client rất cần
RARP rõ ràng là cung cấp thông tin không đầy đủ cho cấu hình TCP/IP cho cácmá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:
- Dù 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ủanhà 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ồmnhiều NetID khác nhau Điều này cho phép quản lý địa chỉ IP tập trung ở một server
Trang 6 NHƯỢC ĐIỂM CỦA BOOTP
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ácdùng để vận chuyển file như là TFTP (Trivial File Transfer Protocol)
4 Hoạt động của BOOTP
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
Về phương diện lịch sử, BOOTP được sử dụng cho các máy trạm không đĩ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 được địa chỉ IP, và cũng bởi giao thức này mà các cơ quan xí nghiệp dùng để trỉể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ệcsả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 bomạch chủ với những cạc mạng on-board, như thế cho phép máy boot trực tiếp qua cạc
Trang 7mạng Bootstrap Protocol - BOOTP là một internet protocol cho phép một diskless workstation (ám chỉ một workstation không có đĩa cứng) thi hành các công việc sau:
1 - tìm kiếm địa chỉ IP cho chính nó 2 - tìm IP của BOOTP server 3 - nạp một file khởi động từ server vào bộ nhớ 4 - và khởi động
Theo cách này, BOOTP cho phép một workstation khởi động mà không cần đĩa cứng hay đĩa mềm:
Một gói tin trao đổi duy nhất được thực hiện Timeout được sử dụng để truyền lạicho đến khi trả lời nhận được Các trường cùng một gói bố trí được sử dụng trong cả haihướng Cố định chiều dài tối đa lĩnh vực chiều dài hợp lý được sử dụng để đơn giản hóacấu trúc và định nghĩa phân tích cú pháp
Một "opcode" trường tồn với hai giá trị Các khách hàng chương trình phát sóngmột 'bootrequest' gói Server sau đó sẽ trả lời với một 'Bootreply' gói bootrequest chứacác khách hàng địa chỉ phần cứng và địa chỉ IP của nó, nếu biết
Các yêu cầu tùy chọn có thể chứa tên của máy chủ khách hàng muốn trả lời Điềunày là để khách hàng có thể khởi động từ một máy chủ cụ thể (ví dụ: nếu nhiều phiên bảncủa các bootfile cùng tồn tại hoặc nếu máy chủ được đặt trong một distantnet/domain).Các khách hàng không phải đối phó với tên / tên miền dịch vụ, thay vào đó chức năng nàyđược đẩy ra tới máy chủ BOOTP
Các yêu cầu tùy chọn có thể chứa các 'generic' tên tập tin được khởi động Đối với'Unix' mẫu hoặc 'ethertip'.Khi máy chủ gửi bootreply, nó thay thế lĩnh vực này với đầy đủtên đường dẫn của tập tin khởi động thích hợp Khi xác định tên này, các máy chủ có thểtham khảo cơ sở dữ liệu của mình So sánh các khách hàng địa chỉ và tên tập tin yêu cầu,với một tập tin khởi động đặc biệt tùy chỉnh cho khách hàng đó Nếu bootrequest tên tậptin là một null chuỗi, sau đó máy chủ trả về một tên tập tin cho biết lĩnh vực tập tin mặcđịnh để được nạp cho khách hàng đó
Trong trường hợp khách hàng không biết địa chỉ IP của họ, máy chủ cũng phải cómột cơ sở dữ liệu địa chỉ liên quan phần cứng để IP địa chỉ Địa chỉ IP của máy khách sau
đó được đặt vào một trường trong các bootreply
Trang 8 Một số cấu trúc liên kết mạng (chẳng hạn như Stanford's) có thể được như vậyrằng một cho vật lý cáp không có một máy chủ TFTP trực tiếp kèm theo nó (ví dụ như tất
cả các cổng và máy chủ trên một số cáp có thể không đĩa) Với sự hợp tác của các cổng
“láng giềng”, BOOTP có thể cho phép khách hàng để khởi động tắt của một vài máy chủbước nhảy xa, thông qua các cổng này Xem 'Booting Through Gateways' dưới đây Điềunày một phần của giao thức không yêu cầu đặc biệt hành động trên một phần của kháchhàng Thực hiện là tùy chọn và đòi hỏi một lượng nhỏ mã bổ sung tại các cổng và các máychủ
Định dạng gói
Tất cả các số hiển thị là số thập phân, trừ khi chỉ định khác Các BOOTP gói tin đượcđính kèm trong một chuẩn IP UDP datagram Đối với đơn giản nó là giả định rằng các góiBOOTP là không bao giờ bị phân mảnh Bất kỳ trường số hiển thị là đóng gói trong tiêuchuẩn mạng thứ tự byte, tức là bit bậc cao được gửi đầu tiên Trong tiêu đề IP củabootrequest một, khách hàng điền vào IP riêng của nó nguồn địa chỉ nếu biết, nếu không
số không Khi các địa chỉ máy không rõ, các địa chỉ IP đích sẽ là “broadcast address”255.255.255.255 Điều này có nghĩa là địa chỉ “broadcast on the local cable” (tôi khôngbiết số mạng của tôi)
II Giao thức cấp phát địa chỉ DHCP
1.Giới thiệu về DHCP
Lịch sử ra đời của DHCP
Như ta đã biết, BOOTP thông thường sử dụng một phương pháp tĩnh để xác định
địa chỉ IP nào gán cho thiết bị Khi máy client gửi thông điệp yêu cầu thì thông điệp đóbao gồm cả địa chỉ vật lý, rồi server tra địa chỉ đó trong bảng địa chỉ để xác định địa chỉ IPnào cho máy client.(BOOTP còn có thể sử dụng những phương pháp khác để xác lập mốiquan hệ giữa địa chỉ IP và địa chỉ vật lý, nhưng cho tương ứng tĩnh là phương phápthường sử dụng) Điều này có nghĩa là BOOTP làm việc tương đối tốt trong môi trường
Trang 9tĩnh, nơi mà những sự thay đổi về địa chỉ IP của các thiết bị không thường xảy ra Nhữngmạng như thế là thông thường trong thập niên 1980 và đầu thập niên 1990.
Sau một thời gian, nhiều mạng máy tính rời xa khỏi mô hình này vì một số lý do:
- Khi các máy tính ngày càng nhỏ và nhẹ hơn thì thật dễ cho chúng được di chuyển từmạng này đến mạng khác Ở mạng khác chúng lại cần một địa chỉ khác với Network IDcủa mạng mới
- Các máy tính xách tay như là Laptop hay palmtop có thể di chuyển từ mạng này đếnmạng khác nhiều lần trong ngày
- Một vấn đề lớn khác là sự cạn kiệt không gian địa chỉ IP Trong nhiều cơ quan , việc gánđịa chỉ IP tĩnh và dùng mãi cho mỗi máy để chúng kết nối vào mạng là một phí phạm
- Trong nhiều cơ quan, việc theo dõi những sự thay đổi địa chỉ cố định trở nên một côngviệc nản lòng BOOTP, với bảng ánh xạ địa chỉ tĩnh giữa địa chỉ vật lý và địa chỉ IP khôngthích hợp cho công việc này Nó cũng không có cách nào sử dụng lại các địa chỉ; mỗi lần
mà một địa chỉ đã cấp, máy tính sẽ giữ mãi địa chỉ đó, ngay cả khi nó không còn cần dùngđến nữa
Chính vì vậy, người ta cần một giao thức cấu hình TCP/IP mới để phục vụ cho
những mạng điện toán hiện đại hơn Tổ chức IETF đáp ứng điều này bằng giao thứcDHCP (Dynamic Host Configuration Protocol), lần đầu tiên được xuất bản trong RFC
1541, tháng 10 năm 1993 (Thực ra, chuẩn trong giao thức đó đã được nói đến trong RFC
1531 xuất bản trong cùng tháng nhưng vì có một vài lỗi nhỏ trong chuẩn này nên người tahiệu chỉnh và xuất bản RFC 1541)
DHCP (Dynamic Host Configuration Protocol) là một giao thức cho phép các nhàquản trị mạng có thể từ một trung tâm quản lý và tự động hóa quá trình gán các thông sốcấu hình IP cho một mạng máy tính Khi sử dụng giao thức của Internet (TCP/IP), mộtmáy tính muốn trao đổi với một máy tính khác, nó phải có một địa chỉ IP duy nhất Khikhông có DHCP, các nhà quản trị mạng tại từng máy tính phải tự tay mình gán (gõ trên
Trang 10bàn phím) địa chỉ IP (cho các máy client) Với DHCP, các nhà quản trị mạng có thể theodõi và phân phối các địa chỉ IP từ một trung tâm.
Dĩ nhiên, khác với BOOTP là một protocol còn kém cỏi DHCP đã hoạt động rấttốt và cũng đã được sử dụng rộng rãi nhiều nơi khác nhau Các yếu tố này cho thấy giaothức này đã tiếp nối BOOTP và được bổ sung thêm nhiều theo năm tháng
DHCP gồm hai thành phần chính:
1 Cơ chế cấp địa chỉ IP
2 Cơ chế cho phép máy client yêu cầu và server cung cấp thông tin cấu hình
DHCP thực hiện cả hai chức năng này cùng một cách như BOOTP nhưng có nhiều cải tiến hơn:
- DHCP là một cơ chế thay vì là một chính sách áp đặt DHCP phải cho phép người quản lý hệ thống kiểm soát toàn bộ các tham số về cấu hình Ví dụ như người quản lý có thể cho phép một số các quy tắc về sử dụng tài nguyên trong mạng cục bộ
- Máy khách không cần bất cứ thao tác cấu hình bằng tay nào Mỗi máy khách có khả năng tự phát hiện và cài đặt thông tin về cấu hình mạng mà không có sự can thiệp của người sử dụng
- Bất cứ thiết bị nào trong mạng cũng không cần đến sự can thiệp của người quản trị Người quản trị không cần thiết lập bất cứ thông số nào trên phía máy khách, kể cả các máy có địa chỉ cần cố định như là các server dịch vụ
- Không yêu cầu mỗi DHCP cho một phân đoạn mạng riêng rẽ hay một mạng con nào Để bảo đảm tính khả mở và kinh tế, DHCP phải được các bộ định tuyến chuyển tiếp hoặc thông qua sự can thiệp của các dịch vụ chuyển tiếp BOOTP
- Một máy khách DHCP cần phải chuẩn bị để có thể tiếp nhận nhiều câu trả lời khácnhau cho cùng một thông điệp yêu cầu Trong một số trường hợp, để tăng tính tin cậy và hiệu năng cho mạng người ta thiết kế nhiều máy chủ DHCP chồng lấp lên nhau
- DHCP phải có thể tồn tại đồng thời với các máy cấu hình tĩnh, không được quản lý
và những giao thức mạng khác nhau
Trang 11- DHCP phải cung cấp đầy đủ các dịch vụ dành cho các máy trạm BOOTP tồn tại trong mạng.
- Các mục tiêu mà DHCP cần đạt được khi tham gia vào quá trình cấp phát địa chỉ như sau:
Bảo đảm rằng bất cứ một địa chỉ nào trong mạng sẽ không được cấp phát quá một lần tại một thời điểm
Giữ lại được các thông tin cấu hình của các máy trạm khi mà các máy trạm này khởi động lại Mỗi máy trạm nên được cấp phát một tham số cấu hình duy nhất nếu như thể cho các lần yêu cầu
Giữ lại được thông tin cấu hình đã cấp phát cho máy trạm trong quá trình máy chủ khởi động lại và mỗi máy trạm DHCP nên có một tham số cấu hình duy nhấtbất chấp cơ chế cấp phát khởi động lại
Cung cấp cơ chế tự động đăng ký và cung cấp địa chỉ cho các thiết bị mới tham gia vào mạng để tránh quá trình người sử dụng phải cấu hình bằng tay
Cung cấp một địa chỉ cố định hoặc lâu dài cho một số người dùng có yêu cầu đặc biệt
2 Mục đích của DHCP.
Mục đích của DHCP là cung cấp thông số cấu hình IP một cách tự động cho cácmáy client để sử dụng trong một khoảng thời gian nhất định (còn gọi là thời gian rảnh ) vàkhỏi phải làm công việc bắt buộc khi quản lý một mạng máy tính lớn
3 Đặc điểm giao thức DHCP.
Giao thức cấu hình họat động (DHCP – Dynamic Host Configuration Protocol)làm việc theo chế độ client-server DHCP cho phép các DHCP client trong một mạng IPnhận cấu hình IP của mình từ một DHCP server Khi sử dụng DHCP thì công việc quản lýmạng IP sẽ ít hơn vì phần lớn cấu hình IP của client được lấy về từ server Giao thứcDHCP được mô tả trong RFC 2131
Một DHCP client có thể chạy hầu hết các hệ điều hành Windows, Netvell Netuare,Sun Solaris, Linux và MAC OS Client yêu cầu server DHCP cấp một địa chỉ cho nó.Server này quản lý việc cấp phát địa chỉ IP, sẽ gửi trả lời cấu hình IP cho client
Trang 12Một DHCP có thể phục vụ cho nhiều subnet khác nhau nhưng không phục vụ cho cấuhình router, switch và các server khác vì những thiết bị này cần phải có địa chỉ IP cố định.
- Server chạy DHCP thực hiện tiến trình xác định địa chỉ IP cấp cho client Client sửdụng địa chỉ được cấp từ server trong một khoảng thời gian nhất định do người quản trịmạng quy định Khi thời này hết hạn thì client phải yêu cầu cấp lại địa chỉ mới Client cóthể lấy địa chỉ mới hoặc vẫn có thể tiếp tục giữ địa chỉ cũ DHCP ánh xạ tự động giữa địachỉ MAC và giải địa chỉ IP tương ứng
- DHCP sử dụng giao thức UDP (User Datagram Protocol) làm giao thức vận
chuyển của nó Client gửi thông điệp cho server trên port 67 Server gửi thông điệp choclient trên port 68
DHCP cung cấp 3 cơ chế dùng để cấp phát địa chỉ IP cho client:
• Cấp phát tự động – DHCP tự động chọn một địa chỉ IP trong dải địa chỉ được cấuhình và cấp địa chỉ IP đó cố định, không thay đổi cho một client
• Cấp phát cố định – Địa chỉ IP của một client do người quản trị mạng quyếtđịnh DHCP chỉ truyền địa chỉ này cho client đó
• Cấp phát động – DHCP cấp và thu hồi lại một địa chỉ IP của client theo mộtkhoảng thời gian giới hạn
Trong phần này chúng ta tập trung vào cơ chế cấp phát động Một số thông số
cấu hình được liệt kê trong IETF RFC 1533 là: