DHCP ( Dynamic Host Configuration Protocol ) được sử dụng với muc đích tập trung hoá việc quản lý và ấn định cấu hình TCP/IP của các máy client. Với những đặc điểm thuận lợi giúp cho người quản trị tiết kiệm thời gian trong việc cài đặt và quản trị một hệ thống mạng TCP/IP như sau: - Quản lý việc cấp phát địa chỉ ip cho các máy client khi có yêu cầu.
- Cung cấp những thông tin cấu hình mạng như subnet mask, default router, DNS Server.
- DHCP có thể làm việc thông qua nhiều TCP/IP router và ấn định IP dựa theo subnet mask gửi tới do đó bạn không cần phải cấu hình lại máy tính khi di chuyển qua những subnet khác nhau.
- Địa chỉ ip chỉ được cấp phát trong một khoảng thời gian nhất định, những địa chỉ ip không tiếp tục sử dụng sẽ bị thu hồi lại.
- Hỗ trợ BOOTP client
Để sử dụng DHCP bạn cần phải có một DHCP Server để đáp ứng ( cung cấp địa chỉ ip và thông tin cấu hình mạng ) các yêu cầu từ các máy DHCP client gửi tới và ngược lại trên các máy client cung cần phải có DHCP client để gửi các request.
Có thể tóm tắt quá trình hoạt động DHCP request-resspond như sau:
- Lease request: dhcp client gửi broadcast gói tin dhcp request (địa chỉ nguồn là 0.0.0.0, địa chỉ đích là 255.255.255.255 và địa chỉ MAC của client) , gói tin này được mở bởi DHCP Server
- Ip lease offer: DHCP Server ấn định cho client địa chỉ ip, subnet mask, domain name, địa chỉ name server, khoảng thời gian mà những thông tin cấu hình này client được phép sử dụng hợp lệ.
- Lease selection: client chấp nhận những thông tin cấu hình được cung cấp và nó gửi sẽ gửi một gói tin broadcast để thông báo với các DHCP Server không cần gửi các thông tin cấu hình khác cho nó nữa.
- DHCP Server gửi đến client một gói tin ack và khi đó client đã được cấu hình TCP/IP và hoạt động bình thường
- Lease renew: khi sử dụng những thông tin cấu hình được cung cấp đến một nửa khoảng thời gian được phép ( default-lease-time ) DHCP client nếu muốn tiếp tục sử dụng sẽ gửi một request mới tới DHCP Server.
DHCP là một dịch vụ phổ thông nên đã có sẵn trên mọi distro Linux nên bạn không cần để ý đến việc cài đặt nó. sau đay là một số kiến thức giúp bạn dễ dàng nắm bắt và sử dụng nó.
Một số tuỳ chọn để chạy DHCP Server với mục đích debug.
Có thể sửa đổi port mặc định( port 67 ) của dhcp với -p flag. Với DHCP reply port thường lớn hơn listen port một giá trị. Ví dụ nếu bạn ấn định cho DHCP Server lắng nghe request ở port 67 thì nó sẽ trả lời client ở port 68.
Có thể ấn định DHCP Server chạy dưới dạng foreground process thay vì chạy dưới dạng deamon bằng -f flag.
Chạy DHCP Server với một file config khác ( không phải file config mặc định /etc/dhcp.conf ) bạn dùng -cf flag, chạy với một file lease khác bạn dùng -lf flag.
File cấu hình của DHCP Server là /etc/dhcpd.conf được đọc và phân tích bởi dhcpd. File gồm một loạt những khai báo và tham số cấu hình.
Một số thiết lập hay được sử dụng.
shared-network name { [ parameters ] [ declarations ] } Khai báo một số IP subnet và những tham số khởi động cho những client trên cùng một mạng vật lý. subnet subnet-number netmask netmask { [ parameters ] [ declarations ] }
Khai báo những địa chỉ ip và tham số khởi động cho những client trong một subnet cụ thể.
range [ dynamic-bootp ] low-address [ high-address];
Dùng để khai báo những địa chỉ ip mà DHCP Server sẽ cung cấp cho các client.
host hostname { [ parameters ] [ declarations ] } được sử dụng cho những BOOTP client group { [ parameters ] [ declarations ] }
Được dùng trong những trường hợp bạn muốn ấn định một hay nhiều tham số mạng cho một nhóm client cụ thể.
allow unknown-clients;
deny unknown-clients;
Được dùng để điều khiển hoạt động của dhcp với những unknown-clients, mặc định là allow.
allow booting;
deny booting;
Được dùng để điều khiển hoạt động của DHCP Server đối với những bootp query của một số client, nó chỉ có ý nghĩa khi nằm trong một khai báo host.
default-lease-time time;
Là khoảng thời gian mà những tham số ấn định của DHCP Server cho client có hiệu lực đối với những client requesting không yêu cầu expiration time.
max-lease-time time;
Là khoảng thời gian lớn nhất mà những tham số ấn định của DHCP Server cho client có hiệu lực đối với những client requesting có yêu cầu expiration time.
thời gian được tính theo giây
hardware hardware-type hardware-address;
khai báo loại phần cứng thiết bị mạng và địa chỉ cứng của thiết bị mạng mà client dùng để gửi DHCP request.
những loại thiết bị mạng thường được hỗ trợ là ethernet, token-ring, fddi.
filename "filename";
xác định tên file mà client dùng để boot (boot qua mạng).
server-name "name";
ấn định tên Server mà client có thể boot từ nó
next-server server-name;
địa chỉ ip Server mà client có thể boot từ nó
fixed-address address [, address ... ];
Được dùng để ấn định một hay nhiều địa chỉ ip cho một client xác định, nó chỉ có ý nghĩa khi nằm trong khai báo host. Thường được dùng trong những trường hợp client hay di chuyển qua những subnet khác nhau.
Sau đây là một ví dụ cụ thể:
ddns-update-style interim; ignore client-updates; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.128 192.168.1.254; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.1; option domain-name "your-domain.org"; option domain-name-servers 40.175.42.254, 40.175.42.253; option netbios-name-servers 192.168.1.100; # option ipforwarding off; default-lease-time 21600; max-lease-time 43200; option time-offset -18000; # option ntp-servers 192.168.1.1; # option netbios-name-servers 192.168.1.1; # option netbios-node-type 2; host ns2 { next-server ns2.your-domain.com; hardware ethernet 00:02:c3:d0:e5:83; fixed-address 40.175.42.254; } host laser-printer-lex1 { hardware ethernet 08:00:2b:4c:a3:82; fixed-address 192.168.1.120; } }
Thông tin cấu hình được áp dụng với subnet 192.168.1.0/255.255.255.0
range: ấn định giới hạn địa chỉ ip cung cấp cho các client. Bạn có thể ấn định nhiều giải địa chỉ ip trong cùng một subnet mask ở đây.
option subnet mask: ấn định giá trị subnet mask mặc định được sử dụng bởi DHCP client
option broadcast-address: ấn định giá trị địa chỉ broadcast mặc định được sử dụng bởi DHCP Client.
option routers: ấn định địa chỉ routers được sử dụng bởi DHCP client
option domain-name-servers: ấn định địa chỉ DNS server cho DHCP Client
option netbios-name-servers: ấn định địa chỉ WINS server
option ipforwarding off: không cho phép các dhcp request được phép forward qua máy DHCP server ( máy dhcp server co nhiều card mạng ).
default-lease-time và max-lease-time: ấn định khoảng thời gian (tính theo giây) máy client có thể giữ địa chỉ ip
host ns2 { next-server ns2.your-domain.com; hardware ethernet 00:02:c3:d0:e5:83; fixed-address 40.175.42.254; }
ấn định máy có địa chỉ MAC là 00:02:c3:d0:e5:83 sẽ có địa chỉ ip là 40.175.42.254.
host laser-printer-lex1 { hardware ethernet 08:00:2b:4c:a3:82; fixed-address 192.168.1.120; }
ấn định cho máy in có địa chỉ MAC 08:00:2b:4c:a3:82 sẽ có địa chỉ ip là 192.168.1.120.
Hoạt động cấp phát địa chỉ ip và thông tin cấu hình mạng của dhcp server sẽ được ghi log vào file /var/lib/dhcp/dhcpd.leases (lease database) để dùng trong những trường hợp service restart hay system reboot nó sẽ vẫn biết được những thông tin cấu hình mà nó đã cấp phát cho client, đảm bảo hệ thống vẫn làm việc bình thường.
Khi DHCP Server chạy lần đầu nó sẽ không có file này, bạn có thể đơn giản tạo một file dhcp.leases trống .
Những mục log trong file này có dạng:
lease ip-address { statements... }
ví dụ:
lease 192.168.1.128 { starts 2 2004/12/01 20:07:05; ends 3 2004/12/02 08:07:05; hardware ethernet 00:00:e8:4a:2c:5c; uid 01:00:00:e8:4c:5d:31; client-hostname "Node1"; }
Có nghĩa là máy client có tên host là Note 1, địa chỉ MAC 00:00:e8:4a:2c:5c đã được cấp địa chỉ ip là 192.168.1.128 trong khoảng thời gian 2004/12/01 20:07:05 đến 2004/12/02 08:07:05.
Với mục đích giới hạn kích thước file "lease database" sau một khoảng thời gian nó sẽ được đổi tên thành /var/lib/dhcp/dhcpd.leases~ và một file /var/lib/dhcp/dhcpd.leases mới sẽ được tạo
Với những mạng LAN được phân cách bởi router bạn phải config để router cho phép relay những DHCP request.
Tương tự như những dịch vụ bạn có thể sử dụng DHCP thông qua script khởi động của nó.
/etc/init.d/dhcpd start|stop|status|...
0 nhận xét:
Đăng nhận xét