DHCP (Dynamic Host Configuration Protocol hay Giao thức cấu hình host động) là một giao thức được sử dụng để cung cấp quản lý nhanh chóng, tự động và tập trung cho việc phân phối địa chỉ IP trong mạng. DHCP cũng được sử dụng để cấu hình đúng subnet mask, cổng mặc định và thông tin về DNS server trên thiết bị.
Cách thức hoạt động của DHCP
DHCP server được sử dụng để phát hành các địa chỉ IP duy nhất và tự động định cấu hình các thông tin mạng khác. Trong hầu hết các gia đình và các doanh nghiệp nhỏ, router hoạt động như DHCP server. Trong các mạng lớn, một máy tính duy nhất có thể hoạt động như một DHCP server.
Nói tóm lại, quá trình này diễn ra như sau: Một thiết bị (client) yêu cầu một địa chỉ IP từ một router (máy chủ), sau đó host sẽ gán một địa chỉ IP có sẵn để cho phép client giao tiếp với mạng.
Khi một thiết bị đã được bật và kết nối với mạng có DHCP server, nó sẽ gửi một yêu cầu đến máy chủ này, được gọi là yêu cầu DHCPDISCOVER. Sau khi gói tin DISCOVER đến DHCP server, máy chủ sẽ cố gắng giữ một địa chỉ IP mà thiết bị có thể sử dụng, và sau đó cung cấp cho client địa chỉ này với một gói DHCPOFFER.
Sau khi cung cấp địa chỉ IP đã chọn, thiết bị đáp ứng với DHCP server bằng một gói tin DHCPREQUEST để chấp nhận nó, sau đó máy chủ gửi ACK được sử dụng để xác nhận thiết bị có địa chỉ IP cụ thể đó và để xác định khoảng thời gian mà thiết bị có thể sử dụng địa chỉ trước khi lấy địa chỉ mới. Nếu máy chủ quyết định rằng thiết bị không có địa chỉ IP, nó sẽ gửi một NACK. Tất nhiên điều này xảy ra rất nhanh và bạn không cần biết bất kỳ loại kỹ thuật nào được sử dụng để lấy địa chỉ IP từ DHCP server.
Các thành phần của DHCP
Khi làm việc với DHCP, bạn cần hiểu tất cả thành phần của nó. Dưới đây là danh sách các thành phần của DHCP.
- DHCP server: Một thiết bị mạng chạy dịch vụ DHCP chứa địa chỉ IP và thông tin cấu hình liên quan. Đây thường là máy chủ hoặc router nhưng có thể là bất cứ thứ gì hoạt động như máy chủ chẳng hạn như thiết bị SD-WAN.
- DHCP client: Thiết bị nhận thông tin cấu hình từ máy chủ DHCP. Đây có thể máy tính, thiết bị di động, thiết bị IoT (Internet of Things) hoặc bất cứ thiết bị gì khác yêu cầu kết nối mạng. Hầu hết các thiết bị này được cấu hình để nhận thông tin DHCP theo mặc định.
- IP address pool: Dãy địa chỉ có sẵn cho client DHCP. Những địa chỉ này thường được truyền tuần tự từ thấp nhất đến cao nhất.
- Subnet: Mạng IP có thể được phân thành các phân đoạn được gọi là subnet (mạng con). Mạng con giúp mạng được quản lý dễ dàng hơn.
- Lease: Khoảng thời gian client DHCP giữ thông tin địa chỉ IP. Khi khoảng thời gian này hết hạn, client phải làm mới nó.
- DHCP relay: Router hoặc máy chủ nghe tin nhắn được phát trên mạng đó và sau đó chuyển chúng đến một máy chủ được cấu hình. Máy chủ này sau đó phản hồi lại relay agent để truyền chúng đến client. Nó được sử dụng để tập trung máy chủ DHCP thay vì để máy chủ trên mỗi mạng con.
Ưu và nhược điểm khi sử dụng DHCP
Máy tính hoặc bất kỳ thiết bị nào khác kết nối với mạng (cục bộ hoặc Internet), phải được định cấu hình đúng cách để giao tiếp trên mạng đó. Vì DHCP cho phép tự động cấu hình, được sử dụng trong hầu hết mọi thiết bị kết nối với mạng bao gồm máy tính, thiết bị chuyển mạch, điện thoại thông minh, máy chơi game, v.v…
Do gán địa chỉ IP động nên rất ít khi xảy ra trường hợp hai thiết bị có cùng một địa chỉ IP, điều mà rất dễ xảy ra khi gán địa chỉ IP tĩnh thủ công.
Sử dụng DHCP cũng khiến việc quản lý mạng trở nên dễ dàng hơn. Từ quan điểm quản trị, mọi thiết bị trên mạng đều có thể nhận địa chỉ IP mà không cần cài đặt gì ngoài cài đặt mạng mặc định, được thiết lập để tự động lấy địa chỉ. Biện pháp khác thay thế duy nhất là gán địa chỉ theo cách thủ công cho mỗi thiết bị trên mạng.
Bởi vì các thiết bị này có thể tự động nhận địa chỉ IP, chúng có thể di chuyển tự do từ mạng này sang mạng khác (giả sử chúng đều được thiết lập với DHCP) và nhận địa chỉ IP tự động, điều này rất hữu ích với các thiết bị di động.
Trong hầu hết các trường hợp, khi một thiết bị có địa chỉ IP được gán bởi DHCP server, địa chỉ IP đó sẽ thay đổi mỗi khi thiết bị tham gia mạng. Nếu địa chỉ IP được gán thủ công, điều đó có nghĩa là quản trị không chỉ đưa ra một địa chỉ cụ thể cho mỗi client mới, mà những địa chỉ hiện có đã được gán phải được bỏ gán thủ công để các thiết bị khác sử dụng cùng một địa chỉ đó. Điều này không chỉ tốn thời gian, mà cấu hình thủ công từng thiết bị cũng khiến việc xảy ra lỗi do con người tạo ra cao hơn.
Mặc dù việc sử dụng DHCP có rất nhiều lợi thế nhưng nó cũng có một số nhược điểm. Không nên sử dụng địa chỉ IP động cho các thiết bị cố định và cần truy cập liên tục, như máy in và máy chủ file. Mặc dù các thiết bị như vậy được sử dụng chủ yếu trong môi trường văn phòng, nhưng không thiết thực khi gán chúng với địa chỉ IP luôn thay đổi. Ví dụ: nếu máy in mạng có địa chỉ IP thay đổi thì mọi máy tính kết nối với máy in đó sẽ phải thường xuyên cập nhật cài đặt để máy tính của họ hiểu cách liên hệ với máy in.
Kiểu thiết lập này là cực kỳ không cần thiết và có thể tránh được bằng cách không sử dụng DHCP cho các loại thiết bị này và thay vào đó gán một địa chỉ IP tĩnh cho chúng. Cách tương tự cũng nên áp dụng khi bạn cần truy cập từ xa vào một máy tính trong mạng gia đình thường xuyên. Nếu kích hoạt DHCP, máy tính này sẽ nhận được địa chỉ IP mới ở những thời điểm khác nhau. Điều đó có nghĩa là máy tính đã ghi lại những gì nó có và sẽ không chính xác trong một thời gian dài. Nếu bạn sử dụng phần mềm truy cập từ xa sử dụng địa chỉ IP để truy cập, bạn cần phải sử dụng địa chỉ IP tĩnh cho thiết bị đó.
Tìm hiểu về DHCP trên mạng gia đình
DHCP (Dynamic Host Configuration Protocol) cung cấp cơ chế tự động phân bổ địa chỉ IP (IPv4) cho các thiết bị mạng, ví dụ: Máy tính.
DHCP bao gồm hai thành phần:
- DHCP client
- DHCP server
DHCP client
Tất cả các hệ điều hành hiện đại đều được trang bị DHCP client và theo mặc định, chúng đều được cấu hình để sử dụng DHCP. DHCP client chịu trách nhiệm yêu cầu một địa chỉ và gán địa chỉ đó cho máy tính.
Cấu hình client
Nếu truy cập trang cài đặt adapter của mình, bạn sẽ thấy một trang tương tự như trang bên dưới:
Truy cập trang cài đặt adapter
Bạn có thể thấy rằng DHCP client được cấu hình để lấy địa chỉ IP và cả địa chỉ DNS server.
DHCP server
DHCP server chịu trách nhiệm cấp phát địa chỉ IP và các thông tin khác cho những client yêu cầu.
DHCP server được cấu hình với một loạt địa chỉ IP mà nó có thể gán và cũng với các cài đặt khác như DNS server, địa chỉ cổng mặc định, v.v…
Địa chỉ IP từ DHCP server thường được cho thuê và phải được gia hạn định kỳ.
Quá trình gia hạn này diễn ra trong nền và không yêu cầu bất kỳ sự can thiệp nào của người dùng.
Vị trí DHCP server
Trên mạng gia đình, router hoặc hub của ISP thường cung cấp DHCP server.
Tuy nhiên, bạn có thể sử dụng một máy tính khác, ví dụ: Raspberry Pi, để cung cấp DHCP, nhưng việc này thường không được thực hiện.
Nếu bạn đang nghĩ đến việc sử dụng một thiết bị khác làm DHCP server, điều quan trọng là phải hiểu rằng, bạn chỉ có thể có một DHCP server trên mạng.
Cấu hình DHCP server
Trên mạng gia đình thường không có gì để cấu hình.
Nếu truy cập trang admin trên router gia đình, bạn sẽ thấy các tùy chọn cấu hình tương tự như ảnh chụp màn hình bên dưới.
Truy cập trang admin trên router gia đình
Có các tùy chọn hạn chế trên hầu hết những router gia đình do ISP cung cấp và rất hiếm khi cần thay đổi chúng.
Bạn nên lưu ý rằng phạm vi cấp phát trên router tại nhà trong ví dụ là 192.168.1.64 – 192.168.1.253.
Bản thân router gia đình sử dụng địa chỉ 192.168.1.254 và vì vậy nó để lại cho địa chỉ 192.168.1.1 -192.168.1.63 để cấp phát cho các client tĩnh nếu cần.
Chỉ gán địa chỉ tĩnh trong phạm vi này sẽ giúp tránh xung đột địa chỉ IP.
Bạn cũng nên bắt đầu tại địa chỉ 192.168.1.1 hoặc 192.168.1.2 và hoạt động trong trường hợp bạn cần tăng phạm vi địa chỉ vào một ngày sau đó.
Lưu ý: Một số mạng sử dụng 192.168.1.1 cho địa chỉ cổng mặc định.
Gán địa chỉ tĩnh bằng DHCP
Mặc dù bạn có thể chỉ định thủ công một địa chỉ tĩnh cho client, nhưng đó không thực sự là cách tốt nhất vì nó rất không linh hoạt.
Một cách tốt hơn là sử dụng DHCP server để gán địa chỉ thường xuyên và hầu như tất cả các router gia đình đều có khả năng này.
Đây thường được gọi là đặt trước địa chỉ và ảnh chụp màn hình bên dưới hiển thị cài đặt router TP-Link trong ví dụ.
Cài đặt router TP-Link ví dụ
Nó hoạt động bằng cách sử dụng địa chỉ MAC của client đã được cố định để sửa địa chỉ IP cho client đó.
Khắc phục sự cố DHCP
Bạn sẽ cần phải xem xét các client và router.
Công cụ khắc phục sự cố client chính là công cụ dòng lệnh ipconfig (Windows) và ifconfig (Linux).
Công cụ này sẽ hiển thị cho bạn các địa chỉ IP được gán cho thiết bị.
Những gì bạn đang tìm kiếm khi sử dụng công cụ này là địa chỉ IP, địa chỉ Gateway và địa chỉ máy chủ DNS hợp lệ trên máy tính của bạn.
Các địa chỉ IP được gán cho thiết bị
Nếu client có địa chỉ IP bắt đầu bằng 169 hoặc địa chỉ là 0.0.0.0 thì đã xảy ra lỗi và không thể định vị DHCP server.
Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng client được cấu hình cho DHCP và địa chỉ IP đã được cho thuê.
Kiểm tra router – Bạn cũng sẽ cần đăng nhập vào router tại nhà của mình và kiểm tra xem DHCP đã được bật chưa.
Nếu bạn có nhiều client trên mạng thì bạn cũng có thể cần điều chỉnh phạm vi địa chỉ.
Nếu bạn điều chỉnh phạm vi địa chỉ thì hãy đảm bảo rằng bạn chưa chỉ định các địa chỉ tĩnh trong phạm vi này.
Thông tin thêm về DHCP
Máy chủ DHCP xác định phạm vi của các địa chỉ IP mà nó sử dụng để phân phối các thiết bị có địa chỉ. Nhóm địa chỉ này là cách duy nhất mà một thiết bị có thể nhận được kết nối mạng hợp lệ.
Đây là một lý do nữa khiến DHCP rất hữu ích, vì nó cho phép nhiều thiết bị kết nối với mạng trong một khoảng thời gian mà không cần một lượng lớn các địa chỉ có sẵn. Ví dụ, ngay cả khi chỉ có 20 địa chỉ được DHCP server xác định, 30, 50, hoặc thậm chí 200 (hoặc nhiều hơn) thiết bị đều có thể kết nối với mạng, miễn là không để nhiều hơn 20 thiết bị sử dụng một trong số địa chỉ IP có sẵn này cùng một lúc.
Bởi vì DHCP gán địa chỉ IP trong một khoảng thời gian cụ thể (thời gian thuê), bằng cách sử dụng các lệnh như ipconfig để tìm địa chỉ IP của máy tính của bạn sẽ mang lại kết quả khác nhau theo thời gian.
Mặc dù DHCP được sử dụng để cung cấp các địa chỉ IP động cho các client của nó nhưng không có nghĩa là không thể dùng các địa chỉ IP tĩnh cùng một lúc. Nhiều thiết bị khác nhau nhận các địa chỉ động và cũng có thể nhận địa chỉ IP theo cách thủ công và tồn tại trên cùng một mạng.
Ngay cả khi nhà cung cấp dịch vụ sử dụng DHCP để gán địa chỉ IP, bạn vẫn có thể biết điều này khi xác định địa chỉ IP công cộng. Và các địa chỉ này sẽ thay đổi theo thời gian trừ khi mạng gia đình bạn sử dụng địa chỉ IP tĩnh.
Trong Windows, APIPA chỉ định một địa chỉ IP tạm thời đặc biệt khi máy chủ DHCP không cung cấp địa chỉ cho một thiết bị và sử dụng địa chỉ này cho đến khi nó có thể có nhận được một địa chỉ hoạt động.
Rủi ro bảo mật của DHCP
Giao thức DHCP không yêu cầu xác thực để bất kỳ client nào cũng có thể tham gia mạng một cách nhanh chóng. Do đó, nó có nhiều vấn đề về bảo mật như máy chủ trái phép đưa thông tin xấu cho client, client trái phép được cấp địa chỉ IP, v.v…
Bởi vì client không có cách nào để xác thực tính hợp lệ của máy chủ DHCP, do đó máy chủ có thể cung cấp thông tin mạng không chính xác. Điều này có thể gây ra các cuộc tấn công từ chối dịch vụ (denial-of-service attack) hoặc tấn công man-in-the-middle sử dụng máy chủ giả để chặn dữ liệu có thể được sử dụng với mục đích xấu. Ngược lại, bởi vì máy chủ DHCP không xác thực client, do đó nó sẽ phát thông tin địa chỉ IP đến bất cứ thiết bị nào yêu cầu. Ai đó có thể cấu hình client để liên tục thay đổi thông tin đăng nhập và nhanh chóng làm cạn kiệt địa chỉ IP có sẵn trong phạm vi, ngăn các thiết bị truy cập vào mạng.
Thông số DHCP có thể giải quyết được một số vấn đề kể trên. Tùy chọn Relay Agent Information Option cho phép kỹ sư mạng gắn thẻ thông điệp DHCP khi chúng đến mạng. Thẻ này được sử dụng để kiểm soát truy cập mạng. Ngoài ra, còn có một điều khoản để xác thực thông điệp DHCP. Việc sử dụng xác thực 802.1x còn được gọi là kiểm soát truy cập mạng (NAC) được sử dụng để bảo mật DHCP. Hầu hết các nhà cung cấp mạng hàng đầu đều hỗ trợ NAC.