27 tháng 2, 2014

Basic Network Troubleshooting Using the ping utility and nslookup Tool

Có rất nhiều tiện ích nhỏ, đơn giản để kiểm tra hệ thống mạng mà không phải ai cũng biết, bài viết này sẽ giới thiệu cho các bạn một số tiện ích cần thiết để kiểm tra hệ thống mạng như ping, tracert, nslookup.

Sử dụng lệnh ping:

Ping một máy tính trong hệ thống mạng là một tiện ích được các quản trị viên sử dụng để kiểm tra sự tồn tại của 1 host và dùng để đo thời gian gửi nhận của gói tin.

Lệnh ping gửi những gói Internet Control Message Protocol (ICMP) echo request tới host đích và chờ ICMP response. Khi ICMP response thực hiện, lệnh ping sẽ cho ta biết thời gian của việc gửi nhận gọi là round-trip time, và ghi lại mọi gói tin bị mất.

Dùng địa chỉ http://www.certifiedhacker.com để thực hành lệnh ping.

Mở Command Prompt (cmd), chạy bằng quyền administrator (cách mở thế nào mình không bày nhé J ).
Từ màn hình cmd chạy lệnh ping www.certifiedhacker.com


Ta nhận được địa chỉ ip của www.certifiedhacker.com là 202.75.54.101

Ta cũng nhận được thông tin về những gói tin gửi/nhận (Sent/Received), những gói tin bị mất (Lost), và Approximate round-trip time.

Ta đi tìm maximum frame size trên mạng này:

Từ cmd ta gõ lệnh
ping www.certifiedhacker.com -f -l 1500


Ta thấy nó hiển thị Packet needs to be fragmented but DF set. Ý nghĩa của điều này là kích thước frame quá lớn trên mạng và nó cần phải fragmented (phân mảnh), nhưng tùy chọn –f trong lệnh trên ngăn cản gói tin bị phân mảnh và do vậy nó quay ra thông báo lỗi này.

Ta gõ lệnh ping www.certifiedhacker.com -f -l 1300


Ta thấy OK có gói tin trả lại, vậy từ đây ta có thể rút ra kết luận kích thước gói tin sẽ phải nhỏ hơn 1500 bytes và lớn hơn 1300 bytes

Ta tiếp tục lệnh ping www.certifiedhacker.com -f -l 1473 sẽ thấy gói tin báo lỗi

Ta tiếp tục lệnh ping www.certifiedhacker.com -f -l 1472  sẽ thấy gói tin OK


Thông điệp Request timed out hiển thị khi máy đó bị tắt hoặc packet bị lọc/chặn bởi firewall (chắc trang này mới chặn, mình ping lần trước thấy ok).

Vậy ta có thể đi đến kết luận 1472 bytes là kích thước lớn nhất (maximum frame size) của máy trên mạng.

Giờ ta sẽ đi tìm hiểu xem điều gì sẽ xảy ra khi TTL (Time to Live) hết hạn.

Mỗi frame được gửi đi trên mạng đểu có định nghĩa về TTL, nếu TTL về 0 thì router sẽ loại bỏ (discards) gói tin đó. Cơ chế này giúp ngăn chặn tình trạng mất gói (loss of packets)

“ping –i wait” có nghĩa là thời gian chờ, nó là số giây ta sẽ chờ giữa mỗi lần ping

Từ cmd ta gõ lệnh: ping www.certifiedhacker.com -i 3


Reply from 117.3.0.1: TTL expired in transit (các bạn ping có thể ra một ip khác)  có nghĩa là router loại bỏ frame bởi vì TTL bị hết hạn (đọc về 0).

TTL là một giá trị mà khi gói tin được gửi đi, đó sẽ là giá trị thời gian mà nó tồn tại, khi TTL này hết (=0) mà gói tin vẫn chưa được gửi xong thì coi như gói tin bị discard. Nó đơn giản chỉ là một chỉ số, mối khi gói tin ICMP đi qua một router, router sẽ trừ giá trị đó đi 1 cho đến khi một router nhận được một gói tin có TTL = 0, router đơn giản là DROP gói tin đó đi.

Lệnh tracert: Là một chương trình cho phép ta xác định được đường đi của các gói packets từ máy bạn đến hệ thống đích trên mạng Internet.

Từ cmd gõ lệnh: tracert www.certifiedhacker.com


Ta muốn biết đường đi từ máy của ta đến host trên mạng Internet là website www.certifiedhacker.com ta phải tracert đến nó. Như ta thấy từ máy ta muốn đến được www.certifiedhacker.com phải đi qua 12 hops (mắt xích) trên mạng. Đây chính là đường đi của các gói packets.

Mình sẽ giải thích một chút,

Dòng đầu tiên của lệnh trên cho ta thấy được hostname và địa chỉ IP của hệ thống đích. Dòng này còn cho ta biết thêm giá trị TTL <=30.

Dòng thứ 2 cho ta biết router đầu tiên nhận được là 192.168.5.1 (đây chính là default gateway trên mạng local của chúng ta, muốn đi ra ngoài thì bao giờ cũng phải đi qua “cửa” trước), giá trị TTL khi gửi đến router này là 1. Router này sẽ gởi lại cho chương trình traceroute một ICMP message error “Time Exceeded”. Tracert sẽ gởi tiếp một gói đến hệ thống đích.

Tương tự như vậy cho đến hops 12, nó sẽ gởi trở lại cho traceroute một ICMP message error “Port Unreachable”. Khi nhận dược ICMP message này, traceroute sẽ biết được đã đến được hệ thống đích www.certifiedhacker.com và kết thúc nhiệm vụ tại đây.

Trong trường hợp router không trả lời sau 5 giây, traceroute sẽ in ra một dấu “*” (không biết) và tiếp tục gửi datagram khác đến host đích.

Ta có thể dùng lệnh ping để thử

Từ cmd ta gõ lệnh: ping www.certifiedhacker.com -i 1 -n 1

(-i 1 có nghĩa là set TTL =1, nó sẽ chỉ đi qua 1 hops, -n có nghĩa là chỉ nhận 1 kết quả trả lời (dùng để test cho nhanh).


Ta thấy trả về kết quả TTL expired in transit. Ta lần lượt test thử và ta thấy khi nào ta sét tới -i = 12 thì gói tin mới tới được đích (như lệnh tracert ta làm ở trên gói tin phải đi qua 12 hops mới tới đích).

Using the nslookup Tool

Nslookup có nghĩa là name server lookup, công dụng và tác dụng các bạn “chịu khó” search goole.

Từ màn hình cmd, Chạy lệnh nslookup


Gõ lệnh help để thấy được các options của lệnh nslookup

Từ dòng lệnh gõ set type=a và nhấn Enter

Tiếp tục gõ tên miền cần phần giải ở đây là www.certifiedhacker.com và nhấn Enter

Ta thấy domain www.certifiedhacker.com có địa chỉ IP là 202.75.54.101

Các bạn có thắc mắc tại sao khi gõ lệnh nslookup ở trên nó lại ra:

Server: uni-dc1.unitech.net
Address: 192.168.2.12

Điều này là do mình đang dùng DNS server trong công ty, công ty mình có dựng 1 DNS nội bộ và mặc định khi ta gõ lệnh nslookup nó sẽ lấy DNS mặc định được thiết lập ở card mạng.

Bạn có thể sẽ nhận được cấu trả lời là Authoritative hoặc Non-authoritative answer, ở đây ta nhận được câu trả lời là Non-authoritative.

DNS Server sẽ trả lời yêu cầu là “Authoritative” chỉ khi DNS Server đó quản lý zone chứa tên miền cần phần giải. Tất cả các yêu cầu phân giải tên miền không thuộc zone mà DNS Server đó quản lý sẽ đều được trả lời “Non-Authoritative”.

Thay đổi Server DNS bạn cần để phân giải.

Giờ ta sẽ thay đổi Server DNS để phân giải tên về 8.8.8.8, không dùng 192.168.2.12 nội bộ của công ty mình nữa. Từ dòng lệnh gõ lệnh: server 8.8.8.8


Một số loại bản ghi DNS:

NS: cho biết địa chỉ IP hoặc CNAME của name server 
MX: cho biết thông tin MX (Mail Exchange) của 1 domain cần tìm hiểu.
A: cho biết thông tin IP host A/hostname của 1 domain/IP cần tìm hiểu. 
CNAME: cho biết tên bí danh của server.
PTR: bản ghi PTR thực hiện việc ánh xạ một địa chỉ IP đến một tên miền.

Nếu bạn nhận được ”request timed out” là do firewall ngăn chặn việc gửi queries DNS ra ngoài.


Tạm vậy đã, chỗ nào các bạn không biết có thể tự tìm hiểu thêm hoặc "cmt" lại, mình sẽ giải thích.

Thanks!.

Không có nhận xét nào:

Đăng nhận xét