The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by causelove_ht94, 2019-11-27 03:51:33

GTQTM_ChinhSuaCuoi

GTQTM_ChinhSuaCuoi

51

cần một con trỏ trỏ đến miền con này để tham chiếu khi có các truy vấn. Không
phải một miền luôn luôn tổ chức miền con và ủy quyền toàn bộ cho các miền con
này, có thể chỉ có vài miền con được ủy quyền. Ví dụ miền hcmuns.edu.vn của
Trường ĐHKHTN chia một số miền con như csc.hcmuns.edu.vn (Trung Tâm Tin
Học), fit.hcmuns.edu.vn (Khoa CNTT) hay math.hcmuns.edu.vn (Khoa Toán),
nhưng các máy chủ phục vụ cho toàn trường thì vẫn thuộc vào miền hcmuns.edu.vn.

3.1.3.4. Forwarders

Là kỹ thuật cho phép Name Server nội bộ chuyển yêu cầu truy vấn cho các
Name Server khác để phân giải các miền bên ngoài.

Ví dụ: Trong Hình 1.8, ta thấy khi Internal DNS Servers nhận yêu cầu truy
vấn của máy trạm nó kiểm tra xem có thể phân giải được yêu cầu này hay không,
nếu không thì nó sẽ chuyển yêu cầu này lên Forwarder DNS server (multihomed) để
nhờ name server này phân giải giùm, sau khi xem xét xong thì Forwarder DNS
server (multihomed) sẽ trả lời yêu cầu này cho Internal DNS Servers hoặc nó sẽ tiếp
tục forward lên các name server ngoài Internet.

Hình 3-7: Forward DNS queries

3.1.3.5. Stub zone

Là zone chứa bảng sao cơ sở dữ liệu DNS từ master name server, Stub zone
chỉ chứa các resource record cần thiết như: A, SOA, NS, một hoặc vài địa chỉ của
master name server hỗ trợ cơ chế cập nhật Stub zone, cơ chế chứng thực name

52

server trong zone và cung cấp cơ chế phân giải tên miền được hiệu quả hơn, đơn
giản hóa công tác quản trị.

Hình 3-8: Stub zone

3.1.4. Các bước cài đặt DNS trong Window 2003 Server

Xem trong phần hướng dẫn cài đặt và cấu hình

3.1.5. Quản lý DNS Server

Chúng ta sẽ tìm hiểu một số thuật ngữ, khái niệm cơ bản trong DNS server
 Primary Server:

Được tạo khi ta add một Primary Zone mới thông qua New Zone Wizard.
Thông tin về tên miền do nó quản lý được lưu trữ tại đây và sau đó có thể được
chuyển sang cho các Secondary Server.

Các tên miền do Primary Server quản lý thì được tạo và sửa đổi tại Primary
Server và được cập nhật đến các Secondary Server.

 Secondary Server:
DNS được khuyến nghị nên sử dụng ít nhất là hai DNS Server để lưu cho

mỗi một Zone. Primary DNS Server quản lý các Zone và Secondary Server sử dụng
để lưu trữ dự phòng cho Primary Server. Secondary DNS Server được khuyến nghị
dùng nhưng không nhất thiết phải có.

53

Secondary Server được phép quản lý những dữ liệu về tên miền (domain),
nhưng Secondary Server không tạo ra các bản ghi về tên miền (domain) mà nó lấy
về từ Primary Server.

Khi lượng truy vấn Zone tăng cao tại Primary Server thì nó sẽ chuyển bớt tải
sang cho Secondary Server. Hoặc khi Primary Server gặp sự cố không hoạt động
được thì Secondary Server sẽ hoạt động thay thế cho đến khi Primary Server hoạt
động trở lại.

Primary Server thường xuyên thay đổi hoặc thêm vào các Zone mới nên
DNS Server sử dụng cơ chế cho phép Secondary lấy thông tin từ Primary Server và
lưu trữ nó. Có hai giải pháp lấy thông tin về các Zone mới là lấy toàn bộ (full) hoặc
chỉ lấy phần thay đổi (incremental).

 Caching-only Server:

Tất cả các DNS Server đều có khả năng lưu trữ dữ liệu trên bộ nhớ cache của
máy để trả lời truy vấn một cách nhanh chóng, nhưng hệ thống DNS còn có một
loại Caching-only Server.

Loại này chỉ sử dụng cho việc truy vấn, lưu giữ câu trả lời dựa trên thông tin
có trên cache của máy và cho kết quả truy vấn. Chúng không hề quản lý một
domain nào và thông tin mà nó chỉ giới hạn những gì được lưu trên cache của
Server.

Lúc ban đầu khi Server bắt đầu chạy thì nó không lưu thông tin nào trong
cache. Thông tin sẽ được cập nhật theo thời gian khi các Client Server truy vấn dịch
vụ DNS. Nếu sử dụng kết nối mạng WAN tốc độ thấp thì việc sử dụng caching-only
DNS Server là giải pháp hữu hiệu cho phép giảm lưu lượng thông tin truy vấn trên
đường truyền.

Caching-only có khả năng trả lời các câu truy vấn đến Client nhưng không
chứa Zone nào và cũng không có quyền quản lý bất kì domain nào. Nó sử dụng bộ

54

cache của mình để lưu các truy vấn của DNS của Client. Thông tin sẽ được lưu
trong cache để trả lời các truy vấn đến Client.

 Stub Server:
Là DNS Server chỉ chứa danh sách các DNS Server đã được xác thực từ

Primary DNS. Sử dụng stub có thể tăng tốc độ phân giải tên và dễ quản lý.
 DNS Zone:
DNS Zone là tập hợp các ánh xạ từ host đến địa chỉ IP và từ IP đến host của

một phần liên tục trong một nhánh của domain.
Thông tin của DNS Zones là những record gồm tên Host và địa chỉ IP được

lưu trong DNS Server, DNS Server quản lý và trả lời những yêu cầu từ Client liên
quan đến DNS Zones này.

Hệ thống tên miền (DNS) cho phép phân chia tên miền để quản lý và nó chia
hệ thống tên miền thành Zone và trong Zone quản lý tên miền được phân chia đó.
Các Zone chứa thông tin về miền cấp thấp hơn, có khả năng chia thành các Zone
cấp thấp hơn và phân quyền cho các DNS Server khác quản lý.

Zone file: Lưu thông tin của Zone, có thể ở dạng text hoặc trong Active
Directory.

Có 2 loại DNS Zone: Standard Primary Zone và Active Directory Integrated
Zones.

 Standard Primary Zone:
Được sử dụng trong các single domain, không có Active Directory.
Tất cả những thay đổi trong Zone sẽ không ảnh hưởng đến các Zone khác.
Tuy nhiên nếu ta tạo thêm một Zone (Secondary Zone), thì Zone này sẽ bị ảnh
hưởng từ Primary Zone. Secondary Zone sẽ lấy thông tin từ Primary Zone.

55

Quá trình chuyển thông tin từ Primary Zone đến Secondary Zone được gọi là
Zone Transfer. Sau một khoảng thời gian nhất định, Secondary Zone sẽ cập nhật các
records từ Primary Zone, quá trình này được gọi là synchronized (đồng bộ hóa).

Khi Primary và Secondary Zones được tạo, các tập tin về Zone sẽ được lưu
trên ổ đĩa cứng C:\Windows\System32\Dns.

 Active Directory Integrated Zones:

Mặc định sẽ được tạo khi máy tính chạy DNS Server được nâng cấp thành
Domain Controller. Active Directory Integrated Zones thực chất là Zone được nâng
cấp lên từ Standard Primary Zone khi lên Domain Controller.

DNS Zones được lưu như một đối tượng trong cơ sở dữ liệu của Active
Directory.

Thông tin về DNS Zones đều chứa trên tất cả Domain Controller. Cho phép
việc cập nhật tự động cơ sở dữ liệu DNS Zones bảo mật (secure updates).

 Resource Records:

Là hệ thống cơ sở dữ liệu của DNS, được sử dụng để phục vụ cho quá trình
trả lời các truy vấn từ DNS Client.

Bảng 3-4: Các loại Record trong DNS

Record Type Mục đích

A Host – Phân giải tên máy thành địa chỉ IP (IPv4).

MX Mail exchange – Chỉ đến mail Server trong domain.

CNAME (Alias) Canonical name – Cho phép một host có thể có nhiều
tên.

NS Name Server – Chứa địa chỉ IP của DNS Server cùng
với các thông tin về domain đó.

SOA Start of Authority – Bao gồm các thông tin về domain
trên DNS Server.

SRV Service – Được sử dụng bởi Active Directory để lưu
thông tin về vị trí của Domain Controllers.

AAAA Host – Phân giải tên máy thành địa chỉ IP (IPv6).

PTR Pointer – Phân giải địa chỉ IP thành tên máy.

56

 Zone Transfer:
Do đề phòng rủi ro khi DNS Server không hoạt động hoặc kết nối bị đứt

người ta khuyên nên dùng nhiều hơn một DNS Server để quản lý một Zone nhằm
tránh trục trặc đường truyền. Do vậy ta phải có cơ chế chuyển dữ liệu các Zone và
đồng bộ giữa các DNS Server khác nhau.

Để cấu hình Zone Transfer, ta chọn Zone, chọn tiếp Properties, chọn tab
Zone Transfer, gõ vào địa chỉ IP của DNS Server.

3.1.6. Cấu hình DNS Server

Xem trong phần hướng dẫn cài đặt và cấu hình

3.1.7. nslookup

Giao thức DNS đã được đưa vào sử dụng cách đây khá lâu và vẫn đang là
một giao thức ổn định và tin cậy. Tuy vậy, DNS đôi khi vẫn có một số vấn đề xảy
ra. Các vấn đề này có thể bắt nguồn từ sự mất kết nối, một bản ghi DNS lỗi hoặc
một số các vấn đề khác. Khi máy chủ DNS hoạt động không bình thường thì chúng
ta có thể dùng NSLOOKUP để kiểm tra sự hoạt động của DNS Server. Tiện ích
NSLOOKUP có sẵn trong Windows và UNIX.

Hình 3-9: Kết quả khi NSLOOKUP truy vấn miền bên ngoài

57

Khi sử dụng lệnh NSLOOKUP, NSLOOKUP mặc nhiên truy vấn tên miền
cục bộ trên mạng nội bộ của mình trước khi truy vấn một tên miền bên ngoài. Ví dụ
nếu brienposey.com là một miền bên ngoài và thực hiện NSLOOKUP đối với
brienposey.com, thì NSLOOKUP sẽ trả về các thông tin như được thể hiện trong

hình 3-20.

Hình 3-9 cho chúng ta sẽ thấy có một thông báo lỗi. Điều đó có nghĩa là
DNS Server tìm kiếm tên miền brienposey.com trong hệ thống DNS nội bộ không
có tên miền brienposey.com. Sau đó DNS Server truy vấn hệ thống DNS bên ngoài
để yêu cầu phân giải địa chỉ IP của tên miền brienposey.com. Khi có kết quả DNS
Server trả kết quả cho client.

Cú pháp của lệnh NSLOOKUP:

nslookup [-option] [hostname] [server]
option: tham số để chỉ rõ thông tin cần truy vấn
hostname: host cần truy vấn
server: DNS server để gởi yêu cầu truy vấn (nếu không có tham số này
thì chương trình sẽ lấy DNS server đã được khai báo).

Ví dụ: truy vấn hostname vnexpress.net

C:\>nslookup vnexpress.net
Server: UnKnown
Address: 192.168.1.1

Non-authoritative answer:
Name: vnexpress.net
Address: 111.65.248.132

Truy vấn hostname vnexpress.net sử dụng DNS Server của Google

C:\>nslookup vnexpress.net 8.8.8.8
Server: google-public-dns-a.google.com
Address: 8.8.8.8

Non-authoritative answer:
Name: vnexpress.net
Address: 111.65.248.132

Truy vấn MX Record sử dụng option -query=mx

C:\>nslookup -query=mx google.com

58

Server: UnKnown
Address: 192.168.1.1

Non-authoritative answer:

google.com MX preference = 50, mail exchanger =

alt4.aspmx.l.google.com

google.com MX preference = 30, mail exchanger =

alt2.aspmx.l.google.com

google.com MX preference = 10, mail exchanger =

aspmx.l.google.com

google.com MX preference = 20, mail exchanger =

alt1.aspmx.l.google.com

google.com MX preference = 40, mail exchanger =

alt3.aspmx.l.google.com

Truy vấn NS Record (name server record) sử dụng -query=ns

C:\>nslookup -query=ns google.com
Server: UnKnown
Address: 192.168.1.1

Non-authoritative answer:

google.com nameserver = ns3.google.com

google.com nameserver = ns4.google.com

google.com nameserver = ns2.google.com

google.com nameserver = ns1.google.com

Google có 4 name server.

Truy vấn SOA Record sử dụng -query=soa

C:\>nslookup -query=soa google.com
Server: UnKnown
Address: 192.168.1.1

Non-authoritative answer:
google.com

primary name server = ns1.google.com
responsible mail addr = dns-admin.google.com
serial = 2013051500
refresh = 7200 (2 hours)
retry = 1800 (30 mins)
expire = 1209600 (14 days)
default TTL = 300 (5 mins)

Hiển thị tất cả available DNS Record sử dụng option -query=any

C:\>nslookup -query=any google.com
Server: UnKnown

59

Address: 192.168.1.1

Non-authoritative answer:

google.com

primary name server = ns1.google.com

responsible mail addr = dns-admin.google.com

serial = 2013051500

refresh = 7200 (2 hours)

retry = 1800 (30 mins)

expire = 1209600 (14 days)

default TTL = 300 (5 mins)

google.com MX preference = 20, mail exchanger =

alt1.aspmx.l.google.com

google.com MX preference = 50, mail exchanger =

alt4.aspmx.l.google.com

google.com MX preference = 40, mail exchanger =

alt3.aspmx.l.google.com

google.com MX preference = 10, mail exchanger =

aspmx.l.google.com

google.com MX preference = 30, mail exchanger =

alt2.aspmx.l.google.com

google.com internet address = 74.125.135.102

google.com internet address = 74.125.135.100

google.com internet address = 74.125.135.139

google.com internet address = 74.125.135.101

google.com internet address = 74.125.135.113

google.com internet address = 74.125.135.138

google.com nameserver = ns4.google.com

google.com nameserver = ns3.google.com

google.com nameserver = ns2.google.com

google.com nameserver = ns1.google.com

Reverse DNS lookup

C:\>nslookup 8.8.8.8
Server: UnKnown
Address: 192.168.1.1

Name: google-public-dns-a.google.com
Address: 8.8.8.8

Chúng ta có thể xem danh sách các tham số và cú pháp bằng lệnh nslookup

sau đó nhập ?

C:\>nslookup
Default Server: UnKnown
Address: 192.168.1.1

60

>?

Commands: (identifiers are shown in uppercase, [] means

optional)

NAME - print info about the host/domain NAME using

default server

NAME1 NAME2 - as above, but use NAME2 as server

help or ? - print info on common commands

set OPTION - set an option

all - print options, current server and

host

[no]debug - print debugging information

[no]d2 - print exhaustive debugging

information

[no]defname - append domain name to each query

[no]recurse - ask for recursive answer to query

[no]search - use domain search list

[no]vc - always use a virtual circuit

domain=NAME - set default domain name to NAME

srchlist=N1[/N2/.../N6] - set domain to N1 and search

list to N1,N2, etc.

root=NAME - set root server to NAME

retry=X - set number of retries to X

timeout=X - set initial time-out interval to X

seconds

type=X - set query type (ex.

A,AAAA,A+AAAA,ANY,CNAME,MX,NS,PTR,

SOA,SRV)

querytype=X - same as type

class=X - set query class (ex. IN (Internet),

ANY)

[no]msxfr - use MS fast zone transfer

ixfrver=X - current version to use in IXFR

transfer request

server NAME - set default server to NAME, using current

default server

lserver NAME - set default server to NAME, using initial

server

root - set current default server to the root

ls [opt] DOMAIN [> FILE] - list addresses in DOMAIN

(optional: output to FILE)

-a - list canonical names and aliases

-d - list all records

-t TYPE - list records of the given RFC record type

(ex. A,CNAME,MX,NS,

PTR etc.)

view FILE - sort an 'ls' output file and view it

with pg

exit - exit the program

61

3.2. DHCP

3.2.1. Khái niệm

3.2.1.1. DHCP là gì?

Viết tắt của từ Dynamic Host Configuration Protocol - Giao thức cấu hình
Host động. Giao thức cung cấp phương pháp thiết lập các thông số địa chỉ IP cần
thiết cho hoạt động của mạng, giúp giảm khối lượng công việc cho quản trị hệ
thống mạng. DHCP được định nghĩa trong RFC 1531 vào tháng 10/1993, là phần
mở rộng của Bootstrap Protocol (BOOTP). Nguyên nhân để cải tiến BOOTP là
BOOTP đòi hỏi phải cấu hình thủ công để thêm thông tin cho từng máy client, và
không cung cấp cơ chế tái sử dụng lại địa chỉ IP.

Với dịch vụ DHCP người quản trị mạng không cần phải thiết lập thông số
địa chỉ IP cho từng máy client. Việc thiết lập thông số địa chỉ IP cho từng máy
client (máy chạy dịch vụ DHCP client) sẽ do DHCP Server đảm nhiệm.

3.2.1.2. Ưu điểm của DHCP server

 Quản lý TCP/IP tập trung:
Thay vì phải quản lý địa chỉ IP và các tham số TCP/IP khác vào một cuốn sổ

(đây là việc mà quản trị mạng phải làm khi cấu hình TCP/IP bằng tay) thì DHCP
server sẽ quản lý tập trung trên giao diện của nó. Giúp các nhà quản trị vừa dễ quản
lý, cấu hình, khắc phục khi có lỗi xảy ra trên các máy trạm.

 Giảm gánh nặng cho các nhà quản trị hệ thống:
Trước đây các nhà quản trị mạng thường phải nhập cấu hình địa chỉ IP bằng

tay (gọi là IP tĩnh) nhưng nay nhờ có DHCP server nó sẽ cấp IP một cách tự động
cho các máy trạm. Nhất là trong môi trường mạng lớn thì sự cần thiết và hữu ích
của dịch vụ mạng này mới thấy rõ ràng nhất.

62

 Giúp hệ thống mạng luôn được duy trì ổn định:

Địa chỉ IP cấp phát cho các máy trạm lấy từ dải IP cấu hình sẵn trên DHCP
server. Các tham số (Gateway, DNS server ...) cung cấp cho tất cả các máy trạm là
chính xác. Sự trùng lặp IP không bao giờ xảy ra. Các máy trạm luôn luôn có một
cấu hình TCP/IP chuẩn làm cho hệ thống hoạt động liên tục, giảm gánh nặng cho
người quản trị.

 Linh hoạt và khả năng mở rộng:

Người quản trị có thể thay đổi cấu hình IP một cách dễ dàng khi cơ sở hạ
tầng mạng thay đổi. Do đó làm tăng sự linh hoạt và khả năng mở rộng của hệ thống
mạng.

3.2.1.3. Nguyên lý hoạt động của DHCP

Giao thức DHCP làm việc theo mô hình client/server. Theo đó, quá trình
tương tác giữa DHCP client và server diễn ra theo các bước sau:

Khi máy client khởi động, máy sẽ gửi broadcast gói tin DHCPDISCOVER
yêu cầu DHCP Server cung cấp thông tin địa chỉ IP cho máy client. Gói tin này
cũng chứa địa chỉ MAC của máy client.

DHCP Server khi nhận được gói tin yêu cầu đó, nếu còn khả năng cung cấp
địa chỉ IP sẽ gửi lại cho máy Client gói tin DHCPOFFER. Gói tin DHCPOFFER sẽ
chứa thông tin địa chỉ IP để cung cấp cho máy client. DHCP Server sẽ không cấp
phát địa chỉ IP vừa cung cấp cho máy client cho các máy khác trong một khoảng
thời gian nhất định.

Máy Client sẽ gửi broadcast lại gói tin DHCPREQUEST chấp nhận địa chỉ
IP vừa được cấp phát.

DHCP Server sẽ gửi lại cho client gói tin DHCPACK để xác nhận địa chỉ IP,
subnet mask và thời hạn sử dụng sẽ chính thức được áp dụng. Ngoài ra Server còn
gửi kèm theo những thông tin cấu hình bổ sung như địa chỉ của gateway mặc định,
địa chỉ DNS Server…

63

3.2.2. Cài đặt DHCP

Xem trong phần hướng dẫn cài đặt và cấu hình

3.2.3. Cấu hình DHCP

Xem trong phần hướng dẫn cài đặt và cấu hình

3.3. Mail server

3.3.1. Giới thiệu

Để gửi một bức thư, thông thường ta có thể mất một vài ngày với một bức
thư gửi trong nước và nhiều thời gian hơn để gửi bức thư đó ra nước ngoài. Do đó
để tiết kiệm thời gian, ngày nay nhiều người đã chuyển qua sử dụng thư điện tử.
Thư điện tử được gửi tới người nhận rất nhanh, dễ dàng và rẻ hơn nhiều so với thư
truyền thống.

Thư điện tử là một thông điệp được gửi từ máy tính này đến một máy tính
khác trên mạng máy tính mang nội dung cần thiết từ người gửi đến người nhận. Do
thư điện tử gửi qua lại trên mạng và sử dụng tín hiệu điện để truyền vì vậy tốc độ
truyền rất nhanh.

 Lợi ích của thư điện tử
Thư điện tử có rất nhiều công dụng vì chuyển nhanh chóng và sử dụng dễ

dàng. Mọi người có thể trao đổi ý kiến, tài liệu với nhau trong thời gian ngắn. Thư
điện tử ngày càng đóng một vai trò quan trọng trong đời sống, khoa học, kinh tế, xã
hội, giáo giục, và an ninh quốc gia. Ngày nay người ta trao đổi với nhau hàng ngày
những ý kiến, tài liệu bằng điện thư mặc dù cách xa nhau hàng ngàn cây số.

Vì thư điện tử phát triển dựa vào cấu trúc của Internet cho nên cùng với sự
phát triển của Internet, thư điện tử ngày càng phổ biển trên toàn thế giới. Người ta
không ngừng tìm cách để khai thác tối đa lợi ích của nó. Thư điện tử phát triển được
bổ sung thêm các tính năng sau:

64

 Mỗi bức thư điện tử sẽ mang nhận dạng người gửi. Như vậy người gửi sẽ
biết ai đã gửi thư cho mình một cách chính xác.

 Thay vì gửi lá thư điện tử bằng chữ, người gửi có thể dùng điện thư để
gửi tiếng nói. Người nhận sẽ lắng nghe được giọng nói của người gửi khi
nhận được thư.

 Người gửi có thể gửi một cuốn phim hoặc là những hình ảnh cho người
nhận.

Hình 3-10: Mô hình của hệ thống Mail server
 Hệ thống Mail Server cơ bản bao gồm:

 Giao thức SMTP để chuyển, nhận thư giữa các máy chủ Mail server với
nhau.

 Giao thức SMTP để cho phép Mail Client gửi thư lên máy chủ
 Giao thức POP hoặc IMAP để Mail Client nhận thư về.
Sau đây chúng ta sẽ tìm hiểu các giao thức trong hệ thống mail server.

65

3.3.2. Giao thức SMTP

3.3.2.1. Giới thiệu

Việc phát triển các hệ thống thư điện tử (Mail System) đòi hỏi phải hình
thành các chuẩn chung về thư điện tử. Có hai chuẩn về thư điện tử quan trọng nhất
và được sử dụng từ trước đến nay là X.400 và SMTP (Simple Mail Transfer
Protocol). SMTP thường đi kèm với chuẩn POP3. Mục đích chính của X.400 là cho
phép các E-mail có thể được truyền nhận thông qua các loại mạng khác nhau về cấu
hình phần cứng, hệ điều hành mạng, giao thức truyền dẫn. Còn chuẩn SMTP là khi
MTA (Mail Transfer Agent) hoặc MUA (Mail User Agent) gửi thư phải dùng giao
thức SMTP gửi thư điện tử cho một MTA nhận thư cũng phải sử dụng SMTP. Sau
đó, MUA sẽ lấy thư khi nào họ muốn dùng giao thức POP (Post Office Protocol).
Ngày nay POP được cải tiến thành POP3 ( Post Office Protocol version3).

Mail server Mail server
POP
POP POP
POP Server Server
PC
Maibox PC
MUA Maibox MUA

Mailbox SMTP Mailbox

MDA MDA SMTP
MTA
MTA SMTP

Hình 3-11: Hoạt động của POP và SMTP
SMTP hoạt động ở tầng ứng dụng trong mô hình 7 lớp OSI và sử dụng cổng
25 để gửi thử điện tử trên mạng TCP/IP. SMTP được phát triển vào năm 1982 bởi
tổ chức IETF ( Internet Engineering Task Force) và được chuẩn hóa theo tiêu chuẩn
RFCS 821 và 822. SMTP sử dụng cổng 25 của TCP. Ngoài ra SMTP cũng có kết
hợp thêm hai giao thức khác hỗ trợ cho việc lấy thư là POP3 và IMAP4.

66

Giao thức SMTP là một tập hợp các câu lệnh điều khiển việc gởi thư. Chúng
ta sẽ tìm hiểu các câu lệnh cỏ bản của giao thức SMTP.

3.3.2.2. Ý nghĩa các lệnh SMTP

 HELO
Sử dụng để xác định máy gởi với máy nhận. Lệnh này với tham số là tên

máy gửi.
 MAIL
Lệnh này được dùng để khởi tạo quá trình trao đổi mail. Tham số gồm

“FROM:” tiếp theo sau là địa chỉ email của người gửi.
 RCPT (RECIPIENT)
Lệnh này được sử dụng để xác định người nhận mail (hoặc nhiều người nhận

cùng một nội dung mail). Tham số gồm “TO:” theo sau là các địa chỉ người nhận.
 DATA
Thông báo bắt đầu gửi nội dung của mail (phần thân của message). Dữ liệu

kết thúc bằng một dòng trống và một dấu chấm (.).
 RSET (RESET)
Hủy phiên gửi mail hiện hành.
 VRFY (VERIFY)
Sử dụng để kiểm tra người nhận mail.
 SEND
Lệnh này được dùng để khởi tạo quá trình gởi mail mà nội dung mail sẽ được

gởi tới một hay nhiều người nhận.
 SOML (SEND OR MAIL)
Lệnh này được dùng để khởi tạo quá trình gởi mail mà nội dung mail sẽ

được gởi tới một hay nhiều người nhận hoặc các hộp thư.

67

 HELP

Yêu cầu thông tin trợ giúp.

 NOOP

Viết tắt của “no operation”, lệnh này không làm gì cả.

 QUIT

Đóng kết nối .

Cú pháp của các lệnh

Bảng 3-5: Các lệnh của SMTP
HELO <SP> <domain> <CRLF>
MAIL <SP> FROM:<reverse-path> <CRLF>
RCPT <SP> TO:<forward-path> <CRLF>
DATA <CRLF>
RSET <CRLF>
SEND <SP> FROM:<reverse-path> <CRLF>
SOML <SP> FROM:<reverse-path> <CRLF>
VRFY <SP> <string> <CRLF>
HELP [<SP> <string>] <CRLF>
NOOP <CRLF>
QUIT <CRLF>
Chú thích <SP> = Space bar, <CRLF> = Enter.

Các lệnh bao gồm một mã lệnh theo sau là tham số của lệnh. Mã lệnh là 4 ký
tự alphabetic. Không phân biệt chữ thường hoặc chữ hoa. Giữa mã lệnh và đối số là
một hoặc nhiều khoảng trắng. Tuy nhiên trong reverse-path và forward-path phân
biệt chữ hoa và chữ thường. Đặc biệt, trên một số host, tên user cũng phân biệt kiểu
chữ hoa và thường. Tham số bao gồm một chuỗi ký tự kết thúc bằng “<CRLF>”.

3.3.2.3. Ví dụ về một giao dịch của SMTP

Server : 220 sample2 Simple Mail Transfer Service Ready
Khi được kết nối qua giao thức TCP/IP, máy nhận trả lời với mã 220 để báo

cho máy gởi biết dịch vụ SMTP đã sẵn sàng.

Client : HELO tmt01vn
Bên nhận đã sẵn sàng, bên gởi gởi HELO và tên người gởi

68

Server : 250 helo.
Trả với mã 250 báo cho biết bên nhận đã sẵn sàng

Client : MAIL FROM:<[email protected]>
Bên gởi dùng lệnh MAIL để khởi động phiên giao dịch. Cú pháp như trên

cho bên nhận biết địa chỉ bên gởi ( mailbox của bên gởi ) để bên nhận gởi thông báo
lỗi nếu có về bên gởi

Server : 250 OK
Trả lời với mã 250 cho biết sẵn sàng

Client : RCPT TO:<[email protected]>
Server: 250 OK
Client : RCPT TO:[email protected]

Muốn gởi cho bao nhiêu người dùng bấy nhiêu lệnh RCPT kèm theo địa chỉ
nhận, bên nhận nếu đúng sẽ trả về mã 250 kèm theo OK

Server : 550 No such user here
Nếu trả về mã 550 cho biết không có mailbox theo địa chỉ trên.

Client : DATA
Báo cho bên nhận biết dữ liệu bắt đầu từ sau từ DATA

Server : 354 Start mail input; end with <CRLF>.<CRLF>
Mã 354 báo cho biết đã sẵn sàng nhận mail, kết thúc mail với ký tự

CRLF.CRLF

Client : Bắt đầu thân của mail
…v..v.. (dữ liệu mail)
Client : ( đến khi kết thúc nhấn CRLF.CRLF )
Server : 250 OK
Client : QUIT

Phát lệnh báo kết thúc phiên giao dịch

Server : 221 sample2 Service closing transmission channel
Mã 221 đóng kết nối đã thiết lập

Trong ví dụ trên, sau phiên làm việc mail được gởi tới địa chỉ mail
[email protected].

69

3.3.3. Giao thức POP3

3.3.3.1. Giới thiệu

Post Office Protocol Version 3 (POP3) là một giao thức cho phép client có
thể truy xuất và lấy mail trong hộp thư trên Mail server. Sau khi client đã lấy được
mail thì những mail đó sẽ bị xóa trong hộp thư trên mail Server. Cổng dành cho
dịch vụ POP3 là 110. POP3 server sẽ khởi động và lắng nghe trên cổng này. Khi
client muốn sử dụng dịch vụ POP3 thì nó sẽ thiết lập một kết nối tới cổng 110 của
POP3 Server. Khi kết nối được thiết lập thì POP3 Server sẽ gởi tới client một lời
chào. Sau đó, POP3 Client và POP3 Server trao đổi thông tin cho đến khi kết nối
được đóng hay hủy bỏ.

Các lệnh trong POP3 không phân biệt chữ thường và chữ hoa, gồm một tập
các chữ cái (chiều dài từ 3 đến 4 ký tự), có thể có hoặc không có tham số theo sau
(chiều dài của tham số có thể lên đến 40 ký tự). Các lệnh và tham số phân cách
nhau bởi khoảng trắng. Kết thúc 1 lệnh và tham số là <CRLF>.

POP3 server sau khi nhận yêu cầu tử client sẽ gởi trả về cho client thông tin
bao gồm phần trạng thái và có thể có các thông tin hỗ trợ theo sau. Chiều dài có thể
lên tới 512 ký tự, kết thúc bằng cặp <CRLF>. Có hai loại trạng thái là: “+OK” và “-
ERR”. Server sẽ gởi các trạng thái ở dạng chữ hoa.

3.3.3.2. Các lệnh của POP3

 USER username

 Cung cấp thông tin về tên của hộp thư. Tham số username xác định tài
khoản của hộp thư.

 Trả lời: OK nếu hộp thư có tồn tại trên Mail server. ERR không tìm thấy
hộp thư trên Mail server.

70

 PASS password
 Cung cấp thông tin về mật mã của hộp thư. Tham số password là mật mã
để truy cập vào hộp thư.
 Trả lời: +OK hộp thư đã sẵn sang và cho phép truy cập. ERR password
mật mã sai.

 STAT
 Thông tin trạng thái của hộp thư, không có tham số.
 Trả lời: +OK nn mm.
o nn: số mail
o mm: kích thước của các mail tính theo byte.
 Các mail được đánh dấu xóa không được đếm trong tổng số.

 LIST [msg]
 Liệt kê các mail có trong hộp thư không tính các message đã được đánh
dấu xóa.
 Tham số msg: số thứ tự của mail.
 Trả lời: OK danh sách các mail. ERR không tìm thấy mail.
 Danh sách các mail bao gồm các thong tin: số thứ tự của mail, kích thước
của mail đó tính theo byte.

 RETR msg
 Lấy mail có số thứ tự là msg. tham số msg là số thứ tự của mail, không
tính các mail đã được đánh dấu xóa.
 Trả lời: +OK nội dung của mail (nội dung của mail có thể trên nhiều
dòng), ERR không tìm thấy mail tương ứng.

71

 DELE msg

 Xóa mail có số thứ tự là msg. tham số msg là số thứ tự của mail, không
tính các mail đã được đánh dấu xóa. Thực chất POP3 Server chỉ đánh dấu
xoá các mail này. Tuy nhiên, quá trình xóa thật sự sẽ diễn ra ở trạng thái
cập nhật (Update).

 Trả lời: +OK mail đã được xóa, ERR không tìm thấy mail cần xóa.

 Pop3 server sẽ đánh dấu xoá các message này. Tuy nhiên, quá trình xóa
thật sự sẽ diễn ra ở trạng thái cập nhật (Update).

 NOOP

 Pop3 server không làm gì, chỉ hồi âm lại cho client với trả lời: “+OK”.

 Trả lời: +OK
 RSET

 Phục hồi lại các mail đã bị đánh dấu xóa bởi POP3 Server.

 Trả lời: +OK.
 QUIT

 Chấp nhận các thay đổi và ngắt kết nối.

 Trả lời: +OK.

3.3.3.3. Ví dụ về một session của Pop3

 Giai đoạn 1 : Nhận dạng user
CLIENT : USER abc // cho biết tên user là abc
SERVER : +OK // báo thành công
CLIENT : PASS 123456 // cho biết password
SERVER : +OK complet: maildrop has 2 messages ( 520 octets…)

 Giai đoạn 2 : Trao đổi
CLIENT : STAT // số mail có trong mailbox
SERVER : +OK 2 520 // có 2 mail với tổng kích thước là 520
CLIENT : LIST // Liệt kê các ID và kích thước các mail

72

SERVER : +OK 2 message ( 520 octets )
SERVER : 1 110 // mail thứ 1 kích thước 110
SERVER : 2 410 // mail thứ 2 kích thước 410
CLIENT : LIST 1 // Cho thông tin về mail có ID là 1
SERVER : +OK 1 110
CLIENT : LIST 4
SERVER : -ERR nosuch message, only 2 message in maildrop
….v…v…

 Giai đoạn 3 :

CLIENT : QUIT //đóng kết nối TCP hiện hành
SERVER : +OK dhbk POP3 server signing off…

Chú ý rằng các mail bị đánh dấu xóa bằng lệnh DELE thực sự chưa bị xóa
ngay lúc đó. Ta có thể dùng lệnh RSET để phục hồi lại mail đã được đánh dấu xóa.
Chúng chỉ thực sự bị xóa bỏ khỏi hộp thư khi bước vào giai đoạn Update (khi gởi
lệnh QUIT).

3.3.4. Giao thức IMAP4

3.3.4.1. Giới thiệu

Internet Message Access Protocol version 4 (IMAP4) cũng là một giao thức
cho phép client có thể truy xuất và lấy mail trong hộp thư trên Mail server. Nhưng
khác với POP3, sau khi client đã lấy được mail thì những mail đó sẽ không bị xóa
trong hộp thư trên Mail Server. Do đó người sử có thể truy xuất hộp thư từ nhiều
thiết bị khác nhau mà vẫn đảm bảo đầy đủ các mail trong hộp thư. IMAP4 hoạt
động dựa trên mô hình client – server, cổng dành cho dịch vụ IMAP4 là 143. Để
client và Server giao tiếp với nhau, IMAP4 cung cấp một tập lệnh để client và Mail
Server dùng trong quá trình trao đổi thông tin.

3.3.4.2. Các lệnh của IMAP4

Tập lệnh của IMAP4 rev1 được định nghĩa trong rfc2060. Sau đây là một số
lệnh cơ bản trong bộ giao thức này.

73

 CAPABILITY

 Đây là lệnh được thực hiện trước tiên của chương trình mail Client muốn
lấy mail từ Mail Server bằng giao thức IMAP4. Mục đích lệnh này là
kiểm tra version của giao thức có đáp ứng được yêu cầu hay không.

 Kết quả trả về : OK - capability completed (version của giao thức đáp
ứng được yêu cầu), BAD - command unknown or arguments invalid
(version của giao thức không đáp ứng được yêu cầu).

 Ví dụ:

Client: a001 CAPABILITY
Server: * CAPABILITY IMAP4rev1
Server: a001 OK CAPABILITY completed

 LOGIN [user name] [password ]

 Lệnh này để đăng nhập vào hệ thống. Mail Server sẽ xác nhận người sử
dụng có hợp pháp không? Nếu thành công thì người dùng sẽ thực hiện
các thao tác lệnh tiếp theo.

 Tham số: [user name] tên đăng nhập, [password ] mật mã để đăng nhập.

 Kết quả trả về là: OK - login completed, now in authenticated state (đăng
nhập thành công), NO - login failure: user name or password rejected,
BAD - command unknown or arguments invalid (đăng nhập thất bại)

 Ví dụ:

Client: a001 LOGIN user01 pass123
Server: a001 OK LOGIN completed

 CHECK

 Lệnh này dùng để kiểm tra tại thời điểm này lệnh SELECT đã thực hiện
hay chưa, nếu thực hiện rồi trả về OK.

 Kết quả trả về: OK - check completed, BAD - command unknown or
arguments invalid.

74

 SELECT folder_name

 Lệnh Select dùng để truy xuất thư mục của hộp thư, thông tin trả về gồm
có bao nhiêu thư bao gồm thư mới, thư đã đọc và thư đã xoá. Lệnh này
cho phép ta thay đổi thuộc tính của hộp thư cũng như những lá thư mà
chúng lưu trữ bởi các lệnh khác trong IMAP.

 Tham số: foder_name tên thư mục hộp thư.

 Kết quả trả về : OK - select completed, now in selected state, NO - select
failure, now in authenticated state: no such mailbox, can't access mailbox,
BAD - command unknown or arguments invalid.

 Ví dụ :

Client: A142 SELECT INBOX
Server: * 172 EXISTS
Server: * 1 RECENT
Server: * OK [UNSEEN 12] Message 12 is first unseen
Server: * OK [UIDVALIDITY 3857529045] UIDs valid
Server: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
Server: * OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited
Server: A142 OK [READ-WRITE] SELECT completed.

Trong ví dụ trên chúng ta quan tâm các thông số sau:

 EXISTS : tổng số lá thư mà hộp thư này lưu trữ ví dụ trên là 172 lá thư.

 RECENT : là số lá thư mới trong thời gian gần đây mà người sử dụng
chưa đọc ví dụ trên là 1.

 UNSEEN : là tổng số lá thư cũ mà người dùng chỉ nhìn thấy nhưng nội
dung chưa xem qua.

 UIDVALIDITY : dùng để chỉ định trạng thái của hộp thư đây là một
thông số không quan trọng. Mỗi Mail Server sẽ có cách đặc tả thông số
này khác nhau tùy từng mục đích sử dụng nó của các nhà quản trị mail
thông số này liên quan đến lệnh UID.

75

 EXAMINE Folder_name

 Lệnh EXAMINE giống lệnh SELECT và trả về cùng một kết quả. Tuy
nhiên, thư mục được chọn sẽ được xác định là chỉ đọc.

 Tham số: Folder_name tên của thư mục cần truy xuất trong hộp thư.

 Kết quả trả về: OK - examine completed, now in selected state, NO -
examine failure, now in authenticated state: no such mailbox, can't access
mailbox, BAD - command unknown or arguments invalid

 Ví dụ:

Client: A932 EXAMINE Inbox
Server: * 17 EXISTS
Server: * 2 RECENT
Server: * OK [UNSEEN 8] Message 8 is first unseen
Server: * OK [UIDVALIDITY 3857529045] UIDs valid
Server: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
Server: * OK [PERMANENTFLAGS ()] No permanent flags permitted
Server: A932 OK [READ-ONLY] EXAMINE completed

 CREATE folder_name

 Lệnh này dùng tạo thư mục trong hộp thư.

 Tham số: tên thư mục cần tạo.

 Kết quả trả về: OK - create completed,NO - create failure: can't create
mailbox with that name, BAD - command unknown or arguments invalid

 Ví dụ:

CLIENT A003 CREATE abcd
SERVER A003 OK CREATE completed
CLIENT A004 CREATE Inbox
SERVER A004 No mailbox name Exist

 DELETE Folder_name

 Lệnh xóa thư mục trong hộp thư.

 Tham số: Folder_name tên thư mục cần xóa.

76

 Kết quả trả về: OK - delete completed, NO - delete failure: can't delete
mailbox with that name, BAD - command unknown or arguments invalid

 Ví dụ:
CLIENT A683 DELETE abcd
SERVER A683 OK DELETE completed
CLIENT A684 DELETE abcd
SERVER A684 NO Name "abcd" has inferior hierarchical names

 RENAME tên_thư_mục tên_mới

 Lệnh đổi tên thư mục.

 Tham số: tên_thư_mục_hiện_tại tên_mới.

 Kết quả: OK - rename completed, NO - rename failure: can't rename
mailbox with that name, can't rename to mailbox with that name, BAD -
command unknown or arguments invalid.

 Ví dụ:
CLIENT: A409 RENAME abcd box
SERVER: A409 OK RENAME completed

 COPY

 Lệnh sao chép một lá thư từ thư mục này sang thư mục khác.

 Tham số: tên_lá_thư tên_thư_mục

 Kết quả trả về: OK - copy completed,NO - copy error: can't copy those
messages or to that name, BAD - command unknown or arguments
invalid.

 LIST

 Liệt kê danh sách các thư mục và các thư trong thư mục hiện hành. Lệnh
này giống lệnh Dir trong MS-DOS.

 Tham số: tên hay những ký tự đặc trưng (*,?).

77

 Kết quả trả về: OK - list completed, NO - list failure: can't list that
reference or name, BAD - command unknown or arguments invalid

 Ví dụ:

CLIENT A101 LIST "" ""
SERVER * LIST (\Noselect) "/" ""
SERVER A101 OK LIST Completed

CLIENT A102 LIST ab* ""
SERVER * LIST (\Noselect) "/" ""
SERVER A102 OK LIST Completed

CLIENT A102 LIST * *
SERVER * LIST () "/*" "Inbox"
SERVER * LIST () "/*" "abcd"
SERVER * LIST () "/*" "itgroup"
SERVER A102 OK LIST Completed

CLIENT A102 LIST abc* *
SERVER * LIST () "abc*" "abcd"
SERVER A102 OK LIST Complete

 LUSB

 Lệnh này tương tự như list nhưng chỉ khác là những thư mục nhận được
phải ở trạng thái active.

 Tham số: tên hay những ký tự đặc trưng.

 Kết quả trả về: OK - list completed, NO - list failure: can't list that
reference or name, BAD - command unknown or arguments invalid

 STATUS

 Lệnh này trả về trạng thái hiện tại của thư mục.

 Tham số: tên thư mục (trạng thái)

 Kết quả trả về: OK - status completed, NO - status failure: no status for
that name, BAD - command unknown or arguments invalid

 MESSAGES: số thư mới trong hộp thư
 RECENT: số thư cũ.

78

 UIDNEXT: giá trị UID tiếp theo sẽ được gán cho một lá thư mới
trong hộp thư

 UIDVALIDITY: giá trị UID của hộp thư.
 UNSEEN: nhưng lá thư của mà người dùng chưa xem nội dung.
 Ví dụ:

CLIENT A042 STATUS tuyen (MESSAGES RECENT)
SERVER * STATUS tuyen (MESSAGES 23 RECENT 40)
SERVER A042 OK STATUS completed

 NOOP

 Lệnh này không làm gì cả, mục đích để kiểm tra xem giữa mail Client và
mail Server còn liên lạc với nhau không.

 Kết quả trả về: OK - noop completed, BAD - command unknown or

arguments invalid

 Ví dụ:

CLIENT a002 NOOP
SERVER a002 OK NOOP completed
...
CLIENT a047 NOOP
SERVER * 22 EXPUNGE
SERVER * 23 EXISTS
SERVER * 3 RECENT
SERVER * 14 FETCH (FLAGS (\Seen \Deleted))
SERVER a047 OK NOOP completed

 STORE

 Thiết lập lại trạng thái của thư, mỗi lá thư có nhưng trạng thái như thư
mới nhận: Recent, trạng thái chưa đọc: Unseen, đã đọc: Seen và trạng thái
xóa: Deleted và một số trạng thái khác.

 Nếu thêm trạng thái thì dùng lệnh với tham số tương ứng là +FLAGS

<flag list> hay +FLAGS.SILENT <flag list>

 Nếu loại bỏ trạng thái thì dùng lệnh với tham số tương ứng là -FLAGS

<flag list> hay -FLAGS.SILENT <flag list>

79

 Kết quả trả về: OK - store completed, NO - store error: can't store that
data, BAD - command unknown or arguments invalid

 Ví dụ:

CLIENT A003 STORE 2:4 +FLAGS (\Deleted)
SERVER * 2 FETCH FLAGS (\Deleted \Seen)
SERVER * 3 FETCH FLAGS (\Deleted)
SERVER * 4 FETCH FLAGS (\Deleted \Flagged \Seen)
SERVER A003 OK STORE completed
CLIENT A003 STORE 2:4 +FLAGS.SILENT (\Deleted)
SERVER A003 OK STORE completed

 LOGOUT

 Lệnh dùng để đóng kết nối sau một phiên làm việc.

 Kết quả tả về: OK - logout completed, BAD - command unknown or
arguments invalid

3.3.5. MDaemon Mail Server

3.3.5.1. Giới thiệu

Hiện nay trên thị trường có rất nhiều phần mềm cho phép cài đặt và quản trị
hệ thống thư điện tử và chúng đều có tính năng cơ bản tương tự nhau như:
Sendmail, Qmail, Microsoft Exchange Server nhưng MDaemon là thông dụng hơn
hẳn vì những lý do sau:

 MDaemon là phần mềm Mail Server có giao diện thân thiện với người
dùng (sử dụng giao diện đồ họa).

 Chạy trên hệ điều hành của Microsoft mà hiện nay hầu hết các máy tính ở
Việt Nam đều sử dụng hệ điều hành của Microsoft.

 Có khả năng quản lý hàng trăm tên miền và hàng ngàn người dùng.

 Yêu cầu phần cứng thấp, do đó không cần đầu tư quá nhiều vào Server.

 Cung cấp nhiều công cụ quản lý cho hệ thống, đảm bảo an toàn thư điện
tử.

80

 Hỗ trợ IMAP, SMTP và POP3.
 Chức năng để nhận mail từ các mail server
 Tích hợp với Microsoft Outlook (sử dụng Outlook Connector).
 Hỗ trợ web mail client nhiều ngôn ngữ.
 Hỗ trợ công cụ quản trị từ xa dành cho admin là WebAdmin
 Chức năng chặn các thư Spam, lọc nội dung thư, danh sách thư,
 Hỗ trợ hầu hết các thiết bị di động truy cập vào email, lịch, địa chỉ liên

lạc.
 Bảo mật cao khi sử dụng thêm tính năng SecurityPlus for MDaemon. Sử

dụng kỹ thuật xác thực thư tiên tiến Vouch By Reference(VRB).
 MDaemon Server hoạt động rất hiệu quả cho các hệ thống mạng vừa và

nhỏ.
MDaemon là phần mềm Mail Server được phát triển bởi công ty phần mềm
Alt-N (http://www.altn.com/). Sản phẩm MDaemon cung cấp một sản phẩm đầy đủ
cho công việc thư điện tử cũng như khả năng làm việc theo nhóm với tính năng
chuyên nghiệp nhưng lại rất dễ sử dụng.
Cấu hình tối thiểu để cài đặt MDaemon là:
 PC: Pentium III 500 MHz bộ xử lý Pentium 4 2.4 GHz
 RAM: 512 MB
 HDD: còn trống ít nhất 100MB
 OS: Microsoft Windows XP/2000/2003/Vista/2008/7 (32 hoặc 64-bit)
 Internet Explorer 5.5

81

 Địa chỉ IP của DNS mà chúng ta truy vấn: Chúng ta có thể sử dụng DNS
của các ISP hoặc có thể dùng DNS nội bộ và DNS nội bộ forward đến
các DNS ISP.

 Cách thức ISP chuyển mail của chúng ta đến chúng ta: Có 2 giải pháp:
 ISP thiết lập domain name của chúng ta để mail chuyển thẳng đến
server mail của chúng ta sử dụng SMTP. Trường hợp này chúng ta
không cần sử dụng MDaemon Domain POP.
 ISP chuyển tất cả thư của tên miền đến account “catch-all” POP3
trên server mail trung chuyển để chờ chúng ta lấy thư về. Trường
hợp này chúng ta sẽ dùng MDaemon Domain POP. Để sử dụng chức
năng này chúng ta phải biết các thông số sau: ISP POP3 server name
hoặc IP; POP3 account username và POP3 account password.

Cài đặt MDaemon: Xem trong phần hướng dẫn cài đặt và cấu hình

3.3.5.2. Cấu hình Mail Client

Xem trong phần hướng dẫn cài đặt và cấu hình

3.3.5.3. Xây dựng Web mail

Chương trình mail server MDaemon còn cung cấp cho chúng ta dịch vụ rất
tiện lợi đó là web mail. Với dịch vụ web mail chúng ta không cần cài đặt cấu hình
thêm bất cứ chương trình mail client nào mà chỉ cần chương trình web browser đa
số đều được tích hợp sẵn trong các hệ điều hành. Ví dụ dưới đây sẽ sử dụng chương
trình IE được tích hợp sẵn trong windows.

Mở chương trình IE, tại ô address nhập: http://máycàiMDaemon:3000 trong
ví dụ này ta sẽ nhập: http://192.168.0.1:3000.

Email Address: tài khoản email ví dụ: admin
Password: mật khẩu của tài khoản: ví dụ: 123456
Sau đó bấm Sign In.

82
Hình 3-12: Dịch vụ webmail của MDaemon

Hình 3-13: Giao diện quản lý webmail

83

Chúng ta thấy tài khoản admin hiện tại có 2 email. Ngoài ra web mail còn
cung cấp rất nhiều chức năng khác như: Calendar, Contacts, Tasks, Notes… Các
chức năng này rất hữu ích và cần thiết cho người sử dụng.

3.3.6. Quản lý Mail server

Ngoài chức năng web mail, MDaemon còn cung cấp chức năng Webadmin
dùng để quản trị hệ thống mail server thay thế cho chương trình chính của
MDaemon. Nhờ dịch vụ này mà người quản trị hệ thống có thể sử dụng bất cứ máy
tính nào có kết nối đến máy có cài đặt chương trình MDaemon để quản trị hệ thống
mail server.

Xem trong phần hướng dẫn cài đặt và cấu hình

3.4. Web Server

3.4.1. Giới thiệu

World Wide Web (www) là ứng dụng phổ biến nhất hiện nay, và ngày nay
nó là thành phần lớn nhất của Internet dựa trên kỹ thuật biểu diễn thông tin gọi là
siêu văn bản. Trong đó các từ được chọn trong văn bản có thể được mở rộng bất cứ
lúc nào để cung cấp đầy đủ hơn thông tin về từ đó. Sự mở rộng ở đây có nghĩa là
chúng có thể liên kết tới các tài liệu khác bao gồm văn bản, hình ảnh, âm thanh, hay
các loại… có chứa thông tin bổ sung. Thuở ban đầu, Internet là hệ thống truyền
thông dựa trên văn bản, việc liên kết với những site khác có nghĩa là phải gõ những
địa chỉ mã hóa dài với độ chính xác 100%. World Wide Web là giải pháp để giải
quyết vấn đề khó khăn đó. Khả năng đặt hình ảnh lên Web Site làm cho thông tin
trên Web trở nên hấp dẫn hơn, lôi cuốn hơn. Ngoài ra HTTP (Hypertext Transfer
Protocol) cho phép trang Web kết nối với nhau qua các siêu liên kết (hyperlink),
nhờ vậy mà người dùng dễ dàng chuyển qua các Web site khác một cách dễ dàng.
Các trình duyệt ở các máy Client sẽ yêu cầu những tập tin HTML từ Web Server
bằng cách thiết lập một kết nối với máy web Server và đưa ra các yêu cầu tập tin

84

đến Server. Server nhận những yêu cầu này, lấy ra những tập tin tương ứng và gởi
chúng đến trình duyệt web ở Client.

Web Server là dịch vụ cung cấp thông tin ở dạng siêu văn bản, được biểu
diễn ở dạng trang. Các trang có chứa các liên kết tham chiếu đến các trang khác
hoặc đến các tài nguyên khác trên cùng một Web Server hoặc trên một Web Server
khác. Các trang tài liệu siêu văn bản sau khi soạn thảo sẽ được quản lý bởi chương
trình Web Server chạy trên máy Server trong hệ thống mạng.

3.4.2. Cơ chế hoạt động của Web server

Web Server dùng giao thức HTTP để lấy tài nguyên trên Web xác định thông
qua URL (Uniform Resource Location). HTTP (Hyper Text Transfer Protocol) là
một giao thức ở tầng ứng dụng được thiết kế để truy cập tài nguyên Web nhanh
chóng và hiệu quả. Giao thức này dựa vào mô hình request-response. Dịch vụ Web
xây dựng theo mô hình client/server, trong đó Web browser đóng vai trò là client
gởi các yêu cầu dưới dạng URL đến server. Web server trả lời bằng cách trả về một
trang HTML (Hypertext Markup Language (HTML).

Trang HTML có thể là một trang thông tin tĩnh, tức là nội dung của nó đã có
dạng xác định và được lưu trên Web server, hoặc một trang Web động (dynamic nội
dung không xác định trước) mà web server tạo ra tại thời điểm client yêu cầu để trả
lời theo yêu cầu của client.

 Web browser gửi yêu cầu URL đến Web server:

Hình 3-14: Web browser gửi yêu cầu URL đến Web server
Mỗi trang trong một intranet hoặc trên Internet có một URL (Uniform
Resource Location) duy nhất định vị chúng. Web browser yêu cầu một trang bằng

85

cách gửi một URL đến một Web server. Web server sẽ dùng các thông tin trong
URL để định vị và tổ chức một trang HTML để gửi về cho Web browser.

Một chuỗi URL nói chung có dạng sau:

<protocol>://<domain_name of Server>/<path><:port>
Trong đó:

 Tiền tố <protocol> chỉ ra giao thức được sử dụng cho dịch vụ, ví dụ giao
thức Hypertext Transport Protocol (HTTP) được dùng cho dịch vụ Web,
giao thức FTP, gopher,...

 <domain_name of Server> là tên DNS (Domain Name System) của máy
Web server.

 <path> là đường dẫn đến thông tin được yêu cầu trên server.

 <port> là số cổng của web server, mặc định nếu chúng ta không nhập thì
cổng mặc định là 80.

Bảng 3-6: Ví dụ về các địa chỉ URL khác nhau

Protocol Domain name Path

http:// www.hcmuns.edu.vn /vanphong/dtao.htm

https://(secure HTTP) www.company.com /catalog/orders.htm

gopher:// gopher.college.edu /research/astronomy/index.htm

ftp:// orion.bureau.gov /stars/alpha quadrant/startlist.txt

 Web server trả lời yêu cầu của Web browser:

Hình 3-15: Web server trả lời yêu cầu URL đến Web browser
Web server sẽ trả một trang HTML về cho Web browser, các trang HTML
thuộc một trong 3 kiểu sau:

86

Trang Web tĩnh (Static webpage): là những trang HTML được chuẩn bị sẵn
và lưu trữ trên web server. Web server chỉ đơn giản là lấy trang này gởi về cho Web
browser mà không gọi thi hành một chương trình hay một script nào khác. người
dùng yêu cầu một trang Web tĩnh bằng cách nhập vào một chuỗi URL hoặc click
chuột vào một siêu liên kết trỏ tới URL.

Trang Web động (Dynamic webpage): là những trang Web được tạo ra tại
thời điểm client gửi yêu cầu để đáp ứng yêu cầu của user. Server có thể sẽ gọi chạy
một chương trình khác, sử dụng các API của server, các ngôn ngữ kịch bản CGI
script, ASP, PHP, truy vấn cơ sở dữ liệu ... tuỳ theo các thông tin mà web browser
cung cấp.

Danh sách liệt kê (Directory listing): Nếu user gửi yêu cầu mà không mô tả
một file cụ thể, thì có thể tạo một trang mặc nhiên cho Web site hay cho một thư
mục, hoặc cấu hình web server cho phép duyệt thư mục. Nếu sử dụng trang HTML
mặc nhiên cho thư mục, thì trang này sẽ được gửi cho Web browser, còn nếu không
có thì một directory listing (phiên bản HTML của Windows Explorer hay File
Manager chạy trên trình duyệt) được trả về cho user dưới dạng một trang HTML,
trong đó mỗi file và thư mục thể hiện như một siêu liên kết. Sau đó user có thể truy
cập đến một file bất kỳ bằng cách click vào siêu liên kết tương ứng trong directory-
listing.

Hình 3-16: Mô hình hoạt động của web server

87

3.4.3. Tìm hiểu giao thức HTTP

HTTP là chữ viết tắt từ Hyper Text Transfer Protocol (giao thức truyền tải
siêu văn bản). Nó là giao thức cơ bản mà World Wide Web sử dụng. HTTP xác
định cách các thông điệp (các file văn bản, hình ảnh đồ hoạ, âm thanh, video, và các
file multimedia khác) được định dạng và truyền tải ra sao, và những hành động nào
mà Web server (máy chủ Web) và trình duyệt Web (browser) phải làm để đáp ứng
các lệnh. Chẳng hạn, khi chúng ta gõ một địa chỉ URL vào trình duyệt Web, một
lệnh HTTP sẽ được gửi tới Web Server để ra lệnh và hướng dẫn cho Web Server
tìm đúng trang Web được yêu cầu và chuyển về cho trình duyệt Web. Tóm lại,
HTTP là giao thức truyền tải các file giữa Web server và trình duyệt Web để người
dùng có thể xem một trang Web trên Internet. HTTP là một giao thức ở tầng ứng
dụng của bộ giao thức TCP/IP.

HTTP là một giao thức “phi trạng thái” (stateless) và connectionless bởi vì
mỗi lệnh đều được thực thi một cách độc lập, lệnh sau không liên quan gì đến các
lệnh đã thực hiện trước đó. Đây chính là một hạn chế, khiếm khuyết của HTTP và
sự hạn chế này đang được các nhà phát triển khắc phục trong các công nghệ mới
như ActiveX, Java, JavaScript và cookies.

Phiên bản mới nhất của HTTP là 1.1. So với phiên bản đầu tiên (HTTP 1.0),
phiên bản mới này truyền tải các trang Web nhanh hơn và giảm tình trạng tắc
nghẽn. Giao thức HTTP khá đơn giản gồm một số lệnh cơ bản sau đây:

 GET:

Yêu cầu web server cung cấp tài liệu được chỉ định. Lệnh GET chỉ yêu cầu
lấy dữ liệu cần thiết.

 HEAD:

Yêu cầu web server cung cấp thông tin phần tiêu đề của tài liệu, nhưng
không yêu cầu cung cấp nội dung của tài liệu.

88

 POST:
Yêu cầu web server nhận những thông tin kèm theo trong yêu cầu được

chuyển lên từ web browser. Ví dụ: thông số về username/password để đăng nhập hệ
thống, hoặc là phần thông tin cần được cập nhật vào cơ sở dữ liệu …

 PUT:
Yêu cầu web server nhận những dữ liệu kèm theo trong yêu cầu được chuyển

lên từ web browser. Ví dụ: chuyển file tài liệu lên web server…
 DELETE:
Yêu cầu web server xóa phần tài nguyên được chỉ định.
 TRACE:
Lặp lại yêu cầu của web browser để kiểm tra xem những gì thay đổi hoặc bổ

sung đã được thực hiện bởi Web Server.
 OPTIONS:
Trả về những lệnh của HTTP mà web server hỗ trợ cho địa chỉ được chỉ

định. Lệnh này có thể được sử dụng để kiểm tra chức năng của web server bằng yêu
cầu '*' thay vì một tài liệu cụ thể.

 CONNECT:
Chuyển đổi các yêu cầu kết nối tới một transparent TCP/IP tunnel, có thể

hiểu đơn giản hơn là để tạo điều kiện kết nối thông tin liên lạc được mã hóa SSL
(HTTPS) thông qua một proxy HTTP không được mã hóa.

 PATCH:
Được sử dụng để áp dụng các thay đổi. Web Server được yêu cầu phải thực

hiện các phương thức GET và HEAD.
Ví dụ về các lệnh của HTTP:

Client request:

89

GET /index.html HTTP/1.1
Host: www.example.com

Server response:

HTTP/1.1 200 OK
Date: Mon, 23 MAY 2012 22:38:34 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Etag: "3f80f-1b6-3e1cb03b"
Content-Type: text/html; charset=UTF-8
Content-Length: 131
Connection: close

<html>
<head>
<title>An Example Page</title>
</head>
<body>
Hello World, this is a very simple HTML document.
</body>
</html>

3.4.4. Cài đặt Web server

Xem trong phần hướng dẫn cài đặt và cấu hình

3.4.5. Quản lý Web server

Xem trong phần hướng dẫn cài đặt và cấu hình

3.5. SNMP

Hệ thống quản lý mạng nói chung được gọi là NMS (Network Management
System) bao gồm:

 WMI (Web management interface)

 CLI (Command Line Interface)

 SNMP (Simple Network Management Protocol)

Trong đó, SNMP là phương pháp được sử dụng rộng rãi nhất. Công nghệ
SNMP Simple Network Management Protocol là dựa trên TCP/IP protocol dùng
trong việc quản lý các thiết bị trên hệ thống mạng. Những thiết bị thông thường

90

dùng SNMP quản lý bao gồm router, switch, firewall, printer… kể cả những thiết bị
không có CPU hay thiết bị có những bộ vi xử lý phức tạp, thậm chí cả PC và hay
các server. Nếu chúng ta sử dụng WinXP chúng ta có thể mở các chức năng SNMP
của máy chúng ta lên sau đó từ 1 máy khác chúng ta có thể đọc được các thông tin
của máy chúng ta thông qua SNMP. Không phải tất cả các thiết bị như là switch,
router hay printer nào cũng có thể sử dụng SNMP, chỉ có những thiết bị nào có hỗ
trợ mới có thể sử dụng SNMP để quản lý nó.

Chức năng quản lý này bao gồm truy cập thông tin, thay đổi cấu hình, và
thông báo những sự cố và trục trặc của thiết bị. Trên các thiết bị này thường có 1
chương trình theo dõi, kiểm soát và điều khiển hoạt động của thiết bị. Nếu nó phát
hiện ra có sự cố thì có thể gởi các message thông qua SNMP TrapAgent. Người ta
thường chạy các SNMP agent để lắng nghe các SNMP packet (UDP packet) đến từ
port 161. Khi nhận được request từ các máy khác, thì agent này sẽ trả lời lại dựa
trên bảng thông tin MIB (management information block) hay nó sẽ chạy các
program thích hợp để xử lý yêu cầu đó.

SNMP là một tập hợp các lệnh đơn giản để giúp nhà quản trị mạng có thể
quản lý, theo dõi, thay đổi trạng thái của mạng. Ví dụ chúng ta có thể dùng SNMP
để tắt một interface nào đó trên router, theo dõi hoạt động của card Ethernet, hoặc
kiểm soát nhiệt độ trên switch và cảnh báo khi nhiệt độ quá cao.

SNMP còn có thể dùng để quản lý các hệ thống Unix, Window, máy in,
nguồn điện… Nói chung, tất cả các thiết bị có thể chạy các phần mềm cho phép lấy
được thông tin SNMP đều có thể quản lý được. Không chỉ các thiết bị vật lý mới
quản lý được mà cả những phần mềm như web server, database cũng có thể sử dụng
SNMP để quản lý, theo dõi.

3.5.1. Mô hình SNMP

SNMP (Simple Network Management Protocol): là giao thức được sử dụng
rất phổ biến để giám sát, theo dõi và điều khiển thiết bị mạng như switch, router,
bridge... Với những văn phòng nhỏ chỉ có vài thiết bị mạng và đặt tập trung một nơi

91

thì có lẽ chúng ta không thấy được lợi ích của SNMP. Nhưng với các hệ thống
mạng lớn, thiết bị phân tán nhiều nơi và chúng ta cần phải ngồi một chỗ mà có thể
quản lý tất cả thiết bị, chúng ta mới thấy được lợi ích của SNMP. Microsoft
Windows Server 2003 cung cấp phần mềm SNMP agent để có thể làm việc với
phần mềm quản lý SNMP từ nhà cung cấp thứ 3 nhằm giám sát các trạng thái của
thiết bị quản lý và các ứng dụng.

SNMP là giao thức quản lý phổ biến để thu thập thông tin từ những thiết bị
trên mạng. Mỗi thiết bị chạy một chương trình con thu thập thông tin và cung cấp
thông tin đó cho bộ phận quản lý.

Hiện tại SNMP bao gồm 3 phiên bản:
 SNMP version 1:

Chuẩn của giao thức SNMP được định nghĩa trong RFC 1157 và là một
chuẩn đầy đủ của IETF. SNMP v1 không được bảo mật, nó cho bất kỳ một ứng
dụng nào đó dựa trên SNMP đều có thể truy cập vào các thiết bị quản lý. Có 3 tiêu
chuẩn trong SNMP v1: read-only, read-write và trap.

SNMP version1: hoạt động với các tính năng sau:

 Get: Được sử dụng bởi các NMS, để lấy các giá trị của một hay nhiều đối
tượng từ Agent

 Get next: Được sử dụng bởi các NMS, để lấy các giá trị của các đối tượng
kế tiếp ví dụ trong một bảng hoặc một trong một danh sách các Agent

 Set: Được sử dụng bởi các NMS để đặt giá trị của các đối tượng trong
một trường đại lý.

 Trap: Được sử dụng bởi các Agent để thông báo cho NMS biết các sự
kiện xảy ra.

92

 SNMP version 2:
Phiên bản này dựa trên các chuỗi “community”. Do đó phiên bản này được

gọi là SNMPv2c, được định nghĩa trong RFC 1905, 1906, 1907, và đây chỉ là bản
thử nghiệm của IETF. Mặc dù chỉ là thử nghiệm nhưng nhiều nhà sản xuất đã đưa
nó vào thực nghiệm.

SNMP version 2 hoạt động với các tính năng sau:

 GetBulk: Được sử dụng bởi các NMS để lấy một khối lượng dữ liệu lớn
từ các Agent một cách hiệu quả.

 Inform : Cho phép một NMS để gửi thông tin đến một trap.
 SNMP version 3

Là phiên bản tiếp theo được IETF đưa ra và là bản đầy đủ. Nó được khuyến
nghị sử dụng và được định nghĩa trong RFC 1905, RFC 1906, RFC 1907, RFC
2571, RFC 2572, RFC 2573, RFC 2574 và RFC 2575. SNMP version 3 hỗ trợ giao
tiếp bảo mật và có xác nhận giữa các thiết bị.

SNMP version 3 có tính năng bảo mật: chặn người dùng dựa trên mô hình
bảo mật USM (User-based Security Model) dựa trên Access Control Model
(VACM: View-based Access Control Model) để kiểm soát truy cập.

SNMP sử dụng giao thức UDP. Giao thức UDP nhanh hơn, nhưng không tin
cậy. Tuy nhiên nó cung cấp nhiều chức năng cho phép 1 trạm quản lý tập trung có
thể liên lạc với agent từ xa được đặt ở bất kì thiết bị được quản lý nào mà nó có thể
liên lạc. Ngoài ra việc sử dụng UDP sẽ giảm độ trễ trong mạng so với việc sử dụng
TCP.

Có hai nhân tố chính trong SNMP: manager và agent:
 Manager: là một server có chạy các chương trình có thể thực hiện một số

chức năng quản lý mạng. Manager có thể xem như là NMS (Network
Manager Stations). NMS có khả năng thăm dò và thu thập các cảnh báo từ

93

các Agent trong mạng. Các cảnh báo của agent là cách mà agent báo với
NMS khi có sự cố xảy ra. Cảnh bảo của agent được gửi một cách không
đồng bộ, không nằm trong việc trả lời truy vấn của NMS. NMS dựa trên các
thông tin trả lời của agent để có các phương án giúp mạng hoạt động hiệu
quả hơn. Ví dụ khi đường dây T1 kết nối tới Internet bị giảm băng thông
nghiêm trọng, router sẽ gửi một thông tin cảnh báo tới NMS. NMS sẽ có
một số hành động, ít nhất là lưu lại giúp ta có thể biết việc gì đã xảy ra. Các
hành động này của NMS phải được cài đặt trước.
 Agent: là một phần trong các chương trình chạy trên các thiết bị mạng cần
quản lý. Nó có thể là một chương trình độc lập như các daemon trong Unix,
hoặc được tích hợp vào hệ điều hành như IOS của Cisco trên router. Ngày
nay, đa số các thiết bị hoạt động tới lớp IP và được cài đặt SMNP agent. Các
nhà sản xuất ngày càng muốn phát triển các agent trong các sản phẩm của
họ để giúp công việc của người quản lý hệ thống hay quản trị mạng đơn
giản hơn. Các agent cung cấp thông tin cho NMS bằng cách lưu trữ các hoạt
động khác nhau của thiết bị. Một số thiết bị thường gửi một thông báo “tất
cả đều bình thường” khi nó chuyển từ một trạng thái xấu sang một trạng thái
tốt. Điều này giúp xác định khi nào một vấn đề được giải quyết.
Mô hình hoạt động giữa Manager và Agent

Hình 3-17: Mô hình hoạt động giữa Manager và Agent

94

SNMP sử dụng UDP (User Datagram Protocol) là một trong những giao thức
cốt lõi của giao thức TCP/IP. Dùng UDP, chương trình trên mạng có thể gởi những
dữ liệu ngắn được gọi là datagram tới máy khác. UDP không tin cậy và đảm bảo thứ
tự truyền nhận như là TCP. Các gói dữ liệu có thể đến không đúng thứ tự hoặc bị
mất mà không có thông báo. Tuy nhiên UDP nhanh và hiệu quả hơn đối với các
mục tiêu như kích thước nhỏ và yêu cầu khắt khe về thời gian. Và UDP là phương
thức truyền mà trong đó hai đầu thông tin không cần thiết lập kết nối trước khi dữ
liệu được trao đổi (connectionless), việc này phù hợp trong điều kiện mạng gặp trục
trặc, hư hỏng v.v.

SNMP có các phương thức quản lý nhất định và các phương thức này được
định dạng bởi các gói tin PDU (Protocol Data Unit). Các manager và agent sử dụng
PDU để trao đổi với nhau.

3.5.2. SNMP message

Hình 3-18: Mô hình hoạt động SNMP

95

3.5.2.1. Get

Get được gửi từ NMS tới agent. Agent nhận yêu cầu và xử lý với khả năng
tốt nhất có thể. Nếu một thiết bị nào đó đang bận và không có khả năng trả lời yêu
cầu thì nó sẽ hủy yêu cầu này. Nếu agent tập hợp đủ thông tin cần thiết cho yêu cầu,
nó sẽ gửi lại cho NMS một “get-response”.

Để agent hiểu được NMS cần tìm thông tin gì, nó dựa vào một mục trong
“get” là “variable binding” hay varbind. Varbind là một danh sách các đối tượng
của MIB mà NMS muốn lấy từ agent. Agent hiểu câu hỏi theo dạng: OID=value để
tìm thông tin trả lời.

$snmpget cisco.ora.com public .1.3.6.1.2.1.1.6.0
system.sysLocation.0 = ""
Đây là một câu lệnh “snmpget” trên Unix. “cisco.ora.com” là tên của thiết bị,

“public” là chuỗi chỉ đây là yêu cầu chỉ đọc (read-only), “.1.3.6.1.2.1.1.6.0” là OID.
“.1.3.6.1.2.1.1” chỉ tới nhóm “system” trong MIB. “.6” chỉ tới một trường trong
“system” là “sysLocation”. Trong câu lệnh này ta muốn hỏi Cisco router rằng việc
định vị hệ thống đã được cài đặt chưa. Câu trả lời system.sysLocation.0 = "" tức là
chưa cài đặt. Câu trả lời của “snmpget” theo dạng của varbind: OID=value. Còn
phần cuối trong OID ở “snmpget”; “.0” nằm trong quy ước của MIB. Khi hỏi một
đối tượng trong MIB ta cần chỉ rõ 2 trường “x.y”, ở đây là “.6.0”. “x” là OID thực
tế của đối tượng. Còn “.y” được dùng trong các đối tượng có hướng như một bảng
để hiểu hàng nào của bảng, với trường hợp đối tượng vô hướng như trường hợp này
“y” = “0”. Các hàng trong bảng được đánh số từ số 1 trở đi.

Câu lệnh “get” hữu ích trong việc truy vấn một đối tượng riêng lẻ trong MIB.
Khi muốn biết thông tin về nhiều đối tượng thì “get” tốn khá nhiều thời gian. Câu
lệnh “get-next” giải quyết được vấn đề này.

3.5.2.2. Get-next

Get-next đưa ra một dãy các lệnh để lấy thông tin từ một nhóm trong MIB.
Agent sẽ lần lượt trả lời tất cả các đối tượng có trong câu truy vấn của “get-next”

96

tương tự như “get”, cho đến khi nào hết các đối tượng trong dãy. Ví dụ ta dùng lệnh
“snmpwalk”. “snmpwalk” tương tự như “snmpget” nhưng không chỉ tới một đối
tượng mà chỉ tới một nhánh nào đó:

$snmpwalk cisco.ora.com public system system.sysDescr.0 =
"Cisco Internetwork Operating System Software IOS (tm)
2500 Software (C2500-I-L), Version 11.2(5), RELEASE
SOFTWARE (fc1)..Copyright (c) 1986-1997 by cisco
Systems, Inc...Compiled Mon 31-Mar-97 19:53 by ckralik"
system.sysObjectID.0 = OID: enterprises.9.1.19
system.sysUpTime.0 = Timeticks: (27210723) 3 days,
3:35:07.23 system.sysContact.0 = "" system.sysName.0 =
"cisco.ora.com" system.sysLocation.0 = ""
system.sysServices.0 = 6
Ở đây ta muôn lấy thông tin của nhóm “system”, agent sẽ gửi trả toàn bộ

thông tin của “system” theo yêu cầu. Quá trình tìm nhóm “system” trong MIB thực
hiện theo cây từ gốc, đến một nút nếu có nhiều nhánh thì chọn nhánh tìm theo chỉ số
của nhánh từ nhỏ đến lớn:

3.5.2.3. Get-bulk

Get-bulk được định nghĩa trong SNMPv2. Nó cho phép lấy thông tin quản lý
từ nhiều phần trong bảng. Dùng “get” có thể làm được điều này. Tuy nhiên, kích
thước của câu hỏi có thể bị giới hạn bởi agent. Khi đó nếu nó không thể trả lời toàn
bộ yêu cầu, nó gửi trả một thông điệp lỗi mà không có dữ liệu. Với trường hợp dùng
câu lệnh “get-bulk”, agent sẽ gửi càng nhiều trả lời nếu nó có thể. Do đó, việc trả lời
một phần của yêu cầu là có thể xảy ra. Hai trường cần khai báo trong “get-bulk” là:
“nonrepeaters” và “max-repetitions”. “nonrepeaters” báo cho agent biết N đối tượng
đầu tiên có thể trả lời lại như một câu lệnh “get” đơn. “mã-repeaters” báo cho agent

biết cần cố gắng tăng lên tối đa M yêu cầu “get-next” cho các đối tượng còn lại:

$snmpbulkget -v2c -B 1 3 linux.ora.com public sysDescr
ifInOctets ifOutOctets system.sysDescr.0 = "Linux linux
2.2.5-15 #3 Thu May 27 19:33:18 EDT 1999 i686"
interfaces.ifTable.ifEntry.ifInOctets.1 = 70840
interfaces.ifTable.ifEntry.ifOutOctets.1 = 70840
interfaces.ifTable.ifEntry.ifInOctets.2 = 143548020
interfaces.ifTable.ifEntry.ifOutOctets.2 = 111725152
interfaces.ifTable.ifEntry.ifInOctets.3 = 0

97

interfaces.ifTable.ifEntry.ifOutOctets.3 = 0
Ở đây, ta hỏi về 3 varbind: sysDescr, ifInOctets, và ifOutOctets. Tổng số
varbind được tính theo công thức:

N + (M * R)
N: nonrepeater, tức số các đối tượng vô hướng
M: max-repeatition
R: số các đối tượng có hướng trong yêu cầu chỉ có sysDescr là vô
hướng N = 1

M có thể đặt cho là 3 , tức là 3 trường cho mỗi ifInOctets và ifOutOctets. Có

2 đối tượng có hướng là ifInOctets và ifOutOctets R = 2. Tổng số có 1 + 3*2 = 7

varbind. Còn trường “–v2c” là do “get-bulk” là câu lệnh của SNMPv2 nên sử dụng

“-v2c” để chỉ rằng sử dụng PDU của SNMPv2. “-B 1 3” là để đặt tham số N và M

cho lệnh.

3.5.2.4. Set

Bảng 3-7: Thông báo lỗi của SNMPv1

SNMPv1 Error Message Ý nghĩa

noError(0) Không có lỗi

tooBig(1) Yêu cầu quá lớn để có thể dồn vào một câu trả lời

noSuchName(2) OID yêu cầu không tìm thấy, tức không tồn tại ở
agent

badValue(3) Câu lệnh “set” dùng không đúng với các object
“read-write” hay “write-only”

readOnly(4) Lỗi này ít dùng. Lỗi “noSuchName” tương đương
với lỗi này

genErr(5) Dùng cho tất cả các lỗi còn lại

Để thay đổi giá trị của một đối tượng hoặc thêm một hàng mới vào bảng. Đối

tượng này cần phải được định nghĩa trong MIB là “read-write” hay “write-only”.

NMS có thể dùng “set” để đặt giá trị cho nhiều đối tượng cùng một lúc:

$snmpget cisco.ora.com public system.sysLocation.0
system.sysLocation.0 = ""

$snmpset cisco.ora.com private system.sysLocation.0 s
Atlanta, GA" system.sysLocation.0 = "Atlanta, GA"

$snmpget cisco.ora.com public system.sysLocation.0
system.sysLocation.0 = "Atlanta, GA"

98

Bảng 3-8: Thông báo lỗi của SNMPv2

SNMPv2 Error Ý nghĩa
Message
Lỗi khi lệnh “set” cố gắng xâm nhập vào một biến cấm
noAccess(6) xâm nhập. Khi đó, biến đó có trường “ACCESS” là “not-
accessible”

wrongType(7) Lỗi xảy ra khi lệnh “set” đặt một kiểu dữ liệu khác với
kiểu định nghĩa sẵn của đối tượng. Ví dụ khi “set” đặt giá
trị kiểu string cho một đối tượng kiểu số nguyên

wrongLength(8) INTEGER
wrongEncoding(9)
Lỗi khi lệnh “set” đưa vào một giá trị có chiều dài lớn
hơn chiều dài tối đa của đối tượng

Lỗi khi lệnh “set” sử dụng cách mã hóa khác với cách đối
tượng đã định nghĩa.

wrongValue(10) Một biến được đặt một giá trị mà nó không hiểu. Khi một
noCreation(11) biến theo kiểu liệt kê “enumeration” được đặt một giá trị
không theo kiểu liệt kê.
undoFailed(15)
authorizationError(16) Lỗi khi cố đặt một giá trị cho một biến không tồn tại hoặc
tạo một biến không có trong MIB inconsistentValue Một
biến MIB ở trạng thái không nhất quán, và nó không chấp
nhận bất cứ câu lệnh “set” nào.resourceUnavailable(13)
Không có tài nguyên hệ thống để thực hiện lệnh
“set”commitFailed(14) Đại diện cho tất cả các lỗi khi lệnh
“set” thất bại

Một lệnh “set” không thành công và agent không thể phục
hồi lại trạng thái trước khi lệnh “set” bắt đầu thất bại.

Một lệnh SNMP không được xác thực, khi một người nào
đó đưa ra mật mã không đúng.

notWritable(17) Một biến không chấp nhận lệnh “set”
inconsistentName(18)
Cố gắng đặt một giá trị, nhưng việc cố gắng thất bại vì
biến đó đang ở tình trạng không nhất quán.

Câu lệnh đầu là dùng “get” để lấy giá trị hiện tại của “system.sysLocation”.

Trong câu lệnh “snmpset” các trường “cisco.ora.com” và “system.sysLocation.0”

có ý nghĩa giống với “get”. “private” để chỉ đối tượng “read-write”, và đặt giá trị

mới bằng: “s "Atlanta, GA"”. “s” tức là đặt giá trị của “system.sysLocation.0” thành

string, và giá trị mới là "Atlanta, GA" . Varbind này được định nghĩa trong RFC

1213 là kiểu string tối đa 255 ký tự:

sysLocation OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..255))

99

ACCESS read-write
STATUS mandatory
DESCRIPTION "The physical location of this node (e.g.,
'telephone closet,3rd floor')."::= { system 6 }
Có thể cài đặt nhiều đối tượng cùng lúc, tuy nhiên nếu có một lệnh bị lỗi,

toàn bộ sẽ bị hủy bỏ.

Các loại lỗi của SNMPv1 mang tính chất chung, không rõ ràng. Do đó

SNMPv2 đưa ra thêm một số loại lỗi như trong Bảng 3-8.

3.5.2.5. SNMP Traps

Trap là cảnh báo của agent tự động gửi cho NMS để NMS biết có tình trạng
xấu xảy ra ở agent.

Khi nhận được một “trap” từ agent, NMS không trả lời lại bằng “ACK”. Do
đó agent không thể nào biết được là lời cảnh báo của nó có tới được NMS hay
không. Khi nhận được một “trap” từ agent, nó tìm xem “trap number” để hiểu ý
nghĩa của “trap” đó.

Bảng 3-9: Ý nghĩa của các SNMP trap

Số và tên kiểu trap Định nghĩa

coldStart (0) Thông báo agent vừa khởi động lại. Tất cả các biến quản lý
sẽ được reset, các biến kiểu “Counters” và “Gauges” được
đặt về 0. “coldStart” dùng để xác định một thiết bị mới gia
nhập vào mạng. Khi một thiết bị khởi động xong, nó gửi một
“trap” tới NMS. Nếu địa chỉ NMS là đúng, NMS có thể
nhận được và xác định xem có quản lý thiết bị đó hay không.

warmStart (1) Thông báo agent vừa khởi tạo lại, không có biến nào bị

reset.

linkDown (2) Gửi đi khi một interface trên thiết bị chuyển sang trạng thái
“down”.

linkUp (3) Gửi đi khi một interface trở lại trạng thái “up”.

authenticationFailure Cảnh báo khi một người nào đó cố truy cập vào agent đó mà
(4) không được xác thực.

egpNeighborLoss Cảnh báo một EGP lân cận bị “down”

(5)

enterpriseSpecific Đây là một “trap” riêng, chỉ được biết bởi agent và NMS tự

(6) định nghĩa riêng chúng. NMS sử dụng phương pháp giải mã
đặc biệt để hiểu được thông điệp này.

100

3.5.3. MIB

MIB là một file dữ liệu tập hợp đầy đủ các đối tượng được quản lý trong
mạng. Ở đây, đối tượng đơn giản là các biến lưu giữ thông tin về trạng thái của một
vài quá trình thực thi trên thiết bị hay những thông tin (dạng text) về tên và mô tả
thiết bị. Thông tin này được định nghĩa rất nghiêm ngặt để cho những hệ thống
quản lý khác có thể truy cập và sử dụng.

Một thiết bị thường có nhiều đối tượng mô tả nó. Có nhiều nhóm đối tượng
như hệ thống, giao diện, IP, TCP. Hệ thống là một nhóm MIB chứa các biến đối
tượng lưu giữ thông tin như tên thiết bị, vị trí, và các thông tin mô tả khác. Nhóm
giao diện giữ những thông tin về card mạng và theo dõi những số liệu thống kê như
số byte truyền đi và nhận được qua giao diện. Nhóm IP gồm các đối tượng theo dõi
dòng dữ liệu, sự phân đoạn gói dữ liệu và những thông tin tương tự. Nhóm TCP
gồm các đối tượng theo dõi sự kết nối.

MIB có thể xem như là một cơ sở dữ liệu của các đối tượng quản lý được
agent lưu trữ. Bất kỳ thông tin nào mà NMS có thể truy cập đều được định nghĩa
trong MIB.

3.6. Các dịch vụ ứng dụng khác

3.6.1. FTP

File Transfer Protocol (FTP): FTP là một giao thức truyền và tải file trên
mạng dựa trên TCP nên rất đáng tin cậy. FTP là công cụ dùng để quản lý file và thư
mục giữa các máy.

FTP dùng 2 cổng TCP. TCP cổng 20 là kênh dữ liệu, và cổng 21 là kênh
lệnh. FTP khác với các ứng dụng TCP/IP là phải dùng 2 kênh, cho phép truyền tải
lệnh và dữ liệu của FTP trên 2 kênh. Nó cũng khác các giao thức khác ở một chức
năng quan trọng: FTP truyền tải files ở foreground, so với giao thức khác ở
background. Hay nói cách khác, FPT không dùng spoolers hay queues, do vậy việc
truyền tải thực hiện bằng thời gian thực.


Click to View FlipBook Version