MỞ ĐẦUNgày nay, cho dù là hệ thống mạng nhỏ, cỡ vừa và lớn thì mỗi máy tính đều sử dụng địa chỉ IP động được cấp phát từ dịch vụ DHCP server.. Khi đó các nhà quản trị mạng họ dùng ngay d
Trang 1MỞ ĐẦU
Ngày nay, cho dù là hệ thống mạng nhỏ, cỡ vừa và lớn thì mỗi máy tính đều sử dụng địa chỉ IP động được cấp phát từ dịch vụ DHCP server
Mạng nhỏ thì DHCP cấp IP động cho các máy trạm (làm việc trong môi trường Workgroup) nằm ở các thiết bị mạng (Switch, Modem, Router, AP ) Còn các mạng lớn (mô hình mạng sẽ phức tạp hơn), các máy trạm nằm trong môi
trường Domain Khi đó các nhà quản trị mạng họ dùng ngay dịch vụ DHCP server có sẵn trên Windows Server 2003, 2008 để cấp phát IP động cho các máy trạm trong hệ thống mạng thay vì sử dụng DHCP server tích hợp sẵn trong các thiết bị mạng phần cứng Vậy DHCP là gì? Nó có ưu điểm gì?
Dynamic Host Configuration Protocol (DHCP - giao thức cấu hình động máy chủ) là một giao thức cấu hình tự động địa chỉ IP Máy tính được cấu hình một cách tự động vì thế sẽ giảm việc can thiệp vào hệ thống mạng Nó cung cấp một database trung tâm để theo dõi tất cả các máy tính trong hệ thống mạng Mục đích quan trọng nhất là tránh trường hợp hai máy tính khác nhau lại có cùng địa chỉ IP
Nếu không có DHCP, các máy có thể cấu hình IP thủ công Ngoài việc cung cấp địa chỉ IP, DHCP còn cung cấp thông tin cấu hình khác, cụ thể như DNS Hiện nay DHCP có 2 version: cho IPv4 và IPv6
Nói một cách tổng quan hơn DHCP là dich vụ mang đến cho chúng ta nhiều lợi điểm trong công tác quản trị và duy trì một mạng TCP/IP như:
+ Tập chung quản trị thông tin về cấu hình IP
+ Cấu hình động các máy
+ Cấu hình IP cho các máy một cách liền mạch
+ Sự linh hoạt
+ Khả năng mở rộng
Nhiệm vụ của từng thành viên trong nhóm:
1 Nguyễn Xuân Toàn 09520312
- Xây dựng DHCP Server
- Xây dựng DHCP Server
3 Phạm Xuân Mạnh 09520422
- Xây dựng DHCP Client và thiết kế giao diện
Trang 2MỤC LỤC
Trang
Mở đầu 1
Chương 1: Khảo sát bài toán 4
1.1.DHCP là gì ? 4
1.2.DHCP làm việc như thế nào ? 4
1.3.Lợi ích của việc sử dụng DHCP 4
1.3.1 Quản lý TCP/IP tập trung 5
1.3.2 Giảm gánh nặng cho các nhà quản trị hệ thống 5
1.3.3 Giúp hệ thống mạng luôn được duy trì ổn định 5
1.3.4 Linh hoạt và khả năng mở rộng 5
Chương 2: Cơ sở lý thuyết 6
2.1 Địa chỉ IP động 6
2.1.1 Địa chỉ IP động đặc biệt là gì ? 6
2.1.2 Cách thức cấp phát địa chỉ IP động 6
2.2 Cấu hình phạm vi cấp phát của dịch vụ DHCP 6
2.2.1 Phạm vi cấp phát DHCP là gì ? 6
2.2.2 Tại sao phải sử dụng phạm vi cấp phát DHCP ? 6
2.3 Cấu hình địa chỉ DHCP giành sẵn (Reservations) và các tùy chọn của DHCP 6
2.3.1 Địa chỉ DHCP giành sẵn là gì ? 6
2.3.2 Các thông tin của một địa chỉ DHCP giành sẵn 6
2.3.3 Tùy chọn DHCP là gì ? 6
2.3.4 Tại sao phải sử dụng tùy chọn DHCP ? 7
2.3.5 Một số tùy chọn chung của DHCP 7
2.4 Cấu hình DHCP - DHCP Relay Agent 7
2.4.1 DHCP relay agent là gì ? 7
2.4.2 Tại sao phải sử dụng DHCP relay agent ? 7
2.5 Phương thức hoạt động của dịch vụ DHCP 7
Chương 3: Phân tích thiết kế chương trình 11
3.1 Mô hình thực nghiệm của chương trình mô phỏng chương trình DHCP 11
3.2 Thiết kế chương trình về mặt chức năng 12
3.3 Thiết kế về mặt lập trình
Trang 3Chương 4: Kết luận 17
4.1 Các chức năng đã đạt được của chương trình 17
4.2 Các vấn đề còn tồn tại 17
Phụ lục I: Các hình ảnh sử dụng trong bài 18
Phụ lục II: Tài liệu tham khảo 19
Trang 4Chương I: KHẢO SÁT BÀI TOÁN 1.1 DHCP là gì?
DHCP là viết tắt của Dynamic Host Configuration Protocol, là giao thức Cấu hình Host Động được thiết kế làm giảm thời gian chỉnh cấu hình cho mạng TCP/IP bằng cách tự động gán các địa chỉ IP cho khách hàng khi họ vào mạng Dich vụ DHCP là một thuận lới rất lớn đối với người điều hành mạng Nó làm yên tâm về các vấn đề cố hữu phát sinh khi phải khai báo cấu hình thủ công Nó bao gồm DHCP Server và DHCP Client
Hình 1.1 Mô hình DHCP
DHCP server là một máy chủ có cài đặt dịch vụ DHCP server Nó
có chức năng quản lý sự cấp phát địa chỉ IP động và các dữ liệu cấu hình TCP/IP Ngoài ra còn có nhiệm vụ trả lời khi DHCP Client có yêu cầu về hợp đồng thuê bao
DHCP client là dịch vụ nằm cục bộ trên máy tính (kể cả máy trạm
và server) Nó dùng để đăng ký, cập nhật thông tin về địa chỉ IP và các bản ghi DNS cho chính bản thân nó DHCP client sẽ gửi yêu cầu đến DHCP server khi nó cần đến 1 địa chỉ IP và các tham số TCP/IP cần thiết để làm việc trong mạng nội bộ và trên Internet
1.2 DHCP làm việc như thế nào?
DHCP tự động quản lý các địa chỉ IP và loại bỏ được các lỗi có thể làm mất liên lạc Nó tự động gán lại các địa chỉ chưa được sử dụng và cho thuê địa chỉ trong một khoảng thời gian
Trình tự thuê Địa chỉ IP DHCP là một giao thức Internet có nguồn gốc ở BOOTP (bootstrap protocol), được dùng để cấu hình các trạm không đĩa DHCP khai thác ưu điểm của giao thức truyền tin và các kỹ thuật khai báo cấu hình được định nghĩa trong BOOTP, trong đó có khả năng gán địa chỉ Sự tương tự này cũng cho phép các bộ định tuyến hiện nay chuyển tiếp các thông điệp BOOTP giữa các mạng con cũng có thể chuyển tiếp các thông điệp DHCP Vì thế, máy chủ DHCP có thể đánh địa chỉ IP cho nhiều mạng con
1.3 Lợi ích của việc sử dụng DHCP
Trang 51.3.1 Quản lý TCP/IP tập trung
Thay vì phải quản lý địa chỉ IP và các tham số TCP/IP khác vào một cuốn sổ nào đó (đây là việc mà quản trị mạng phải làm khi cấu hình TCP/IP bằng tay) thì DHCP server sẽ quản lý tập trung trên giao diện của nó Giúp các nhà quản trị vừa dễ quản lý, cấu hình, khắc phục khi có lỗi xảy ra trên các máy trạm
1.3.2 Giảm gánh nặng cho các nhà quản trị hệ thống
Thứ nhất, trước đây các nhà quản trị mạng thường phải đánh cấu hình IP bằng tay (gọi là IP tĩnh) nhưng nay nhờ có DHCP server nó
sẽ cấp IP một cách tự động cho các máy trạm Nhất là trong môi trường mạng lớn thì sự cần thiết và hữu ích của dịch vụ mạng này mới thấy rõ ràng nhất
Thứ hai, trước đây với kiểu cấu hình bằng tay thì người dùng họ
có thể thay đổi IP Có người thay đổi lung tung DNS server sau đó quên không nhớ IP của DNS server là gì để đặt lại cho đúng lại với quản trị mạng, có người đặt IP làm trùng với IP của người khác, người khác lại đặt IP trùng với Defaul Gateway làm cho quản trị mạng khốn khổ vì phải chỉnh sửa Nhưng vấn đề này không có ở IP động Chỉ có người quản trị DHCP server họ mới có quyền làm những việc trên
1.3.3 Giúp hệ thống mạng luôn được duy trì ổn định
Địa chỉ IP cấp phát động cho các máy trạm lấy từ dải IP cấu hình sẵn trên DHCP server Các tham số (DG, DNS server ) cũng cấp cho tất cả các máy trạm là chính xác Sự trùng lặp IP không bao giờ xảy ra Các máy trạm luôn luôn có một cấu hình TCP/IP chuẩn Làm cho hệ thống hoạt động liên tục, vừa giảm gánh nặng cho người quản trị vừa tăng hiệu quả làm việc cho user nói riêng và doanh nghiệp nói chung
1.3.4 Linh hoạt và khả năng mở rộng
Người quản trị có thể thay đổi cấu hình IP một cách dễ dàng khi
cơ sở hạ tầng mạng thay đổi Do đó làm tăng sự linh hoạt cho người quản trị mạng Ngoài ra DHCP phù hợp từ mạng nhỏ đến mạng lớn
Nó có thể phục vụ 10 máy khách cho đến hàng ngàn máy khách
Trang 6Chương II: CƠ SỞ LÝ THUYẾT
2.1 Địa chỉ IP động
2.1.1 Địa chỉ IP động đặc biệt là gì ?
Địa chỉ IP động đặc biệt (Automatic private IP Addressing) hay
APIPA là một dặc trưng của hệ điều hành Microsoft windows cho phép gán một dải địa chỉ IP tự động trên các máy Client dải địa chỉ này có giá trị trong khoảng từ: 169.254.0.0 đến 169.254.255.255 khi mà dịch vụ DHCP server không được phép cấp phát IP cho các máy Client
2.1.2 Cách thức cấp phát địa chỉ IP động
Dịch vụ DHCP sẽ thiết lập Hợp đồng thuê địa chỉ IP và ra gạn hợp đồng cho thuê địa chỉ IP nhằm cấp phát địa chỉ IP động cho các máy Client
2.2 Cấu hình phạm vi cấp phát của dịch vụ DHCP
2.2.1 Phạm vi cấp phát DHCP là gì ?
Phạm vi cấp phát là dải địa chỉ IP hợp lệ được dùng để thuê hoặc gán cho các máy Client trên cùng một Subnet Ta cấu hình một pham vi cấp phát trên DHCP Server để xác định dải địa chỉ IP mà các Server có thể gán cho các máy Client.
2.2.2 Tại sao phải sử dụng phạm vi cấp phát DHCP ?
Phạm vi cấp phát sẽ xác định xem những địa chỉ IP nào sẽ được phép cấp phát cho các máy client
2.3 Cấu hình địa chỉ DHCP giành sẵn (Reservations) và các tùy chọn của DHCP
2.3.1 Địa chỉ DHCP giành sẵn là gì ?
Địa chỉ IP dành sẵn là một dải địa chỉ IP được gán cố định Nó là dải địa chỉ IP được tạo ra trong một phạm vi (scope) dành riêng, dải địa chỉ
IP dành riêng này được dùng để gàn cho các máy Client (Chúng là các địa chỉ IP tĩnh trong mạng được gán cho các máy client)
2.3.2 Các thông tin của một địa chỉ DHCP giành sẵn
Reservation Name :Là tên được gán bởi nhà quản trị
IP Address : Là phạm vi dải địa chỉ IP được gán cho các máy Client
MAC Address: Là địa chỉ MAC của mỗi thiết bị mà bạn muốn dành sẵn một địa chỉ IP cho nó
Description: Những mô tả do nhà quản trị đưa ra
Supported Type:Kiểu hỗ trợ này có thế là: DHCP dành sẵn, BOOTP dành sẵn, hoặc cả hai
2.3.3 Tùy chọn DHCP là gì ?
Các tùy chọn DHCP là các tham số cấu hình máy khách bổ sung mà một máy chủ DHCP có thể gán khi phục vụ các máy khách DHCP
2.3.4 Tại sao phải sử dụng tùy chọn DHCP ?
Các tùy chọn DHCP được cấu hình sử dụng bảng điều khiển DHCP
và có thể được áp dụng cho nhiều phạm vi và sự dành sẵn.Một tùy chọn
Trang 7DHCP sẽ làm tăng thêm các chức năng cho hệ thống mạng Các tùy chọn DHCP cho phép bạn thêm dữ liệu cấu hình IP các client
2.3.5 Một số tùy chọn chung của DHCP
Router (Default Gateway): Địa chỉ của bất cứ cổng ra mặc định (default gateway) hay bộ định tuyến (router) nào
DNS Domain Name: Tên miền DNS xác định miền mà máy khách sẽ phụ thuộc Máy khách có thể sử dụng thông tin này dể cập nhật thông tin lên máy chủ DNS để các máy tính khác có thể tìm thấy nó
DNS Servers: Địa chỉ của bất cứ máy chủ DNS nào mà máy khách có thể sử dụng trong quá trình truyền thông
WINS Servers: Địa chỉ của bất cứ máy chủ WINS nào mà máy khách có thể sử dụng trong quá trình truyền thông
WINS Node Type: Là một kiểu phương thức phân giải tên
NetBIOS mà các máy khách (Client) có thế sử dụng
2.4 Cấu hình DHCP - DHCP Relay Agent
2.4.1 DHCP relay agent là gì ?
DHCP relay agent là một máy tính hoặc một Router được cấu hình để lắng nghe các thông điệp quảng bá DHCP/BOOTP từ DHCP client, chuyển tiếp các thông điệp quảng bá từ một giao tiếp này đến giao tiếp khác và hướng chúng tới một hoặc nhiều máy chủ DHCP cụ thể
2.4.2 Tại sao phải sử dụng DHCP relay agent ?
DHCP clients sử dụng một địa chỉ quảng bá (broadcast) để bảo mật việc thuê một địa chỉ IP từ DFHCP server Một Router thong thường không thể thông qua một broadcast trừ khi nó được cấu hình riêng biệt
Tiết kiệm được số địa chỉ IP thật ( Public IP)
Phù hợp với các máy tính thường xuyên di chuyển giữa các lớp mạng
Kết hợp với hệ thống mạng không dây ( Wireless) cung cấp tại các điểm Hotspot như: nhà ga, sân bay, khách sạn, trường học
Thuận tiện cho việc bổ xung các thiết bị mới vào lớp mạng
2.5 Phương thức hoạt động của dịch vụ DHCP
Bước 1: Khi máy Client khởi động, máy sẽ gửi broadcast gói tin DHCP
DISCOVER, yêu cầu một Server phục vụ mình Gói tin này cũng chứa địa chỉ MAC của client
Trang 8Hình 2.5.1 Mô phỏng quá trình Client gửi DHCP Discover cho Server
Nếu client không liên lạc được với DHCP Server thì sau 4 lần truy vấn không thành công nó sẽ tự động phát sinh ra 1 địa chỉ IP riêng cho chính mình nằm trong dãy 169.254.0.0 đến 169.254.255.255 dùng để liên lạc tạm thời Và client vẫn duy trì việc phát tín hiệu Broad cast sau mỗi 5 phút để xin cấp IP từ DHCP Server
Bước 2: Các máy Server trên mạng khi nhận được yêu cầu đó Nếu còn
khả năng cung cấp địa chỉ IP, đều gửi lại cho máy Client một gói tin DHCP OFFER, đề nghị cho thuê một địa chỉ IP trong một khoảng thời gian nhất định, kèm theo là một Subnet Mask và địa chỉ của Server
Hình 2.5.2 Mô phỏng quá trình Server gửi lại DHCPOFFER cho client
Trang 9Server sẽ không cấp phát đia chỉ IP vừa đề nghị cho client thuê trong suốt thời gian thương thuyết
Bươc 3:Máy Client sẽ lựa chọn một trong những lời đề nghị
(DHCPOFFER)
Hình 2.5.3 Mô phỏng quá trình Client lựa chọn Server
và gửi broadcast lại gói tin DHCPREQUEST và chấp nhận lời đề nghị đó
Hình 2.5.4 Mô phỏng quá trình Client gửi DHCPREQUEST cho Server
Điều này cho phép các lời đề nghị không được chấp nhận sẽ được các Server rút lại và dùng để cấp phát cho các Client khác
Bước 4: Máy Server được Client chấp nhận sẽ gửi ngược lại một gói tin
DHCP ACK như một lời xác nhận, cho biết địa chỉ IP đó, Subnet Mask đó
và thời hạn cho sử dụng đó sẽ chính thức được áp dụng
Trang 10Hình 2.5.5 Mô phỏng quá trình Server gửi DHCPACK cho client
Ngoài ra server còn gửi kèm những thông tin bổ sung như địa chỉ Gateway mặc định, địa chỉ DNS Server
Hình 2.5.6 Mô phỏng quá trình Client nhận được IP mới từ Server
(Nhưng cũng có thể Server sẽ gửi gói tin DHCP NAK (Negative
Acknowledgment) nếu lời đề nghị lúc đầu không chính xác nữa hoặc thông
Trang 11số IP đó đã có máy tính khác sử dụng Và lúc này Client lại phải bắt đầu lại quy trình xin cấp IP từ đầu)
CHƯƠNG III: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH
3.1 Mô hình thực nghiệm của chương trình mô phỏng chương trình
DHCP
- Hình dưới đây mô tả 3 client kết nối tới DHCP server
Hình 3.1.1 Mô hình thực nghiệm của chương trình mô phỏng
Client 1
Server DHCP
Trang 123.2 Thiết kế chương trình về mặt chức năng
Hình 3.2.1 Mô tả các chức năng của DHCP Client
Hình 3.2.2 Mô tả các chức năng của DHCP Server
DHCP Client
1 Gửi broadcast
gói tin
DHCPDISCOVER
tới Server Gói tin
này cũng chứa địa
chỉ MAC của
client
3 Nhận gói tin DHCP ACK từ Server, chính thức dùng IP, Subnet Mac… do Server đó cung cấp
2 Lựa chọn một trong những lời đề nghị (DHCP OFFER) và gửi broadcast lại gói tin DHCPREQUEST cho biết nó chấp nhận DHCPOFFER nào
DHCP Server
1 Sau khi nhận được gói tin
DHCP DISCOVER từ Client sẽ
gửi một gói tin DHCP OFFER
đến Client, đề nghị cho thuê một
địa chỉ IP trong một khoảng thời
gian nhất định, kèm theo là một
Subnet Mask và địa chỉ của
Server
2 Máy Server được Client chấp nhận sẽ gửi ngược lại một gói tin DHCP ACK như một lời xác nhận, cho biết địa chỉ IP đó, Subnet Mask đó và thời hạn cho sử dụng
đó sẽ chính thức được áp dụng Ngoài ra server còn gửi kèm những thông tin bổ sung như địa chỉ Gateway mặc định, địa chỉ DNS Server
Trang 133.3 Thiết kế về mặt lập trình
- Đầu tiên bên Server DHCP sẽ bắt đầu lắng nghe khi click vào button Listen:
private void btnlisten_Click( object sender, EventArgs e) {
DHCPServer mainServer = new
DHCPServer ( IPAddress Any);
DHCPServer StatusChanged += new
StatusChangedEventHandler (mainServer_StatusChanged);
mainServer.StartListening();
btnlisten.Text = "Listening" ; lblStatus.Text = "Bắt đầu lắng nghe kết nối từ phía Client " ;
}
- Sau đó bên Client DHCP sẽ kết nối tới Server DHCP để bắt đầu gửi và nhận dữ liệu khi click vào button Connect
private void btnConnect_Click( object sender, EventArgs e) {
if (Connected == false ) {
InitializeConnection();
} else
{ CloseConnection( "Disconnected at user's request." );
} }
- Nó sẽ gọi hàm InitializeConnection() để kết nối tới Server, bắt đầu nhận thông tin, gửi Hostname và Mac Address đến cho Server
private void InitializeConnection() {
tcpServer = new TcpClient ();
tcpServer.Connect( IPAddress Parse( "192.168.1.33" ), 8080); Connected = true ;
btnConnect.Text = "Disconnect" ; swSender = new
StreamWriter (tcpServer.GetStream());
NetworkInterface [] nics =
NetworkInterface GetAllNetworkInterfaces();
PhysicalAddress mac = nics[0].GetPhysicalAddress();
UserName = Dns GetHostName();
swSender.WriteLine(UserName);
swSender.WriteLine(mac);
swSender.Flush();
ReceiveMessages();
}
- Server khởi tạo hàm DHCPDISCOVER để chứa thông tin từ Client:
public static void DHCPdiscover( TcpClient tcpUser, string strUsername,
string Message)
{