案例背景

  1、業(yè)務(wù)訪問(wèn)流程

  納稅人通過(guò)互聯(lián)網(wǎng)登陸網(wǎng)上申報(bào)服務(wù)器,提交相關(guān)納稅信息;

  網(wǎng)上申報(bào)服務(wù)器將這些納稅信息轉(zhuǎn)發(fā)給前置機(jī)的同時(shí),將相關(guān)信息寫(xiě)入征管服務(wù)器數(shù)據(jù)庫(kù);

  網(wǎng)上申報(bào)服務(wù)器與前置機(jī)的數(shù)據(jù)交互出現(xiàn)問(wèn)題,那么網(wǎng)上申報(bào)服務(wù)器會(huì)將征管服務(wù)器數(shù)據(jù)庫(kù)相關(guān)的信息鎖死。

  2、故障現(xiàn)象

  網(wǎng)上申報(bào)業(yè)務(wù)系統(tǒng)運(yùn)行時(shí),每天總有一部分納稅人的申報(bào)表單數(shù)據(jù)無(wú)法正常上傳,通過(guò)征管服務(wù)器的業(yè)務(wù)軟件可發(fā)現(xiàn)這些用戶的申報(bào)數(shù)據(jù)處于鎖狀態(tài);

  在沒(méi)有網(wǎng)閘的情況下,網(wǎng)上申報(bào)服務(wù)器與前置機(jī)直接通訊,則故障現(xiàn)象消失,網(wǎng)上納稅全部正常。

  3、網(wǎng)上申報(bào)服務(wù)器的地址是192.168.1.1,經(jīng)過(guò)網(wǎng)閘后轉(zhuǎn)換為X.X.16.73,前置機(jī)的IP地址為X.X.16.56,征管服務(wù)器的IP地址為X.X.16.200。網(wǎng)絡(luò)拓?fù)鋱D如下:


  案例分析

  結(jié)合故障現(xiàn)象與業(yè)務(wù)流程,我們可以清晰的發(fā)現(xiàn),問(wèn)題應(yīng)該出現(xiàn)在網(wǎng)上申報(bào)服務(wù)器經(jīng)過(guò)網(wǎng)閘的地址轉(zhuǎn)換后與前置機(jī)交互的過(guò)程中。網(wǎng)閘是最為可疑的故障關(guān)鍵點(diǎn),遂在網(wǎng)閘前后部署網(wǎng)絡(luò)分析系統(tǒng)(在此環(huán)境下,可直接在申報(bào)服務(wù)器上和前置機(jī)上分別安裝網(wǎng)絡(luò)分析系統(tǒng)),對(duì)網(wǎng)上申報(bào)業(yè)務(wù)數(shù)據(jù)交互過(guò)程分別進(jìn)行抓包。

  通過(guò)科來(lái)網(wǎng)絡(luò)分析系統(tǒng)捕獲前置機(jī)交互的數(shù)據(jù)包,一段時(shí)間后,我們?cè)?ldquo;TCP會(huì)話” 視圖中,發(fā)現(xiàn)某些TCP會(huì)話持續(xù)時(shí)間比一般TCP會(huì)話長(zhǎng)很多(這是跟正常情況下的業(yè)務(wù)會(huì)話持續(xù)時(shí)間對(duì)比發(fā)現(xiàn),屬于對(duì)比分析法應(yīng)用方式的一種)。打開(kāi)其中一個(gè)TCP會(huì)話,查看其詳細(xì)的數(shù)據(jù)包視圖,以了解其具體交互過(guò)程。

  網(wǎng)閘地址73首先發(fā)送reset報(bào)文,后網(wǎng)閘地址向前置機(jī)發(fā)送(重傳)報(bào)文,前置機(jī)直接發(fā)送reset報(bào)文重置連接。這個(gè)過(guò)程,導(dǎo)致該TCP會(huì)話持續(xù)時(shí)間很長(zhǎng)。我們還發(fā)現(xiàn)這些TCP會(huì)話中,存在大量的TCP重置報(bào)文,且第一個(gè)發(fā)送reset報(bào)文的是網(wǎng)閘的IP地址。

  網(wǎng)閘為什么會(huì)突然給前置機(jī)發(fā)送reset報(bào)文呢?我們查看這個(gè)reset報(bào)文的詳細(xì)解碼視圖,發(fā)現(xiàn)這個(gè)數(shù)據(jù)報(bào)文的源MAC地址并非網(wǎng)閘的MAC,真實(shí)的網(wǎng)閘MAC地址是00:40:63:EF:43:DF,而這個(gè)數(shù)據(jù)報(bào)文的源MAC地址卻是00:21:5E:82:AF:86,難道是網(wǎng)內(nèi)存在某些設(shè)備針對(duì)該業(yè)務(wù)數(shù)據(jù)進(jìn)行會(huì)話劫持攻擊?通過(guò)進(jìn)一步的分析,在這個(gè)reset報(bào)文之前,是前置機(jī)發(fā)送給網(wǎng)閘地址的確認(rèn)報(bào)文,這個(gè)報(bào)文封裝的目的MAC地址就是00:21:5E:82:AF:86。

  前置機(jī)為什么會(huì)在數(shù)據(jù)交互的過(guò)程中,突然出現(xiàn)這種狀況呢?一般而言,主機(jī)是根據(jù)其ARP表項(xiàng)來(lái)封裝要發(fā)送的數(shù)據(jù)報(bào)文的目的MAC地址,那么,這里前置機(jī)發(fā)往網(wǎng)閘數(shù)據(jù)報(bào)文的目的MAC地址出現(xiàn)改變是否是因?yàn)榍爸脵C(jī)的ARP表項(xiàng)內(nèi)容變化了呢?我們?cè)谇爸脵C(jī)的DOS窗口下,使用arp –a命令查看異常時(shí)的ARP表項(xiàng)內(nèi)容,發(fā)現(xiàn)網(wǎng)閘IP對(duì)應(yīng)的MAC地址的確變成了00:21:5E:82:AF:86。

  Internet Address        Physical Address         Type

  X.X.16.73            00-21-5E-82-AF-86     dynamic

  能夠?qū)е翧RP表項(xiàng)更新的只可能是ARP報(bào)文,是前置機(jī)收到ARP欺騙報(bào)文導(dǎo)致了ARP表項(xiàng)的更新嗎?由于前面都是針對(duì)TCP層面的數(shù)據(jù)交互來(lái)分析的,看不到ARP報(bào)文,因此我們決定在科來(lái)網(wǎng)絡(luò)分析系統(tǒng)的“數(shù)據(jù)包”視圖查看交互過(guò)程的所有數(shù)據(jù)報(bào)文。我們發(fā)現(xiàn)在網(wǎng)閘向前置機(jī)發(fā)送連接請(qǐng)求之后,前置機(jī)立即向網(wǎng)絡(luò)中發(fā)送ARP請(qǐng)求,請(qǐng)求網(wǎng)閘IP對(duì)應(yīng)的MAC;在網(wǎng)閘響應(yīng)了前置機(jī)的ARP請(qǐng)求之后,前置機(jī)開(kāi)始與網(wǎng)閘進(jìn)行TCP三次握手交互;這是,來(lái)自MAC地址為00-21-5E-82-AF-86的ARP響應(yīng)到達(dá)了前置機(jī),前置機(jī)更新其ARP表項(xiàng),以后,前置機(jī)在收到來(lái)自網(wǎng)閘的數(shù)據(jù)報(bào)文之后,都向00-21-5E-82-AF-86地址發(fā)送確認(rèn)報(bào)文。

  為了便于大家理解,我們將這個(gè)交互過(guò)程中,網(wǎng)閘、前置機(jī)以及未知設(shè)備的數(shù)據(jù)交互情況和狀態(tài)變化做一個(gè)圖示,如下:
 

  

  通過(guò)上面的圖示,我們可以清楚的看到,導(dǎo)致該業(yè)務(wù)故障的原因是網(wǎng)絡(luò)內(nèi)有一臺(tái)設(shè)備使用了和網(wǎng)閘一樣的IP地址。

  另外,我們分析前置機(jī)的狀態(tài),可以知道,前置機(jī)之所以會(huì)在交互的過(guò)程中向網(wǎng)絡(luò)內(nèi)發(fā)送目的IP為網(wǎng)閘的ARP請(qǐng)求報(bào)文,是因?yàn)榍爸脵C(jī)ARP表中網(wǎng)閘IP的ARP表項(xiàng)老化。在前置機(jī)ARP表中網(wǎng)閘IP的ARP表項(xiàng)未老化之前,網(wǎng)閘與前置機(jī)交互數(shù)據(jù)時(shí)是正常的,而網(wǎng)閘與前置機(jī)的業(yè)務(wù)數(shù)據(jù)交互間隔時(shí)間是隨機(jī)的(這決定于網(wǎng)上納稅用戶登錄網(wǎng)上申報(bào)服務(wù)器提交納稅信息的時(shí)間),這就可以解釋為什么是部分網(wǎng)上申報(bào)業(yè)務(wù)表單出現(xiàn)異常。

  網(wǎng)絡(luò)內(nèi)有2臺(tái)設(shè)備使用了同一個(gè)IP地址,應(yīng)該很容易被發(fā)現(xiàn),為什么一直沒(méi)有被發(fā)現(xiàn)呢?其實(shí),這是因?yàn)榫W(wǎng)閘的這個(gè)IP只有網(wǎng)上申報(bào)業(yè)務(wù)使用,而那個(gè)未知的網(wǎng)絡(luò)設(shè)備設(shè)置的這個(gè)IP,很可能僅僅是用來(lái)管理的,這個(gè)設(shè)備長(zhǎng)期在線,又很少有人管理(至少信息中心的人都不知道該設(shè)備的存在),因此不會(huì)主動(dòng)向網(wǎng)絡(luò)中發(fā)送ARP報(bào)文,不會(huì)影響到網(wǎng)絡(luò)內(nèi)其他主機(jī)和應(yīng)用的正常運(yùn)行。但是,它會(huì)響應(yīng)其他主機(jī)對(duì)它IP地址的ARP請(qǐng)求。我們可以通過(guò)交換機(jī)的MAC地址表找到這個(gè)設(shè)備所在的位置。

  分析結(jié)論及解決方法

  此次業(yè)務(wù)故障的原因完全跟網(wǎng)閘無(wú)關(guān),是由于內(nèi)網(wǎng)一臺(tái)MAC地址為00:21:5E:82:AF:86的設(shè)備和網(wǎng)閘映射的地址沖突導(dǎo)致的。

  問(wèn)題原因定位之后,我們至少可以通過(guò)以下三種方式解決該故障:

  1、由于是ARP表更新導(dǎo)致的,我們可以手動(dòng)綁定網(wǎng)閘的ARP,或者修改注冊(cè)表,將前置機(jī)的ARP表老化時(shí)間調(diào)大。

  2、找出使用了網(wǎng)閘映射IP的設(shè)備,修改該設(shè)備的IP地址;修改網(wǎng)上申報(bào)服務(wù)器通過(guò)網(wǎng)閘后映射的IP地址。

  3、還可以讓該業(yè)務(wù)系統(tǒng)在應(yīng)用層面設(shè)置一個(gè)檢測(cè)模塊,當(dāng)發(fā)現(xiàn)有表單提交異常時(shí),等待一段時(shí)間,重新向前置機(jī)提交表單。

  總結(jié):在剛接觸到這個(gè)故障時(shí),以為是網(wǎng)閘的原因?qū)е碌墓收希峭ㄟ^(guò)數(shù)據(jù)包分析后我們發(fā)現(xiàn)是由于網(wǎng)絡(luò)中有IP地址沖突導(dǎo)致的故障,所以在接觸到故障時(shí),不要主觀臆測(cè)故障原因,而是要通過(guò)分析的手段找到根本的原因,以便提高故障解決的效率。

責(zé)任編輯:admin