Wednesday, June 1, 2011

Cấu hình một Linux DHCP server đơn giản

1.Mô tả về file cấu hình của dhcpd


Sau khi cài đặt dhcpd thì file cấu hình cho daemon nằm tại /etc/dhcpd.conf. File lưu trữ các ip được leased nằm tại /var/lib/dhcpd/dhcpd.leases

FIle cấu hình chứa các parameters và các sections.

  • Các sections là nơi để khai báo thông tin về mạng, các địa chỉ đc gán cho clients, các đặc tính của clients. Section thường đc đặt trong cặp {}
  • Parameters xác định các tính chất đc gửi đến clients. Thường thì các parameters đc bắt đầu bằng từ khóa "option". Các parameters đc khai báo trước một section đc gọi là global parameters, và các parameters này sẽ đc áp dụng cho toàn bộ các sections sau section đó. 

Sau khi cài đặt dhcp, file cấu hình /etc/dhcpd.conf sẽ không có gì. THông tin cấu hình mẫu dùng để tham khảo đc lưu trữ trong đuờng dẫn /usr/share/doc/dhcp*/dhcpd.conf.sample. Ta có thể chép file mẫu này vào /etc/ và đổi tên thành dhcpd.conf, hoặc tự tạo một file text mới để ghi các thông tin cấu hình lên file này.

Ví dụ có một file cấu hình mẫu như sau:



ddns-update-style interim;
subnet 192.168.1.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option routers 192.168.1.1;
default-lease-time 600;
max-lease-time 604800;
range 192.168.1.100 192.168.1.200;
}


  • -Dòng ddns... cho biết kiểu của Dynamic DNS. Mặc định là interim.
  • -dòng subnet... bắt đầu khai báo một section. Ở đây khai báo các thông số cho subnet 192.168.1.0/24. Bên trong là các parameters dành cho subnet này.
  • -dòng option subnet-mask: subnet mask dành cho dhcp client.
  • -dòng option routers: cung cấp default gateway cho clients.
  • -dòng default-lease-time: thời gian tối đa để lease một IP nếu client ko xác định thời gian, tính theo second
  • -dòng max-lease-time: thời gian tối đa để lease một IP
  • -dòng range...: dải IP sẽ đc cấp bởi dhcp server, xác định 2 giá trị ip đầu và ip cuối.


Như vậy, với khai báo như trên, ta có thể hiểu đơn giản rằng: DHCP server cung cấp dải ip từ 192.168.1.100 đến 192.168.1.200 với subnet mask là 255.255.255.0 cho subnet 192.168.1.0/24 có địa chỉ của gateway là 192.168.1.1

2. Cấu hình một DHCP server

Một mô hình đơn giản như sau:
-Setup một linux server có địa chỉ 10.0.0.2/24 để cài đặt dhcpd.
-Một client chạy windows xp dùng để test chức năng lease ip.
Yêu cầu:
-Xây dựng một DHCP server cung cấp ip cho subnet 10.0.0.0/24, địa chỉ gateway là 10.0.0.1/24, domain là mydomain.local. Domain nameserver có ip là 10.0.0.2/24

Tiến hành thực hiện:
-Cài đặt dhcpd từ đĩa đc mount

[root@dns CentOS]# rpm -ivh dhcp-3.0.5-23.el5.i386.rpm 
warning: dhcp-3.0.5-23.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
Preparing...                ########################################### [100%]
package dhcp-3.0.5-23.el5.i386 is already installed
[root@dns CentOS]# 


-CHép file cấu hình mẫu sang /etc/ đổi tên thành dhcpd.conf hoặc tạo một file dhcpd.conf trong /etc/
[root@dns CentOS]# cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf


-Nội dung của file dhcpd.conf như sau:



ddns-update-style interim;
ignore client-updates;


subnet 10.0.0.0 netmask 255.255.255.0 {


# --- default gateway
        option routers                  10.0.0.1;
        option subnet-mask              255.255.255.0;


#       option nis-domain               "domain.org";
        option domain-name              "mydomain.local";
        option domain-name-servers      10.0.0.2;


        option time-offset              -18000; # Eastern Standard Time
#       option ntp-servers              192.168.1.1;
#       option netbios-name-servers     192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#       option netbios-node-type 2;


        range dynamic-bootp 10.0.0.100 10.0.0.200;
        default-lease-time 21600;
        max-lease-time 43200;


        # we want the nameserver to appear at a fixed address
#       host ns {
#               next-server marvin.redhat.com;
#               hardware ethernet 12:34:56:78:AB:CD;
#               fixed-address 207.175.42.254;
#       }
}


-Lưu ý là dấu # là dấu comment.
-Sử dụng client xp để kiểm tra việc lease ip:

-Kiểm tra file lưu trữ ip đc leased:

[root@dns CentOS]# more /var/lib/dhcpd/dhcpd.leases
# All times in this file are in UTC (GMT), not your local timezone.   This is
# not a bug, so please don't ask about it.   There is no portable way to
# store leases in the local timezone, so please don't request this as a
# feature.   If this is inconvenient or confusing to you, we sincerely
# apologize.   Seriously, though - don't ask.
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-V3.0.5-RedHat

lease 10.0.0.200 {
  starts 4 2011/05/26 03:02:24;
  ends 4 2011/05/26 09:02:24;
  binding state active;
  next binding state free;
  hardware ethernet 00:0c:29:9b:96:cd;
  uid "\001\000\014)\233\226\315";
  client-hostname "PC2";
}
[root@dns CentOS]# 


=====Hết====

Monday, May 30, 2011

BIND - Zone maintainance

 1.Vấn đề dự phòng

Một vấn đề xảy ra khi khi xây dựng một hệ thống DNS đó là khả năng dự phòng. Nếu trong domain chỉ có 1 DNS server hoạt động, khi server này gặp trục trặc, mọi host trong domain đều không thể truy vấn được thông tin về host mà nó cần.

Điều này dẫn đến việc thiết kế một DNS dự phòng mang tính backup cho server chính gọi là Secondary server. Server dự phòng này sẽ sao chép toàn bộ thông tin hiện tại của server chính, khi server chính có sự cố thì các truy vấn dns sẽ được gửi đến server phụ này

Việc DNS secondary server duy trì dữ liệu của server chính trên nó được gọi là zone maintainance. 

Quá trình sao chép dữ liệu này được gọi là zone transfer. 

2.Full zone transfer (AXFR)

Ban đầu khi xây dựng thống DNS, người ta đã thiết kế một kiểu zone transfer gọi là full zone transfer, tức là sẽ transfer toàn bộ thông tin cơ sở dữ liệu của dns server chính về cho server phụ. Việc này được thực hiện thông qua việc kiểm tra serial number của SOA Resource Record. Nếu serial number của server chính lớn hơn(mới hơn) thì server phụ sẽ yêu cầu server chính gửi toàn bộ thông tin về zone cho nó. Đây chính là full zone transfer. Thời gian các server phụ kiểm tra xem đã có sự thay đổi hay chưa đc định nghĩa bởi giá trị refresh của SOA RR.

AFXR hoạt động trên TCP port 53.

Chi tiết hơn về AXFR: http://cr.yp.to/djbdns/axfr-notes.html

3.Incremental zone transfer (IXFR)

FUll zone transfer bộc lộ một điểm yếu là nếu chỉ có 1 RR thay đổi thì việc full zone transfer là gây lãng phí cả về băng thông mạng và tốn nhiều thời gian. RFC 1995 đã đưa ra một giao thức cho phép chỉ transhfer những RR có sự thay đổi. 

Cách thức làm việc của IXFR khá giống với AXFR. Slave dns server gửi request đến master dns server mỗi lần hết giá trị refresh. Nếu serial number của SOA RR là mới hơn thì nó sẽ gửi yêu cầu xem có thể sử dụng IXFR hay không. Nếu cả slave và master server đều hỗ trợ IXFR thì sẽ sử dụng cách này để transfer zones. Nếu thất bại sẽ sử dụng AXFR. 

IXFR sử dụng TCP port 53

4.Thông điệp NOTIFY

 Giá trị refresh được định nghĩa trong SOA RR thường là vài giờ đồng hồ. Điều đó có nghĩa, nếu như có bất kỳ sự thay đổi nào từ master server thì slave server vẫn sẽ không biết được cho đến khi hết giá trị refresh đó.

RFC 1996 định nghĩa một cơ chế cho phép master server gửi một thông điệp NOTIFY đến các slave servers mỗi khi nó đc load hoặc đc cập nhật mới. Thông điệp NOTIFY này sẽ chỉ ra rằng, đã có một sự thay đổi nào đó đối với các RR. Các slave nhận đc thông điệp NOTIFY sẽ gửi đến master server yêu cầu kiểm tra SOA RR. Nếu serial number lớn hơn so với serial hiện tại, slave server sẽ đưa ra yêu cầu là AXFR hoặc IXFR.

Friday, May 27, 2011

Cài đặt GNS3 trên Ubuntu và Fedora

Dưới đây là một blog rất hữu ích, có đầy đủ các tut nói về việc sử dụng các soft gỉa lập để học Cisco.
Các bài viết khá dễ hiểu và rất chi tiết. Ai cần có thể tham khảo bài viết "How to install GNS3 on Ubuntu 10.04 LTS" tại link này:
http://networkingtips-tricks.blogspot.com/2010/09/how-to-install-gns3-on-ubuntu-1004-lts.html

Còn đây là bài viết hướng dẫn cài đặt GNS3 trên Fedora:
http://networkingtips-tricks.blogspot.com/2010/08/tutorial-how-to-install-gns3-on.html

Sunday, May 8, 2011

Packet Tracer for Linux

Đây là bản PT dành cho Linux, hiện tại tôi đã download bản rpm dành cho Fedora về và cài đặt dùng thử. Nói chung là cũng khá tốt, tương tự như PT trên Windows. Tôi mới thử cài đặt trên Fedora của mình, chưa thử trên các distro khác nên không biết có gặp vấn đề gì không. Nếu ai đang sử dụng Fedora thì có thể download bản mà tôi đã upload lên Mediafire:

http://www.mediafire.com/?oyasvs1fyiihwua

Nếu bạn là người dùng Ubuntu, bạn có thể tham khảo link này:

http://www.packettracer.info/packet-tracer-5-3-2-download.html
-Cài đặt (Fedora)
Việc cài đặt khá dễ dàng.

  • _Chmod cho file .bin vừa download về có quyền execute
  • _run file .bin mới chmod xong dưới quyền root trong terminal
  • _đọc instruction và làm theo hướng dẫn.
  • _done