2011-09-28 28 views
2

我在tcpdump日誌中有兩個數據包,我不知道第二列中的「P」和「In」是什麼意思。有人能解釋他們的意思嗎?瞭解帶有以太網報頭的tcpdump跟蹤

00:43:44.896482 P 00:00:ac:12:80:01 ethertype IPv4 (0x0800), length 76: 172.18.128.1.ssh > 155.xx.xx.xx.56365: S 1308033114:1308033114(0) ack 1315850475 win 5792 <mss 1460,sackOK,timestamp 12196173 122040733,nop,wscale 8> 

00:43:44.896482 In 00:00:ac:12:80:01 ethertype IPv4 (0x0800), length 76: 172.18.128.1.ssh > 155.yy.yy.yy.4242: S 1308033114:1308033114(0) ack 1315850475 win 5792 <mss 1460,sackOK,timestamp 12196173 122040733,nop,wscale 8> 

請注意,由於此「P」事件,dest IP發生更改。

回答

3

從Guy Harris的tcpdump-workers郵件列表中得到以下答案。

Linux「any」設備使用DLT_LINUX_SLL/LINKTYPE_LINUX_SLL鏈接層標頭,其中包含從PF_PACKET套接字上的「recvfrom()」調用獲得的信息,該套接字包含源地址,但不包含目標地址,的數據包,所以你看到的唯一的鏈路層地址就是源地址。

它還包括一些標誌指示數據包是如何獲得:

  • 「在」 - 包是單播到主機; 「

  • 」B「 - 數據包被廣播;

  • 「M」 - 數據包未被廣播,但是多播;

  • 「P」 - 分組是單播到一些其它主機和該主機接收到它,因爲網絡適配器是處於混雜模式;

  • 「Out」 - 數據包由主機發送並「纏繞」並傳遞到PF_PACKET套接字。

Linux網絡棧決定通過查看數據包的目的地址,看是否與「在」,「B」,「M」和「P」是的,我認爲,不同的方式它是使用IEEE MAC-48地址的網絡上的廣播地址(ff:ff:ff:ff:ff:ff),多播地址(在使用IEEE MAC-48地址的網絡上設置了「組」位)接收到的適配器的地址。這是一個令人驚訝的是,它檢測到「任何」設備上混雜接收的數據包,因爲「任何」設備本身不能置於混雜模式,但可能是接收到該數據包的特定接口在出於某種其他原因的混雜模式。