2013-05-01 101 views
0

這是2例如: How to append data on a packet from kernel space? How to route the splitted packets using netfilter hooks in kernel space 我只是想改變數據在鉤LOCAL_IN未來服務器,這是類似spllitted例子。 在追加數據示例中,沒關係。但分裂的例子,這是行不通的。 我認爲問題是更新長度,校驗和udp,ip數據包(例如:在計算鉤子LOCAL_IN和LOCAL_OUT處的校驗和時的值偏移量是不同的(int offset = skb_transport_offset(skb)),因爲當數據包進入時,到udp層)。我嘗試改變htons - > ntohs,但那不行。修改數據包的netfilter

任何人有想法解決?謝謝

回答

0

問題是功能校驗和不同。 在side sender中,當您更新鉤子(POST_ROUTING或LOCAL_OUT)處的udp校驗和時,校驗和僅用於僞首部,不包括udp數據報。

在side receiver中,當你在鉤子(PRE_ROUTING或LOCAL_IN)上進行updata udp校驗時,校驗和必須包含僞頭+ udp數據報。