1.Giới thiệu Wireshark………………………………..32.Wireshark Lab : DHCP……………………………...53.Wireshark Lab : DNS………………………………...84.Wireshark Lab : Ethernet ARP……………….145.Wireshark Lab : HTTP……………………………....226.Wireshark Lab : ICMP……………………………....277.Wireshark Lab : IP……………………………............328.Wireshark Lab : TCP……………………………........379.Wireshark Lab : UDP........................................45Sự hiểu biết về các giao thức thường có thể được đào sâu hơn bằng cách “seeing protocols in action” và “playing around with protocols” – quan sát chuỗi các message trao đổi giữa 2 thực thể protocols, đi sâu hơn các chi tiết về hành động của protocl và khiến cho protocol thực thi các hành động cụ thể nào đó rồi xem xét hệ quả gây ra. Nó có thể được thực hiện trong những kịch bản được mô phỏng hoặc ở môi trường mạng thực như internet.
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘI
BÀI TẬP LỚN MẠNG MÁY TÍNH
Giảng viên hướng dẫn : TS Ngô Hồng Sơn Nhóm 29 : Lê Xuân Thống Nhất, 20072151, CNPM-K52
Trịnh Thị Lan Phượng, 20062468, HTTT-K52 Nguyễn Trọng Duy, 20070514,TTM-K52 Nguyễn Thị Mai, 20071892 ,CNPM-K52
Trang 2Nội dung :
1. Giới thiệu Wireshark……… 3
2. Wireshark Lab : DHCP……… 5
3. Wireshark Lab : DNS……… 8
4. Wireshark Lab : Ethernet & ARP……….14
5. Wireshark Lab : HTTP……… 22
6. Wireshark Lab : ICMP……… 27
7. Wireshark Lab : IP……… 32
8. Wireshark Lab : TCP……… 37
9. Wireshark Lab : UDP……… 45
Chú ý : Phân công công việc
1. Lê Xuân Thống Nhất : Ethernet & ARP, HTTP
2. Trịnh Thị Lan Phượng : TCP, UDP
3. Nguyễn Thị Mai : DHCP, DNS
4. Nguyễn Trọng Duy : ICMP, IP
1 Giới thiệu Wireshark
Sự hiểu biết về các giao thức thường có thể được đào sâu hơn bằng cách “seeing protocols in action” và “playing around with protocols” – quan sát chuỗi các message trao đổi giữa 2 thực thể protocols, đi sâu hơn các chi tiết về hành động của protocl và khiến cho protocol thực thi
Trang 3các hành động cụ thể nào đó rồi xem xét hệ quả gây ra Nó có thể được thực hiện trong những kịch bản được mô phỏng hoặc ở môi trường mạng thực như internet.
Trong Wireshark lab chúng tôi theo các tiếp cận sau Bạn sẽ quan sát giao thức mạng trong máy tính của bạn “in action”, tương tác và trao đổi message với các giao thức khác trên internet Vì thế bạn và máy tính của bạn sẽ là 1 phần của “live” lab đó Bạn sẽ quan sát, bạn sẽ học, bằng cách làm
1 công cụ cơ bản để quan sát các message được truyền giữa các thực thể giao thức được gọi
là packet sniffer Như tên gọi gợi ý, 1 packet sniffer bắt (capture hay sniffs) message đang
được gửi/nhận từ/tới máy tính của bạn; nó sẽ chứa và/hoặc hiển thị nội dung của các
trường giao thức trong các message bị bắt 1 packet sniffer tự nó là bị động Nó quan sát các
message đang được gửi và nhận bởi các ứng dụng và các giao thức đang chạy trên máy tính của bạn, nhưng không bao giờ tự gửi những packet chính nó Tương tự, packet được nhận
không bao giờ được địa chỉ hóa rõ ràng tới packet sniffer Thay vào đó, 1 packet sniffer nhận
1 bản copy của các packet đang được gửi hoặc nhận từ/tới ứng dụng và protocol đang chạy trên máy tính của bạn.
Hình 1dưới đây chỉ ra cấu trúc của 1 packet sniffer Bên phải là các giao thức(trong trường
hợp này, các giao thức Internet) và các ứng dụng (như web browser hay ftp clietn) là những thứ thường chạy trên máy bạn packet sniffer là phần thêm cho phần mềm của bạn, thường có
2 phần the packet capture library nhận 1 bản copy của mọi khung lớp liên kết được gửi hay nhận từ máy bạn Những message được truyền bởi giao thức tầng cao hơn như
HTTP,FTP,TCP,UDP,DNS hoặc IP, tất cả được đóng gói thực sự trong các link-layer frame, thứ được truyền thông qua thiết bị vật lý như cap ethernet Trong hình 1, thiết bị vật lý coi là cáp ethernet, và vì thế tất cả giao thức tầng cao hơn thực sự được đóng gói trong frame Ethernet Bắt tất cả các link-layer frame đưa cho ta tất cả các message được gửi, nhận từ/ tới tất cả các giao thức, ứng dụng đang thực thi trên máy của bạn.
Thành phần thứ 2 của packet sniffer là packet analyzer, thứ hiển thị tất cả các trường trong 1 thông điệp giao thức Để làm được vậy, packet analyzer phải “understand” cấu trúc tất cả các message được gửi bởi protocol Ví dụ như, cho rằng chúng ta quan tâm tới hiển thị nhiều trường trong các message được gửi bởi giao thức HTTP trong hình 1 Packet analyzer hiểu
Trang 4định dạng của Ethernet frame và vì thế có thể định danh gói dữ liệu IP (datagram) bên trong Ethernet frame Nó cũng hiểu định dạng của gói dữ liệu IP, vì thế nó có thể trích xuất ra TCP segment bên trong gói dữ liệu IP Tương tự nó hiểu cấu trúc của TCP segment và có thể trích rút ra thông điệp HTTP chứa trong đó Cuối cùng nó hiểu giao thức HTTP và vì thế, ví dụ, hiểu file đầu tiên sẽ chứa các chuỗi “GET”,”POST” hay “HEAD”…
Chúng ta sẽ sử dụng Wireshark packet sniffer [http://www.wireshark.org/] cho các lab này, cho phép chúng thể hiện nội dung các message đâng được gửi, nhận từ/tới các giao thức ở các mức độ khác nhau của stack giao thức
2 Wireshark Lab : DHCP
1. Thông điệp DHCP được gửi qua UDP hay TCP?
Thông điệp DHCP được gửi qua UDP
2. Vẽ một datagram minh họa trình tự thời gian của 4 gói đầu tiên Discover/Offer/Request/ACK DHCP trao đổi giữa client và server Mỗi gói sẽ chỉ ra số cổng nguồn và cổng đích Số cổng trong ví dụ đưa ra và trong phòng lab có giống nhau không?
Trang 5Src: 0.0.0.0 Dest: 255.255.255.255
Src: 192.168.1.1 Dest: 192.168.1.112
Src: 0.0.0.0 Dest: 255.255.255.255
Src: 192.168.1.1 Dest: 192.168.1.112
Discover
Offer
Request
ACK
3. Địa chỉ link-layer của máy bạn là gì?
Địa chỉ link-layer là : 00:1e:ec:66:97:e4
4. Giá trị nào của DHCP discover message phân biệt với DHCP request message
6. Host dùng DHCP để chứa đựng địa chỉ IP, nhưng địa chỉ IP của host không chấp nhận cho đến khi kết thúc việc trao đổi của 4 thông điệp Nếu địa chỉ IP không được xác định cho đến khi kết thúc việc trao đổi của 4 thông điệp, sau đó giá trị nào là được dùng trong gói dữ liệu ngắn IP trong 4 thông điệp khi trao đổi??? Với mỗi 4 thông điệp DHCP(Discover, Offer, Request, ACK) cho biết địa chỉ IP nguồn và đích được thực hiện trong lúc gói dữ liệu IP đóng gói.
Src: 0.0.0.0 Dst: 255.255.255.255
Trang 67. Địa chỉ IP của DHCP server của bạn là gi?
10. Giải thích chức năng của router và mặt nạ supnet trong DHCP offer message
Router được dung để lấy địa chỉ IP của router qua client., Subnet mask Chúng được sử
dụng để phân chia một mạng lớn thành các mạng nhỏ hơn
11. Trong ví dụ, host yêu cầu một địa chỉ IP trong DHCP Request message Bạn đã làm gì? Host yêu cầu đề nghị với địa chỉ IP trong thông điệp DHCP request
12. Giai thích chức nằng của lease time Bạn đã làm lease time trong bao lâu?
Lease time là thời gian mà nó nói lên cho biết thời gian mà địa chỉ IP dùng Trong lab này, thời gian lease time là 3 ngày
13. Chức năng của DHCP release message là gi? DHCP server đưa ra thông báo xác nhận yêu cầu của DHCP của client Chuyện gì sẽ xảy ra nếu thổng điệp từ DHCP của client bị mất?
Trang 7Thông điệp DHCP release được dùng để cho biết DHCP server mà client đã sẵn sàng được dùng cho địa chỉ IP Nếu thông điệp DHCP release bị mất thì sau đó địa chỉ IP sẽ được dùng cho đến khi hết hạn thời gian.
14. Làm sáng tỏ bootp filter trong cửa sổ wireshack Bất kỳ gói ẢRP nào cũng được gửi hoặc nhận trong quá trình trao dổi các gói
ARP(address solution protocal) là giao thức mà nó dùng cho việc đánh dấu giữa địa chỉ IP và địa chỉ MAC.
3 Wireshark Lab : DNS
1. Chạy nslookup để lấy địa chỉ IP của web server Asia
2. Chạy nslookup để xác định DNS server chủ của một trường đại học ở Châu Âu nào đó
Trang 83. Chạy nslookup như một trong các DNS server trong Question 2 là truy vấn đến mail server của yahoo mail
4. Xác định thông điệp truy vấn DNS và đáp trả DNS Chúng được gửi qua giao thức UDP hay TCP?
Giao thức: UDP
Trang 95. Cổng đích của thông điệp truy vấn DNS là bao nhiêu? Cổng nguồn là bao nhiêu?
2 địa chỉ IP này giống nhau
7. Xét thông điệp truy vấn DNS Truy vấn DNS này thuộc loại gi? Nó có chứa “answers” nào không?
type:A
không chứa answers nào
8. Xét thông điệp đáp trả Có bao nhiêu loại “answers”? giải thích cụ thể từng loại?
Có 1 Anwer
9. Xem xét gói TCP SYN gửi từ host của bạn Có phải địa chỉ IP đích của gói SYN phù hợp với bất
cứ địa chỉ IP được cung cấp trong thông điệp đáp trả DNS?
Trang 10IP của DNS query:192.168.1.36
Yes!
13. Xét thông điệp truy vấn DNS Nó thuộc loại nào? Có chứa bất kỳ “answers” nao không?
type:A
không chứa anwers nào
14. Xét thông điệp hồi đáp DNS Thông điệp DNS này thuộc loại gi? Nó có chứa bất kỳ một
“answer” nào không?
Trang 1117. Xét thông điệp truy vấn DNS Nó thuộc loại nào? Có chứa bất kỳ “answers” nao không?
18. Xét thông điệp hồi đáp Tên server của MIT trả lời hồi đáp là gì? Thông điệp hồi đáp cũng chứa địa chỉ IP của server đó đúng ko?
19. Đưa ra kết quả màn hình thu được
20. Thông điệp truy vấn DNS gửi đi bằng địa chỉ IP nào? Nó có phải là địa chỉ IP của DNS server cục bộ mặc đinh không? Nếu không thì địa chỉ IP đó là gì?
IP của DNS query: 192.168.1.36
Yes
21. Xét thông điệp truy vấn DNS Nó thuộc loại nào? Có chứa bất kỳ “answers” nào không?
Trang 1222. Xét thông điệp đáp trả Có bao nhiêu loại “answers”? giải thích cụ thể từng loại:
23. Đưa ra kết quả màn hình thu được
Trang 134 Wireshark Lab : Ethernet & ARP
A. Capturing and analyzing Ethernet frames
1. Địa chỉ Ethernet 48-bit của máy bạn là gì?
Trang 14Địa chỉ Ethernet 48-bit của máy em là : 00:1b:fc:35:d9:4d
2. Địa chỉ đích 48bit trong Ethernet frame là gì? Có phải nó là địa chỉ Ethernet của
gaia.cs.umass.edu? (Gợi ý: câu trả lời là không) Thiết bị nào có nó như là địa chỉ Ethernet của nó?
Địa chỉ đích 48-bit của Ethernet frame là : 00:02:cf:7e:13:de
Đây không phải địa chỉ Ethernet của gaia.cs.umass.edu mà là địa chỉ của router Zygate , vì gói tin phải được chuyển đến router ở mạng con trước khi router này chyển tiếp gói tin.
3. Đưa 1 giá trị hexa cho trường kiểu Frame 2-byte Các bit giá trị 1 có nghĩa gì bên trong trường flag(cờ) ?
Giá trị hexa của trường kiểu Frame là : 0x0800
Giá trị trường flag là ở byte thứ 21 (là 04), trường flag là 3 bit đầu tiên nên là : 010 ở đây bit
1 báo cho phép phân mảnh, còn bit 0 cuối cùng báo là mảnh cuối cùng, không còn mảnh sau nữa.
Trang 154. Có bao nhiêu byte tính từ nơi bắt đầu Ethernet frame mà mã ASCII ”G” trong “GET” xuất hiện trong Ethernet frame.
Có 54 byte tính từ đầu tới nơi xuất hiện mã ASCII “G” trong “GET” của Ethernet frame Nhìn trên hình ta thấy nó là byte có mã hexa là 47 ở dòng thứ tư trong vùng nội dung hexa của frame 54 byte này gồm có 14byte đầu của Ethernet frame, 20 byte IP header và 20 byte TCP header trước khi bắt đầu của HTTP
5. Giá trị hexa của trường CRC trong Ethernet frame?
Là 4 byte cuối cùng của Ethernet frame có giá trị là : od oa od oa
6. Giá trị của địa chỉ nguồn Ethernet là gì? Có phải nó là địa chỉ của máy tính của bạn, hoặc của gaia.us.umass.edu ?(Gợi ý : câu trả lời là không) Thiết bị gì có nó như là địa chỉ Ethernet của nó?
Địa chỉ Ethernet gốc là : 00:1f:29:90:03:8f Đây không phải địa chỉ của máy em hay máy chủ gaia.us.umass.edu mà là địa chỉ của router HewlettP_90
Trang 167. Địa chỉ đích của Ethernet frame? Có phải nó là địa chỉ Ethernet của máy tính của bạn? Địa chỉ đích của Ethernet frame là : 00:1b:fc:35:d9:4d và là địa chỉ của máy của tôi.
8. Đưa 1 giá trị hexa cho 1 trường kiểu Frame 2-byte Các bit có giá trị 1 có nghĩa gì bên trong trường cờ (flag field)?
Giá trị của trường Frame type là : 0x86dd
Vì ở đây là IP version 6 nên không có trường flag.
9. Có bao nhiêu byte tính từ bắt đầu của Ethernet frame mà mã ASCII “O” trong “OK”(ví dụ
mã phản hồi HTTP) xuất hiện trong Ethernet frame.
Có 75 byte tính từ bắt đầu của Ethernet frame để xuất hiện mã ASCII “O” trong “OK”
Trang 1710. Giá trị hexa của trường CRC trong Ethernet frame.
Là 4 byte cuối cùng của Ethernet frame có giá trị là : od oa od oa
B. The Address Resolution Protocol
11. Viết ra các nội dung cache ARP của máy tính của bạn Ý nghĩa của mỗi cột giá trị là gì?
Cache ARP bao gồm có địa chỉ IP ở cột Internet Address, địa chỉ MAC ở cột Physical Address và cột Type là chỉ kiểu giao thức
12. Giá trị hexa của địa chỉ nguồn và đích trong Ethernet frame, thứ chứa thông điệp ARP?
Trang 18Giá trị hexa của địa chỉ nguồn là : 00:d0:59:a9:3d:68
Giá trị hexa của địa chỉ đích là : ff:ff:ff:ff:ff:ff vì đây là địa chỉ quảng bá.
13. Đưa địa chỉ hexa của trường kiểu Ethernet frame 2-byte Các bit giá trị 1 nghĩa là gì trong trường flag.
Giá trị hexa của trường type là : 0x0806 là kiểu ARP
14. Tải xuống các đặc tả ARP từ ftp://ftp.rfc-editor.org/in-notes/std/std37.txt 1 thảo luận chi tiết có thể đọc được của ARP cũng ở
c) Thông điệp ARP chứa hay không địa chỉ IP của người gửi (sender)?
d) Nơi nào trong yêu cầu ARP mà “question” xuất hiện – Địa chỉ Ethernet của máy tính
mà địa chỉ IP tương ứng đang được truy vấn.
Trả lời :
Trang 19a) Trường opcode bắt đầu sau 20 byte tính từ đâu Ethernet frame.
b) Giá trị của trường opcode trong phần ARP-payload của Ethernet frame mà ở
đó 1 yêu cầu ARP được tạo ra là : 00 01
c) Có thông điệp này chứa địa chỉ IP của người gửi là : 192.168.1.105
d) Nơi nào trong yêu cầu ARP mà “question” xuất hiện : khi trường Target MAC address được thiết lập thành 00 00 00 00 để yêu cầu địa chỉ tương ứng với địa chỉ IP 192.168.1.1
15. Bây giờ tìm tín hiệu trả lời ARP đã được gửi để trả lời cho yêu cầu ARP trên.
a) Có bao nhiêu byte tính từ điểm bắt đầu của Ethernet frame mà trường opcode ARP bắt đầu
b) Giá trị của trường opcode trong phần ARP-payload của Ethernet frame mà ở đó 1 phản hồi ARP được tạo ra?
c) Nơi nào trong thông điệp ARP mà “answer” cho yêu cầu ARP trước được xuất hiện – Địa chỉ IP của máy tính có địa chỉ Ethernet mà địa chỉ IP của máy tính tương ứng địa chỉ Ethernet đó đang được truy vấn.
Trả lời :
a) Số byte tính từ điểm khởi đầu của Ethernet frame mà trường opcode ARP xuất hiện : 20 byte
b) Giá trị của trường opcode trong phần ARP-payload của Ethernet frame mà ở
đó 1 phản hồi ARP được tạo ra : 00 02
c) Thông điệp trả lời cho yêu cầu ARP trước xuất hiện ở “Sender Mac Address” giá trị của nó là 00:06:25:da:af:73 tương ứng với IP Address : 192.168.1.1
Trang 2016. Giá trị hexa của địa chỉ nguồn và đích trong Ethernet frame chứa thông điệp ARP trả lời? Giá trị hexa của địa chỉ nguồn là : 00:06:25:da:af:73
Giá trị hexa của địa chỉ đích là : 00:d0:59:a9:3d:68
17. Mở file trace ethernet-ethereal-trace-1 ở
http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip Các packet ARP đầu tiên và thứ 2 trong trace này tương ứng với yêu cầu ARP đã được gửi bởi máy tính chạy Wireshark, và phản hồi ARP được gửi tới máy tính chạy Wireshark bởi 1 máy tính với địa chỉ Ethernet có ARP được yêu cầu Nhưng
đó chỉ là 1 máy tính khác trên mạng này, như được đề cập bởi packet 6 – 1 yêu cầu ARP khác Tại sao ở đây không có ARP phản hồi ( gửi phản hồi cho yêu cầu ARP trong packet 6) trong packet trace này?
Trang 21Vì các yêu cầu ARP được quảng bá nhưng phản hồi ARP thì gửi trực tiếp tới máy tính có địa chỉ Ethernet đã gửi yêu cầu, do vậy máy tính chúng ta không phải là máy tính đã gửi yêu cầu ARP nên không nhận được phản hồi ARP mà chỉ nhận được yêu cầu ARP quảng bá.
Chú ý địa chỉ máy tính chúng ta là : 00:d0:59:a9:3d:68 trong khi đó địa chỉ của máy tính nhận
Trang 222. Ngôn ngữ mà trình duyệt web của bạn chỉ ra nó có thể chấp nhận server
Ngôn ngữ trình duyệt chấp nhận là tiếng anh.
3. Địa chỉ IP address của máy bạn và gaia.cs.umass.edu server?
Địa chỉ IP máy nguồn là : 192.168.1.102
Địa chỉ IP của server là : 128.119.245.12
4. Mã trạng thái được trả về từ server cho trình duyệt của bạn.
Mã trạng thái được trả về từ server cho trình duyệt là : 2 00 OK
Mã này báo yêu cầu thành công và đối tượng được yêu cầu ở sau trong thông điệp này.
5. Thời điểm file HTML mà bạn đang nhận được chỉnh sửa lần cuối ở server?
Thời điểm file HTML được chỉnh sửa lần cuối ở server là :
6. Có bao nhiêu byte trong nội dung được trả về cho trình duyệt của bạn?
Số byte nội dung trả về cho trình duyệt là 73
Trang 237. Bằng cách xem xét dữ liệu thô trong cửa sổ nội dung packet, bạn thấy hay không bất kỳ các header bên trong dữ liệu, thứ không được hiển thị trong cửa sổ packet-listing? Nếu
có, gọi tên 1 trong số đó.
Không phải tất cả các header đều hiển thị trong cửa sổ packet-listing.
Ví dụ : Ethernet II hay Internet Protocol
8. Kiểm tra nội dung của yêu cầu HTTP GET đầu tiên từ trình duyệt của bạn tới server Bạn
có thấy 1 dòng “IF-MODIFIED-SINCE” trong HTTP GET?
Không tôi không thấy dòng “IF-MODIFIED-SINCE” trong HTTP GET
9. Kiểm tra các nội dung của phản hồi server Server có trả về rõ ràng các nội dung của file? Bạn có thể nói thế nào?
Có, nó được hiển thị trong trường “Line-based text data”
10. Bây giờ kiểm tra các nội dung của yêu cầu HTTP GET thứ 2 từ trình duyệt của bạn tới server Bạn có thấy 1 dòng “IF-MODIFIED-SINCE” trong HTTP GET? Nếu có, Có thông tin
gì sau “IF-MODIFIED-SINCE:” header?
Có, Thông tin sau dòng đó là :