intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Tìm hiểu thêm về Traceroute

Chia sẻ: Ai Dieu | Ngày: | Loại File: DOC | Số trang:8

91
lượt xem
12
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Traceroute là một chương trình cho phép bạn 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.

Chủ đề:
Lưu

Nội dung Text: Tìm hiểu thêm về Traceroute

  1. Tìm hiểu về Traceroute trang này đã được đọc  lần  Traceroute là gì? Traceroute là một chương trình cho phép bạn 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. Một ví dụ về Traceroute! Traceroute có thể làm được gì? Bạn hãy xem ví dụ sau sẽ  rõ! C:\windows>tracert 203.94.12.54 Tracing route to 203.94.12.54 over a maximum of 30 hops 1 abc.netzero.com (232.61.41.251) 2 ms 1 ms 1 ms 2 xyz.Netzero.com (232.61.41.0) 5 ms 5 ms 5 ms 3 232.61.41.10 (232.61.41.251) 9 ms 11 ms 13 ms 4 we21.spectranet.com (196.01.83.12) 535 ms 549 ms 513 ms 5 isp.net.ny (196.23.0.0) 562 ms 596 ms 600 ms 6 196.23.0.25 (196.23.0.25) 1195 ms1204 ms 7 backbone.isp.ny (198.87.12.11) 1208 ms1216 ms1233 ms 8 asianet.com (202.12.32.10) 1210 ms1239 ms1211 ms 9 south.asinet.com (202.10.10.10)
  2. 1069 ms1087 ms1122 ms 10 backbone.vsnl.net.in (203.98.46.01) 1064 ms1109 ms1061 ms 11 newdelhi- 01.backbone.vsnl.net.in (203.102.46.01) 1185 ms1146 ms1203 ms 12 newdelhi- 00.backbone.vsnl.net.in (203.102.46.02) ms1159 ms1073 ms 13 mtnl.net.in (203.194.56.00) 1052 ms 642 ms 658 ms Tôi cần biết đường đi từ máy tôi đến một host trên mạng  Internet có địa chỉ ip là 203.94.12.54. Tôi cần phải tracert  đến nó! Như bạn thấy ở trên, các gói packets từ máy tôi  muốn đến được 203.94.12.54 phải đi qua 13 hops(mắt xích)  trên mạng. Đây là đưòng đi của các gói packets: Netzero(ISP đã gởi dữ liệu đi) ­> Spectranet (một nhà công  cấp mạng xương sống ­ Backbone Provider) ­> New York  ISP ­> New York Backbone ­> Asia ­> South Asia ­> India  Backbone ­> New Delhi Backbone ­> một router khác trong  New Delhi Backbone ­> New Delhi ISP Như vậy, host có địa chỉ ip 203.94.12.54 nằm ở New Delhi,  India, South Asia! Bạn cũng có thể telnet đến 203.94.12.54  trên cổng 13(datetime) để xác định giờ GMT qua đó bạn có  thể biết được vị trí của host này(yêu cầu là host  203.94.12.54 phải chạy daemon datetime và được định cấu  hình đúng về thời gian)!
  3. Traceroute hoạt động như thế nào? Trước hết, bạn cần biết về ICMP, TTL và cách làm việc của  các routers(bộ định tuyến)! Những kiến thức cơ bản ICMP ­ Internet Control Message Protocol. ICMP được dùng  để thông báo các lỗi xảy ra trong quá trình truyền đi của các  gói dữ liệu trên mạng. ICMP thuộc tầng vận huyển ­  Transpoort Layer!   HTTP FTP Telnet Finger DNS SNMP SSH DNS RIP Tầng ứng POP3/IMAP SMTP Gopher RADIUS Ping dụng BGP Archie Time/NTP Whois Traceroute TACACS+ SSL tftp ICM Tầng vận TCP UDP OSPF P chuyển Tầng IP ARP Internet Ethernet/802.3 Token Ring (802.5) SNAP/802.2 X.25 FDDI ISDN Frame Relay SMDS ATM Wireless (WAP, CDPD, 802.11) Tầng vật lí Fibre Channel DDS/DS0/T-carrier/E-carrier SONET/SDH DWDM PPP HDLC SLIP/CSLIP xDSL Cable Modem (DOCSIS)
  4. Tất cả các ICMP messages đều được chuyển đi cùng với  các IP datagrams. Mỗi ICMP message được gói trong IP  datagram sẽ có dạng như sau: +­­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­+ | IP Header(20 bytes) | ICMP message (32 bytes) | +­­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­+ Sau đây là cấu trúc của một IMCP message: (tham khảo  RFC792 để biết thêm!) 0                7 8              15 16              31 +­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­+ |  Type (0 or 8)  |     Code (0)    | 16­bit Checksum | +­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­+ |              Indentifier          | sequence number | +­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­+ |                                                     | | Optional Data (nội dung tùy thuộc vào Type và Code) | |                                                     | +­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­+ • trường type có 15 giá trị khác nhau, tùy thuộc vào từng  loại ICMP error message cụ thể. Ví dụ type=3 để chỉ  định cho thông báo lỗi "Không đến được đích" ­  "Destination unreachable" error message!  • trường code = sub­error dùng để xác định chính xác lỗi  đã xảy ra. Ví dụ, type=3 và code=0 nghĩa là "Network  Unreachable"(không đến được mạng); nếu type=3,  code=1 nghĩa là "Host Unreachable"(không đến được  host)...  
  5. TTL ­ Time to Live. TTL là một trường 8 bit trong IP  header(bạn hãy xem lại cấu trúc của IP header!). TTL là thời  gian gói dữ liệu tồn tại trên mạng trước khi nó bị bỏ qua.  Người gởi dữ liệu đi sẽ xác định một giá trị TTL trước, thường  là từ 32 ­> 64. Giá trị này sẽ được giảm đi một khi một khi  được chuyển qua một bộ định tuyến trên mạng. Khi giá trị  này bằng 0, datagram này sẽ bị bỏ qua và giao thức ICMP  sẽ báo lỗi về cho người gởi. Điều này sẽ tránh cho datagram  này đi vào một vòng lặp vô tận qua các bộ định tuyến.  Mỗi bộ định tuyến khi nhận được IP datagram sẽ giảm giá trị  TTL của datagram này đi một. Hầu hết các bộ định tuyến  đều không giữ lại datagram này trong thời gian quá 1 giây  trước khi chuyển datagram này đi. Nên giá trị TTL có thể coi  bằng hop(counter) = số bộ định tuyến mà datagram này vừa  vượt qua. Khi bộ định tuyến nhận được một datagram có trường TTL  bằng 0 hoặc 1, nó sẽ không chuyển datagram này đi tiếp.  Thay vào đó, nó sẽ bỏ qua datagram này và gởi một ICMP  message "Time Exceeded"(quá thời gian) trở lại cho người  đã gởi datagram này! Vì ICMP message mà bộ định tuyến  gởi trở lại cho người gởi có địa chỉ nguồn ­ source address là  địa chỉ ip của bộ định tuyến này nên người gởi có thể biết  được địa chỉ ip của router này! Cách làm việc của traceroute! Traceroute gởi một IP datagram có TTL=1 đến hệ thống  đích. Router đầu tiên nhận được datagram này sẽ giảm giá  trị TTL đi một ­> TTL=0 và router này sẽ bỏ qua datagram 
  6. này(không gởi nó đi tiếp!) và gởi một ICMP error message  với địa chỉ ip nguồn là địa chỉ của nó đến máy bạn. Như vậy  router có thể xác định địa chỉ ip của router thứ nhất! Sau đó,  traceroute sẽ gởi một datagram mới đi với giá trị  TTL=2(1+1=2) đến hệ thống đích. Router đầu tiên sẽ giảm  giá trị của TTL đi một ­> TTL=1(2­1=1) và chuyển datagram  này sang router thứ 2. Router thứ 2 nhận được datagram có  TTL=1 sẽ giảm TTL=0. Rounter 2 nhận thấy TTL=0 nên nó  sẽ không chuyển datagram này đi tiếp. Router 2 sẽ gởi trở lại  máy bạn một ICMP error message với địa chỉ ip nguồn là địa  chỉ ip của nó(router 2). Như vậy trình traceroute trên máy  bạn sẽ biết được router thứ 2 mà datagram đã đi qua.  Traceroute sẽ tiếp tục gởi một datagram khác có  TTL=3(2+1=3) đi và lặp lại quá trình trên cho đến khi  datagram đến được hệ thống đích! Nếu bây giờ IP datagram đã đến được đích, TTL=1. Host  đích sẽ bỏ qua datagram này và nó cũng sẽ không gởi "Time  Exceeded" ICMP error message. Như vậy thì bạn sẽ không  thể nào biết được là mình đã đến đích chưa?! Traceroute  dùng một cơ chế khác như sau: Traceroute gởi UDP datagrams đến host đích trên các cổng  UDP có số hiệu lớn(>30000). Sở dĩ nó chọn các cổng có giá  trị lớn vì thường không có ứng dụng nào đang lắng nghe ở  các cổng này. Khi host đích nhận được UDP datagram này,  nó sẽ gởi trả lại một ICMP error message "Port  Unreachable"(không đến được cổng) cho traceroute. Bây giờ  thì traceroute có thể phân biệt được sự khác nhau giữa ICMP 
  7. error message "Time Exceeded" với "Port Unreachable" để  biết được đã đến được đích hay chưa?! Ghi chú: ICMP error message "Time Exceeded" có type=1  và code=0; ICMP eror message "Port Unreachable" có  type=3 và code=3 Tổng kết: traceroute gởi UDP datagrams đến host đích với  giá trị TTL=1 và được tăng sau mỗi lần để xác định các  routers mà datagrams đã đi qua. Mỗi router sẽ gởi trở về một  ICMP message "Time Exceeded". Riêng hệ thống đích sẽ  gởi trở lại cho traceroute một ICMP message "Port  Unreachable". Traceroute dựa vào sự khác biệt này để xác  định xem đã đến được đích chưa?! Ví dụ cuối cùng! host2 # traceroute xyz.com traceroute to xyz.com (202.xx.12.34), 30 hops max, 40 byte packets 1 isp.net (202.xy.34.12) 20ms 10ms 10ms 2 xyz.com (202.xx.12.34) 130ms 130ms 130ms Dòng đầu tiên cho biết hostname và địa chỉ IP của hệ thống  đích. Dòng này còn cho chúng ta biết thêm giá trị TTL
  8. ICMP message error "Time Exceeded". Traceroute sẽ gởi  tiếp một datagram đến hệ thống đích. Dòng thứ 3, xyz.com(202.xx.12.34) nhận được datagram có  TTL=1(router thứ nhất đã giảm một trước đó ­ TTL=2­1=1).  Tuy nhiên, xyz.com không phải là một router, nó sẽ gởi trở  lại cho traceroute một ICMP error message "Port  Unreachable". Khi nhận được ICMP message này,  traceroute sẽ biết được đã đến được hệ thống đích xyz.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 sao "*"(không biết) và tiếp tục gởi datagram  khác đến host đích! Hy vọng đến đây bạn có hiểu được traceroute làm việc như  thế nào!? Chúc bạn vui vẻ !     
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2