Tuesday, June 14, 2011

Zone files trong BIND

Zone files đc coi là thành phần chính của một name server. Nó chứa các thông tin về các hosts, server trong domain. Các thông tin này sẽ được các name server software sử dụng để thực hiện các tác vụ đc yêu cầu. Tính đúng đắn của việc phân tích một request của name server phụ thuộc vào nội dung của các zone files.

1.Thành phần của zone files

Zone file thuộc dạng text file, có thể dễ dàng chỉnh sửa bằng bất cứ một text editor nào. Zone files có thể chứa một số thành phần như:
-Comments: tất cả các comments sẽ bắt đầu bằng dấu chấm phảy (;) và kết thúc ở cuối line.
-Directives: các directives(biến) bắt đầu bằng dấu $ và được sử dụng để điều khiển việc thực thi của zone files
-Resource Records: RRs đc sử dụng để định nghĩa các tính chất, thuộc tính hoặc các thực thể đc chứa trong domain.

2.Nội dung của zone file

Dưới đây là một số nội dung cơ bản mà một zone file thường có
-$TTL directive: định nghĩa giá trị time to live mặc định cho toàn bộ zone hoặc domain. THời gian một RR có thể đc cached bởi một DNS server khác. Directive này là bắt buộc.
-$ORIGIN directive: domain của zone đang đc định nghĩa. Directive này là tùy chọn.
-Start of Authority(SOA) RR: SOA RR phải là RR đầu tiên xuất hiện trong zone file. RR này có nhiệm vụ định nghĩa các tính chất toàn cục cho toàn zone hoặc domain. RR này là bắt buộc phải có.
-Name Server (NS) RR: định nghĩa các name server có quyền đối với domain. RR này là bắt buộc phải có.
-Mail Exchanger(MX) RR: định nghĩa mail server cho zone. Có thể có một hoặc nhiều MX RR trong một zone file. rNếu domain không cung cấp dịch vụ email thì ko cần phải sử dụng MX RR.
-Address (A) RR: định nghĩa IPv4 cho toàn bộ hosts đang tồn tại trong zone. Một IPv6 đc định nghĩa bởi một AAAA RR (Quad A). RR này ko bắt buộc.
-CNAME RR: định nghĩa một RR có tính bí danh (alias), cho phép một host đc định nghĩa bằng một tên khác. RR này là tùy chọn.

3.Ví dụ về một Zone file đơn giản

Đây là một zone file đơn giản, sử dụng cho domain mydomain.local

;Start zone file
$TTL 2d; định nghĩa biến TTL
$ORIGIN mydomain.local. ; định nghiã domain name
;Bắt đầu khai báo SOA RR
@ IN SOA dns.mydomain.local. hostmaster.mydomain.local. (
2011060300; serial number
12h; refresh
15m; update
3w; expire
2h; minimum
)


;định nghĩa name server RR cho domain
IN NS dns.mydomain.local.
;định nghĩa một mail server trong domain
IN MX 10 mail.mydomain.local.
;định nghĩa một A RR
xp IN A 10.0.0.10
mail IN A 10.0.0.3
dns IN A 10.0.0.2
www IN A 10.0.0.4
;định nghĩa một CNAME RR
ftp IN CNAME ftp.mydomain.vn.

Thursday, June 9, 2011

Giả lập switch trên GNS3

-GNS3 là một soft giúp cho việc giả lập để học về Cisco khá tốt. Đặc biệt nó có thể tương tác với mạng thật, điều này giúp ta rất nhiều cho việc giả lập và verify lại cấu hình mạng.
-Một đặc điểm của GNS3 đó là ko hỗ trợ trực tiếp việc giả lập switch Cisco cũng như không hỗ trợ các IOS của sw.
-Vấn đề này có thể được giải quyết bằng cách sử dụng IOS của router Cisco dòng 3600 để giúp cho việc giả lập switch sử dụng chính IOS của router. Ở đây tôi sử dụng 3640 để có thể dùng một module là NM-16ESW   để có thể giả lập thành một switch.
-Các bước thực hiện để có một "switch" trên GNS3:
B1. Download IOS của router 3640 tại đây: http://www.4shared.com/file/Al3iS-hQ/c3640-jk9s-mz124-16a-IOs.html
B2. Add IOS trên vào router dòng c3600 trên GNS3

B3. Cấu hình router và add thêm module NM-16ESW 

Đến đây ta đã có thể sử dụng con router đã đc config với module NM-16ESW ở trên như một switch Cisco. Lưu ý rằng, khi cấu hình vlan cho "switch" trên phải sử dụng câu lệnh vlan database để có thể tạo vlan.


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====