2013-07-05 42 views
0

後,我有3個主持人:客戶改變源MAC地址分配給客戶B,當發送數據包,但客戶端B的模塊不能接收數據包服務器發送

客戶端A

客戶端B

服務器。

我有以下測試場景:

客戶端A發送原始數據包到服務器(改變源MAC地址分配給客戶B的)

服務器應答這個包(我使用tcpdump的,以確保服務器已回答這個包)

客戶端B安裝了一個在netfilter預路由上註冊掛鉤功能的模塊,但沒有任何東西能夠被感染。

有人知道爲什麼客戶端B的hook函數什麼都收不到?

Thx!

回答

1

很可能是因爲您的交換機在客戶端A的端口上看到了客戶端B的MAC地址,並且記住了這一點。它將因此將以太網端口上的回覆發送到客戶端A,而不是發送到客戶端B的erhernet端口。

這似乎是一個網絡問題,而不是編程問題。因此,這個問題在另一個論壇上可能更合適。

0

服務器端有一個ARP緩存,可能它已經包含主機A和主機A的原始MAC之間的關聯(我猜這個關聯在客戶端A與服務器建立連接時出現)。

arp -n 

將顯示ARP表的內容。 每個ARP表項都有一些到期超時。當它到期時,服務器通過向本地網絡中的所有主機發送ARP who-has請求來嘗試刷新過期條目。因此,只有主機A的緩存條目到期後,服務器纔會吸收更新的信息。

+0

ARP與此無關,OP正在生成原始以太網數據包。 –

相關問題