Wednesday, July 20, 2011

Cài đặt JUNOS Olive trên VMware workstation

Đối với một người muốn tự học về mạng máy tính thì việc có các chương trình giả lập để học là hết sức cần thiết. 
Tôi cũng chỉ là một người mới bắt đầu tìm hiểu về các công nghệ của Juniper, để viết được những dòng này, tôi cũng đã phải bỏ ra mất vài ngày để hiểu được các khái niệm, thuật ngữ và cách để có một môi trường simulation cho việc học JUNIPER. TRong quá trình google tìm thông tin thì hầu như chưa có một bài nào hướng dẫn cách cài đặt JUNOS Olive để học bằng TIẾNG VIỆT. Đối với các tut bằng tiếng Anh thì rất nhiều. Cho nên xin nói trước là bài này không phải do tôi tự sáng tác mà nói cho đúng thì là dịch tut cho mọi người. 

Tôi sẽ cố gắng explain các thuật ngữ liên quan để cung cấp một cái nhìn dễ hiểu nhất. Mọi thứ đều từ Google mà ra :).

1.JUNOS Olive là gì?

Nếu như trong Cisco, người ta đưa ra khái niệm IOS để nói về các hệ điều hành dành cho các thiết bị mạng như router, switch, firewall... thì bên Juniper, người ta đưa ra một khái niệm tương đương là JUNOS.
JUNOS là hệ điều hành được based trên nền FreeBSD.
Olive là code name được sử dụng để gán cho các JUNOS chạy trên một PC thay vì chạy trên một thiết bị của JUNIPER.

2.Cài đặt JUNOS Olive.

Để cài đặt Olive, đây là một số công cụ bắt buộc phải có:
-Một bản mini FreeBSD, tôi đang sử dụng bản 4.11. Download:ftp://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/i386/ISO-IMAGES/4.11/4.11-RELEASE-i386-miniinst.iso
-Một virtual machine để cài đặt Free BSD. Tôi đang sử dụng VMware Workstation 7.x
-Một bản JUNOS. Tôi đang sử dụng bản jinstall-9.6R1.13-export-signed.tgz, nếu muốn có thể tự google với tên trên sẽ có link download.

Các bước cài đặt:
-Tạo một máy ảo để cài đặt FreeBSD.
-Cài đặt JUNOS lên FreeBSD.
Tiến hành:

+Tạo một máy ảo để cài đặt FreeBSD.

Việc tạo một máy ảo(virtual machine) trên VMWare sẽ ko được nói ra ở đây. Tôi sẽ chỉ nói về việc cài đặt FreeBSD trên vm mà thôi. 
Lưu ý: sau khi tạo vm xong, chưa khởi động ngay mà tìm đến file .vmx mở bằng notepad hoặc một text editor nào đó, chỉnh sửa một entry như sau:

scsi0.present = "TRUE"

đổi thành:

scsi0.present = "FALSE"

vì JunOS chưa hỗ trợ scsi.
Tiến hành khởi động vm để cài đặt.
======
Khởi động vào FreeBSD:

Chọn việc cài đặt

Sau khi chọn bỏ qua cấu hình kernel, ta sẽ vào "fdisk" để xử lý với disk.


Ở đây, ta sẽ sử dụng toàn bộ dung lượng đĩa, bấm phím A để chọn toàn bộ. Bấm Q để thoát khỏi fdisk. 


Sau khi thoát ra fdisk, ta sẽ chọn cài đặt Boot manager:


Phân chia các partition cho FreeBSD. Dung lượng cho các partitions như sau:
/ (root) : 1G
swap: 1,5G
/config: 1G
/var: dung lượng còn lại

Để tạo mới một partition, ta bấm C, nhập dung lượng cho partition đó, có thể sử dụng đơn vị mà M cho megabytes, G cho Gigabytes.


Tương tự để tạo các partitions đã nói trên


Sau khi phân chia partitions xong, bấm Q để quay lại màn hình cài đặt FreeBSD. Chọn Exit và lựa chọn cài đặt từ đĩa



Chọn OK để tiến hành cài đặt FreeBSD. Đợi đến khi xuất hiện màn hình báo thành công.


Sau khi đã cài đặt xong, hệ thống sẽ yêu cầu cấu hình một vài dịch vụ. Có một vài dịch vụ ko cần thiết thì có thể bỏ qua.

Ethernet or SLIP/PPP: no
Network gateway: no
Configure inetd: no
Anonymous FTP: no
NFS server: no
NFS client: no
Default security profile: no
Customize console settings: no
Time zone: no
Enable Linux binary: no
non-USB: no
Package collection: no

Bắt đầu tạo account cho các users:

Chọn User:


Điền login ID, password


Thiết lập pass cho root



General configuration: no

Thoát khỏi trình cài đặt, reboot và login vào FreeBSD



Như vậy ta đã có một FreeBSD box. Đến đây nên tạo một snapshot cho vm trước khi bắt đầu bước tiếp theo

+Cài đặt JUNOS Olive lên FreeBSD

Yêu cầu đã có file cài đặt JUNOS trên thư mục /var/tmp. Đối với file cài đặt, cần phải tinh chỉnh một số bước Các bước tiến hành:

# ls
jinstall-9.6R1.13-export-signed.tgz vi.recover
# pwd
/var/tmp
# mkdir jinst-signed
# cd jinst-signed/
# tar zxvf ../jinstall-9.6R1.13-export-signed.tgz
# mkdir jinst
# cd jinst
# tar zxvf ../jinstall-9.6R1.13-export.tgz
# mkdir pkgtools
# cd pkgtools
# tar zxvf ../pkgtools.tgz
# cd bin/
# cp /usr/bin/true ./checkpic
# cd ..
# tar zcvf ../pkgtools.tgz *
# cd ..
# rm -rf pkgtools
# tar zcfv /var/tmp/jinstall-9.6R1.13-export-olive.tgz *
Sau khi đã chỉnh sửa file xong, tiến hành cài đặt

Như vậy đã cài đặt xong, hệ thống yêu cầu khởi động lại, nhưng tạm thời chưa reboot ngay. Ta cần phải chỉnh sửa file /boot/loader.conf, thêm dòng
console="vidconsole"


Đến đây là đã xong. Reboot lại hệ thống để hoàn tất cài đặt.

Sau khi khởi động lại, đợi quá trình cài đặt JUNOS Olive hoàn tất. Hệ thống sẽ khởi động lại khoảng 2 lần. Đợi vài phút để quá trình cài đặt hoàn tất.


----Naming conventions for JUNOS----


NHƯ VẬY, TÔI ĐÃ HƯỚNG DẪN CÀI ĐẶT JUNOS OLIVE TRÊN VMWARE WORKSTATION. CẦN CÂU ĐÃ CÓ, CÙNG ĐI CÂU THÔI.

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