也許你對網絡數據流量穿過Internet的路徑沒多大興趣--直到CFO趕上了鏈接上的麻煩,沒法和合做夥伴的網站創建鏈接。而在一年前,他天天都能自如的使用這個網站。CFO今天須要訪問這個網站,因此你充滿熱情的去作排錯的工做。你試着本身登錄這個網站,可是失敗了。你電話聯繫管理這個網站的公司(你很幸運,這不老是不可能的),而後公司給你的答覆是在他們那一端沒有出任何問題。如今,你會對數據如何從你的位置傳送到這個網站、數據包如何選擇路徑以及問題會出在哪裏更加感興趣了吧? 正則表達式
固然,你能夠聯繫你的網絡服務提供商而後獲得"咱們會作進一步調查"的答覆。可是若是你無法給CFO一個解釋,你將會受到責備。你最後能作的事情就是簡單的說:"咱們彷佛是惟一碰到這個問題的公司,咱們的網絡服務提供商正在調查中,可能要很多時間,我並不知道網絡服務提供商何時才能給咱們反饋。" 數據庫
信息流量怎樣從A節點到達B節點呢?能夠從兩種角度來看這個問題:一個是從IP的觀點,另外一個是從BGP的觀點。若是你已經開始管理本身的BGP自治域系統,這篇文章可能不是爲你所做。然而,若是你有初級的或者中級的TCP/IP知識,並且又對Internet路由機制感興趣的話,請繼續讀下去。 服務器
IP的觀點網絡
IP的觀點被直接的和BGP的觀點進行對比。有層出不窮的工具能夠進行IP通訊的追蹤。你可使用內嵌在Windows和Linux/UNIX命令行裏的標準traceroute命令;你還可使用專門的工具,例如AnologX的免費工具--HyperTrace來進行更快速靈活的追蹤;還有一種選擇是Visualware的VisualRoute工具,它能圖形化的顯示你在Internet上的IP通訊路徑。你可使用它的一個試用版來追蹤世界各地的Internet路由。 ide
此外,還有一種途徑,你能夠訪問Traceroute.org 以從這個網站蹤Internet上數以萬計的IP路徑。將這個服務和本地的標準Traceroute相結合在網絡排錯中是至關有用的。 工具
BGP的觀點網站
從BGP的觀點,追蹤通信有一點點的複雜。首先,你應該明白BGP是一個基於Internet的路由選擇協議。BGP是一種距離矢量型的路由協議。和咱們所熟知的基於跳數來選擇最佳路由路徑的RIP協議相似,BGP依靠最短的自治域系統(AS)路徑來選擇最佳路由。BGP的路由區域是由自治域系統號(ASN)來標示的。美國Internet數字註冊機構(ARIN)除了管理IP地址的分配之外,一樣也管理自治域系統號的分配。 .net
更多關於BGP計算機網絡
若是你對BGP不甚了了,我強烈建議你閱讀Internet Routing Architectures這本書(這本書的初版已經有了清華大學的影印版,第二版也由人民郵電出版社引進並翻譯),它是BGP方面的權威參考書。 命令行
所以,你能夠用IP工具來觀察在哪一個地方可能出現了通訊失效。可是若是隻是簡單的IP地址失效該怎麼處理呢?若是你想標示致使這個問題的網絡服務提供商呢?若是你想了解這是Internet路由的問題仍是因爲路由表的錯誤而致使你的WEB請求返回被髮送到其餘地方(而不是返回給你)了呢?深刻BGP能夠回答這些問題。
要開始這些工做,你首先須要知道你在Internet上的公共IP地址。你應該可以從多種來源得到這個信息。若是你知道本身的自治域系統號,那將一樣是很是有用的。若是沒有的話,你必須很快的尋找出來。若是你位於一個更大型的站點,你會擁有本身的自治域系統號。或者你是和我同樣用DSL 鏈接到網絡服務提供商的。那樣,你的IP地址會止於網絡服務提供商的自治域系統號。利用你的公共IP地址,登錄Traceroute.org。你將能從兩種類型的來源裏找到不少的BGP信息。
首先,這裏有窺鏡服務器。這些是運行着能夠爲你在BGP路由器上實施命令的軟件的網絡服務器。儘管有一些只能讓你運行ping和traceroute命令,但其餘的能讓你運行BGP命令。Traceroute.org上有成百上千可用的窺鏡服務器。利用這些服務器能夠簡化工做,由於這些服務是基於WEB的並且限制在了一部分命令上。圖A展現了一個由BBC提供的窺鏡服務器。
圖A
注意當我選擇BGP並鍵入IP地址後,當我點擊提交按鈕,我獲得了圖B裏的輸出。
圖B
若是你以前歷來沒有看到過BGP的輸出信息,那麼圖B裏的數據可能會令你很是頭大,不過你只須要該知道尋找什麼。看看第2行,它告訴咱們從這個網絡(BBC)到個人網絡只有一條可用的路徑。這是很是重要的,由於通常在個人網絡和其餘網絡之間都會有多條路徑。接着它顯示了這個路由器會選擇的通往你的自治域系統(引導至你的網絡)的路徑。第5行表示了"6461 23215"。
這些數字意味着什麼?從源地址到目標地址,BGP路徑被列出。因此,開頭的(在這裏是BBC網絡,自治域系統號沒有顯示出來)首先通往6461號的自治域系統,而後是23215號自治域系統。個人IP地址(我最早輸入的IP地址)位於這個自治域系統內。
誰是運營這些自治域系統的提供商?讓咱們去ARIN的網站看看。在ARIN的網站,在主頁裏的尋找表單裏輸入6461。你會發現BBC網絡首先穿過紐約White Plains的Abovenet Communications 。在那裏它進入23215的自治域系統。若是咱們再次進入ARIN作一次數據庫查詢,咱們會看到自治域系統號是23215的網絡是Megapath Networks,來自個人DSL線路從屬的網絡服務提供商。所以,來自BBC的通訊首先通過Abovenet,而後進入Megapath。這是一該簡單的例子,可是你能夠用一樣的方法來檢測任何的網絡之間的通信
若是你有興趣更深刻的瞭解BGP,你能夠檢驗的第二種類型的來源,即TELNET可達的BGP路由服務器。他們是真正的BGP路由器,有完整的路由表,你登錄後能經過它們來對BGP命令作一些限制。你要再一次去Traceroute.org 了,點擊路由服務器,你會獲得大約20個路由服務器的列表,每個均可用TELNET鏈接。
被列出的最好的路由服務器是Oregon-ix.net Route Server,可以容易的登錄從而運行BGP命令。它包含了大約36個BGP對等體,超過80000條的BGP路徑,和超過129000個網絡的條目。利用路由服務器上的舉例信息,我能夠運行下面的命令
show ip bgp 64.32.205.237
而後獲得列表A所示的輸出結果。
就像你看到的那樣,這個路由器有52條路徑通往個人IP地址所在的自治域系統。其中26號路徑是最佳路由(基於BGP的度量值)。你一樣能夠利用自治域系統號作一個BGP的正則表達式,以下:
show ip bgp regexp 23215$
這個正則表達式尋找23215號自治域系統中全部基於BGP的IP網絡,我不能列出全部的輸出由於有成百上千條那麼長,不過列表B是這個列表的一個刪節。 基本上,這個路由器有上百條所給自治域系統號的網絡條目。這個命令可能在BGP路徑排錯中,特別是當你的自治域系統發佈了更少的路由表的時候很是受用。想獲取每條命令的具體做用描述,請求助於Cisco系統公司網站上的配置BGP和 BGP命令參考。更多關於BGP如何工做、BGP配置和運用BGP的顯示命令的信息,請參考如下連接:
下降失效級別
因爲Internet 是世界上最複雜的計算機網絡,被數以千計的網絡運營商所管理,尋求問題的解決會變得十分困難且受到時間的限制。下次你須要一些Internet 排錯工具,你也許可以靈活的運用這些實例和步驟來查明問題的真相併更迅速的解決它。或者你就可能要告訴你的網絡服務提供商問題出在哪裏並尋求更快速的解決。