1. Trang chủ
  2. » Giáo án - Bài giảng

mạng máy tính4 wireshark icmp ip sinhvienzone com

12 547 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 345,56 KB

Nội dung

BÀI TẬP THỰC HÀNH SỐ 4 MÔN HỌC: NHẬP MÔN MẠNG MÁY TÍNH GIAO THỨC ICMP VÀ IP 1 Giao thức ICMP Trong bài thực hành này, chúng ta sẽ khám phá một số phương diện của giao thức ICMP: Các t

Trang 1

BÀI TẬP THỰC HÀNH SỐ 4 MÔN HỌC: NHẬP MÔN MẠNG MÁY TÍNH

GIAO THỨC ICMP VÀ IP

1 Giao thức ICMP

Trong bài thực hành này, chúng ta sẽ khám phá một số phương diện của giao thức ICMP:

Các thông điệp ICMP tạo bởi chương trình Ping

Các thông điệp ICMP tạo bởi chương trình Traceroute

Định dạng và nội dung của một thông điệp ICMP

Trước khi đi vào chi tiết bài thực hành, sinh viên nên xem lại các kiến thức về ICMP trong phần 4.4.3 của giáo trình Bài thực hành này thực hiện trên hệ điều hành Windows, tuy nhiên SV cũng có thể thực hiện trên hệ điều hành Unix/Linux với các công cụ được cài đặt tương đương

1.1 ICMP và Ping

Trong phần này hướng dẫn SV hiểu về giao thức ICMP bằng cách bắt các gói tin tạo bởi chương trình Ping Ping là công cụ đơn giản cho phép xác định một Host còn sống hay không Ping ở Host nguồn gửi một gói tin tới địa chỉ IP đích Nếu Host đích còn sống, chương trình Ping ở Host đích sẽ trả lời bằng cách gửi một gói tin trở lại Host nguồn Cả 2 loại gói tin được dùng trong quá trình Ping này đều là các gói tin ICMP

Ghi chú rằng nếu bạn không thể chạy Wireshark trên Internet thật sự thì có thể

mở file icmp-ethereal-trace-1 có sẵn trong thư mục wireshark-traces

Thực hiện các bước sau khi có kết nối Internet:

Mở ứng dụng Command Prompt trong Windows

Chạy chương trình Wireshark và tiến hành bắt gói tin Wireshark

Trong chương trình MS-DOS gõ dòng lệnh: “ping-n 10 hostname”, hoặc

“c:\windows\system32\ping –n 10 hostname”, sau đó gõ Enter

Trang 2

Trong đó, hostname là một Host ở châu lục khác (chẳng hạn chúng ta đang ở châu Á thì có thể chọn một Host ở châu Âu như bbc.co.uk) “-n 10” tức là 10 gói tin ping sẽ được gửi đi

Khi chương trình Ping kết thúc, dừng quá trình bắt gói tin trong Wireshark Sau khi thực hiện các bước trên, cửa sổ Command Prompt sẽ như hình 1 Trong

ví dụ này, chương trình Ping nguồn ở Massachusetts và chương trình Ping đích là

ở Hồng Kông Từ cửa sổ này chúng ta thấy rằng chương trình Ping ở địa chỉ nguồn gửi 10 gói tin truy vấn và nhận được 10 gói tin trả lời Chú ý rằng với mỗi thông điệp trả lời, chương trình Ping nguồn sẽ tính thời gian của chu trình (Roundt-Tirp Time – RTT), với 10 gói tin thì thời gian chu trình trung bình vào khoảng 375 mili-giây

Hình 1 Cửa sổ Command Prompt sau khi chạy lệnh Ping

Ở hình 2 là cửa sổ của chương trình Wireshark sau khi lệnh „icmp‟ được enter vào cửa sổ hiển thị Filter (cửa sổ cung cấp chức năng lọc gói tin theo từ khóa được nhập) Chú ý rằng cửa sổ liệt kê 20 gói tin gồm: 10 gói tin truy vấn được gửi bởi host nguồn và 10 gói tin phản hồi mà host nguồn nhận được Cũng chú ý thêm rằng địa chỉ IP nguồn là một địa chỉ tĩnh (đằng sau một NAT) ở định dạng 192.168/12, và địa chỉ IP đích là của Web server ở HKUST Ở gói tin đầu tiên trong ví dụ bên dưới thì vùng cửa sổ về nội dung gói tin cung cấp thông tin về gói tin này Chúng ta thấy rằng phần địa chỉ IP của gói tin này có giao thức số 01, là

Trang 3

số giao thức của giao thức ICMP Điều này có nghĩa là Payload của phần địa chỉ

IP là một gói tin ICMP

Hình 2 Cửa sổ output của Wireshark cho chương trình Ping với thông tin

về giao thức IP được hiển thị

Ở hình 3 tập trung vào cùng gói tin ICMP nhưng mở hiển thị chi tiết phần thông tin trong cửa sổ nội dung gói tin Ta quan sát thấy rằng gói tin ICMP này thuộc tuýp 8 (Type 8) và Code 0, một dạng gói tin gọi là ICMP „Echo Request‟ (xem thêm ở hình 4.23 của giáo trình) Cũng chú ý rằng gói tin ICMP này chứa một Checksum, một định danh, và một số thứ tự (Sequence Number)

Trang 4

Hình 3 Kết quả việc bắt gói tin Ping với phần thông tin về gói tin ICMP

được hiển thị chi tiết

Sinh viên cần nộp lại báo cáo với các nội dung sau:

- Hình chụp màn hình cửa sổ Command Prompt tương tự như hình 1 ở trên

- Trả lời các câu hỏi bên dưới, trong đó với mỗi câu trả lời cần kèm theo một bản in/hình kết quả hiển thị của (các) gói tin trong truy vết (trace) mà SV sử dụng

để trả lời câu hỏi Chú thích vào bản in để giải thích về câu trả lời Để in một gói tin, vào File -> Print, chọn „Selected packet only‟, chọn „Packet summary line‟, và chọn lượng nhỏ nhất của thông tin chi tiết của gói tin cần dùng để trả lời câu hỏi Các câu hỏi SV cần trả lời gồm:

1 Cho biết địa chỉ IP của máy Host mà SV đang dùng? Địa chỉ IP của Host đích?

Trang 5

2 Tại sao một gói tin ICMP không có số cổng (port number) của Host nguồn và đích?

3 Xem xét chi tiết một trong số các gói tin Ping Request được gửi bởi Host mà

SV đang dùng: Cho biết thông tin về ICMP Type và các Code Number của nó? Gói tin ICMP có các trường thông tin nào khác? Các trường thông tin Checksum, Sequence Number và định danh có bao nhiêu byte?

1.2 ICMP và Traceroute

Ở phần này sẽ tiến hành bắt các gói tin ICMP tạo bởi chương trình Traceroute Traceroute là chương trình được dùng để truy vết/hiển thị đường đi của một gói tin

từ nguồn đến đích (xem thêm ở phần 1.4 và 4.4 trong giáo trình)

Traceroute được hiện thực theo nhiều cách khác nhau trong Unix/Linux/MacOS

và trong Windows Trong Unix/Linux, Host nguồn gửi một chuỗi các gói tin UDP tới địa chỉ đích sử dụng số cổng đích (destination port number) Trong Windows, nguồn gửi một chuỗi các gói tin ICMP tới địa chỉ đích Trong cả 2 hệ điều hành này thì chương trình gửi gói tin đầu tiên với TTL=1, gói tin thứ hai với TTL=2,… Lưu ý rằng Router sẽ giảm giá trị TTL của gói tin một đơn vị khi gói tin đi qua Router Khi một gói tin đến một Router với TTL=1, Router sẽ gửi một gói tin ICMP Error trở lại địa chỉ nguồn Trong phần tiếp theo, chúng ta sẽ sử dụng chương trình Tracert của Windows (trong phần thực hành về Wireshark IP sẽ sử dụng chương trình Pingplotter với các chức năng bổ sung so với Tracert mà chúng

ta sẽ cần dùng đến khi thực hành)

Ghi chú rằng nếu bạn không thể chạy Wireshark trên Internet thật sự thì có thể

mở file icmp-ethereal-trace-2 có sẵn trong thư mục wireshark-traces

Tiến hành các bước khi có kết nối Internet:

Mở chương trình Command Prompt

Mở chương trình Wireshark, tiến hành bắt gói tin

Gõ lệnh “tracert hostname”, hoặc “c:\windows\system32\tracert hostname” trong cửa sổ dòng lệnh MS-DOS, trong đó hostname là một host nằm ở châu lục khác Chẳng hạn, SV có thể gõ www.inria.fr cho một Web server ở INRIA (một viện nghiên cứu ở Pháp) Sau đó chạy Traceroute bằng cách gõ enter

Khi Traceroute kết thúc, ngưng việc bắt gói tin trong Wireshark

Sau khi chạy Traceroute thì cửa sổ Command Prompt tương tự như hình 4 Trong hình này, chương trình Traceroute khách là ở Massachusetts và đích đến là

Trang 6

ở Pháp Từ hình này chúng ta thấy rằng với mỗi giá trị TTL, chương trình nguồn gửi 3 gói tin tham dò Traceroute hiển thị RTT cho mỗi gói tin thăm dò, cũng như địa chỉ IP (có thể có thêm tên) của Router trả về thông điệp ICMP TTL vượt quá giới hạn (ICMP TTL-exceeded message)

Hình 4 Cửa sổ Command Prompt hiển thị các kết quả của Traceroute

Ví dụ 5 hiển thị cửa sổ Wireshark cho một gói tin ICMP trả về bởi một Router Chú ý rằng gói tin lỗi ICMP (ICMP Error packet) này chứa nhiều trường thông tin hơn các gói tin Ping ICMP

Trang 7

Hình 5 Cửa sổ Wireshark với các trường ICMP được mở hiển thị ra cho

một gói tin lỗi ICMP

SV cần nộp lại các nội dung sau trong bài báo cáo:

- Ở phần thực hành này, SV cần nộp lại hình chụp màn hình của cửa sổ Command Prompt Trả lời các câu hỏi sau đây, ở mỗi câu trả lời kèm theo bản in của (các) gói tin với truy vết (trace) đã sử dụng, và chú thích vào bản in để giải thích câu trả lời Để in một gói tin, vào File -> Print,… như hướng dẫn ở phần trên Các câu hỏi SV cần trả lời gồm:

5 Cho biết địa chỉ IP của máy tính đang sử dụng? Địa chỉ IP của Host đích?

6 Nếu ICMP gửi các gói tin UDP (như trong Unix/Linux), số của giao thức IP (IP protocol number) vẫn là 01 có đúng không? Nếu không thì nó sẽ là gì?

Trang 8

7 Xem chi tiết gói tin ICMP Echo trong hình chụp màng hình đã thực hiện, nó

có khác với các gói tin truy vấn ICMP Ping trong phần đầu của bài thực hành này hay không? Nếu có, hãy giải thích?

8 Xem chi tiết gói tin ICMP Error trong hình chụp màng hình đã thực hiện, nó

có nhiều trường thông tin hơn gói tin ICMP Echo Những trường thông tin này bao gồm những gì?

9 Xem chi tiết 3 gói tin ICMP cuối cùng nhận được ở Host nguồn Những gói tin này khác với các gói tin ICMP Error như thế nào? Tại sao chúng khác nhau?

10 Trong quá trình đo Tracert, có đường liên kết (link) nào mà có thời gian trễ dài hơn đáng kể so với các link khác hay không? Xem lại hình 4, có đường liên kết link nào mà có thời gian trễ dài hơn đáng kể so với các link khác hay không? Căn

cứ vào các tên Router có thể đoán biết được vị trí của 2 Router ở điểm kết thúc ở link này hay không?

2 Giao thức IP

Trong phần thực hành này sẽ tìm hiểu về giao thức IP, tập trung vào phân tích gói tin IP Chúng ta sẽ thực hiện phân tích đường đi của một gói tin IP gửi và nhận bởi sự thực thi chương trình Traceroute, cũng như tìm hiểu các trường thông tin khác nhau trong gói tin IP và tìm hiểu về việc phân mảnh IP một cách chi tiết

2.1 Bắt các gói tin từ việc thực thi Traceroute

Để tạo một truy vết (trace) của các gói tin IP (IP datagram) trong phần này, chúng ta sẽ dùng Traceroute để gửi các gói tin có độ dài khác nhau đến một địa chỉ đích X nào đó Lưu ý rằng Traceroute thực thi bằng cách trước tiên gửi một hoặc nhiều gói tin với TTL trong IP header được thiết lập giá trị là 1; tiếp đến gửi một chuỗi một hoặc nhiều gói tin đến cùng một địa chỉ đích với một TTL có giá trị là 2; sau đó gửi một chuỗi gói tin tương tự với TTL=3,… Cũng lưu ý rằng Router phải giảm giá trị TTL một đơn vị ở mỗi gói tin nhận được Nếu TTL bằng 0, Router trả về một thông điệp ICMP (Type 11 – TTL-exceeded) tới Host gửi Kết quả là một gói tin với TTL bằng 1 (gửi bởi Host chạy Traceroute) sẽ khiến Router

kế cận (cách Router hiện tại một Hop tính từ Host gửi) gửi một thông điệp ICMP TTL-exceeded trở lại nơi gửi; gói tin được gửi với TTL bằng 2 sẽ khiến Router nằm cách 2 Hop gửi một thông điệp ICMP trở lại nơi gửi; gói tin được gửi với TTL bằng 3 sẽ khiến Router nằm cách 3 Hop gửi một thông điệp ICMP trở lại nơi gửi, và cứ như vậy Trong trường hợp này, Host chạy Traceroute có thể biết được

Trang 9

định danh của các Router giữa nó và địa chỉ đích X bằng cách xem ở các địa chỉ IP nguồn trong các gói tin chứa các thông điệp ICMP TTL-exceeded

Thực hiện việc chạy Traceroute để gửi các gói tin có độ dài khác nhau:

Windows: ở đây chúng ta dùng chương trình (ưu điểm hơn chương trình Traceroute) là Pingplotter (http://www.pingplotter.com) Tải và cài đặt Pingplotter, test chương trình bằng cách thực hiện một vài thao tác traceroute tới một vài Website ưa thích Kích thước của gói tin ICMP Echo Request có thể được thiết lập một cách rõ ràng trong Pingplotter bằng cách chọn menu Edit -> Options -> Packet Options, và sau đó điền vào trường Packet Size Kích thước mặc định của tói tin là 56 bytes Khi Pingplotter gửi một chuỗi các gói tin với giá TTL ngày càng tăng, nó khởi động lại quá trình gửi với TTL bằng 1, sau khi chờ một khoảng thời gian Trace Interval Giá trị của Trace Interval và số lượng các khoảng thời gian có thể được thiết lập một cách rõ ràng trong Pingplotter

Linux/Unix/MacOS: với lệnh traceroute trong Unix/MacOS, kích thước của gói tin UDP được gửi đến đích và có thể được thiết lập một cách rõ ràng bằng cách chỉ rõ số byte trong gói tin Thông tin này được nhập trong dòng lệnh traceroute ngay sau tên hoặc địa chỉ của Host đích Ví dụ, gửi các gói tin traceroute 2000 byte đến địa chỉ gaia.cs.umass.edu thì câu lệnh sẽ là:

%traceroute gaia.cs.umass.edu 2000

Ghi chú rằng nếu bạn không thể chạy Wireshark trên Internet thật sự thì có thể

mở file ip-ethereal-trace-1 có sẵn trong thư mục wireshark-traces

Thực hành các bước sau khi có kết nối Internet:

Khởi động Wireshark và bắt đầu bắt gói tin (Capture -> Start), nhấn OK trên màn hình Wireshark Packet Capture Options

Nếu bạn đang dùng Windows, khởi động Pingplotter và enter tên của một đích trong mục “Address to Trace Window” Gõ vào giá trị 3 trong mục “# of times to Trace” (để không phải bắt quá nhiều dữ liệu) Chọn menu Edit -> Advanced Options -> Packet Options và enter một giá trị 56 trong mục “Packet Size” và nhấn OK Sau đó nhấn nút Trace Cửa sổ Pingplotter sẽ tương tự như hình bên dưới

Trang 10

Tiếp theo, gửi một tập các gói tin có độ dài lớn hơn bằng cách chọn Edit -> Advanced Options -> Packet Options và enter một giá trị 2000 trong mục Packet Size và nhấn OK Sau đó nhấn nút Resume

Cuối cùng, gửi một tập các gói tin có độ dài lớn hơn (thực hiện tương tự như trên) với giá trị 3500 trong Packet Size và nhấn OK Sau đó nhấn nút Resume

Dừng quá trình truy vết trên Wireshark

Nếu bạn đang dùng Unix hoặc Mac, enter 3 lệnh traceroute, một lệnh với chiều dài 56 byte, một lệnh với chiều dài 2000 byte, và một lệnh chiều dài 3500 byte

Dừng truy vết trên Wireshark

2.2 Xem xét thông tin truy vết thu được

Trong truy vết thu được, bạn có thể thấy được chuỗi ICMP Echo Request (trong trường hợp dùng Windows) hay phân mảnh UDP (trong trường hợp dùng Unix) gửi bởi máy tính của bạn và các thông điệp ICMP TTL-exceeded trở về máy tính của bạn bởi các Router trung gian Trong câu hỏi dưới đây, chúng ta giả sử bạn đang sử dụng Windows, các câu hỏi tương ứng cho trường hợp dùng Unix sẽ được nêu rõ Khi trả lời một câu hỏi bên dưới, SV cần nộp một bản in (printout) của các gói tin đối với truy vết (trace) mà bạn sử dụng để trả lời các câu hỏi Khi nộp bài báo cáo, SV cần chú thích vào kết quả output để làm rõ bạn lấy thông tin ở đâu

Trang 11

trong output để dùng cho câu trả lời của bạn Việc in một gói tin có thể thực hiện tương tự như đã hướng dẫn ở các phần trên

1 Chọn gói tin ICMP Echo Request đầu tiên gửi bởi máy tính của bạn, và mở phần nội dung của phần Internet Protocol của gói tin trong cửa sổ hiển thị chi tiết

về gói tin Địa chỉ IP của máy đang dùng là gì?

2 Trong Header của gói tin IP, giá trị trong trường thông tin về giao thức lớp cao hơn là gì?

3 IP Header có bao nhiêu byte? Trong Payload của gói tin IP có bao nhiêu byte? Giải thích

4 Gói tin IP có bị phân mảnh không? Giải thích

Tiếp theo, sắp xếp các gói tin đã theo vết tùy theo địa chỉ IP nguồn bằng cách click vào header của cột „Source‟, một mũi tên đổ xuống sẽ xuất hiện kế bên từ

“Source” Chọn thông điệp ICMP Echo Request gửi bởi máy tính của bạn, và mở hiển thị mục Internet Protocol trong “details of selected packet header” Trong cửa

sổ “listing of captured packets”, bạn có thể thấy tất cả các thông điệp ICMP đến sau nằm bên dưới ICMP đầu tiên này Dùng mũi tên hướng xuống để di chuyển các gói tin ICMP gửi bởi máy tính của bạn

5 Các trường thông tin (field) nào trong gói tin IP luôn thay đổi từ một gói tin này sang gói tin kế tiếp trong chuỗi các gói ICMP gửi bởi máy tính của bạn?

6 Các trường thông tin nào là không đổi (hằng sô)? Các trường thông tin nào phải cố định không thay đổi? Các trường thông tin nào phải thay đổi? Tại sao?

7 Mô tả mẫu mà bạn thấy trong các giá trị trong trường thông tin về định danh của gói tin IP

8 Giá trị trong trường thông tin định danh và trường về TTL là gì?

9 Có phải các giá trị này vẫn không thay đổi đối với tất cả các gói tin trả lời ICMP TTL-exceeded gửi đến máy tính của bạn bởi Router gần nhất? Tại sao?

Phân mảnh (Fragmentation)

10 Tìm gói tin ICMP EchoRequest được gửi bới máy tính của bạn sau khi thay đổi Packet Size trong Pingplotter thành 2000 Có phải gói tin đó được phân mảnh qua nhiều hơn một gói tin IP?

Ngày đăng: 28/01/2020, 22:50

TỪ KHÓA LIÊN QUAN

w