Bài 6: Cấu hình DHCP trên Centos

1. Giới thiệu

Dịch vụ cung cấp địa chỉ IP động DHCP (Dynamic Host Configuration Protocol ).
Không những cung cấp được IP mà dịch vụ trên còn đưa ra cho chúng ta nhiều tính năng để cung cấp những yếu tố khác cho các máy client, ví dụ như cung cấp địa chỉ của máy tính dùng để phân giải tên miền DNS, địa chỉ của một Gateway router, địa chỉ máy WINS…

Một DHCP server bao gồm bốn mục chính sau:

  • Options: Dùng để cung cấp các yếu tố cho phía client như địa chỉ IP, địa chỉ subnet mask, địa chỉ Gateway, địa chỉ DNS .v.v…
  • Scope: Một đoạn địa chỉ được quy định trước trên DHCP server mà chúng ta sẽ dùng để gán cho các máy client.
  • Reservation: Là những đoạn địa chỉ dùng để “để dành” trong một scope mà chúng ta đã quy định ở trên.
  • Lease: Thời gian “cho thuê” địa chỉ IP đối với mỗi client.

2. Cài đặt và cấu hình DHCP server

Thường thì dịch vụ này đã được setup khi ta cài đặt OS linux theo chuẩn server.
Nếu máy tính của bạn chưa cài đặt dịch vụ DHCP thì bạn download gói cài đặt rpm về sử dụng. Thường ta sử dụng gói có sẵn trong đĩa cài đặt thư mục Centos version dhcp-3.0.1rc14-1.i386.rpm.

Giả dụ tôi sử dụng gói cài đặt trong đĩa vài đặt thì sẽ có các bước sau:

Mkdir /media/cdrom # tạo thư mục sẽ mmount tới cdrom

Mount /dev/cdrom /media/cdrom # mount cdrom vào thư mục vừa tạo

Cd /media/cdrom/Centos/ # chuyển vào thư mục chứa các gói cài đặt

Cuối cùng là cài đặt gói dhcpd

Rppm -ivh dhcp-3.0.1rc14-1.i386.tar.gz

Sau khi hoàn tất xong quá trình cài đặt, bật dịch vụ DHCP lên, nó tự động đọc tập tin /etc/dhcpd.conf, nhưng theo mặc định gói cài đặt này không tự tạo ra file /etc/dhcpd.conf. Mà chúng ta sẽ tạo và cấu hình để dịch vụ này có thể hoạt động theo ý muốn của chúng ta.
Thường thì tập tin này ta copy từ tập tin

/usr/share/doc/dhcp-x.x.x/dhcpd.conf.sample

Sử dụng lệnh sau:

cp /usr/share/doc/dhclient-3.0.1/dhclient.conf.sample /etc/dhcpd.conf

Soạn hoặc copy chỉnh sữa file cấu hình /etc/dhcpd.conf :

# tắt chế độ auto update

ddns-update-style interim;

ignore client-updates;

subnet 192.168.0.0 netmask 255.255.255.0 {

#KHAI BÁO SUBNET MỚI BẰNG CÁCH COPY NGUYÊN ĐOẠN TRONG DẤU KÉP NÀY

# Khai báo default gateway

option routers 192.168.0.1; #TÙY CHỌN NẾU TRONG MÁY CÓ GATEWAY

# Khai báo subnet mask

option subnet-mask 255.255.255.0;

option nis-domain “domain.org”; #TÙY CHỌN TÊN MIỀN CHỨNG THỰC

option domain-name “domain.org”; # Khai báo Domain

option domain-name-servers 192.168.1.1; # Khai báo Dns server

option time-offset -18000; # Eastern Standard Time

option ntp-servers 192.168.1.1;

option netbios-name-servers 192.168.1.1;

option netbios-node-type 2;

# Khai báo dãy IP cấp phát

range dynamic-bootp 192.168.0.128 192.168.0.254;

# Thời gian sống của mỗi IP được cấp

default-lease-time 21600;

max-lease-time 43200;

# Phần dưới dành cho cấu hình cấp phát IP tĩnh cho một số máy nhất định sẽ giải thích bên dưới

host ns {

next-server marvin.redhat.com;

hardware ethernet 12:34:56:78:AB:CD;

fixed-address 207.175.42.254;

}

}

Sau khi chỉnh sữa trong file cấu hình ta phải khởi động lại dịch vụ:

/etc/rc.d/init.d/dhcpd restart Hay service dhcpd restart

Cho phép DHCP tự động khởi động khi boot :

chkconfig dhcpd on

Quay lại vấn đề hỗi này tôi chưa giải thích ở đoạn cuối cấu hình dhcpd.conf

Tình huống đặt ra rằng, máy tính của Sếp phải có ip cố định, và ip đẹp. Ví dụ như 192.168.0.150 sẽ gán cho sếp khi ông ấy kết nối vào mạng. Lúc này dòng 26 trong file cấu hình bắt đầu có hiệu lực. Dòng này quy định những máy tính nào sẽ được cấp ip cố định khi nó vào mạng. Bằng cách sử dụng địa chỉ MAC và đặt vào sau dòng hardware ethernet, dòng fixed-address bạn đưa vào địa chỉ ip mà bạn muốn gán. Nhớ khở động lại dịch vụ. Thế nào xong.!

#COPY LẠI ĐOẠN NÀY NẾU BẠN CÓ NHIỀU MÁY CẤN GÁN IP CỐ ĐỊNH

host ns {

next-server marvin.redhat.com;

hardware ethernet 12:34:56:78:AB:CD;

fixed-address 192.168.0.150;

}

3. Theo dõi và sử dụng DHCP.

Xem những địa chỉ đã được cấp bởi DHCP ta xem trong files:

vi /var/lib/dhcp/dhcpd.leases

DHCP server không thể làm làm việc nếu thiếu file dhcpd.leases. vì thế nếu chưa có file này, chúng ta tạo bằng lệnh:

touch /var/lib/dhcp/dhcpd.leases

Sử dụng lệnh sau để xem log của DHCP

tail -f /var/log/messages

4. Kiểm tra hoạt động của DHCP.

Trong window, để client nhận ip động thì chúng ta đã biết cấu hình như thế nào rồi. Dùng lệnh ipconfig /all để xem tất cả các ip trong window

Trong linux để client nhận ip động thì ta sữa file cấu hình card enternet 1 tí. Dùng lệnh ifconfig –a để xem tất cả các ip trong linux

Posted on 18/03/2011, in Linux and tagged , , . Bookmark the permalink. 20 phản hồi.

  1. anh cho em hoi
    Dhcp cua em muon cap phat dia chi cho nhieu lop mang
    khac nhau thi em phai cau hinh nhu nao a
    Cam on anh!!!

    • để cấu hình DHCP cho nhiều lớp mạng hay chính xác là các NET khác nhau thì bạn cần dựa vào một máy hoặc router có chức năng là DHCP Relay Agent.
      Đối với Centos nó chạy dưới dạng dịch vụ là dhcrelay.
      Để cấu hình DHCP relay agent trên centos cần thao tác config trên file /etc/sysconfig/dhcrelay
      Trong đó có các thông số cần cấu hình là :
      + INTERFACE : tên card mạng mà nối với dhcp server
      + DHCPSERVER: địa chỉ IP của DHCP server
      Tiếp đến tạo các subnet cần thiết cho mỗi lớp mạng trong dhcpd.conf
      Và sau đó bật dịch vụ DHCP relay agent :
      Service dhcrelay start
      chúc bạn thành công..^^!
      Ah nếu bạn không rõ làm sao con DHCP biết chinh xác nó phải cấp subnet nào cho client thì đọc bài sau:
      click here

  2. Cam on anh!!!
    Ma anh oi…cai file dhcpd.conf minh cau hinh supnet nhu nao anh nhi…gia su em co hai lop mang la 192.168.1.0/24
    va 172.16.0.0/16..em đe hai lop mang thong nhau qua router vyatta.cai dhcp server em dat o mang 172.16.0.0.16.vay em phai cau hinh dhcpd.conf nhu nao moi co the the cap ip cho mang 192.168.1.0/24

    • Thì đơn giản là bạn tạo thêm một subnet nữa khai báo đầy đủ thông tin range ip, default gateway, dns… ví dụ sau nhé:

      subnet 192.168.1.0 netmask 255.255.255.0 {
      range 192.168.1.10 192.168.1.50;
      range 192.168.1.100 192.168.1.200;
      option routers 192.168.1.254;
      }

      subnet 172.16.0.0 netmask 255.255.255.0 {
      range 172.16.0.100 172.16.0.200;
      option routers 172.16.1.254;
      }
      Chi tiết thêm các options trong các subnet thì bạn coi trong bài của mình đó cái đoạn dài nhất copy rồi paste ra 2 lần chỉnh sữa các options cần thiết cho mỗi subnet.

  3. cam on anh rat nhieu!!!
    rat vui khi duoc biet anh..
    anh Phat hoi truoc hoc o dau ma kien huc rong vay anh..
    gio anh dang lam o dau anh..?
    em cung dang hoc nam cuoi CNTT..kien thuc cua em chua sau lam..rat vui neu co the trao doi cung anh de nang cao kien thuc.!!

    • Anh cũng rất vui được biết em🙂. A cũng mới tốt nghiệp sau tết thôi a học bên ĐH Hoa Sen trên Quang trung h anh đang làm cho vinagame. Cũng không gì cao siêu mà gọi a kiến thức rộng đâu đi làm em sẽ biết có nhiều điều và nhiều người cao siêu nữa🙂.

  4. mình đang làm đề tài thực tập về cài đặt Snort trên linux, bạn pít thì chỉ dùm mình nha, cảm ơn trước
    yh: babykid_q89

    • hi Quân,
      Mình không care snort cho lắm🙂. Nhưng mình hỏi xem bạn bè ai có đề án này ko thì sẽ share cho bạn

      • giup minh với! Minh dang đau đầu vì ko bit lam cach nao join domain tu ubuntu vao server centos 5.4 . với lại làm 1 cái server dông hành nửa ! làm ơn giup minh với !!!

  5. a co de tai nao khong cho e vai cai e tham khao e dang lam de tai tot nghiep.a giup do gjum e nha.co j gui vao mail e nha !
    songthan_991@yahoo.com.vn

    • Hi bạn,
      Đang làm đề án tot nghiệp hay là đang chọn đề nếu đang làm rồi thì phải nói mình đề tài mới đưa tài liệu tham khảo dc chứ🙂. Còn chưa làm thì phải đưa mình nhu cầu là thích làm thể loại nào: dịch vụ mail, dich vu web, dich vu monitoring, dich vu backup, dich vụ bảo mật, clustering, ảo hóa máy chủ (hyper-v, VMware, Xen-App) ………………. nhiều thứ lắm

  6. hi !
    mình đang tìm hiểu về cấu hình DHCP server. mình muốn test = remote nhưng không biết là phải cấu hình như thế nào?
    mong nhận được sự giúp đỡ từ bạn!

  7. chào bạn. mình mới tiếp xúc với linux. mình đang làm lab DHCP server trong khi làm mình gặp lổi sau mong bạn giúp đở.
    ip của máy DHCPserver 172.16.1.34/27
    mình muốn cấp DHCP cho các PC, dãy IP mình muốn cấp : 172.16.1.130 ~ 172.16.1.255 netmask: 255.255.255.128
    khi start DHCPD thì bị lỗi.
    mình triển khai trên Debian 6.0, mình xem lab của bạn xong mình thử tiếp trên CentOS 6.0 nhưng vẫn thất bại.
    mình post bài đầy đủ tại forum nhatnghe
    http://www.nhatnghe.com/forum/showthread.php?t=335373
    bạn xem giúp

    • Mình xem thông tin cấu hình của bạn trên site NhatNghe rồi nha. Bạn thử chuyển IP của DHCP server sang IP mới nằm trong range IP thuộc subnet mà bạn cấu hình trong file dhcpd.conf rồi test đi thử đi nha

  8. nếu chuyển IP của DHCP sv nằm trong range của dãy IP muốn cấp thì tất nhiên sẽ cấp được. (đã test)
    nhưng vấn đề ở đây là mình muốn cấp IP khác lớp mạng (khác subnet) với IP của server.
    mình thử trên CentOS thì cấp OK. chỉ cần tạo NIC ảo và cấu hình static route là cấp dc. mình cũng thử trên Debian tương tự nhưng không thành công.
    có lẽ Debian ở VN ít người dùng nên tìm support khó quá….^^

    • Bạn không cung cấp đầy đủ tại sao muốn làm gì nên mình không clear tư vấn change IP là đúng rồi. Suy ra vấn đề của bạn là không config được Virtual IP trên interface của Debian. Thông tin cấu hình của bạn như thế nào?. Mình thử đưa mẫu thêm trong file “/etc/network/interfaces”:

      auto eth0
      iface eth0 inet static
      address 172.16.0.6
      netmask 255.255.255.0

      auto eth0:1
      iface eth0:1 inet static
      address 192.168.30.128
      netmask 255.255.255.0

      //Hơi thiếu options tự thêm vào nhé

  9. thank bạn! mình đã giải quyết được vấn đề này.
    debian khác các phiên bản Linux khác ở phần khi cấu hình cấp DHCP cho các net khác với net interface thì cần thêm vào lệnh chỉ đến interface ra ngoài.
    file dhcpd.conf
    subnet 1.2.3.4 netmask 255.255.255.xxx {
    interface eth0;
    //cac option cua DHCP
    }
    rất cảm ơn bạn đã quan tâm và support mình. chúc blog của bạn ngày càng phát triên.

  10. có ai bít gõ bỏ chương trình dhcp tren centos ko?chỉ cho mình với ,thank trước nha

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: