卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

網(wǎng)絡(luò)工具

MIT電子工程與計(jì)算機(jī)科學(xué)系6.829 2002秋季 網(wǎng)絡(luò)工具 2001年9月13日概述:在這個(gè)指南中,我們覆蓋了網(wǎng)絡(luò)研究中常用

MIT

電子工程與計(jì)算機(jī)科學(xué)系

6.829 2002秋季 網(wǎng)絡(luò)工具 2001年9月13日

概述:在這個(gè)指南中,我們覆蓋了網(wǎng)絡(luò)研究中常用的工具(在現(xiàn)實(shí)中的調(diào)試使用的)。我們首先介紹netstat 和tcpdump ,通過(guò)觀察一個(gè)活動(dòng)的TCP 連接及其輸出形式來(lái)簡(jiǎn)單介紹它們的使用。我們使用netstat 來(lái)描述TCP 狀態(tài)機(jī)的細(xì)微之處。

其次,我們來(lái)看一組基于查找的工具,dig 和whois ,它們提供關(guān)于DNS 的主機(jī)信息,關(guān)于名字和網(wǎng)絡(luò)的注冊(cè)信息等。

接下來(lái)我們介紹網(wǎng)絡(luò)的策略工具,ping 和更有趣的traceroute ,是如何工作的,以及它們能(不能)告訴你們什么。

最后,為那些不了解perl 的人講解如何使用一個(gè)簡(jiǎn)單的perl 腳本將指定目的IP 地址和AS 的跟蹤和計(jì)數(shù)字節(jié)信息綁定到一起。

1 Tcpdump 和netstat

tcpdump 是如何工作的呢?對(duì)于BSD 驅(qū)動(dòng)的內(nèi)核來(lái)說(shuō),由BPF (Berkeley Packet Filter)提供。這個(gè)過(guò)濾器將設(shè)備驅(qū)動(dòng)器設(shè)置到混雜模式,從驅(qū)動(dòng)器接收所有發(fā)送和接收的報(bào)文。然后這些報(bào)文通過(guò)用戶定義的過(guò)濾器,這樣只有用戶感興趣的報(bào)文才會(huì)送到用戶進(jìn)程處理。那么,為了小量的讀取而進(jìn)行的內(nèi)核固定的截獲行為的高代價(jià)是如何考慮呢?一個(gè)成批讀取的timeout 值將解決這個(gè)問(wèn)題。

過(guò)濾過(guò)程由內(nèi)核實(shí)現(xiàn)。這限制了從內(nèi)核拷貝到用戶空間的數(shù)據(jù)總量。

下面是在我的機(jī)器上執(zhí)行tcpdump host –I eth0 aros.ron.lcs.mit.edu port ssh 的輸出結(jié)果。

? 2002 Nick Feamster 1

,

時(shí)間戳選項(xiàng)是如何工作的呢?例如,為什么不在一個(gè)報(bào)文中用當(dāng)前發(fā)送時(shí)間來(lái)標(biāo)志?(需要時(shí)鐘同步)

信息包括如下格式:時(shí)間戳,源和目的(IP 地址和端口),TCP 標(biāo)志,段信息(開(kāi)始,結(jié)束,大小),應(yīng)答,窗口尺寸,以及其它TCP 選項(xiàng)。“P ”標(biāo)志表示將接收到的數(shù)據(jù)盡快“推”給應(yīng)用。并且,注意以下過(guò)程釋放一條連接:

tcp 0 0 ginseng.lcs.mit.ed:3524 aros.ron.lcs.mit.ed:ssh ESTABLISHED

tcp 0 0 ginseng.lcs.mit.ed:3524 aros.ron.lcs.mit.ed:ssh TIME_WAIT

可將狀態(tài)傳輸圖簡(jiǎn)單描述為T(mén)CP 行為的“規(guī)則集”。

為什么連接會(huì)進(jìn)入time wait狀態(tài)?注意這也被稱為“2MSL ”(最大段生存期)狀態(tài)。執(zhí)行主動(dòng)關(guān)閉連接的端點(diǎn)不知道最后的ACK 是否收到,因此它不知道另一端點(diǎn)關(guān)閉了連接。只因?yàn)镕IN 的到達(dá),我們還不能假定連接以及關(guān)閉 — 段有可能沒(méi)有按順序到達(dá)。

你能想到各種對(duì)TCP 的攻擊嗎?順序號(hào)攻擊是一個(gè)例子。SYN flood是另外一個(gè)。你如何防范SYN flood攻擊呢?其中的一種策略是“SYN Cookies”,這種策略在三次握手協(xié)議執(zhí)行完之前不會(huì)為一個(gè)連接設(shè)置狀態(tài)(而不是——第一個(gè)SYN 到達(dá)就立即進(jìn)入SYN 接收狀態(tài))。這在以后的講義中會(huì)進(jìn)行介紹。

2 查詢工具:dig 和whois

dig 是一個(gè)DNS 查詢工具。它與nslookup 類(lèi)似,但功能更強(qiáng)大。你可以查詢各種類(lèi)型的記錄。最常見(jiàn)(缺?。┑氖菍NS 名字映射到IP 地址的“A ”記錄。

下面是我機(jī)器的查詢輸出結(jié)果。注意,是查詢“A ” 記錄。Dig 還會(huì)返回一些其它的有用信息。例如,返回lcs.mit.edu 的“NS ” 記錄。NS 字段返回特定域的授權(quán)DNS 服務(wù)器。注意,我還獲得了所有這些機(jī)器的“A ”記錄。為什么每個(gè)域的結(jié)束位置都有一個(gè)點(diǎn)號(hào)?因?yàn)?,這告訴你名字是完全資格的(試著在MIT 機(jī)器上查詢ai vs.ai.)。

類(lèi)似于“1800”的數(shù)字描述了本地DNS 服務(wù)器保留返回結(jié)果的時(shí)間。

說(shuō)明當(dāng)名字沒(méi)有被解析時(shí)的輸出時(shí)什么樣子。說(shuō)明相反的DNS 的同樣情況,特別是資? 2002 Nick Feamster 2

,

格域名等。

你能看到的還有類(lèi)似于CNAME 的類(lèi)型。人們通常使用別名,或?yàn)橥粋€(gè)機(jī)器取不同的名字。這通過(guò)規(guī)范名字來(lái)實(shí)現(xiàn),這在DNS 通過(guò)CNAME 記錄來(lái)實(shí)現(xiàn)。如下所示: ;; ANSWER SECTION:

bgp.lcs.mit.edu. 1800 IN CNAME mit-network-monitor.lcs.mit.edu. mit-network-monitor.lcs.mit.edu 1800 IN A 18.31.0.51

可以使用dig 來(lái)查詢特定域的郵件服務(wù)器。假如有人想發(fā)送郵件到feamster@lcs.mit.edu;他的郵件服務(wù)器如何獲得相應(yīng)的郵件服務(wù)器來(lái)將郵件傳送到lcs.mit.edu ?這通過(guò)MX 記錄來(lái)表示。例如,可通過(guò)輸入dig lcs.mit.edu MX來(lái)查詢這個(gè)記錄。數(shù)字代表什么呢?表示一個(gè)郵件服務(wù)器的優(yōu)先順序。

? 2002 Nick Feamster 3

,

;; ANSWER SECTION:

lcs.mit.edu. 1800 IN MX 10 fedex.ai.mit.edu.

lcs.mit.edu. 1800 IN MX 1 mintaka.lcs.mit.edu.

你還可以使用dig 來(lái)來(lái)執(zhí)行反向查找。dig –x是最簡(jiǎn)單的方式。Dig 也可用作批量模式。參加隨機(jī)手冊(cè)。

whois 是查詢whois 機(jī)器的一種有效工具。有很多種類(lèi)型的whois 服務(wù)器。其中之一是“nic ”服務(wù)器,常用來(lái)告訴你關(guān)于誰(shuí)注冊(cè)了特定的名字的信息。我機(jī)器上缺省的whois 服務(wù)器是whois.crsnic.net 。這個(gè)whois 服務(wù)器將執(zhí)行來(lái)自負(fù)責(zé)注冊(cè)該名字的whois 服務(wù)的查詢。輸出的摘錄如下:

Whois 還可以用來(lái)查詢地址注冊(cè),ARIN(North America),APNIC (Asia ),以及RIPE (Europe )。例如,我們希望知道關(guān)于地址18.31.0.38的更多信息:

? 2002 Nick Feamster 4

,

注意,數(shù)據(jù)庫(kù)中的所有的日期都是最后修改日期,記錄也是的最后修改時(shí)間。這就給你提供了信息的準(zhǔn)確性。

whois 服務(wù)器除了可提供名字到管理域的解析,還可以幫助完成序號(hào)到管理域的映射。特別的,“序號(hào)”(例如IP 地址和AS 序號(hào))由一些組織管理:

RIPE :Reseaux IP Europeans

ARIN : Internet序號(hào)在美洲的注冊(cè)(包括非洲)

APNIC :亞太網(wǎng)絡(luò)信息(包括澳洲)

如果我要了解在MIT 中IP 地址或者AS 序號(hào)的一些信息,我就要作為ARIN whois服務(wù)器(whois.arin.net )。ARIN whois服務(wù)器有很多選項(xiàng)來(lái)限制查詢特定的記錄類(lèi)型。例如,我想查詢“AS 701”:

? 2002 Nick Feamster 5

,

還支持在超網(wǎng)中的查詢;APINIC (whois.apnic.net )和RIPE (whois.ripe.net )以相同的方式工作。我們?nèi)绾伟l(fā)現(xiàn)一個(gè)特定網(wǎng)絡(luò)或IP 地址的自治系統(tǒng)?還有另外一個(gè)稱為RADB 的whois 數(shù)據(jù)庫(kù),它保持著最新的相關(guān)信息。注意,這是traceroute –A為AS 解析IP 地址的過(guò)程。

3 測(cè)量工具:ping 和traceroute

ping 是通過(guò)使用ICMP 的“回聲請(qǐng)求Echo Request”信息,并等待ICMP 的“回聲響應(yīng)Echo Reply”的一個(gè)簡(jiǎn)單程序。它最基本的應(yīng)用是檢測(cè)一個(gè)特定主機(jī)是否有響應(yīng)(因此可確定主機(jī)開(kāi)機(jī),并連接到網(wǎng)絡(luò))。Ping 還為每個(gè)請(qǐng)求/響應(yīng)對(duì)顯示一個(gè)RTT 值,和一個(gè)順序號(hào)。Ping 還會(huì)給出丟失率的概要。注意:這個(gè)RTT 值并不準(zhǔn)確,因?yàn)镮CMP 不是在很多路由器的最快路徑上。選項(xiàng)“f ”(flood ,有時(shí)需要根),“c ”(發(fā)送特定數(shù)量的報(bào)文),“s ”(指定報(bào)文的尺寸,有時(shí)對(duì)分段特別有用)。

試著發(fā)送一個(gè)巨大尺寸的ping 報(bào)文,使用tcpdump 觀測(cè)IP ID。

Traceroute 是一個(gè)獲得從一個(gè)主機(jī)看到的到特定目的的路徑的工具。Traceroute 使用遞增的TTL 值(實(shí)際上,每個(gè)TTL 值3次)發(fā)送IP 報(bào)文,并監(jiān)聽(tīng)路徑上每跳的ICMP 的“TIME EXCEEDED ”響應(yīng)。Traceroute 需要注意以下問(wèn)題:

每跳都指定一個(gè)接口(發(fā)送time-exceeded 消息),而不是主機(jī)或路由器。一條路徑

在一個(gè)路由器上可能傳輸超過(guò)一跳。

? 2002 Nick Feamster 6

,

有可能time-exceeded 消息的源被設(shè)置為通向主機(jī)返回路徑的輸出接口的IP 地址,

而不是報(bào)文的到達(dá)接口。這會(huì)產(chǎn)生一些奇怪的結(jié)果。

traceroute 的錯(cuò)誤不代表節(jié)點(diǎn)的錯(cuò)誤。有可能是相反路徑的錯(cuò)誤,例如,“*”不代

表錯(cuò)誤情況,必要的;這可能意味著,例如,路由器不響應(yīng)ICMP 消息。

注意很多機(jī)器上的traceroute 的版本不支持選項(xiàng)“A ”。你可以通過(guò)澄清RPM 或恰當(dāng)?shù)囊汛嬖诎?,?lái)手工來(lái)完成(如上所示);或者從http://nms.lcs.mit.edu/6.829/other/ traceroute-nanog.tar.gz 下載“Nanog Traceroute”,并在你機(jī)器上編譯(注意traceroute 需要超級(jí)用戶的權(quán)限執(zhí)行,或者你必須設(shè)置為“setuid root”,否則你會(huì)得到權(quán)限的錯(cuò)誤)。

4 Perl

在這個(gè)部分,我們介紹如何使用Perl (一個(gè)流行的腳本語(yǔ)言)來(lái)執(zhí)行tcpdump 文件的分析工作:

計(jì)算從一個(gè)主機(jī)到另一個(gè)主機(jī)傳輸?shù)淖止?jié)數(shù)

畫(huà)出應(yīng)答的軌跡

注意下面的代碼不是告訴你如何使用最基本的部分,例如對(duì)問(wèn)題集非常有用的數(shù)字和hash 表。要理解這些基本信息(或者關(guān)于Perl 的更多信息),可參考一本非常好的書(shū)Larry Wall編寫(xiě)O’Reilly出版的Programming Perl,Perl 手冊(cè)(在Unix 中輸入“man perl”)也是非常好的參考。

下面的程序做了兩件事情:它有一個(gè)統(tǒng)計(jì)tcpdump 跟蹤信息(以tcptrace 跟蹤文集的格式給出)字節(jié)數(shù)的函數(shù),以及一個(gè)為tcpdump 跟蹤信息產(chǎn)生“ACK trace”的函數(shù)。這兩個(gè)函數(shù)帶有教育的目的。這里我主要是告訴你們perl 的外觀,以及在網(wǎng)絡(luò)研究和分析中使用的基本要素。這不是語(yǔ)言的教材。

? 2002 Nick Feamster 7

,

? 2002 Nick Feamster 8

,

? 2002 Nick Feamster 9

,

calculate-byte 從routeviews 到ginseng 打印了(希望是正確的)一些字節(jié)的數(shù)量。Ack_trace函數(shù)生成如下圖像(這是整個(gè)連接的完整ACK 軌跡的一個(gè)縮略):

為什么軌跡會(huì)是這樣的呢? 因?yàn)槲覀兪钦驹诮邮照叩牧?chǎng):發(fā)送者填滿了擁塞窗口,我們按照窗口容納報(bào)文的最大尺寸應(yīng)答,然后過(guò)程自己重復(fù)。

? 2002 Nick Feamster 10

標(biāo)簽: