2012-12-05 19 views
0

我試圖開發和Linux的基於PC的參考RFC 4861.NDP(ICMPv6報)執行:重複數據包通過內核

我創建了一個插座socket (AF_INET6, SOCK_RAW, IPPROTO_IPV6)實現NDP(鄰居發現協議)發送。 NS/NA數據包(ipv6頭+ icmpv6頭+選項)由開發人員填寫併發送。

在Wireshark中,我監測到我填充的NS數據包正在發送+內核發送自己的NS數據包並接收NA數據包。

所以我很困惑,陷在我的工作中。任何人都可以請幫忙解釋一下

  1. 爲什麼這個重複數據包是由內核自己生成的?
  2. 如果內核處理ICMPv6數據包,這是NDP應該開發和實施的場景嗎?

回答

3

內核已經實現了NDP,所以開發人員不需要,就像你沒有爲IPv4實現ARP一樣。

如果你仍然想實現ND(例如因爲它是一個分配的學校項目),你將不得不找到一種方法在內核中禁用它(可能會刪除代碼並重新編譯)。

+0

很好的編輯。謝謝bortzmeyer! –

+0

謝謝。我將盡快更新 –