0 個人信息
- 張櫻姿
- 201821121038
- 計算1812
1 實驗目的
熟練使用Packet Tracer工具。分析抓到的應用層協議數據包,深入理解應用層協議,包括語法、語義、時序。
2 實驗內容
使用Packet Tracer,正確配置網絡參數,抓取應用層協議的數據包並分析,協議包含DNS、FTP, DHCP, stmp, pop3。步驟包含:
- 建立網絡拓撲結構
- 配置參數
- 抓包
- 分析數據包
3 實驗報告
本實驗使用Cisco Packet Tracer這個平台來對網絡環境進行模擬。
3.1 建立網絡拓撲結構
如圖,將一台PC端和一台Server端相連。
分析:客戶(PC端)和服務器(Sever端)是通信中所涉及的兩個應用進程,要達到抓包的目的,就需要建立通信關系,即需要在同一網段內。
3.2 IP配置
PC端的IP地址:192.168.1.38,子網掩碼:255.255.255.0
服務器的IP地址:192.168.1.1,子網掩碼:255.255.255.0
分析:對於PC端和服務器的IP配置,其子網掩碼相同,在同一網段內,可以相互通信。
3.3 抓DNS包並分析
3.3.1 將服務器端的DNS服務開啟,並增設一條域名解析記錄:
3.3.2 點擊右下角的Simulation鍵進行仿真。
3.3.3 只勾選支持DNS協議:
3.3.4 在PC端的瀏覽器輸入域名訪問:
(注:當出現域名解析出錯時,會顯示如下頁面:
解決辦法是PC端的DNS server要設置為DNS服務器的IP地址:
)
3.3.5 仿真后的信息傳遞結果如下:
3.3.6 報文分析:
(1)報文頭:
- QDCOUNT(Questions Count)表示報文請求段中的問題記錄數
- ANCOUNT(Answer Count)表示報文回答段中的回答記錄數
- NSCOUNT(Authoritative Nameservers Count)表示報文授權段中的授權記錄數
- ARCOUNT(Additional Recoreds Count)表示報文附加段中的附加記錄數
(2)查詢報文:
- NAME表示查詢名,一般為需要查詢的域名(如果是反向查詢,則為IP地址)
- TYPE表示查詢類型,4表示是一個郵件轉發器。
- CLASS表示查詢類,1表示是Internet數據
- TTL(Time to Live)表示生存時間,以秒為單位,表示的是資源記錄的生命周期,一般用於當地址解析程序取出資源記錄后決定保存及使用緩存數據的時間,它同時也可以表明該資源記錄的穩定程度,極為穩定的信息會被分配一個很大的值(比如86400,這是一天的秒數)。
- LENGTH表示資源數據長度
(3)應答報文:
類似於查詢報文:
- NAME表示資源記錄包含的域名
- TYPE表示資源記錄的類型
- CLASS表示資源記錄的類
- TTL表示資源記錄的生存周期
- LENGTH表示資源數據長度
- IP表示域名解析的結果
3.4 抓FTP包並分析
3.4.1 將服務器端的FTP服務開啟,並增設一條用戶記錄:
3.4.2 點擊右下角的Simulation鍵進行仿真。
3.4.3 只勾選支持FTP協議:(File Transfer Protocol,文件傳輸協議)
3.4.4 在PC端的Command Prompt(命令提示符,類似於cmd)輸入用戶名及密碼對FTP服務器的文件訪問:
輸入?查詢可使用命令:
其中,cd可改變遠程工作目錄,delete可刪除遠程單個文件,dir可顯示遠程目錄文件的文件列表,get可復制單個遠程文件到本地,help與?相同,可顯示FTP命令幫助信息,passive可開/關被動模式,put可復制一個本地文件到遠程目錄,pwd可顯示遠程當前工作目錄,quit可結束FTP會話並退出FTP,rename可重命名遠程文件。
(注:FTP有兩種使用模式:被動和主動,主動模式要求客戶端和服務器端同時打開並監聽一個端口以建立連接。但這種情況下,由於客戶端安裝了防火牆會產生一些問題,所以有了被動模式,被動模式只要求服務器端產生一個監聽相應端口的進程,這樣就能繞過客戶的防火牆了。)
3.4.5 仿真后的信息傳遞結果如下:
3.4.6 報文分析:
(1)響應報文:
- Code:220表示新用戶服務就緒
- Message表示對Code的解釋
(2)響應報文:
- Code:331表示用戶名正確,需要密碼
- Message表示對Code的解釋
(3)請求報文:
- FTP Command:PASS表示密碼正確
- FTP Argument表示密碼內容
(4)響應報文:
- Code:230表示用戶已登錄
- Message表示對Code的解釋
(5)請求報文:
- FTP Command:QUIT表示用戶已登出
(6)響應報文:
- Code:221表示服務京城已關閉連接
- Message表示對Code的解釋
3.5 抓DHCP包並分析
3.5.1 將服務器端的DHCP服務開啟,並設置IP地址分配的開始值192.168.1.0:
接着將PC端的IP獲取方式從靜態改成DHCP獲取(192.168.1.2):
3.5.2 點擊右下角的Simulation鍵進行仿真。
3.5.3 只勾選支持DHCP協議:(Dynamic Host Configuration Protocol,動態主機設置協議)
3.5.4 仿真后的信息傳遞結果如下:
3.5.5 報文分析:
(1)請求報文:
- OP表示報文類型,1表示請求報文
- HW TYPE表示硬件地址類型,1表示10Mb/s的以太網的硬件地址
- HW LEN表示硬件地址長度,以太網中為6
- HOPS表示跳數,客戶端設置為0
- TRANSACTION ID表示事務ID,由客戶端選擇的一個隨機數,被服務器和客戶端用來在它們之間交流請求和響應,客戶端用它對請求和應答進行匹配
- SECS由客戶端填充,表示從客戶端開始獲得IP地址或IP地址續借后所使用了的秒數
- FLAGS表示標志字段,目前只有最左邊的一個比特有用,該位為0,表示單播,為1表示廣播
- CLIENT ADDRESS表示客戶端地址,只有客戶端是Bound、Renew、Rebinding狀態,並且能響應ARP請求時,才能被填充。
- YOUR CLIENT ADDRESS表示客戶端地址
- SERVER ADDRESS表示DHCP協議流程的下一個階段要使用的服務器的IP地址
- RELAY AGENT AGGRESS表示DHCP中繼器的IP地址
- CLIENT HARDWARE ADDRESS表示客戶端硬件地址,客戶端必須設置它的物理地址
- SERVER HOSTNAME表示可選的服務器主機名,該字段是空結尾的字符串,由服務器填寫
- FILE表示啟動文件名,是一個空結尾的字符串
- OPTIONS表示可選的參數域,格式為"代碼+長度+數據"
(2)響應報文:
- OP表示報文類型,2表示響應報文
- YOUR CLIENT ADDRESS表示客戶端地址,此時被分配為192.168.1.2
- SERVER ADDRESS表示DHCP協議流程的下一個階段要使用的服務器的IP地址,為192.168.1.1
(3)DHCP Options
- OP:6表示DNS Server
- LEN:4表示4個字節
- DOMAIN NAME SERVER表示域名服務器的IP
- OP:15表示主DNS服務器名
- LEN:0x0表示長度可變
- DOMAIN NAME表示域名
3.6 抓SMTP包並分析(涉及SMTP協議和POP3協議)
3.6.1 先將PC端的IP獲取由DHCP變為靜態獲取,並設置其IP地址為192.168.1.38,再對Email中的Configure Mail進行設置:
接着將服務器端的IP獲取方式從DHCP改成靜態獲取,並設置其IP地址為192.168.1.1,打開SMTP服務和POP3服務,增加兩個用戶,接着對Email中的Configure Mail進行設置:
3.6.2 點擊右下角的Simulation鍵進行仿真。
3.6.3 只勾選支持SMTP協議和POP3協議:(Simple Mail Transfer Protocol,簡單郵件傳輸協議;Post Office Protocol - Version 3,郵局協議版本3)
3.6.4 PC端寫mail給服務器端:
另外,只能用PC端接受mail,因為設置的pop3服務器也是服務器端。
(注:如果出現如下問題,說明是DNS服務器未配置好,因為發郵件時是To一個域名,而非IP地址,因此需要域名解析,所以開啟服務器端的DNS服務,並增設兩條記錄:
)
3.6.5 仿真后的信息傳遞結果如下:
3.6.6 報文分析:
- SMTP DATA表示將郵件報文發送給服務器
- POP3表示接收郵件報文
3.7 Q&A
Q:常用端口號?
A:
- 21/tcp FTP 文件傳輸協議
- 22/tcp SSH 安全登錄、文件傳送(SCP)和端口重定向
- 23/tcp Telnet 不安全的文本傳送
- 25/tcp SMTP Simple Mail Transfer Protocol (E-mail)
- 69/udp TFTP Trivial File Transfer Protocol
- 80/tcp HTTP 超文本傳送協議 (WWW)
- 110/tcp POP3 Post Office Protocol (E-mail)
- 220/tcp IMAP3
- 443/tcp HTTPS 安全的網頁傳輸
4 Reference
· 深入理解DNS報文格式----夜蒼山的CSDN博客
(https://blog.csdn.net/liao152/article/details/45252387)
· DNS協議詳解及報文格式分析----Jocent Zhou的博客
(https://jocent.me/2017/06/18/dns-protocol-principle.html)
· FTP命令詳解----羅漢爺的CSDN博客
(https://blog.csdn.net/indexman/article/details/46387561)
· DHCP報文及其格式----一路博客的CSDN博客
(https://blog.csdn.net/one_in_one/article/details/51684551)