張志鋼
(聯通懷化市分公司,湖南懷化,418000)
在概念上,協議似乎很復雜,實際上很容易理解,并且使用也很容易。只要你在鍵盤上輕輕地敲入一個網址并回車,如:http:www.10010.com,那么你已經成功地使用了一次協議,并達到了瀏覽網頁的目的。這個過程好比生活中的問和答,其中的“http:”部分相當于問話人使用的語種,漢語還是維語等等;“www.10010.com”部分相當于被問者姓名,連起來就是你請你的電腦用一種對方電腦(服務器)“聽”得懂的“語言”說:“嘿!伙計,把你網頁的第一頁內容遞過來!”其實,這里的http就是一種協議—超文本傳送協議。協議是不同機器間交流所使用的語言的集合。為什么要引入協議的概念呢?不同國家都有語言差異,何況機器之間?為了實現不同機器間的通信,人們必須制定計算機通信網絡中兩臺計算機之間進行通信所必須共同遵守的規則即協議。
剛才講的是接受新聞的實現即“問”。現在,讓我們反過來再看看發布新聞是怎么通過協議實現的即“答”。設sohu網站發布新聞網頁,其安裝一臺服務器并一種叫IIS的或其它軟件時,給它命名為news.sohu.com,使這臺原“聽”不懂任何“語言”的服務器能聽懂http“語言”,并隨時等候客戶端請求。而我用戶電腦的windows默認是能喊出"http"話語的:"http://news.sohu.com".這好比生活中某人使用某種語言在給一個叫“news.sohu.com”的人寫請求信,而對方剛好明白這語言,就會按來信要求,準確地把新聞網頁傳送給用戶的電腦,并被用戶電腦所“展示”。
注意一點:機器不同于人的是,聽與說是分離的,即同一種“語言”,一臺機器能“說”出去,自己沒必要“聽”得懂。例如用戶的電腦雖然能發送http“語言”,但對收到的http請求卻可以“充耳不聞”。所以,如果在sohu服務器地址欄輸入“http://222.23.12.32(客戶端的ip)”,并且客戶端電腦沒部署IIS類軟件,則服務器什么也得不到,但并不影響客戶端電腦瀏覽服務器的網頁。又假如在news.sohu.com上沒裝ftp server類軟件,則它就不能聽懂ftp“語言”,因此你在電腦地址欄輸入“ftp://news.sohu.com”時,得到的是“無法訪問”。有沒有辦法訪問呢?有,那就是等news.sohu.com上裝“ftp server”類軟件后,我們就可以得到機器(news.sohu.com)上的文件。ftp,Files Transform Protocol文件傳送協議,顧名思義,就是專門傳文件給你的協議。
協議除了幫助實現網頁、文件的傳播,網絡中所有信息的傳送,都是依賴于協議完成的。其實,日常中所說的協議總是指某一層的協議。準確地說,在同等層之間的實體通信時,有關通信規則和約定的集合就是該層協議,例如物理層協議、傳輸層協議、應用層協議。應用層是最高層,物理層是最低層。http屬于應用層協議。那么最低層物理層的兩個實體,例如一段網線兩頭的電路,他們之間的通信不需要什么協議了吧?不!同樣需要。我們都知道,功能220V的剃須刀,插在賓館110V的插座上,因為電壓不同,可能無法正常使用剃須刀—電流的傳送必須遵守電壓的約定,而這種約定可以看做是最簡單的協議。可見,物理層傳送,要約定許多參數或者協議,才能通信。
計算機通信網是由許多具有信息交換和處理能力的節點互連而成的。要使整個網絡有條不紊地工作,就要求每個節點必須遵守一些事先約定好的有關數據格式及時序等的規則。這些為實現網絡數據交換而建立的規則、約定或標準就稱為網絡協議。通信網中每個數據包,無一例外地遵守著某種協議的規定而傳送,如TCP包,UDP包,ARP包。這此都是客觀存在,雖然摸不著但是卻有辦法“看”到它們的存在,比如使用一些抓包工具,就可以“目睹”某一時段某網絡上傳送的所有協議包。下面給大家看下截圖,如圖1所示。
圖1正常網絡:顯示了DCN局域網ARP協議正常時1分鐘內所抓的包,其arp協議正確地解析了各IP的Mac地址,如:69.80.1的mac地址尾數分別為:39:1e:2b。如果Mac異常(即全部相同),則意味著網絡工作異常。另外,利用抓包工具不僅可以幫助我們理解交換原理,還可以分析網絡故障,快速定位故障點、排除障礙。如圖2,通過arp包的分析,可以從幾十臺甚至上百臺電腦的局域網中“揪”出可能被ARP病毒感染電腦,從而“拯救”整個DCN網的VLAN子網。

圖1 正常情況下的網絡

圖2 揭開arp病毒的神秘面紗
故障現象:10.209.64.0/24網段中的幾十臺電腦同時斷網、(任選某PC)用Ping命令Ping網關時顯示為out,修復網卡后的幾秒鐘內通了幾個數據包而馬上又顯示為out,則可基本判定遭受到ARP攻擊。但要確定是哪臺(還須考慮一臺以上)故障,則可通過利用抓包工具來定位。
故障定位:在DCN網內中,用任一電腦網卡以“混雜”模式,抓包10分鐘,分析結果,找到異常---如圖1紅圈所示。正常小紅圈里每一行不必然相同。但現在每一行驚人地相同,在每7秒鐘的時間里,IP尾數為94的這臺電腦同時向局域網內的1-254臺電腦發送arp廣播,其目的是為了冒充網關,欺騙所在局域網的所有電腦,從而截獲其它電腦的數據包。其它電腦就會誤認為此94ip的電腦為網關,就將數據發到假網關94上,而不與實際網關通訊。表現為斷網。
此時,如將故障電腦網卡右擊一次修復,則能短時ping通網關。
為什么在受到ARP攻擊時,修復網卡的瞬間能通幾個包,是因為arp病毒第一次完成254個廣播后再循環時需要7秒鐘,所以DCN網絡會在病毒再次發生作用前正常一瞬間,立即又陷入癱瘓。

圖3 ping著網關演示修復網卡獲“魚的7秒記憶”
要將該局域網的ARP攻擊問題徹底解決,只需拔掉IP尾號為94的這一臺電腦的網線(此時其它所有電腦馬上會恢復網絡功能),隔離,進行arp病毒專殺。或者在pc上手工解析網關的MAC地址也能處理,如網關IP為:192.168.0.254,其網卡Mac地址為:00-11-22-aa-bbcc,則在命令提示符下使用命令:ARP -S 192.168.0.254 00-11-22-aa-bb-cc。使該pc知道網關的正確地址,也就能恢復和網關的通信了。
同時在網關設備上捆綁pc的ip與mac,語句格式為:arpa 192.168.0.1 0011.2233.xxxx(思科網關設備),其中192.168.0.1為pc1的ip地址,0011.2233.xxx為pc1的MAC地址,此為通常說的雙向綁定。能徹底使arp攻擊失效。但此為手工方式,當pc數量達到一定數量級時,其工作量之大是超常規的且網點換電腦會受到影響。
解決arp攻擊的另一種方法是減小廣播域。用可變長子網掩碼(VLSM)技術精細化劃分出多個子網(VLAN),對arp攻擊有時能起到事半功倍的效果。VLSM特征就是網絡中的不同部分(如不同的部門、不同的樓層等)出現了不同的子網掩碼。即使arp爆發,也會被局限某一個部門(樓層)幾臺電腦,不會影響其他PC。如某地級內網IT承載網終端數950臺,屬34個子單位,則合適的VLAN劃分數為68個。