Pages

Friday, July 9, 2010

Quá trình trao đổi dữ liệu giữa hai máy

Tác giả: Đặng Quang Minh



Tài liệu tham khảo cho học viên CCNA của VnPro




Máy A muốn liên lạc với máy X,phải biết IP address của nó (hoặc hostname/domainname).Máy A dò trong ARP cache để tìm địa chỉ MAC đích có chưa,nếu chưa sẽ dùng ARP gửi thông điệp (broadcast) đến tòan mạng .




Có 2 trường hợp:


1/ Host X cùng segment với nó :




Host A gửi thông điệp với địa chỉ IP đích (đã biết) và MAC đích là FF-FF-FF-FF-FF-FF để hỏi xem MAC của địa chỉ này là gì.Các host trên segment đều nhận và xử lý gói này ,host nào có địa chỉ IP trùng với yêu cầu sẽ gửi lại thông tin cho host A là "IP này có MAC là : ......".Host A nhập thông tin vào ARP cache (RAM).Khi muốn liên lạc với X thì lại tra trong ARP cache để biết địa chỉ MAC cần đến.




ARP là gì?

Trong protocol TCP/IP có ARP protocol. ARP tự động cập nhật các MAC tương ứng với các IP và xây dựng một bảng ARP table trong máy tính trong cùng mạng subnet.

Khi này , nếu A và X ở trong cùng LAN, thì khi A muốn gửi packet cho X, no' sẽ match IP của X với MAC tương ứng trong bang ARP của no'.

Nếu A biết IP của X , nhưng không match được MAC tương ứng trong bang ARP của no' , thì khi này nó sẽ gứi một packet , gọi là ARP request, với địa chỉ MAC broadcast FFFFFFFFFF . Khi này tất cả máy tính trên cùng một mạng sẽ nhận được gói này và chuyển lên lớp Network; nhưng chỉ có máy có IP match với IP destination address trong ARP request mới gửi trả lại gói tin có chứa dia chỉ MAC tương ứng mà máy A muộn tìm . Gói tin này là ARP reply.

Khi đó gói tin ARP request sẽ có MAC nguồn là MAC của A, MAC đích là FF-FF-FF-FF-FF-FF.


Nếu Host X available trên Segment thì nó sẽ biết là gói tin này gửi cho nó nhờ vào địa chỉ IP mà Host A ghi trong gói tin ARP request và nó sẽ trả lời bằng 1 gói tin ARP reply. Gói tin ARP reply sẽ có MAC nguồn là MAC của Host X, MAC đích là MAC của Host A, khi Host A nhận được gói tin này tự nhiên sẽ biết được MAC của X.



Sau khi A nhận được ARP reply , nó sẽ mở gói và update bảng ARP table của nó: IP và MAC của máy X.


2/ Host X không cùng segment với host A :




lúc đó phải nhờ đến router để forward yêu cầu này đến các segment khác. Trong trường hợp này, router sẽ gửi địa chỉ MAC của interface mà nhận gói ARP request trên Router cho máy gửi ( máy A ).


Một cách khác để liên lạc với một máy tính khác không cùng nằm trên 1 segment là "default gateway". Default Gateway là một phần của một host (máy tính). Nó là một địa chỉ IP của một interface trên router, và được cấu hình cho host. Địa chỉ IP của host và của Default Gateway phải cùng segment mạng. Khì này, máy gửi (A) sẽ kiểm tra xem nó và máy nhận (B) có cùng nằm trên một subnet hay không. Nếu không, nó sẽ đóng gói packet gửi với IP destination address là của máy nhận và MAC address destinaiton là của Router nối với subnet của nó.



Nếu Proxy ARP hay default gateway không được cấu hình, thì không có "traffic" nào có thê rời khỏi một subnet (một mạng cục bộ). Phải có một trong hai cái được cấu hình ( hay cho phép) để có thể giao tiếp với các segment mạng khac được.


"IP source và dest không bao giờ thay đổi, chỉ có MAC source và dest là thay đổi thôi".



Proxy ARP: Theo cách thức hoạt động của proxy ARP, ta có thể thấy rằng client khi muốn biết MAC của một host nào đó, nó chỉ đơn giản là broadcast ARP-Request lên mạng. Router sẽ có trách nhiệm đáp trả lại bằng ARP-Reply nếu nó nhận thấy IP-destination là thuộnc mạng khác. Như vậy, cấu hình IP cho client cực kỳ đơn giản, nhưng gánh nặng lại đè lên router. Thử tưởng tượng cứ sau 1p', ARP-entry bị hủy bỏ, thế là các client thi nhau broadcast lên mạng thì router "tiêu" như chơi. Ngoài ra, proxy ARP còn gặp một bất lợi nếu trong segment có tới hơn 1 router. Chọn router nào, nếu như các router đều có route đến mạng đích?



Default-Gateway: Nếu client biết rằng IP-dest không thuộc mạng của nó, nó dùng MAC của default-gateway để gửi gói tin, router default-gateway nhận lấy gói tin sẽ biết phải xử lý tiếp theo như thế nào (dựa trên IP source/destination). Cách này giảm tải cho router, giải quyết được trường hợp có nhiều router nối vào cùng segment, và đỡ gây nhầm lẫn.


Nếu Host A có cấu hình sử dụng Defaul gateway trong TCP/IP protocol thì gói tin ARP request sẽ không phải dạng Broadcast mà được gửi thẳng đến cho Router ( TCP/IP stack quy định như vậy). Tất nhiên để gửi được gói tin này đến cho Router thì nó cũng phải request MAC của defaul gateway trên Router trước, sau đó khi có MAC của default gateway thì Host A sẽ tạo 1 gói tin ARP request MAC của Host X với IP đích là IP Host X, MAC đích là MAC của default gateway.




Khi Router gateway nhận được gói tin này thì nó sẽ Forward qua interface trên segment thích hợp, tại đây phần Datalink header sẽ được lấy ra (Pull out) và phần Datalink header mới sẽ được gắn vào với mục đích để truyền trên Segment của Host B. Khi Host B nhận được gói tin ARP request thì cũng sẽ trả lời lại bằng gói tin ARP reply được gửi đến DF gateway trên Segment của nó. Khi Router nhận được gói tin này cũng làm việc tương tự như khi gửi đi từ Host A (pull out Datalink header, gắn datalink header mới v.v....)


Nếu Host A không có cấu hình default gateway (tất nhiên sẽ broadcast gói tin ARP request) nhưng nếu Router trên Segment của host A có chức năng ARP Proxy thì căn cứ trên IP mà gói tin ARP request yêu cầu ROUTER sẽ so sánh với Routing Table của nó và nhận gói tin này nếu Match trong Routing table, sau đó sẽ forward qua Segment thích hợp. Quá trình tiếp theo tương tự như trường hợp A.


Như vậy : nếu 1 trong 2 default gateway của 2 segment cấu hình sai thì sẽ dẫn đến việc Host A không thể liên lạc được với Host X và ngược lại. Ngoài ra nếu thời gian tồn tại của ARP cache trong memory quá lâu công với việc có thay đổi MAC của DF gateway sẽ dẫn đến việc tạm thời không thể thực hiện ARP request.


Ví dụ minh họa cho các lý thuyết nêu trên:


xin lưu ý các IP cùa source và destination là không thay đổi chỉ có mac là thay đổi thôi. các bạn xem một ví dụ sau để đễ hiểu hơn nhé


máy A-------Router1--------router2--------router3------máy B


đầu tiên máy A đóng gói gói tin như sau


IP nguồn là IP của máy A. IP đích là IP của máy B xuống đến tầng datalink máy A sẽ xem máy B có trong cùng subnet với mình không, trong truờng hợp này là không.


lúc này máy A sẽ dùng :


MAC nguồn là của máy A. MAC đích là mác của interface trên router1 nối với subnet A.


Router1 sẽ xem IP đích có nằm trong subnet của mình hay không trong truờng hợp này là không, lúc này router sẽ dóng gói địa chỉ MAC nguồn là mác cùa interface mà router này nối với router2, mác đích sẻ là mác trên interface của router2, router2 cũng xử lý giống router 1 và chuyển đến router3.


Router3 sẽ xem IP này có nằm trong subnet của mình không, nếu có thì nó sẽ xem xét địa chỉ mac tương ứng với IP này (router3 biết được vì nó tra trong bảng ARP của nó có chứa máy B vì B cùng subnet) ư1ng với IP này router3 xác định đưọc MAC là máy B lúc này máy B nhưng nó vẩn gửi Brodcast đến tất cả các máy trong subnet có máy B nhưng chỉ máy B nhận gói tin vì nó có MAC trùng với MAC đích trong gói tin.


A sẽ gửi 1 gói tin gọi là ARP request (ARP = Address Resolution Protocol) bằng cơ chế broadcast để tất cả các máy đều có thể nhận được gói tin này

Thursday, July 8, 2010

VLSM_ VLSM là gì và tại sao phải dùng nó

Chào các bạn! Các bạn chác cũng biết hiện nay với sự phát triển rầm rộ của Internet thì phiên bản IP-v4 đang cạn kiệt địa chỉ. Khi người ta cấu hình mạng thường dùng các chia địa chỉ VLSM để tiết kiệm địa chỉ. Tôi sẽ viết một loạt bài về VLSM để chúgn ta tham khảo.
VLSM là gì và tại sao chúng ta phải dùng đến nó?
Khi mạng IP phát triển lớn hơn,người quản trị mạngphải có cách sử dụng không gian địa chỉ IP mộ cách hiệu quả hơn. Một trong những kỹ thuật đó là sử dụng kỹ thuật VLSM(Variable-Lengh Subnet Mask), với VLSM người quản trị có thể chia địa chỉ mạng có subnet mask dài cho mạng có ít host và địa chỉ mạng có Subnet mask ngắn cho mạng nhiều host. Khi chạy VLSM thì hệ thống mạng phải chạy các giao thức định tuyến hỗ trợ VLSM như : OSPF(Interggated Intermediate System to Intermediate System ), EIGRP, RIPv2 và định tuyến cố định.
VLSM cho phép một tổ chức sử dụng chiều dài subnet mask khác nhau trong một địa chỉ mạng lớn. VLSM còn được gọi là " chia subnet trong một subnet lớn hơn" giúp tận dụng tối đa không gian địa chỉ.
Giao thức định tuyến theo lớp địa chỉ đòi hỏi toàn bộ hệ thống mạng phải có cùng Subnet mask.
Với VLSM thì chúng ta có thể chia một địa chỉ mạng lớn thành nhiều địa chỉ mạng con có kích thước khác nhau như: địa chỉ mạng có 30 bit subnet mask, 255.255.255.252, để dành cho kết nối mạng;địa chỉ mạng có 24 bit subnet mask, 255.255.255.0, để dành cho các mạng có dưới 254 user, các địa chỉ mạng có 22 bit subnet mask, 255.255.252.0, để dành cho các mạng có tới 1000 user
Bài viết này tôi mới đưa được câu trả lời cho câu hỏi ở trên. Còn việc cấu hình VLSM như thế nào

Đề bài: Cho trước net 192.168.1.0 /24. Yêu cầu triển khai 3 network sau: HCM 100 máy, Cần Thơ 50 máy, Hà Nội 50 máy. Hỏi phải đặt IP như thế nào?


Lưu ý: Do đề bài yêu cầu phải dùng IP có dạng 192.168.1.x, nếu ko có yêu cầu này thì ta đặt HCM là 1.0, cần Thơ: 2.0 và Hà nội là 3.0 là tốt nhất


Lới giải:


Mượn 1 bit để chia subnet, như vậy giá trị netmask mới là /25 (255.255.255.128). Khi đó ta có 2 network:


Net 0:

192.168.1.0 (không dùng vì đây là địa chỉ đại diện cho net0)
192.168.1.1
192.168.1.2
.........

192.168.1.126

192.168.1.127 (không dùng vì đây là địa chỉ broadcast của net0)

Net 1:

192.168.1.128 (không dùng vì đây là địa chỉ đại diện cho net1)
192.168.1.129
192.168.1.130
.........

192.168.1.254

192.168.1.255 (không dùng vì đây là địa chỉ broadcast của net1)

Chọn Net0 cho HCM, lúc đó một máy ở HCM sẽ có IP dạng 192.168.1.x (x chạy từ 1 đến 126), netmask: 255.255.255.128.


Bây giờ ta chia net1 ra làm 2 bằng cách mượn thêm 1 bit nữa: /26 (255.255.255.192)


Ta sẽ có 2 net mới, mỗi net có 62 host (64 - 2)


net1a:

192.168.1.128 (không dùng vì đây là địa chỉ đại diện cho net1a)
192.168.1.129
192.168.1.130
.......
192.168.1.190
192.168.1.191 (không dùng vì đây là địa chỉ broadcast của net1a)

net1b:

192.168.1.192 (không dùng vì đây là địa chỉ đại diện cho net1b)
192.168.1.193
192.168.1.194
.....
192.168.1.254
192.168.1.255 (không dùng vì đây là địa chỉ broadcast của net1b)

Ta chọn net1a cho Cần Thơ và net1b cho Hà Nội.


Như vậy trong Việt nam tại HCM giá trị netmask là /25, cần thơ và hà nội là /26 nên ta gọi là variable lenght subnet mask - VLSM


Và 192.168.1.0 là supernet của HCM, HN và CT.



+ Đây là một cách tính VLSM mình cho là cũng hay lắm :

Ta có :

192.168.1.0 /24

1 SM 60host
2 SM 30host
1 SM 10host
3SM 2host

Giúp bạn hiểu hơn về NAT - PAT - VLSM

Tổng quan:

Hai mươi năm trước đây, IPv4 đưa ra một mô hình địa chỉ và cũng đáp ứng được một trong khoảng thời gian, nhưng trong tương lai gần không đáp ứng đủ.Trong khi đó, IPv6 được xem là một không gian địa chỉ không giới hạn, thì được triển khai thử nghiệm chậm chạp và chắc chắn sẽ thay thế IPv4 trong tương lai gần. Trong thời gian chờ đợi sự thay đổi đó, một số kỹ thuật để có thể sử dụng để sử dụng có hiệu quả tài nguyên IP đó là:
NAT (Network Address Translation); PAT ( Port address translation ); VLSM ( Variable-Length Subnet Mask ).

Định nghĩa các thuật ngữ

Địa chỉ riêng (private address) – là địa chỉ IP được dành riêng và có thể được sử dụng bởi bất kỳ ai cho các mạng mội bộ. các gói dữ liệu có địa chỉ riêng sẽ không định tuyến được trên Internet. RFC 1918 dành riêng 3 dải địa chỉ IP như sau:
• 1 địa chỉ lớp A : 10.0.0.0/8.
• 16 địa chỉ lớp B : 172.16.0.0 – 172.31.255.255 (172.16.0.0/12).
• 256 địa chỉ lớp C : 192.168.0.0 – 192.168.255.255 (192.168.0.0/16).

Địa chỉ internet công cộng (public IP address) : là địa chỉ phải được đăng ký với một công ty có thẩm quyền internet, ví dụ như American Registry for Internet Number (ARIN)… public IP address có thể được thuê từ một nhà cung cấp dịch vụ ISP.

NAT - Được thiết kế để tiết kiệm địa chỉ IP công cộng và cho phép mạng nội bộ sử dụng địa chỉ IP riêng . Các địa chỉ IP riêng sẽ được chuyển đổi sang địa chỉ công cộng bằng cách chạy phần mềm NAT hoặc cấu hình trong các Interface của route.

Host A sử dụng 1 địa chỉ dành riêng 192.168.2.23, host B sử dụng 1 địa chỉ công cộng 192.31.7.130. Khi Host A gửi một packet đến host B, backet sẽ được truyền qua router và router thực hiên qúa trình NAT. NAT sẽ thay thế địa chỉ nguồn private ip address (192.168.2.23) thành một public IP address (203.10.5.23) và forwards the packet., với địa chỉ này packet sẽ được định tuyến trên internet tới destination address (192.31.7.130). Khi host B gửi gói tin hồi đáp tới host A, destination address của gói tin sẽ là 203.10.5.23. gói tin này đi qua router và sẽ được NAT thành địa chỉ 192.168.2.23

Inside local address - Địa chỉ IP được gán cho một host của mạng trong. Đây là địa chỉ được cấu hình như là một tham số của hệ điều hành trong máy tính hoặc được gán một cách tự động thông qua các giao thức như DHCP. Địa chỉ này không phải là những địa chỉ IP hợp lệ được cấp bởi NIC (Network Information Center) hoặc nhà cung cấp dịch vụ Internet.

Inside global address - Là một địa chỉ hợp lệ được cấp bởi NIC hoặc một nhà cung cấp dịch vụ trung gian. Địa chỉ này đại diện cho một hay nhiều địa chỉ IP inside local trong việc giao tiếp với mạng bên ngoài

Outside local address - Là địa chỉ IP của một host thuộc mạng bên ngoài, các host thuộc mạng bên trong sẽ nhìn host thuộc mạng bên ngoài thông qua địa chỉ này. Outside local không nhất thiết phải là một địa chỉ hợp lệ trên mạng IP (có thể là địa chỉ private).

Outside global address - Là địa chỉ IP được gán cho một host thuộc mạng ngoài bởi người sở hữu host đó. Địa chỉ này được gán bằng một địa chỉ IP hợp lệ trên mạng Internet.

 Với sơ đồ mạng (
hinh 1) ta có NAT Table
Inside local address 192.168.2.23
Inside global address 205.10.5.23
Outside globaladdress 197.31.7.130

Các gói tin bắt nguồn từ phần mạng “inside” sẽ có địa chỉ source IP là địa chỉ kiểu “inside local” và destination IP là “ouside local” khi nó còn ở trong phần mạng “inside”. Cũng gói tin đó, khi được chuyển ra mạng “outside” source IP address sẽ được chuyển thành "inside global address" và địa destination IP của gói tin sẽ là “outside global address”.

Ngược lại, khi một gói tin bắt nguồn từ một mạng “outside”, khi nó còn đang ở mạng “outside” đó, địa chỉ source IP của nó sẽ là "outside global address", địa chỉ destination IP sẽ là "inside global address". Cũng gói tin đó khi được chuyển vào mạng “inside”, địa chỉ source sẽ là "outside local address" và địa chỉ destination của gói tin sẽ là "inside local address".

Các đặc điểm của NAT vàPAT

Static NAT – dùng để ánh xạ một địa chỉ nội bộ(private address) sang một địa chỉ công cộng (public address)


Ví dụ: chuyển đổi một địa chỉ IP riêng 165.10.1.2 255.255.255.0 sang dải địa chỉ IP công cộng từ 169.10.1.50 dến 169.10.1.100 . mình đã dùng ( netsim ) để cấu hình. Sau khi cấu hình song ta dùng lệnh show ip nat translations sẽ có kế quả như sau.

NAT Overloading hay PAT – dùng để ánh xạ nhiều địa chỉ IP riêng sang một địa chỉ công cộng vì mỗi địa chỉ riêng được phân biệt bằng số port. Có tới 65.356 địa chỉ nội bộ có thể chuyển đổi sang 1 địa chỉ công cộng. Nhưng thực tế thì khỏang 4000 port.



 trong ví dụ trên pat sử dụng số port nguồn cùng với địa chỉ IP riêng bên trong để phân biệt khi chuyển đổi. Router thực hiện chuyển đổi địa chỉ ip nguồn từ 10.0.0.4 sang 179.9.8.80. port nguồn 1331. tương tự ip nguồn từ 10.0.0.2 sang 179.9.8.80. port nguồn là 1555

Tuesday, May 25, 2010

3-way hand shake của TCP( vui một tý)

Có rất nhiều câu hỏi về chủ đề này: tại sao không phải là bắt tay 2 bước, 4 bước, n bước mà cứ phải là 3 bước. Qua ví dụ sinh động về cách diễn đạt này, bạn sẽ hiểu thêm được tại sao lại là 3 bước:

-----------------------------------------
Trong một trận chiến có 2 đội quân A và B.
Đội quân B hiện đang bị bao vây phía dưới thung lũng, và có khoảng 10 nghìn quân
Đội quân A ở phía trên, chia thành 2 nhóm là A1 và A2 đóng ở 2 đầu thung lũng, mỗi nhóm nhỏ có khoảng 7 nghìn quân
Rõ ràng là nếu đội quân A tiến công từng nhóm lẻ tẻ thì sẽ không thể thắng được, muốn thắng thì đòi hỏi cả 2 nhóm quân A1 và A2 cùng tiến đánh một lúc. Thời ngày xưa thì không có các phương tiện truyền thông hiện đại như bây giờ, mỗi khi muốn trao đổi thông tin thì cần cử người đem thông điệp sang tận nơi. Vậy làm thế nào để đảm bảo cả 2 đội quân đều ồ ạt tấn công 1 lúc?
Như vậy trong trường hợp này, quân A muốn đánh thắng thì trước hết 2 nhóm A1 và A2 phải "đồng bộ" thời gian tấn công như sau:
Bước 1: A1 gửi thư sang cho A2, yêu cầu đúng giờ X thì tấn công
Bước 2: A2 gửi trả lời: "đồng ý, giờ X nhé!"
Tuy nhiên nếu chỉ 2 bước thế này thì vẫn chưa chặt chẽ. Trong trường hợp anh lính liên lạc bị giết chết trong quá trình mang thư trả lời của A2, A1 không nhận được trả lời thì không dám tấn công một mình, còn A2 thì cứ đinh ninh rằng giờ đó tấn công là được --> đến giờ đó A2 tấn công 1 mình --> hy sinh
Như vậy cần thêm 1 bước nữa để đảm bảo rằng A1 đã nhận được trả lời của A2:
Bước 3: A1 gửi trả lời: "đã nhận thông điệp thành công!"
Đến lúc này, qua 3 bước thì quân A có thể đảm bảo sự thống nhất giữa 2 nhóm quân, chỉ việc chờ đến giờ X cùng tấn công đồng loạt là giành phần thắng

Đó là ý nghĩa vì sao là 3 ways chứ ko phải 2 ways, 4 ways hay n ways...

Sử dụng Tracert

Tracert (hay Traceroute) là công cụ dựa trên nền tảng Windows cho phép bạn hỗ trợ chương trình kiểm tra cơ sở hạ tầng mạng. Trong bài này chúng tôi giới thiệu cách dùng Tracert để sửa chữa các vấn đề gặp trong thực tế. Điều này giúp tăng cường tính hữu ích của công cụ và chỉ cho bạn một số cách dùng khi làm việc với các mạng riêng của mình.

Tiện ích TCP/IP này cho phép bạn xác định các gói định hướng lưu chuyển trong toàn bộ mạng tới host cụ thể theo yêu cầu của bạn. Tracert hoạt động bằng cách tăng thêm giá trị "thời gian sống" (TTL) cho từng gói liên tiếp được gửi đi. Khi một gói đi qua một host, host này sẽ giảm TTL đi một giá trị và tiếp tục gửi nó sang host kế tiếp. Khi một gói có TTL đến được host cần tới, host sẽ loại bỏ gói và gửi thông báo thời gian ICMP quá hạn. Tracert nếu được dùng phù hợp và chính xác có thể giúp bạn tìm ra các điểm định tuyến không chính xác hoặc không tồn tại trong mạng của bạn.

Giới thiệu về Tracert

Tracert là công cụ dòng lệnh nền tảng Windows dùng để xác định đường đi từ nguồn tới đích của một gói Giao thức mạng Internet (IP - Internet Protocol). Tracert tìm đường tới đích bằng cách gửi các thông báo Echo Request (yêu cầu báo hiệu lại) Internet Control Message Protocol (ICMP) tới từng đích. Sau mỗi lần gặp một đích, giá trị Time to Live (TTL), tức thời gian cần để gửi đi sẽ được tăng lên cho tới khi gặp đúng đích cần đến. Đường đi được xác định từ quá trình này.

Nhìn vào hình minh hoạ sau bạn có thể hình dung ra được cách thức Tracert hoạt động trong một mạng sản xuất.

Sử dụng Tracert như thế nào

Như bạn thấy ở hình minh hoạ, chúng ta sẽ gửi lưu lượng từ trạm kiểm tra bên B (Site B) tới một server ở bên A (Site A). Các gói tin sẽ truyền đi trong mạng diện rộng (WAN), phân tách thành hai phía nối với nhau qua liên kết T1 và một liên kết dự phòng ISDN (Integrated Services Digital Network). Để dùng tiện ích Tracert, đơn giản bạn chỉ cần biết địa chỉ IP của máy đích muốn gửi đến, cách sử dụng Tracert chính xác và bạn cần tìm cái gì trong kết quả.

Tracert hoạt động dựa vào thao tác với trường Time to Live (TTL). Bằng cách tăng TTL và sau mỗi lần gặp router, giá trị của nó lại giảm đi một, gói tin được gửi tới router tiếp theo. Mỗi lần gói tin được gửi từ router này đến router khác, người ta gọi là nó đã thực hiện một bước nhảy (hop). Khi trường TTL có giá trị trở về 0, router sẽ gửi thông báo "Time Exceeded" ICMP (hết thời gian) tới máy nguồn. Bạn có thể xem ví dụ với mạng mẫu sau của chúng tôi trong phần minh hoạ bên dưới. Với địa chỉ IP nguồn và đích,… chúng ta sẽ dùng trạm làm việc ở Site B và server bên Site A để thực hiện bài kiểm tra.

Từ minh hoạ này bạn có thể thấy, IP nguồn là 10.1.2.4 và IP đích (ví dụ) có thể là 10.1.1.6. Việc định tuyến thông thường diễn ra từ Site B sang Site A, qua liên kết có dung lượng cao hơn là T1 (1.544 Mbqs). Liên kết ISDN có dung lượng 128 Kbqs chỉ được dùng dự phòng trong trường hợp liên kết chính gặp lỗi. Tracert sẽ chỉ cho bạn thấy các gói tin được gửi từ Site B, tại máy có địa chỉ 10.1.2.4, qua liên kết T1 tới máy có địa chỉ 10.1.1.1. như thế nào. Bạn còn có thể biết được cách gửi các gói tin tới mạng LAN cục bộ (10.1.1.0) và cuối cùng là 10.1.1.6 như thế nào.

Khi các gói tin đã được gửi đi, Tracert sẽ dùng giao diện đầu tiên trên router nó nhìn thấy để thông báo lại các bước nhảy router. Vì thế, hãy xem xét toàn bộ đường đi hoàn chỉnh của chúng ta trước khi gửi các gói tin đi.

Đường đi (được tô màu đỏ trên hình) là danh sách các router nằm giữa host nguồn và host đích. Một điểm rất quan trọng cần nhớ là các giao diện ở phía bên trái sẽ được dùng khi mô tả. Giao diện bên trái là giao diện của router gần nhất với host gửi tin trong đường đi. Trong ví dụ này bạn có thể thấy đường đi qua T1, từ phía B (Site B) sang phía A (Site A). Bây giờ chúng ta hãy cùng xem tại sao điều này lại quan trọng.

Vậy các cách làm việc của tracert là gì? Khi khởi chạy và sử dụng, tracert sẽ báo cáo (in ra) danh sách đã được sắp xếp các địa chỉ của từng host mà nó đã đi qua trên đường đến đích. Điều này thực sự hay vì bạn có thể biết được nhiều hơn về đường đi này. Nếu bạn thu được phần gần mặt phân cách, bạn sẽ thấy một thiết lập mới của địa chỉ IP trong hình minh họa tiếp theo (192.168.10.1 và 192.168.11.1) 10.1 được sử dụng cho liên kết ISDN và 11.1 sử dụng cho liên kết T1. Vậy tại sao điều này lại quan trọng?

Khi nhận được kết quả từ Tracert, một số người không thạo làm việc với công cụ này sẽ thấy lúng túng. Router cổng vào 10.1.1.1 mặc định của Site A được thay thế bằng địa chỉ WAN. Chỉ là một router nhưng giao diện khác. Điều này mang tính chất bắt buộc khi muốn kiểm tra với Tracert bởi vì nếu bạn nhầm, bạn sẽ không biết được mình đang đọc gì.

Ví dụ, đường đi bạn thấy ở hình minh hoạ trên là từ 10.1.2.4 tới 10.1.2.1 (cổng vào mặc định của mạng LAN). Sau đó nó sẽ qua mạng WAN tới 10.1.1.1. Chỉ có một vấn đề xuất hiện ở đây là bạn sẽ không thấy địa chỉ xuất hiện. Sau khi T1 có giao diện trên router (11.1) của phía A (Site A) và thực hiện liên kết ISDN (10.1) thì hai địa chỉ IP này là quan trọng nhất trong kết quả trả ra của Tracert. Đó là do trong ví dục này T1 có thể bị lỗi và đường đi bây giờ là qua ISDN. Điều này hoạt động "như được công khai hoá". Nhưng chuyện gì sẽ xảy ra nếu bạn để T1 online trở lại (trừ trường hợp bạn cảm thấy tốc độ mạng của mình tại T1 tụt từ 1.544 Mbqs xuống còn 128 Kbqs), bạn không nên dùng liên kết ISDN thêm phút nào nữa. Đó là điều chúng ta sẽ kiểm tra.

Kiểm tra Tracert

Bây giờ, để dùng Tracert, đơn giản bạn chỉ cần mở màn hình lệnh Command Prompt. Để thực hiện điều này, bạn vào Start -> Run -> cmd -> tracert
(Chú ý: bạn phải gõ "tracert" vì bạn có thể thấy Traceroute chỉ hoạt động trên UNIX/Linux và các hệ thống khác như Cisco, v.v…).

Trong ví dụ sau, sau khi gõ lệnh "tracert" và xem phần thông tin hiển thị ra bạn có thể thấy các gói di chuyển qua hai router (như ở phần minh hoạ trên) rồi mới tới host đích 10.1.1.6. Ở đây, cổng vào mặc định từ Site B là 10.1.2.1 và địa chỉ IP của router trên mạng WAN qua các liên kết T1 và ISDN (lần lượt) là 192.168.11.1 và 192.168.10.1.

Đầu tiên chúng ta hãy xem mọi việc diễn ra như thế nào khi dùng T1.
C:\>tracert 10.1.1.6
Tracing route to 10.1.1.6 over a maximum of 30 hops (Xác định đường đi tới địa chỉ 10.1.1.6 qua tối đa 30 bước nhảy)
---------------------------------------------------
1 2 ms 3 ms 2 ms 10.1.2.1
2 25 ms 83 ms 88 ms 192.168.11.1
3 25 ms 79 ms 93 ms 10.1.1.6
Trace complete. (Quá trình xác định hoàn tất)

Bây giờ, nếu T1 bị lỗi và chuyển sang dùng ISDN, bạn sẽ thấy có một 'đường đi' khác và nó 'dài hơn' so với đường đi ban đầu.
C:\>tracert 10.1.1.6
Tracing route to 10.1.1.6 over a maximum of 30 hops
---------------------------------------------------
1 2 ms 3 ms 2 ms 10.1.2.1
2 75 ms 83 ms 88 ms 192.168.10.1
3 75 ms 79 ms 93 ms 10.1.1.6
Trace complete.

Như bạn thấy, sử dụng tracert sẽ giúp bạn xác định rõ được đường dẫn mạng như nó hướng ra ngoài thông qua mạng và quan trọng nhất là làm thế nào để dữ liệu đi qua đường dẫn đó.

Sử dụng các tuỳ chọn Tracert

Để dùng Tracert, các bạn nên biết một số tuỳ chọn sau. Hữu ích nhất là tuỳ chọn đầu tiên "-d". Nó được dùng khi bạn muốn loại bỏ giải pháp DNS. Các server name (tên máy chủ) cũng rất hữu ích, nhưng nếu nó không được thiết lập hoặc thiết lập sai, hay đơn giản là bạn chỉ muốn có địa chỉ IP của host, bạn nên dùng tuỳ chọn "-d".


-d Ngăn Tracert xử lý địa chỉ IP của các router ở giữa với tên của chúng. Điều này có thể giúp nâng cao tốc độ hiển thị kết của của Tracert. -h Số lượng lớn nhất các hop (bước nhảy) trong đường đi đến host đích. Giá trị mặc định là 30 hop -j Bạn có thể dùng tuỳ chọn này với một danh sách host (HostList). Các thông báo Echo Request (yêu cầu báo hiệu lại) dùng tuỳ chọn Loose Source Route trong phần header của địa chỉ IP với tập hợp các đích trung gian được mô tả trong HostList. Việc sử dụng tuỳ chọn Loose Source Route giúp các đích trung gian lần lượt được tách riêng bởi môt hoặc nhiều router. Số lượng lớn nhất địa chỉ hay tên trong danh sách host list là 9. HostList là một loạt địa chỉ IP (là các số thập phân liền nhau với các dấu chấm đan xen) cách nhau bởi một khoảng trắng. -w Khoảng thời gian (tính theo mili giây) chờ thông báo ICMP Time Exceeded hoặc Echo Reply đáp lại tương ứng với thông báo Echo Request. Nếu vượt quá khoảng thời gian quy định mà không có thông báo gì, dấu hoa thị (*) sẽ được hiển thị. Thời gian mặc định là 4000 (tức 4 giây) -? Phần trợ giúp ở màn hình lệnh.
tracert [-d] [-h MaximumHops] [-j HostList] [-w Timeout] [TargetName]
Sử dụng Tracert để gỡ rối như thế nào

Có thể đôi khi phần thông tin hiển thị ra ngoài không rõ ràng khiến bạn không hiểu. Chẳng hạn như khi xuất hiện các dấu hoạ thị bạn sẽ làm gì? Như đã đề cập đến ở phần trên, dấu hoa thị có thể hiển thị sai, vì gói ICMP có thể đã được chuyển đến nơi nhưng có cái gì đó đã cản trở quá trình thông báo lại, thường là một nguyên tắc nào đó trong tường lửa hoặc danh sách điều khiển truy cập (Access Control List).

Bạn có thể dùng Tracert để tìm ra chỗ gói tin bị ngừng lại trên mạng. Trong ví dụ sau, cổng mặc định đã tìm ra rằng không có đường đi nào hợp lệ ở bất kỳ host nào. Điều này có nghĩa là cả hai liên kết (T1 và ISDN) đều đã "sập" và không có đích nào có thể đến.
C:\>tracert 10.1.1.6
Tracing route to 22.110.0.1 over a maximum of 30 hops
-----------------------------------------------------
1 10.1.2.1 reports: Destination net unreachable.
Trace complete.

Từ ví dụ này bạn có thể thấy, khi bạn gửi yêu cầu kiểm tra Tracert tới địa chỉ 10.1.1.6, cổng LAN mặc định báo lại rằng nó không thể tìm thấy đường đi. Nhìn vào sơ đồ cụ thể sau có thể giúp bạn hiểu vấn đề rõ ràng hơn.
Bạn có thể thấy, không có đường đi nào cho gói tin. Router gần nguồn nhất thông báo rằng từ nguồn không có đường đi nào để tới các host khác.
Chú ý quan trọng

Dưới đây là một số chú ý quan trọng giúp bạn hiểu sâu hơn về Tracert.


  • Không phải lúc nào Tracert cũng giúp bạn tìm kiếm 'latency' (độ trễ). Để xác định đường đi và cung cấp độ trễ cũng như các gói tin thất lạc cho từng router và liên kết trong đường đi, sủ dụng lệnh "pathping". Bạn có thể tham khảo bài về pathping đã được Quantrimang.com giới thiệu trước đây.
  • Tracert chỉ có thể dùng được nếu giao thức Internet Protocol (TCP/IP) đã được cài đặt như là thành phần trong các thuộc tính của một bộ điều hợp mạng (network adapter) ở Network Connections. Đây là một tiện ích TCP/IP sử dụng ICMP, một giao thức nằm trong bộ giao thức TCP/IP.
  • Trong phiên bản Linux hiện đại, tiện ích tracerouter (không phải là tracert mặc dù một số hệ thống Linux cũng cho phép bạn sử dụng tracert) dùng UDP datagram với mã số cổng là 33434. Windows dùng yêu cầu báo hiệu lại ICMP (kiểu 8) được biết đến nhiều hơn với các gói ping.
Tóm tắt

Trong bài này chúng tôi đã chuyển tới bạn khái niệm cơ bản về Tracert. Tracert (hay còn được biết đến là traceroute) là một công cụ dựa trên nền tảng Windows, cho phép bạn hỗ trợ kiểm tra cơ sở hạ tầng mạng. Cụ thể trong bài chúng tôi hưỡng dẫn bạn cách dùng tracert để gỡ lỗi các vấn để xảy ra trong thực tế như đa đường đi hay các link không hoạt động. Điều này giúp tăng cường tính hữu ích của công cụ và chỉ cho bạn cách sử dụng khi làm việc với mạng riêng của mình. Tiện ích TCP/IP này cũng cho phép bạn xác định đường đi của các gói tin truyền qua mạng tới host cụ thể bạn chỉ định. Khi một gói tin đi qua một host, host sẽ giảm giá trị TTL của gói tin đi một giá trị và gửi tới host tiếp theo. Khi quá thời gian mà chưa đến đúng địa chỉ cần tìm, host nhận được gói tin sẽ loại bỏ và gửi lại thông báo thời gian quá hạn ICMP. Tracert nếu được dùng hợp lý có thể giúp bạn tìm ra các điểm trong mạng được định tuyến không chính xác hoặc không tồn tại. Tracert (hay traceroute) là công cụ bạn phải kiểm soát được nếu có kế hoạch làm việc trên mạng. Nó (và ping, pathping) có thể được dùng để giúp bạn ánh xạ và gỡ lỗi mạng dễ dàng. Các bạn nên tìm hiểu về các công cụ này kỹ hơn từ các bài tham khảo.


Sưu tầm