Serial bài viết hướng dẫn quản trị mạng Linux. Phần 3: Cài đặt và cấu hình DHCP trên Linux
chúc các bạn thành công , idconline.vn luôn đồng hành cùng bạn với những
Yêu cầu trong bài Lab này:
Hãy
đăng nhập vào máy chủ Linux và thực hiện các yêu cầu sau:
1)
Thiết lập DHCP server theo các yêu cầu sau:
·
Scope : 192.168.1.50 –
192.168.1.100
·
SubnetMask:
255.255.255.0
·
Getway: 192.168.1.1
·
DNS:
192.168.1.2,8.8.8.8
·
Domain: sinhvienit.net
2)
Kiểm tra cổng ứng dụng của DHCP.
3)
Xem thông tin thống kê địa chỉ IP đã cấp phát.Hãy đăng nhập vào máy chủ Linux
và thực hiện các yêu cầu sau:
Mô hình:
Mô hình cài đặt DHCP server
Mục tiêu
Hướng dẫn các bạn cách cấu hình và quản lý dịch vụ DHCP để
cấp phát địa chỉ IP động.
Hướng dẫn:
1. Thiết lập DHCP server
Download mã nguồn của bản DHCP server mới nhất trên linux
(Vào thời điểm viết lab)
Code:
# wget ftp://ftp.isc.org/isc/dhcp/dhcp-4.2.2.tar.gz
Giải nén file vừa
download về
Code:
# tar -xvf dhcp-4.2.2.tar.gz
Vào thư mục
vừa giải nén
Code:
# cd dhcp-4.2.2
Cấu hình
tiền biên dịch
Code:
# ./configure
Biên dịch mã
nguồn
Code:
# make
Cài đặt
Code:
# make install
Sau khi quá
trình cài đặt hoàn tất. Tập tin cấu hình mẫu của dịch vụ DHCP nằm tại
“/usr/local/etc/dhcpd.conf”. Ta chép file này sang thư mục /etc/ vì khi dịch vụ
chạy sẽ kiểm tra file cấu hình trong thư mục này. Sau đó, ta tiến hành cấu hình
DHCP server bằng cách chỉnh sửa file cấu hình nằm tại: /etc/dhcpd.conf
Chép file dhcpd.conf qua /etc
Code:
# cp /usr/local/etc/dhcpd.conf /etc/
Sau đó ta
chỉnh sửa
Code:
#vi /etc/dhcpd.conf
Ta lưu ý
các thông số sau:
+ Các thông số mặc định sẽ sử dụng cho những subnet ta định
nghĩa cấp phát mà không có định nghĩa lại nó sẽ dùng các thông số mặc định đó
(*1)
Code:
option domain-name "sinhvienit.net"; option domain-name-servers 192.168.1.1,8.8.8.8; default-lease-time 600; # Thời gian mặc định cho client giữ IP đc cấp max-lease-time 7200; # Thời gian tối đa cho client giữ IP đc cấp
+ Cấu hình
cấp phát IP động cho mạng 192.168.1.0/24 dải từ 192.168.1.50 đến
192.168.100. Để làm điều này, bạn thêm vào dưới đoạn trên phần sau
Code:
subnet 192.168.1.0 netmask 255.255.255.0 { # Dải cấp phát là 192.168.1.50 đến 192.168.1.100, # có thể thêm nhiều dải khác bằng cách thêm nhiều dòng range 192.168.1.50 192.168.1.100; # có thể không cấu hình 4 dòng dưới # vì giống cấu hình mặc định ở (*1) option domain-name-servers 192.168.1.2,8.8.8.8; option domain-name "sinhvienit.net"; default-lease-time 600; max-lease-time 7200; # default gateway mà Client sẽ sử dụng option routers 192.168.1.1; # Địa chỉ Broadcast của mạng con option broadcast-address 192.168.1.255; }
+ Ví dụ, IP 192.168.1.55 là IP đẹp, bạn
chỉ muốn cấp IP này cho máy của mình hay dùng. Máy đó có địa chỉ MAC của Card mạng
là08:00:07:26:c0:a5 thì
bạn thêm đoạn sau để làm điều đó
Code:
host MyPC { hardware ethernet 08:00:07:26:c0:a5; fixed-address 192.168.1.55; }
Như vậy, ta
đã cơ bản hoàn tất quá trình cấu hình DHCP. Trước khi khởi động DHCP server ta
cần tạo leases file. Tập tin này dùng để lưu trữ những địa chỉ đã cấp phát cho
từng Client và quản lý chúng. (Ta chỉ làm việc này nếu ta cài DHCP từ mã nguồn
như bài Lab này)
Code:
# touch /var/db/dhcp.leases
Hoặc dùng
lệnh sau nếu máy bạn không thể dùng lệnh trên
Code:
# cat /dev/null > /var/db/dhcp.leases
Ta khởi động
dịch vụ DHCP server
Code:
# /usr/local/sbin/dhcpd
Muốn tắt
DHCP server ta dùng lệnh
Code:
# killproc dhcpd
Muốn kiểm
tra DHCP server chạy chưa ta dùng lệnh
Code:
# ps –A|grep dhcpd
Để DHCPD
luôn khởi động khi máy được bật ta gõ lệnh sau
Code:
# chckconfig --level 35 dhcpd on
3: Là chế độ
làm việc dòng lệnh
5: Là chế độ làm việc có giao diện đồ họa
Câu lệnh trên sẽ khởi động ssh khi bạn đang chạy ở Run
level 3 hoặc 5
2. Kiểm tra cổng ứng dụng của DHCP
Code:
# netstat -npl|grep dhcp
Kết quả
3. Xem địa
chỉ IP đã cấp phát
Code:
# cat /var/db/dhcpd.leases
Kết quả
Thử nghiệm:
Dựng 1 máy XP cùng đường mạng với máy Linux vừa cấu hình
DHCP server. Trên máy XP này thiết lập cho nhận IP động
Vào Start
-> Run -> cmd
Gõ
Code:
ipconfig /release
(Để trả IP
trước đã nhận nếu có)
Code:
ipconfig /renew
(Để xin ip mới
qua DHCP)
Kết quả:
Lưu ý:
+ Nếu Card mạng của máy ảo bạn để chế độ liên thông với máy
thật (Bridging) thì nên rút cáp mạng giữa máy thật và modem ra rồi thử (Vì
nhiều khi máy ảo XP này sẽ nhận đc IP do DHCP của modem cấp chứ không phải do
máy ảo Linux ta vừa cài DHCP)
+ Tương tự, Nếu máy thật có cài Firewall thì nên tắt đi khi
thử nghiệm vì 1 số loại firewall nó sẽ chặn các gói tin đi từ máy ảo ra hoặc
vào.
+ Phải chắc chắn máy XP và máy Linux cài DHCP phải đang
cùng trên 1 Switch.
+ Trong kết quả ở hình trên, máy XP đã nhận đúng thông tin
như ta cấu hình nhưng có báo lỗi nhỏ ở IP 192.168.1.2 là do máy này chưa cài
DNS server nên nó chuyển sang dùng DNS server thứ 2 là 8.8.8.8 như ta đã cấu
hình.
+ Bài lab này được thực hiện trên Fedora 14. Bản Fedora này
không cài sẵn DHCP server và trong DVD cài đặt Fedora cũng không có file cài
đặt DHCP rpm nên chúng ta phải cài đặt bằng source code.
+ Nếu không thể download source và gõ lệnh và script vì quá
dài, bạn có thể tham khảo file config mẫu kèm theo Lab và file source code kèm
theo Lab để cài.
Tuy nhiên, việc khởi động dhcp server bằng dòng lệnh trên
có thể thay thế bằng các lệnh quen thuộc như: service dhcpd start , service
dhcpd stop …..
Để làm được việc này, ta cần viết 1 shell script để làm các
việc đó và lưu tại /etc/init.d/
Code:
# vi /etc/init.d/dhcpd
Nhập vào nội
dung như sau (Nội dung file này có kèm theo Lab):
Code:
#!/bin/sh # # dhcpd Init Script to start/stop dhcpd. # # chkconfig: - 61 39 # description: If you dont know you shouldnt be here # # processname: dhcpd config_file=/etc/dhcpd.conf pidfile=/var/run/dhcpd.pid lease_file=/var/db/dhcpd.leases # Source function library . /etc/rc.d/init.d/functions # Get network config . /etc/sysconfig/network if [ ! -e $config_file ]; then echo " No config file at $config_file" exit 0 fi RETVAL=0 start() { if [ ! -e $lease_file ]; then echo " Creating $lease_file" touch $lease_file elif [ -f $pidfile ]; then PID=`cat $pidfile` echo " ISC-DHCPD already running: $PID" exit 2; else echo -n $"Starting ISC-DHCPD: " daemon /usr/local/sbin/dhcpd -q RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dhcpd return $RETVAL fi } stop() { echo -n $"Stopping ISC-DHCPD: " killproc dhcpd RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/run/dhcpd.pid /var/lock/subsys/dhcpd return $RETVAL } restart() { stop start } reload() { echo -n $"Reloading dhcpd: " killproc dhcpd -USR2 RETVAL=$? echo return $RETVAL } case "$1" in start) start ;; stop) stop ;; status) status dhcpd ;; restart) restart ;; condrestart) [ -f /var/lock/subsys/dhcpd ] && restart || : ;; reload) reload ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}" exit 1 esac exit $?
Ta cấp quyền
thực thi file script vừa rồi
Code:
#chmod 755 /etc/init.d/dhcpd
Bây giờ ta
có thể khởi động dịch vụ DHCP bằng lệnh sau
Code:
# service dhcpd start
Muốn dừng
lại ta dùng lệnh
Code:
# service dhcpd stop
Muốn khởi
động lại ta dùng lệnh: (Thường sau khi sửa file config)
Code:
# service dhcpd restart
Muốn khởi
động lại ta dùng lệnh: (Thường sau khi sửa file config)
Code:
# service dhcpd status
0 nhận xét:
Đăng nhận xét